List artwork activity timeline
Lists an artwork's activity timeline (added, moved, price changed, consigned, ownership, interest, interactions), newest first. Appended automatically as the work changes.
Lists an artwork's activity timeline (added, moved, price changed, consigned, ownership, interest, interactions), newest first. Appended automatically as the work changes.
Authorization
bearerAuth artworks:readA gallery API key, sent as Authorization: Bearer gpk_… (or the x-api-key header).
In: header
Scope: artworks:read
Path Parameters
The artwork id.
Response Body
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
{ "data": [ { "id": "string", "artwork_id": "string", "event_type": "created", "actor_id": "string", "contact_id": "string", "ref_table": "string", "ref_id": "58ed4a6c-926f-4b2f-b688-ecd86db2ed34", "summary": "string", "metadata": { "property1": null, "property2": null }, "occurred_at": "string", "created_at": "string" } ]}{ "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}Mint a signed document upload URL POST
Returns a one-time signed target for uploading a document directly to Storage. The server derives the gallery-scoped object key; the client then uploads the bytes and registers the object via POST /documents. Requires a first-party session.
Extract artwork drafts from a document POST
Reads an already-uploaded PDF or image (in the gallery-documents bucket) and extracts a structured artwork DRAFT for each work it lists — the multi-row sibling of parse-caption. Each draft carries artist (resolved detect-existing-or-create against the gallery's roster), title, year, medium, dimensions, price/currency, and edition, with low-confidence fields flagged; document-level problems come back as warnings. This is read-shaped: it returns suggestions for review and writes nothing. The model loop is server-only (the Anthropic key never reaches the browser); requires a first-party session.