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

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, 401 missing/invalid key, 402 plan limit reached, 403 insufficient scope or plan, 404 not found, 429 rate limited.