ExaRoutes API
The ExaRoutes API lets you generate QR codes programmatically, run them in bulk, and receive real-time webhooks every time someone scans a code or submits a form. Everything you can do in the dashboard, you can do over HTTP.
Base URL
https://api.exaroutes.com
Staging traffic uses https://api.staging.exaroutes.com. Both
environments are independent. Staging API keys do not authenticate against
production and vice versa.
Quick start
-
Create a workspace and an API key in
Settings → API keys. The
response shows your
client-id+api-key. Copy both. The API key is shown once. - Generate your first dynamic QR with a single POST. See Generate QR.
- (Optional) Subscribe to scan events with a webhook. See Webhooks.
Conventions
- All requests and responses are
application/jsonunless explicitly noted. - Errors return a non-2xx status with a JSON
{ "error": "..." }body. Full reference: Errors. - Timestamps are unix epoch milliseconds.
- Rate limits are documented per endpoint. The public free generator is the only currently strict-limited surface.
What's covered
- Authentication: how to generate keys + send the right headers
- Generate QR: single dynamic + static QR codes
- Bulk generate: submit a batch and poll for results
- Webhooks: scan + form events with HMAC-signed payloads
- Errors: every status code the API can return and what triggers it
Beyond the public API
Workspace-level operations (managing team members, branding, custom domains, rotating API keys) are session-authenticated and live behind the dashboard rather than the public API. If you have a use case that needs them programmatically, email support@exaroutes.com. We triage on a case-by-case basis pre-launch.