Skip to main content

SeriesDuplicateGroup

A group of duplicate series.

Two detection methods are surfaced through match_type:

  • external_id: high-confidence match where two or more series resolve to the same plugin/external identifier. Cross-library by design.
  • title: medium-confidence match where two or more series in the same library share the same normalized title.
createdAtstringrequired

When the duplicate was first detected

Example: 2026-05-20T10:30:00Z
duplicateCountinteger<int32>required

Number of series in the group at detection time. members.len() may be smaller if a member has been deleted between scan and read.

Example: 2
idstring<uuid>required

Unique identifier for the duplicate group

Example: 550e8400-e29b-41d4-a716-446655440000
libraryIdstring,null<uuid>nullable

Library this group is scoped to. Null for external_id matches.

matchKeystringrequired

For external_id matches: "

:<external_id>" e.g. "plugin:mangabaka:12345". For title matches: the normalized search title (e.g. "naruto").

Example: plugin:mangabaka:12345
matchTypestringrequired

external_id or title

Example: external_id
members object[]required

Hydrated details for each series in the group, in the same order the detector emitted them. May be shorter than duplicate_count if a member series has since been deleted.

  • Array [
  • bookCountinteger<int64>required

    Number of (non-deleted) books in the series.

    Example: 63
    idstring<uuid>required

    Series UUID.

    libraryIdstring<uuid>required

    Library this series belongs to.

    libraryNamestringrequired

    Library display name.

    Example: Manga
    titlestringrequired

    Display title, falling back to series.name when no metadata exists.

    Example: Fairy Tail
    updatedAtstringrequired

    Series row's last-updated timestamp.

    Example: 2026-02-15T00:00:00Z
  • ]
  • updatedAtstringrequired

    When the group was last updated

    Example: 2026-05-20T10:30:00Z
    SeriesDuplicateGroup
    {
    "createdAt": "2026-05-20T10:30:00Z",
    "duplicateCount": 2,
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "libraryId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "matchKey": "plugin:mangabaka:12345",
    "matchType": "external_id",
    "members": [
    {
    "bookCount": 63,
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "libraryId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "libraryName": "Manga",
    "title": "Fairy Tail",
    "updatedAt": "2026-02-15T00:00:00Z"
    }
    ],
    "updatedAt": "2026-05-20T10:30:00Z"
    }