GET /api/v2/collections/ List public collections GET /api/v2/collections/{id}/ Collection detail (public only) GET /api/v2/collections/{id}/items/ Items in a collection
Fields (Collection): id, name, description, collector (id + username), public (boolean), keywords, item_count
Fields (Collection Item): id, issue (id + series name + number + descriptor), grade (code + name, from ConditionGrade), own (boolean: owned vs wanted), was_read (boolean), for_sale (boolean), signed (boolean), is_digital (boolean), rating (1-5 scale), acquisition_date, sell_date, location (id + name), purchase_location (id + name), price_paid (amount + currency code), market_value (amount + currency code), sell_price (amount + currency code), notes, keywords
Filters (Collection list): collector (user id), name (icontains)
Filters (Collection Items): series, publisher (via issue__series__publisher), own, was_read, signed, is_digital, for_sale, rating (range), price_paid (range), market_value (range), sell_price (range), publication_date (range, via issue__key_date)
Notes:
------------------
Subscriptions
GET /api/v2/collections/{id}/subscriptions/ Series subscribed to a collection
Fields: id, series (id + name + year_began), last_pulled (datetime)
Subscriptions automatically pull new issues into a collection as they get added to the GCD database. Exposing them through the API lets consumers see which series a collection is tracking without scraping the web UI.
-----------------
Permissions
Only collections and reading orders marked public = True are visible through the API. Private resources return 404 with no information leakage about their existence.
Implementation Notes
The MYCOMICS setting in settings.py defaults to False. All collection and reading order endpoints should check this flag. If MYCOMICS is disabled on a given deployment, these endpoints return 404 with a clear message rather than raising an unhandled error.
What is not included
GET /api/v2/collections/ List public collections GET /api/v2/collections/{id}/ Collection detail (public only) GET /api/v2/collections/{id}/items/ Items in a collection
Fields (Collection): id, name, description, collector (id + username), public (boolean), keywords, item_count
Fields (Collection Item): id, issue (id + series name + number + descriptor), grade (code + name, from ConditionGrade), own (boolean: owned vs wanted), was_read (boolean), for_sale (boolean), signed (boolean), is_digital (boolean), rating (1-5 scale), acquisition_date, sell_date, location (id + name), purchase_location (id + name), price_paid (amount + currency code), market_value (amount + currency code), sell_price (amount + currency code), notes, keywords
Filters (Collection list): collector (user id), name (icontains)
Filters (Collection Items): series, publisher (via issue__series__publisher), own, was_read, signed, is_digital, for_sale, rating (range), price_paid (range), market_value (range), sell_price (range), publication_date (range, via issue__key_date)
Notes:
------------------
Subscriptions
GET /api/v2/collections/{id}/subscriptions/ Series subscribed to a collection
Fields: id, series (id + name + year_began), last_pulled (datetime)
Subscriptions automatically pull new issues into a collection as they get added to the GCD database. Exposing them through the API lets consumers see which series a collection is tracking without scraping the web UI.
-----------------
Permissions
Only collections marked public = True are visible through the API. Private resources return 404 with no information leakage about their existence.
Implementation Notes
The MYCOMICS setting in settings.py defaults to False. All collection endpoints should check this flag. If MYCOMICS is disabled on a given deployment, these endpoints return 404 with a clear message rather than raising an unhandled error.
What is not included