API Documentation
Create, update, and manage dynamic QR codes programmatically. The Photon QR API is available on the Business plan.
Authentication
Generate an API key from Settings → API keys. The full key is shown only once at creation — store it securely. Pass it as a Bearer token on every request:
Authorization: Bearer pqr_live_xxxxxxxxxxxxxxxxxxxxxxxxBase URL
https://photonqr.com/api/v1Endpoints
/api/v1/qrList your QR codes. Supports ?limit (1–200, default 50) and ?offset.
/api/v1/qrCreate a dynamic QR code. Returns the new record with its short URL.
/api/v1/qr/{id}Retrieve a single QR code by its ID.
/api/v1/qr/{id}Update title, content, design, or pause state. Changes apply instantly.
/api/v1/qr/{id}Permanently delete a QR code.
Example — create a QR code
curl -X POST https://photonqr.com/api/v1/qr \
-H "Authorization: Bearer pqr_live_xxxx" \
-H "Content-Type: application/json" \
-d '{
"type": "URL",
"title": "Spring campaign",
"content": { "url": "https://example.com/spring" }
}'Response 201 Created:
{
"data": {
"id": "a1b2c3d4-...",
"type": "URL",
"title": "Spring campaign",
"shortCode": "Ab3xY9",
"shortUrl": "https://photonqr.com/r/Ab3xY9",
"isActive": true,
"totalScans": 0,
"createdAt": "2026-06-14T10:00:00.000Z"
}
}Example — repoint a QR code
Because every QR is dynamic, you can change its destination without reprinting. Updates take effect instantly.
curl -X PATCH https://photonqr.com/api/v1/qr/a1b2c3d4-... \
-H "Authorization: Bearer pqr_live_xxxx" \
-H "Content-Type: application/json" \
-d '{ "content": { "url": "https://example.com/summer" } }'Errors & rate limits
401Missing or invalid API key403Your plan does not include API access404QR code not found (or not yours)422Validation failed — see the "issues" arrayErrors return JSON shaped like { "error": "message" }.
Ready to build?
Upgrade to Business, generate a key, and start automating your QR codes in minutes.