API reference
Every QRdx REST API endpoint, with code samples in curl, JavaScript and Python and a Try it panel that sends real requests.
Every endpoint of the QRdx REST API, generated from its OpenAPI 3.1 document, which is built from the same schemas the API validates requests with. Each page has code samples in curl, JavaScript and Python, and a Try it panel that sends real requests.
New to the API? The quickstart gets you from nothing to a first request in under two minutes.
Base URL
https://api.qrdx.dev/v1The same routes also answer at https://qrdx.dev/api/v1. Requests and responses are JSON, except the image API, which returns images.
Try it
Try it sends real requests from your browser to this site's /api/v1 (the same API as api.qrdx.dev/v1), and never with your QRdx sign-in cookie:
- No token needed: Render a QR code image works straight away.
- Everything else needs an OAuth access token. Paste it into the Authorization field as
Bearer <token>. How to get a token.
Requests made with a token act on real data in the token owner's personal workspace and count against its daily quota, exactly as they would from your own code.
Authentication
Send an OAuth 2.0 access token in the Authorization header. Each endpoint below lists the scope it needs; codes:write also allows everything codes:read does. API keys aren't available yet, so for now you get a token by registering an OAuth app: see REST API and OAuth.
Errors and limits
Errors are JSON: { "code", "message", "status" }, plus docs when a page explains the fix. The errors page lists every code with its fix. Each workspace has a daily request quota, reported in the X-RateLimit-* headers; see rate limits.
Endpoints
QR images
Keyless QR code images for <img> tags, emails and scripts.
| Endpoint | Request | Scope |
|---|---|---|
| Render a QR code image | GET /qr | None |
Codes
Dynamic QR codes: a short link you can point anywhere after printing.
| Endpoint | Request | Scope |
|---|---|---|
| List codes | GET /codes | codes:read |
| Create codes | POST /codes | codes:write |
| Get a code | GET /codes/{id} | codes:read |
| Update a code | PATCH /codes/{id} | codes:write |
| Delete a code | DELETE /codes/{id} | codes:write |
Scans
Scan analytics of a code.
| Endpoint | Request | Scope |
|---|---|---|
| Get scan analytics | GET /codes/{id}/scans | codes:read |
Conversions
Sales and sign-ups attributed to the scan behind them.
| Endpoint | Request | Scope |
|---|---|---|
| Report a conversion | POST /conversions | codes:write |
Hooks
REST Hooks subscriptions for Zapier, Make and n8n.
| Endpoint | Request | Scope |
|---|---|---|
| List hooks | GET /hooks | codes:read |
| Subscribe to events | POST /hooks | codes:write |
| Get a hook | GET /hooks/{id} | codes:read |
| Unsubscribe | DELETE /hooks/{id} | codes:write |
| Get sample events | GET /hooks/sample | codes:read |
Themes
The user's saved QR designs.
| Endpoint | Request | Scope |
|---|---|---|
| List themes | GET /themes | themes:read |
| Get a theme | GET /themes/{themeId} | themes:read |
Profile
The user behind the token.
| Endpoint | Request | Scope |
|---|---|---|
| Get the token's user | GET /me | profile:read |
OpenAPI document
Download the document at https://qrdx.dev/openapi.json (also served at https://api.qrdx.dev/openapi.json) to generate a client, import the API into Postman or Insomnia, or give an AI agent the full contract.
Last updated on