Summarize inventory
Server-computed aggregates over the gallery's artworks for a filter set: the matching total, counts by work status, value totals summed per currency, and the unpriced count. Accepts the same filters as the list endpoint (status, artist_id, price/year bands, unpriced, published). Use this — not paging the list — to answer 'how many' / 'how much' questions correctly at any scale.
Server-computed aggregates over the gallery's artworks for a filter set: the matching total, counts by work status, value totals summed per currency, and the unpriced count. Accepts the same filters as the list endpoint (status, artist_id, price/year bands, unpriced, published). Use this — not paging the list — to answer 'how many' / 'how much' questions correctly at any scale.
Authorization
bearerAuth artworks:read, gallery:read, artists:readA gallery API key, sent as Authorization: Bearer gpk_… (or the x-api-key header).
In: header
Scope: artworks:read, gallery:read, artists:read
Query Parameters
Comma-separated ids to fetch as an explicit set (maximum 50).
1 <= items <= 50Free-text search over the resource's searchable fields.
length <= 200Filter to the given availability states (repeatable).
1 <= itemsFilter to the given ownership kinds (repeatable).
1 <= itemsFilter to the given condition values (repeatable).
1 <= itemsFilter to the given markets (repeatable).
1 <= itemsFilter to the given artist id.
Filter to the given media (repeatable).
length <= 200Lower bound on price, inclusive.
0 <= value <= 9007199254740991Upper bound on price, inclusive.
0 <= value <= 9007199254740991Lower bound on year, inclusive.
-9007199254740991 <= value <= 9007199254740991Upper bound on year, inclusive.
-9007199254740991 <= value <= 9007199254740991Lower bound on height, inclusive.
0 <= valueUpper bound on height, inclusive.
0 <= valueLower bound on width, inclusive.
0 <= valueUpper bound on width, inclusive.
0 <= valueWhen true, only rows with no price.
Filter by published state.
When true, only rows with at least one image.
Filter to the given tag id.
1 <= items <= 10Response Body
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
{ "total": -9007199254740991, "by_availability": { "property1": -9007199254740991, "property2": -9007199254740991 }, "by_ownership": { "property1": -9007199254740991, "property2": -9007199254740991 }, "by_market": { "property1": -9007199254740991, "property2": -9007199254740991 }, "value": [ { "currency": "string", "count_priced": -9007199254740991, "sum_cents": -9007199254740991 } ], "unpriced": -9007199254740991, "base_currency": "string", "converted_total_cents": -9007199254740991}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "code": "invalid_request", "retry": "permanent", "details": null}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "code": "invalid_request", "retry": "permanent", "details": null}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "code": "invalid_request", "retry": "permanent", "details": null}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "code": "invalid_request", "retry": "permanent", "details": null}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "code": "invalid_request", "retry": "permanent", "details": null}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "code": "invalid_request", "retry": "permanent", "details": null}Set an artwork's status POST
Sets the artwork's availability (and, optionally, its custom status label and ownership status) on the record now — live for every reader, whoever sends it. A pending draft that named the field is reconciled and the editor is told. Use this, not `PATCH`, for a state change.
Add a tag to a artwork POST
Adds a single tag to this artwork (idempotent — never clobbers its other tags). Returns the resulting tag set.