Skip to main content

API overview

The Snapbyte API is a REST API that speaks JSON over HTTPS. It's for teams who want to connect Snapbyte to their own systems — syncing menus, reacting to orders, or pulling data into another tool. This page covers the conventions that apply to every endpoint; individual endpoints are documented on their own pages.

Base URL

https://api.snapbyte.app/api/v1

The v1 segment is the API version. Snapbyte will never break a published version; new behaviour ships under a new version prefix.

Authentication

All requests must include a bearer token:

Authorization: Bearer sk_live_replace_me

Keys are scoped to an environment (sandbox or production).

Request and response shape

  • All request bodies are JSON. Set Content-Type: application/json.
  • All responses are JSON, even on error.
  • Timestamps are ISO 8601 strings in UTC.
  • IDs are prefixed (e.g. job_01h...) so they're self-describing in logs.

Error format

Errors come back with a non-2xx status and a structured body:

{
"error": {
"code": "invalid_request",
"message": "payload.message is required",
"param": "payload.message"
}
}

The code field is stable and safe to switch on; message is for humans and may change.

Rate limits

Snapbyte enforces per-key rate limits. Every response includes:

HeaderMeaning
x-snapbyte-ratelimitRequests permitted in the window.
x-snapbyte-remainingRequests remaining in the window.
x-snapbyte-resetUnix timestamp when the window resets.

On a 429, back off until the reset time. The SDK does this for you.

Pagination

List endpoints are cursor-paginated:

GET /v1/jobs?limit=50&cursor=eyJ...

The response includes a next_cursor (or null when you've reached the end). Cursors are opaque — don't try to parse them.

Where to go next