Endpoints and scopes
| Request | Scope |
|---|---|
PUT /places/{place_id}/offers/{offer_id} |
offers:write |
GET /places/{place_id}/offers |
offers:write |
DELETE /places/{place_id}/offers/{offer_id} |
offers:write |
What offers are
An offer is an eye-catching message shown to customers: on the place page, in the offers tab and on the map. For example “Lunch deal” or “Free juice with every burger”.
This group is coming soon.
Publish an offer
PUT /places/{place_id}/offers/{offer_id} with offers:write. offer_id is your own id, up to 64 chars of [A-Za-z0-9_.-], with no colon :.
aurmap PUT /v1/places/plc_9q3w7e/offers/lunch-deal '{"title":{"ar":"وجبة الغداء","en":"Lunch deal"},"description":{"ar":"برجر دجاج مع عصير","en":"Chicken burger with a juice"},"image_url":"https://cdn.partner.example/offers/lunch.jpg","kind":"bundle_price","applies_to":{"item_ids":["chicken-burger","orange-juice"]},"bundle_price_minor":2900,"schedule":{"starts_at":"2026-10-15T09:00:00Z","ends_at":"2026-10-31T20:59:00Z","days":[0,1,2,3,4],"from":"12:00","to":"16:00"},"status":"active"}'{ "offer_id": "lunch-deal", "place_id": "plc_9q3w7e", "status": "active", "visible_now": false, "next_visible_at": "2026-10-15T09:00:00Z" }| Field | Description |
|---|---|
title, description |
language maps |
image_url |
the offer image, https |
kind |
amount_off, bundle_price, free_item or display_only |
applies_to.item_ids |
the items from your menu it covers |
amount_off_minor |
with amount_off |
bundle_price_minor |
with bundle_price |
free_item_id |
with free_item |
schedule |
starts_at and ends_at, then optional days, from, to following the menu schedule rules: 0 is Sunday, HH:MM in the place’s time zone |
status |
active or paused |
await aurmap('PUT', '/v1/places/plc_9q3w7e/offers/lunch-deal', offer, 'offer-lunch-deal-v1');aurmap('PUT', '/v1/places/plc_9q3w7e/offers/lunch-deal', $offer, 'offer-lunch-deal-v1');The price the customer pays
The offer is shown to the customer, but the checkout price comes from your menu or from your system’s pricing. If you publish an offer that changes a price:
- send temporary prices in
state.pricesthrough availability, and clear them when the offer ends, or - apply it in your quote answer if you price from your system.
Managing offers
| Request | Description |
|---|---|
GET /places/{place_id}/offers |
every offer of the place |
DELETE /places/{place_id}/offers/{offer_id} |
delete an offer |
An expired offer disappears by itself, and you receive offer.expired.