Cancel an offer
Cancels a sending or sent offer: stops any not-yet-sent delivery and marks it `canceled`. Recipients and their engagement history are preserved, so the record stays auditable and already-delivered links keep resolving.
Cancels a sending or sent offer: stops any not-yet-sent delivery and marks it canceled. Recipients and their engagement history are preserved, so the record stays auditable and already-delivered links keep resolving.
Authorization
bearerAuth offers:createA gallery API key, sent as Authorization: Bearer gpk_… (or the x-api-key header).
In: header
Scope: offers:create
Path Parameters
Header Parameters
Optional. Send a unique key per logical operation to make retries safe: a retry with the same key replays the stored success for 14 days instead of re-running the write. Reusing a key with a different body returns 400.
Response Body
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
{ "id": "string", "title": "string", "subject": "string", "intro": "string", "template_id": "string", "status": "draft", "track_engagement": true, "scheduled_at": "string", "sent_at": "string", "cc_emails": [ "string" ], "bcc_emails": [ "string" ], "created_by": "string", "metadata": { "property1": "string", "property2": "string" }, "created_at": "string", "updated_at": "string", "items": [ { "offer_id": "string", "artwork_id": "string", "position": -9007199254740991, "caption_override": "string", "price_shown_cents": -9007199254740991, "currency": "string", "price_visible": true, "created_at": "string" } ], "recipients": [ { "id": "string", "offer_id": "string", "contact_id": "string", "email": "string", "expires_at": "string", "delivery_status": "pending", "sent_at": "string", "first_opened_at": "string", "last_activity_at": "string", "open_count": -9007199254740991, "click_count": -9007199254740991, "created_at": "string" } ]}{ "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}List gallery movements GET
The gallery's recent artwork movements, newest first, with cursor pagination. Each entry carries its artwork's title and inventory number. Defaults to the last 90 days; pass `since` (an ISO date or datetime) to reach further back.
Create an offer POST
Creates a draft offer, optionally with its initial set of works (offer items).