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:
| Header | Meaning |
|---|---|
x-snapbyte-ratelimit | Requests permitted in the window. |
x-snapbyte-remaining | Requests remaining in the window. |
x-snapbyte-reset | Unix 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
- Guides for task-oriented Admin Hub walkthroughs.
- Troubleshooting for what to do when a request fails.