products/<gtin>/offers/ page.
When to use
- A brand owner needs to record which physical stores and which websites sell a product, at what price and with what availability.
- An offer on file is out of date (a price, a status, a stock level) and needs correcting.
Auth
X-API-Key header or OAuth token. Writing an offer takes the Manage offers
(MANAGE_OFFERS) permission on the organization, which a member with the Editor, Manager
or Owner role holds, and so does an API key with the Editor or Manager role. A read-only
key is refused. Every refusal answers 404, not 403, so the API never confirms that
another organization or its offers exist.
Find the store first
An offer names one store by id. Look it up; never create one from this workflow.404.
Flow
online-offers.
- List — paginated. The default lists the offers this organization submitted;
scope=on_productsadds the ones other organizations submitted on its products. - Create — the body names the product with
product_idand the store withphysical_store_id(in-store) oronline_store_id(online); fields are listed in the OpenAPI document at/retailers/api/v1/openapi.json. A new offer startsactive; the(product_id, store_id, sku)triple must be unique (422otherwise). Creation is rate-limited per organization (429withretry_after). - Update —
PUTwith the fields to change; the body also acceptsstatus. Only the organization that submitted an offer may update it. - Delete — the submitting organization may delete an offer, and so may the organization that owns the product while the offer is another organization’s unverified submission: a brand can remove such an offer on its product, but never rewrite it. Once Closient has verified an offer, only its submitter can delete it.
- Read back — every write returns the saved offer;
GETit again to confirm.
Promotions
A promotion hangs off one offer and follows that offer’s permission:online-offers and online-promotions.
Notes
Returns404 for a read-only key, another organization’s offer or private store, or a
product or store that does not exist; 422 for an invalid value. An offer on a product
another organization owns is stored but hidden from public surfaces until Closient
verifies it. The fields an organization writes on an offer are defined once on the model
(EDITABLE_FIELDS).