Skip to content

QRLynx Developer API

Create dynamic QR codes, repoint them, and read their scan stats from your own code. Available on the Business plan and above.

Authentication

Generate a key in your account under API Keys. Send it as a bearer token on every request. The key acts on your account; keep it secret and never put it in a URL.

Authorization: Bearer qrl_live_...

Scopes: qr:read (read + render) and qr:write (create + repoint). Rate limits and machine-readable schema are published at /api/v1/openapi.json.

Endpoints

Current type support: API v1 works with dynamic URL QR codes only. If an ID belongs to another type created in the dashboard, including GS1 Digital Link, the read, update, and SVG endpoints return 400 unsupported_type.

POST /api/v1/qr

Create a dynamic URL QR code. Returns its short link and the rendered SVG.

curl -X POST https://qrlynx.com/api/v1/qr \
  -H "Authorization: Bearer qrl_live_..." \
  -H "Content-Type: application/json" \
  -d '{"destination":"https://example.com/spring","name":"Spring flyer"}'

PATCH /api/v1/qr/{id}

Repoint an existing code (no reprint needed) or rename it.

curl -X PATCH https://qrlynx.com/api/v1/qr/{id} \
  -H "Authorization: Bearer qrl_live_..." \
  -H "Content-Type: application/json" \
  -d '{"destination":"https://example.com/summer"}'

GET /api/v1/qr/{id}

Read a code's details and scan counts.

GET /api/v1/qr/{id}.svg

Render the QR as an SVG image, generated on demand (nothing is stored).

Errors

Errors return a JSON body { "error": { "code": "..." } }. code is always present; validation and workflow errors also include a message, while authentication errors (401/403) return the code only. Standard statuses: 400 invalid request or unsupported QR type, 401 missing/invalid key, 402 plan limit reached, 403 insufficient scope or plan, 404 not found, 429 rate limited.