Skip to main content

SeriesFeedResponse

One page of the release feed. Walk while hasMore is true, passing nextCursor back as cursor; when hasMore is false, keep nextCursor as the bookmark and idle until the next poll.

hasMorebooleanrequired

true when more series remain after this page (fetch again now).

items object[]required
  • Array [
  • canonicalTitlestringrequired
    chapterCoverage object[]required

    Merged available chapter ranges (sorted, gaps preserved).

  • Array [
  • endnumber<double>required
    startnumber<double>required
  • ]
  • externalIds object[]required

    Provider mappings (provider + externalId) — the match key for a consumer that keeps its own catalog keyed on, e.g., MangaBaka ids.

  • Array [
  • externalIdstringrequired
    fetchedAtinteger<int64>required
    providerstringrequired
  • ]
  • highestChapternumber,null<double>nullable

    Max end of chapterCoverage.

    highestVolumenumber,null<double>nullable

    Max end of volumeCoverage, denormalized for a quick "behind?" check.

    seriesIdinteger<int32>required
    updatedAtinteger<int64>required

    Epoch seconds this series' coverage last changed (the cursor key).

    volumeCoverage object[]required

    Merged available volume ranges (sorted, gaps preserved).

  • Array [
  • endnumber<double>required
    startnumber<double>required
  • ]
  • ]
  • nextCursorstring | nullnullable

    Opaque cursor at the last item returned, or absent when the page is empty. Treat it as a token — do not parse its structure.

    SeriesFeedResponse
    {
    "hasMore": true,
    "items": [
    {
    "canonicalTitle": "string",
    "chapterCoverage": [
    {
    "end": 0,
    "start": 0
    }
    ],
    "externalIds": [
    {
    "externalId": "string",
    "fetchedAt": 0,
    "provider": "string"
    }
    ],
    "highestChapter": 0,
    "highestVolume": 0,
    "seriesId": 0,
    "updatedAt": 0,
    "volumeCoverage": [
    {
    "end": 0,
    "start": 0
    }
    ]
    }
    ],
    "nextCursor": "string"
    }