Gallery Platform API
Reference

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.

GET
/gallery/artworks/summary

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:read
AuthorizationBearer <token>

A 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

ids?array<string>

Comma-separated ids to fetch as an explicit set (maximum 50).

Items1 <= items <= 50
q?string

Free-text search over the resource's searchable fields.

Lengthlength <= 200
availability?array<>

Filter to the given availability states (repeatable).

Items1 <= items
ownership?array<>

Filter to the given ownership kinds (repeatable).

Items1 <= items
condition?array<>

Filter to the given condition values (repeatable).

Items1 <= items
market?array<>

Filter to the given markets (repeatable).

Items1 <= items
artist_id?string

Filter to the given artist id.

medium?string

Filter to the given media (repeatable).

Lengthlength <= 200
price_min?integer

Lower bound on price, inclusive.

Range0 <= value <= 9007199254740991
price_max?integer

Upper bound on price, inclusive.

Range0 <= value <= 9007199254740991
year_min?integer

Lower bound on year, inclusive.

Range-9007199254740991 <= value <= 9007199254740991
year_max?integer

Upper bound on year, inclusive.

Range-9007199254740991 <= value <= 9007199254740991
height_min?number

Lower bound on height, inclusive.

Range0 <= value
height_max?number

Upper bound on height, inclusive.

Range0 <= value
width_min?number

Lower bound on width, inclusive.

Range0 <= value
width_max?number

Upper bound on width, inclusive.

Range0 <= value
unpriced?string

When true, only rows with no price.

published?|

Filter by published state.

has_image?string

When true, only rows with at least one image.

tag_id?array<string>

Filter to the given tag id.

Items1 <= items <= 10

Response 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}