Get the app Map (opens in a new tab)List your business

Developers

Availability and stock

Update pauses, sold-out items and temporary prices within seconds, with no image work or structure diff, and send per-variant stock for shops safely.

Coming soonThe Partner API is not open yet. These docs are here so you can plan your integration; hosts and keys are issued at launch.Register as a developer →

On this page

Endpoints and scopes

Request Scope
PATCH /places/{place_id}/menu/state inventory:write
POST /places/{place_id}/inventory Coming soon inventory:write

Why a separate path

Customers get upset when they order something that ran out. So state is kept apart from structure. A state update is fast, skips image work and item comparison, and reaches the app within seconds.

PATCH /places/{place_id}/menu/state with inventory:write.

bash
aurmap PATCH /v1/places/plc_9q3w7e/menu/state '{"as_of":"2026-10-14T18:00:00Z","sold_out":{"items":[],"sizes":[{"item_id":"orange-juice","size_id":"l"}],"options":[{"group_id":"extras","option_id":"cheese"}]},"prices":{"items":[],"sizes":[{"item_id":"chicken-burger","size_id":"l","price_minor":3100}],"options":[]}}'
json
{ "place_id": "plc_9q3w7e", "version": 43, "prev_version": 42, "kind": "state", "hash": "a0b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1", "status": "applied" }
Field Description
as_of the time of this state in your system; required
paused true stops ordering from the whole menu; the place stays visible
sold_out items[] item ids, sizes[] of item_id and size_id, options[] of group_id and option_id
prices temporary prices over the menu: items[] of item_id and price_minor, sizes[] of item_id, size_id and price_minor, options[] of group_id, option_id and price_minor

Each key replaces whole

  • Each of paused, sold_out and prices that you send replaces the stored value whole.
  • A key you do not send stays as it is.
  • So send the full sold-out list every time. When one more item runs out, send the old list plus the new item.
  • To clear every temporary price, send "prices": { "items": [], "sizes": [], "options": [] }.

In the example above, is the kunafa still sold out? No: sold_out.items was sent empty, so it is available again. Send "items": ["kunafa"] to keep it sold out.

Ordering

We keep the as_of of the last state update per place. A request older than that is ignored whole, and we answer 200 with "status": "ignored". That way a late network request can never bring a sold-out item back.

json
{ "place_id": "plc_9q3w7e", "version": 43, "kind": "state", "hash": "a0b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1", "status": "ignored" }

Versions

A state update is a version like any other: it moves version and hash, and you receive menu.changed with "kind": "state". When the merchant changes state from their AurMap account, such as a pause or a sold-out item, you receive the same event so you can mirror it.

js
await aurmap('PATCH', '/v1/places/plc_9q3w7e/menu/state', {
  as_of: new Date().toISOString(),
  sold_out: { items: ['kunafa'], sizes: [], options: [] },
});
php
aurmap('PATCH', '/v1/places/plc_9q3w7e/menu/state', [
    'as_of' => gmdate('Y-m-d\TH:i:s\Z'),
    'sold_out' => ['items' => ['kunafa'], 'sizes' => [], 'options' => []],
]);

Send state the moment it changes at the merchant, not on a timer. The limit is 120 calls a minute per place.

Menus have no counted quantities yet, and no sold-out or temporary price with an end time. Send the new state when something changes.

Shop stock Coming soon

POST /places/{place_id}/inventory with inventory:write.

bash
aurmap POST /v1/places/plc_store01/inventory '{"as_of":"2026-10-14T12:20:00Z","variants":[{"variant_id":"tshirt-basic-m","mode":"set","quantity":11},{"sku":"TS-L-BLK","mode":"set","quantity":4}]}'
json
{ "applied": 2, "ignored": [] }
  • mode: set sets the quantity as given, and is preferred.
  • mode: adjust adds or subtracts.
  • Name the variant by variant_id or sku.
  • Your system is the source of truth for stock. AurMap holds a quantity only while the customer pays, up to 15 minutes, and releases it if the order is not completed. When the order completes, send the new count from your system.

Opening hours

The merchant sets the place’s opening hours in their AurMap account. Your menu’s schedules decide what can be ordered within those hours. To pause the whole place, use pause ordering.