Skip to content

Authentication

Authentication

qr3.app uses API keys (Bearer tokens) for authentication. No OAuth flows — just generate a key and use it immediately.

Create an API key

  1. Sign in at app.qr3.app
  2. Go to Settings → API Keys
  3. Click New Key
  4. Choose the desired scopes
  5. Copy the key — it is only shown once!

Key types

TypePrefixUsage
Secret Keyqr3_sk_Server-side (API, backend)
Publishable Keyqr3_pk_Client-side (read-only access)
Test Keyqr3_test_sk_Development (own rate limits)

Usage

HTTP header

Authorization: Bearer qr3_sk_your_key_here

cURL

Terminal window
curl https://qr3.app/v1/codes \
-H "Authorization: Bearer qr3_sk_your_key_here"

TypeScript SDK

import { QR3 } from "@qr3/sdk";
const client = new QR3({ apiKey: "qr3_sk_your_key_here" });
const codes = await client.codes.list();

CLI

Terminal window
qr3 login
# or:
export QR3_API_KEY=qr3_sk_your_key_here

Rate limits

The rate limit is enforced per API key from its stored value. New keys created through the API currently use 60 requests per minute, independent of the plan.

On limit exceeded, the API returns HTTP 429:

{
"type": "https://docs.qr3.app/errors/rate-limited",
"title": "Too Many Requests",
"status": 429,
"detail": "Rate limit of 60 requests/minute exceeded"
}

Scopes

ScopeDescription
*Full access
codes:readRead QR codes
codes:writeCreate and edit QR codes
scans:readRead scan analytics
webhooks:writeConfigure webhooks
account:readRead account information