🚀 Founding offer: start with a 14-day free trial, then lock $1/month for life. Ends in 23h 59m 59s Lock my price →
HomeDevelopers
API & Developers

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

POST/qr-codes

Create 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" }
  }
}
GET/qr-codes

List your codes (paginated). Filter with ?type=, ?dynamic=1, ?search=, ?per_page=.

GET/qr-codes/{id}

Retrieve a single code.

PATCH/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"}'
DELETE/qr-codes/{id}

Delete a code.

GET/qr-codes/{id}/analytics

Scan analytics for a dynamic code: totals, unique visitors, and breakdowns by country, device, OS and browser, plus a 30-day daily series.

GET/qr-codes/{id}/image

Render the code. Add ?format=png|jpg|svg|pdf|eps|webp and an optional ?size=.

Barcodes

POST/barcodes

Generate 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 →