Skip to content
Maple

Core concepts

Every request carries a Bearer API key. The key selects the environment and carries the scopes your app holds.

Every request to the Developer API carries a Bearer API key in the Authorization header:

Terminal window
# Sandbox
curl https://api.staging.maple.inc/v1/me \
-H "Authorization: Bearer mpk_test_..."

A key answers three questions at once: which app you are, which environment you belong to (sandbox or production), and which scopes you hold. Verify any key with GET /v1/me, which returns exactly that.

Each environment has its own base URL — https://api.staging.maple.inc/v1 for the sandbox and https://api.maple.inc/v1 for production. Use the key that matches the host. See Environments.

API keys

Maple approves your app and its scope ceiling. Invited organization members create and revoke keys in Developers → your app → Overview & keys. Sign in to the dashboard for the key’s environment (https://app.staging.maple.inc for sandbox keys, https://app.maple.inc for production keys); no merchant or restaurant selection is required.

Key Environment Base URL
mpk_test_… Sandbox https://api.staging.maple.inc/v1
mpk_live_… Production https://api.maple.inc/v1

Send the key as the bearer token on every request, against the base URL for its environment. Keep keys server-side; never embed them in a client app or commit them to source control. Narrowing an app’s scopes takes effect immediately for its existing keys.

To replace a key, create a new one, update your client, verify it works, and explicitly revoke the old key. Revocation immediately stops authentication with that key. A suspended or revoked app cannot authenticate with any of its keys, although console access still supports inspection and protective revocation.

A key does not grant location access, create a sandbox, or approve production use. Maple manages app ownership, scope ceilings, location grants, and production approval separately. Staff access alone does not grant access to an unlinked app in the developer console.

Follow the Quickstart to create a key and verify the returned app/environment with /v1/me.

Scopes

Access is scoped, so your app holds only the permissions it needs:

Scope Grants
locations:read List and read granted locations
connections:read / connections:write Read or manage the location connection
orders:read / orders:write Read orders or submit order decisions
menus:read / menus:write Read or publish a location’s menu
delivery_zones:read / delivery_zones:write Read or manage a connected location’s delivery zones and check deliverability
webhooks:read / webhooks:write Read or manage webhook subscriptions
bookings:read Read bookings, profile, availability, configuration, and live floor at granted locations
bookings:write Hold slots and create, change, or cancel bookings for guests
bookings:manage Act for the venue: confirm, decline, seat, complete, cancel, or mark bookings no-show, and seat walk-ins
bookings:configure Publish native booking configuration

A request missing a required scope returns 403 with code insufficient_scope. A key used against the wrong environment returns 403 with code wrong_environment. See Errors.

OAuth