Save a publication
Saves the publication's pending edits: promotes them onto the record and snapshots a new version. Does not change whether it is published.
Saves the publication's pending edits: promotes them onto the record and snapshots a new version. Does not change whether it is published.
Authorization
bearerAuth publications:updateA gallery API key, sent as Authorization: Bearer gpk_… (or the x-api-key header).
In: header
Scope: publications:update
Path Parameters
The publication id.
Query Parameters
Preview this operation without committing it. When true, the request is authenticated, scoped, and validated, but no side effect runs — no write, no idempotency claim, no audit event, no outbound delivery. The response is HTTP 200 with an X-Dry-Run: true header and a body of { "dry_run": true }, plus an effect object describing what the real call would change when this operation can resolve one.
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", "subtitle": "string", "publisher": "string", "isbn": "string", "editor": "string", "author": "string", "page_count": -9007199254740991, "publication_year": -9007199254740991, "dimensions_text": "string", "inventory_number": "string", "description": "string", "stock_quantity": -9007199254740991, "availability_state": "available", "cover_image_path": "string", "published_at": "string", "visibility": "public", "show_price_publicly": true, "price_cents": -9007199254740991, "currency": "string", "metadata": { "property1": "string", "property2": "string" }, "created_at": "string", "updated_at": "string", "save_state": "new"}{ "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}Restore a publication version POST
Stages a past version as the publication's working draft (non-destructive — save to make it current). Does not change whether it is published.
Update a publication PATCH
Patches a publication's fields (bibliographic, stock, availability, visibility, price). Only supplied fields change; `published` toggles its published_at. For a member, the bibliographic edits accumulate in the working draft until the next save; for an API key or an installed app, they land on the record. Pass `draft` to choose; `applied_to` in the response says where the write went.