Skip to content
AchaduDevelopers
Operational APIGo to website ↗
Dashboard →
Developers/API/offer_update
Offers

Update offer

Updates only the submitted fields.

PATCH/offers/{id}offers:write
BEHAVIOR

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 100mandatory
urlstring · bodyOriginal HTTPS URL for the product.uri · maxLength 2000optional
titlestring · bodyPublic title of the offer.minLength 3 · maxLength 240optional
marketplacestring · bodySource marketplace.maxLength 40optional
pricenumber · bodyCurrent price.optional
original_pricenumber · bodyPrevious price.optional
currencystring · bodyISO 4217 currency.minLength 3 · maxLength 8 · default BRLoptional
imagestring · bodyHTTPS URL of the image.urioptional
storestring · bodyStore name.optional
categorystring · bodyCategory.optional
couponstring · bodyCoupon code.optional
copystring · bodyEditorial text of the offer.maxLength 6000optional
statusstring · bodyCurated status.optional
AuthorizationBearer ach_live_...
Acceptapplication/json
Scopeoffers:write

Executable 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.