Get started
Scopes
A scope is permission for one resource. Give each key the least it needs: a key that only syncs sales should not be able to read the guest book.
All scopes
| Scope | Grants | Endpoints |
|---|---|---|
menu.read | The menu an outlet sells | GET /api-v1-menu |
orders.create | Creating an order that staff accept at the till | |
orders.read | Reading back an order the API created | |
transactions.read | Till transaction history and detail | |
customers.read | The guest book | |
reservations.read | Reservations, booking requests and slot availability | |
reservations.write | Confirming or rejecting booking requests | |
reports.read | The daily sales summary | |
business.read | The outlets the key may read |
Calling an endpoint without its scope answers 403 insufficient_scope, and the message names the missing scope. Scopes are set when the key is created; to change them, create a new key and revoke the old one.
Recipes
| Integration | Scopes |
|---|---|
| Accounting sync | transactions.read + reports.read |
| CRM sync | customers.read |
| Booking widget back office | reservations.read |
| WhatsApp bot that confirms tables | reservations.read + reservations.write |
| Online shop sending orders to the till | menu.read + orders.create + orders.read |
| Multi-outlet dashboard | business.read + reports.read |
Webhooks are not a scope: they are set up separately and cover every order, booking and reservation event you tick. See Webhooks. AI assistants use their own tokens, not API keys; see MCP.
Stuck? Quote the request_id from the response and write toSansflow support.Checked against API v1 on .