Catalog

List a keyset page of browsable catalog entries (search/filter aware).

The catalog holds thousands of entries, so this is cursor-paginated like GET /apis: follow next_cursor until has_more is false. catalog_total/registered_count/outdated_count count the whole manifest, not the page, so the Discover status row stays stable while scrolling.

get/catalog

Request

  • Base URL: / (relative, and the document was published on a file host, not at the API’s origin)
  • URL: /catalog
  • Auth: one of:
    • HTTP bearer
    • OAuth 2 (authorization code, authorization URL /authorize, token URL /oauth/token)

Query parameters

qstring nullable

Search text matched against entry IDs; results are ranked by match quality.

Example:charges
registered_onlyboolean

Only return entries already imported into the registry.

Example:true
unregistered_onlyboolean

Only return entries not yet imported; cannot be combined with registered_only or outdated_only.

outdated_onlyboolean

Only return imported entries with an upstream update available.

Example:true
include_snoozedboolean

Treat entries whose update notification is snoozed as outdated.

Example:true
cursorstring nullable

Opaque cursor from a previous page's next_cursor; keep the other filters unchanged while paging.

Example:eyJ0IjogIjIwMjYtMDEtMTVUMDk6MzA6MDArMDA6MDAiLCAiaWQiOiAiM2YyYjhjMWUtN2Q0YS00ZTliLWE2YzUtMWQyZTNmNGE1YjZjIn0=
limitinteger

Maximum number of entries to return (1-200).

Example:25

Response

Successful Response

catalog_totalinteger required

Total entries in the whole manifest (pre-filter, pre-page).

has_moreboolean

Whether another page follows.

manifest_age_secondsinteger nullable

Age of the cached manifest in seconds, or null when the cache is empty.

next_cursorstring nullable

Opaque keyset cursor for the next page (null when done).

outdated_countinteger

Count of whole-manifest registered entries with an upstream update available.

registered_countinteger required

Count of whole-manifest entries already imported locally.

Example response

{
  "catalog_total": 5231,
  "data": [],
  "has_more": true,
  "manifest_age_seconds": 3600,
  "next_cursor": "eyJpZCI6ICJzdHJpcGUuY29tIn0=",
  "registered_count": 12
}

Changes