Gallery Platform API
Reference

Parse a caption into an artwork draft

Parses a pasted free-text caption into a structured artwork DRAFT for review — artist (resolved detect-existing-or-create against the gallery's roster), title, year, medium, dimensions, price/currency (incl. a range), and edition, with low-confidence fields flagged. This is read-shaped: it returns a suggestion and writes nothing. The model loop is server-only (the Anthropic key never reaches the browser); requires a first-party session.

POST
/gallery/artworks/parse-caption

Parses a pasted free-text caption into a structured artwork DRAFT for review — artist (resolved detect-existing-or-create against the gallery's roster), title, year, medium, dimensions, price/currency (incl. a range), and edition, with low-confidence fields flagged. This is read-shaped: it returns a suggestion and writes nothing. The model loop is server-only (the Anthropic key never reaches the browser); requires a first-party session.

Authorization

bearerAuth artworks:read
AuthorizationBearer <token>

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

In: header

Scope: artworks:read

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Parse a pasted caption into a structured artwork draft.

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

{  "artist": {    "name": "string",    "artist_id": "string",    "matched": true  },  "title": "string",  "year": -9007199254740991,  "medium": "string",  "height_cm": 0,  "width_cm": 0,  "depth_cm": 0,  "dimension_unit": "in",  "framed": true,  "price_cents": -9007199254740991,  "currency": "string",  "price_min_cents": -9007199254740991,  "price_max_cents": -9007199254740991,  "edition": "string",  "low_confidence": [    "string"  ]}