Offers
Update offer
Updates only the submitted fields.
PATCH
/offers/{id}offers:writeBEHAVIOR
The change is validated and persisted in the key account before responding. Query the returned resource as the source of truth.
EFFECT
It can change the resource and emit the corresponding domain event.
REPETITION
On network failure, confirm the resource status before retrying. Automatically redo only 429 and 5xx with backoff and jitter.
Request
idstring · pathResource identifier.minLength 2 · maxLength 100mandatoryurlstring · bodyOriginal HTTPS URL for the product.uri · maxLength 2000optionaltitlestring · bodyPublic title of the offer.minLength 3 · maxLength 240optionalmarketplacestring · bodySource marketplace.maxLength 40optionalpricenumber · bodyCurrent price.optionaloriginal_pricenumber · bodyPrevious price.optionalcurrencystring · bodyISO 4217 currency.minLength 3 · maxLength 8 · default BRLoptionalimagestring · bodyHTTPS URL of the image.urioptionalstorestring · bodyStore name.optionalcategorystring · bodyCategory.optionalcouponstring · bodyCoupon code.optionalcopystring · bodyEditorial text of the offer.maxLength 6000optionalstatusstring · bodyCurated status.optionalAuthorization
Bearer ach_live_...Accept
application/jsonScope
offers:writeExecutable example
curl
curl -X PATCH 'https://achadu.com/api/v1/offers/resource_id' \
-H 'Authorization: Bearer ach_live_...' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data '{
"url": "https://example.com/product",
"title": "Air fryer 5L",
"marketplace": "string"
}'Response and errors
Every response includes request_id. Lists add pagination; mutable resources return the persisted state after the operation.
200 application/json
{
"data": {
"id": "off_01J...",
"marketplace": "amazon",
"title": "Air fryer 5L",
"url": "https://example.com/product",
"price": 329.9,
"currency": "BRL",
"review_status": "pending",
"created_at": "2026-08-31T18:20:00.000Z"
},
"request_id": "req_01J..."
}200Operation completed.400Invalid parameter, body or transition.401Missing, invalid, expired or revoked key.402The account plan does not release this interface.403A chave precisa do escopo offers:write.404Feature does not exist in this account.409The current state prevents this operation.413The JSON body exceeds 128 KB.429The 120 requests per minute window has been exceeded.