Skip to main content
ER ExaRoutes

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

  1. 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.
  2. Generate your first dynamic QR with a single POST. See Generate QR.
  3. (Optional) Subscribe to scan events with a webhook. See Webhooks.

Conventions

  • All requests and responses are application/json unless 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.