Mint a signed offer-document upload URL
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.
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.
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
The offer id.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Request a signed URL to upload a document object.
Response Body
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
{ "storage_path": "string", "token": "string", "signed_url": "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}Update an offer document PATCH
Updates a document's editable fields (title). Requires a first-party session.
Duplicate an offer POST
Copies an offer's composition (subject, intro, template, and its works) into a new draft, and returns the audience to carry forward: `template_only` (none), `recipients` (the full original audience), or `non_openers` (only those delivered who never opened). The copy is not sent — pair this with `POST …/send` using the returned `audience` to actually re-send.