The GetQR API is in beta and is available to selected workspaces. Details may change before the general release.
/api/v1.
What you can do
QR codes
Create, list, update, pause, duplicate, delete and download QR codes.
Analytics
Scan totals and breakdowns for one QR code or the whole workspace.
Reports
Export a one-off report or schedule recurring report emails.
Templates
Save designs and apply them to new QR codes.
Bulk QR creations
Create up to 100 QR codes at once from JSON or a CSV file.
Files
Upload PDFs, images, videos and logos for your QR codes.
Health
Check that the API is up. No API key needed.
Guides
QR types
The data format for each of the 16 QR types.
Customization
Dot styles, corners, colors, frames and logos.
Access rules
Schedules, scan limits, passwords, pausing and deleting.
Base URL
All endpoints live under one base URL:Versioning
The API version is part of the path: every endpoint lives under/api/v1/.
- Breaking changes ship under a new version prefix such as
/api/v2/, and/api/v1/keeps working. - Additive changes, such as new optional fields or new endpoints, can appear within v1. Ignore response fields your code doesn’t recognize.
Quickstart
1
Get your API key
Generate or reveal your key in your account settings. See Authentication.
2
Check that the API is reachable
{ "status": "ok", "version": "v1" }.3
Create your first QR code
201 with the new QR code, including its id and shortLink.4
Download the image
Requests and responses
- Format. Send request bodies as JSON with
Content-Type: application/json. The exception is the CSV upload for bulk creation, which usesmultipart/form-data. - Responses. Responses are JSON. Downloads, such as QR images and bulk ZIP archives, return the file itself.
- Dates. Dates are ISO 8601 strings in UTC, for example
2026-08-01T10:00:00.000Z. - Query parameters. Boolean parameters take the strings
trueorfalse. - Partial updates.
PATCHendpoints change only the fields you send. - Secrets. Responses never include passwords or internal identifiers. A password-protected QR code only reports
passwordProtected: true. - Workspace. Every request runs in the workspace your API key belongs to. You don’t pass a workspace ID. See Access and roles.
- Errors. Failed requests return an
errorobject with a stablecode. See Errors.
Pagination
List endpoints (QR codes, templates and scheduled reports) take two query parameters:
They answer with a
data array and a pagination object:
Request the next page while
hasMore is true. A pageSize over 100 returns 422.
Idempotency
A network error can leave you unsure whether a request went through. To retry Create a QR code safely, send anIdempotency-Key header with a unique value of your choice:
- Repeating the request with the same key within 24 hours returns the original response instead of creating a second QR code.
- The
x-idempotent-replayresponse header istruefor a replayed response andfalsefor a new one. - If the first request with that key is still running, the API answers
409 conflict. Retry once it finishes. - Reusing a key with a different request body answers
422 unprocessable_entity. - Without the header, an identical request body sent within 30 seconds is treated as a duplicate.
idempotencyKey field in the request body instead. See Bulk QR creations.