Gallery Platform API
Reference

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.

GET
/gallery/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
AuthorizationBearer <token>

A gallery API key, sent as Authorization: Bearer gpk_… (or the x-api-key header).

In: header

Query Parameters

q*string

The search term. Minimum 3 characters (the trigram floor).

Length3 <= length <= 200
kinds?string

Comma-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.

limit?integer
Range1 <= value <= 50
Default20

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