Search across the gallery's entities
Ranked lexical search across artworks, contacts, artists, lists, offers, locations, sales, invoices, and publications — exact matches first, then prefix, then substring. Returns a bounded top-N with no cursor. A key sees only the kinds its granted read scopes cover (artworks:read ⇒ artwork + artist + list; sales:read ⇒ sale + invoice; contacts:read ⇒ contact; etc.). Sales match on the buyer contact's name; hits never carry amounts. Excludes the knowledge base — use the assistant for semantic search.
Ranked lexical search across artworks, contacts, artists, lists, offers, locations, sales, invoices, and publications — exact matches first, then prefix, then substring. Returns a bounded top-N with no cursor. A key sees only the kinds its granted read scopes cover (artworks:read ⇒ artwork + artist + list; sales:read ⇒ sale + invoice; contacts:read ⇒ contact; etc.). Sales match on the buyer contact's name; hits never carry amounts. Excludes the knowledge base — use the assistant for semantic search.
Authorization
bearerAuth A gallery API key, sent as Authorization: Bearer gpk_… (or the x-api-key header).
In: header
Query Parameters
The search term. Minimum 3 characters (the trigram floor).
3 <= length <= 200Comma-separated kinds to search (default: all). One or more of: artwork, contact, artist, list, offer, location, sale, invoice, publication. Unknown kinds and kinds outside the key's granted read scopes are ignored.
Page size. Defaults to 20; the maximum is 100.
1 <= value <= 5020Response Body
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
{ "data": [ { "kind": "artwork", "id": "string", "title": "string", "subtitle": "string", "rank": -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}Update a saved report view PATCH
Renames a saved report view or replaces its column/sort config.
List a session's check-ins GET
The session's admissions, most recent scan first, with the door counts. The counts cover the whole session rather than the returned page, so two doors scanning at once read the same numbers.