Documentation

justQRs public API

Manage your QR codes programmatically. Create an API key from API keys in the dashboard (account owners only).

Base URL

https://api.justqrs.com

Authentication

Send your API key as a bearer token on every request:

Authorization: Bearer jqr_xxxxxxxxxxxxxxxx

Keys are shown in full only once, at creation time. Rotate a key by creating a new one and deleting the old one.

Endpoints

MethodPathDescription
GET
/v1/qrcodes
List your QR codes.
Response: { qrcodes: QrResponse[] }
POST
/v1/qrcodes
Create a QR code.
Request: CreateQrRequest { name, mode, content, design? } · Response: QrResponse
GET
/v1/qrcodes/{qrId}
Fetch a single QR code.
Response: QrResponse
PATCH
/v1/qrcodes/{qrId}
Update a QR code (dynamic codes only).
Request: UpdateQrRequest { name?, content?, design? } · Response: QrResponse
DELETE
/v1/qrcodes/{qrId}
Delete a QR code.
Response: 204 No Content
GET
/v1/qrcodes/{qrId}/stats?days=7|30|90
Scan analytics for a dynamic QR code.
Response: QrStats { totalScans, rangeScans, rangeUniques, series, breakdowns }

Example: create a URL QR code

curl -X POST "https://api.justqrs.com/v1/qrcodes" \ -H "Authorization: Bearer jqr_xxxxxxxxxxxxxxxx" \ -H "Content-Type: application/json" \ -d '{ "name": "My link", "mode": "dynamic", "content": { "kind": "url", "url": "https://example.com" } }'

Example: fetch scan stats

curl "https://api.justqrs.com/v1/qrcodes/{qrId}/stats?days=30" \ -H "Authorization: Bearer jqr_xxxxxxxxxxxxxxxx"

Errors

Error responses are JSON: { "error": string, "code"?: string }.

StatusCodeMeaning
400(validation)Request body failed validation — see the error message for details.
401Missing Authorization header.
403API key rejected — invalid, revoked, or expired.
402upgrade_requiredYour account is on the free plan — API access requires a paid plan.
404The QR code doesn't exist or doesn't belong to this account.
409qr_limit_reachedThe account is already at its dynamic QR code limit (500 base plan, more available via add-on packs).