Skip to content

Authentication

All v1 API requests require a valid API key sent as a Bearer token.

API Key Format

Keys follow the format:

xqr_pk_{prefix}.{secret}
  • Prefix (8 hex characters): Used for key lookup — safe to log
  • Secret (64 URL-safe characters): The actual credential — never log this
  • The full key is SHA-256 hashed server-side; we never store the plaintext

Sending the Key

Include the key in the Authorization header:

Authorization: Bearer xqr_pk_a1b2c3d4.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Scopes

Each API key is granted a set of scopes that control what it can access. Assign the minimum scopes needed for your use case.

ScopeDescription
*Full access (all scopes)
links:readList and view short links
links:writeCreate, update, and delete short links
qr:readList and view QR templates
qr:writeCreate, update, and delete QR templates
qr:renderGenerate QR code images
analytics:readQuery analytics data
assets:readList and view assets
assets:writeUpload, publish, and delete assets
bio:readList and view Link-in-Bio pages
bio:writeCreate, update, publish, and delete bio pages
reports:readView reports
reports:writeCreate and manage reports
workspace:readView workspace info, usage, and members
webhooks:readList and view webhook endpoints
webhooks:writeCreate, update, and delete webhooks

Scope Matching

  • Exact match: links:read grants read access to links
  • Wildcard: * grants all scopes
  • Requesting an endpoint without the required scope returns 403 Forbidden

Key Rotation

Rotate keys without downtime:

  1. Go to Developers → API Keys in your dashboard
  2. Click Rotate on the key you want to replace
  3. The old key is revoked and a new key is created with the same name and scopes
  4. Update your application with the new key

Plan Requirements

API access requires a Pro plan or higher. The Free plan does not allow API key creation.

PlanAPI KeysMonthly API Calls
Free00
Pro21,000
Business1025,000
EnterpriseUnlimited100,000

Error Responses

StatusMeaning
401 UnauthorizedMissing, invalid, revoked, or expired API key
403 ForbiddenValid key but insufficient scopes or plan feature not available

Was this page helpful?