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.
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": "string", "retry": "permanent", "details": null}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "code": "string", "retry": "permanent", "details": null}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "code": "string", "retry": "permanent", "details": null}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "code": "string", "retry": "permanent", "details": null}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "code": "string", "retry": "permanent", "details": null}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "code": "string", "retry": "permanent", "details": null}Update a saved report view PATCH
Renames a saved report view or replaces its column/sort config.
Check a ticket in POST
Admits a ticket into a session — from a scanned QR payload or a ticket id. Idempotent: re-scanning an already-admitted ticket returns its existing check-in, so a flaky scanner or an offline replay is safe. Void or refunded tickets are refused.