QRJI REST API
Create codes, repoint dynamic destinations and pull scan analytics straight from your own systems — simple, predictable JSON over HTTPS.
The QRJI API is organised around REST. It accepts JSON request bodies, returns JSON responses, and uses standard HTTP verbs and status codes. The base URL is:
https://app.qrji.in/api/v1
The API is available on the Enterprise plan. Talk to sales to enable it on your account.
Authentication
Create a key in your dashboard under Settings → API, then send it as a bearer token on every request. Keys are shown once and stored only as a hash — keep them secret.
curl https://app.qrji.in/api/v1/me \
-H "Authorization: Bearer YOUR_API_KEY"
Rate limits
Each key is rate-limited per minute (120/min on Enterprise). Responses carry X-RateLimit-Limit and X-RateLimit-Remaining; over the limit you get 429 Too Many Requests with a Retry-After header.
QR codes
/qr-codesCreate a static or dynamic code. Set dynamic: true on a url code to get an editable short link.
curl https://app.qrji.in/api/v1/qr-codes \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"type":"url","dynamic":true,"name":"Campaign",
"fields":{"url":"https://example.com"},
"design":{"fg":"#0e1e3a","bg":"#ffffff"}}'
{
"data": {
"id": 42, "name": "Campaign", "type": "url",
"dynamic": true,
"destination": "https://example.com",
"short_url": "https://app.qrji.in/r/a1b2c3d",
"scans": 0,
"images": { "png": "https://app.qrji.in/api/v1/qr-codes/42/image?format=png" }
}
}
/qr-codesList your codes (paginated). Filter with ?type=, ?dynamic=1, ?search=, ?per_page=.
/qr-codes/{id}Retrieve a single code.
/qr-codes/{id}Rename, retag, or repoint a dynamic code — the printed QR keeps working.
curl -X PATCH https://app.qrji.in/api/v1/qr-codes/42 \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"destination":"https://example.com/new-offer"}'
/qr-codes/{id}Delete a code.
/qr-codes/{id}/analyticsScan analytics for a dynamic code: totals, unique visitors, and breakdowns by country, device, OS and browser, plus a 30-day daily series.
/qr-codes/{id}/imageRender the code. Add ?format=png|jpg|svg|pdf|eps|webp and an optional ?size=.
Barcodes
/barcodesGenerate a barcode (Code 128, EAN-13, UPC-A, Data Matrix, PDF417 and 25+ more).
curl https://app.qrji.in/api/v1/barcodes \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"type":"C128","value":"SKU-00421","name":"Product label"}'
Also: GET /barcodes, GET /barcodes/{id}, GET /barcodes/{id}/image, DELETE /barcodes/{id}.
Errors
QRJI uses conventional HTTP status codes. 2xx = success, 401 = missing/invalid key, 403 = plan without API access, 404 = not found, 422 = validation error, 429 = rate limited. Errors return:
{ "error": { "status": 422, "message": "..." } }
Ready to build?
The API ships with the Enterprise plan — priced to your volume, with priority support.
Talk to sales →