API Documentation

Create and list QR codes programmatically. You need an API key — generate one from the API keys page.

Authentication

Send the key in the Authorization header:

Authorization: Bearer sqr_your_key

All requests start from:

https://smart-qr-code.com/api/v1

Limits

  • The API is included in the Pro and Business plans (and during the free trial).
  • Pro: 1 key, 10 requests per minute, 1,000 requests per month.
  • Business: 3 keys, 60 requests per minute per key, 25,000 requests per month.
  • Monthly quotas are per account and reset on the 1st of each month (UTC).
  • The total number of QR codes is that of your plan (same as in the app).

Create a QR code

POST /api/v1/qrcodes

curl -X POST https://smart-qr-code.com/api/v1/qrcodes \
  -H "Authorization: Bearer sqr_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "URL",
    "name": "Company website",
    "data": { "url": "https://example.com" }
  }'

Response (201):

{
  "qrCode": {
    "id": "clx...",
    "type": "URL",
    "name": "Company website",
    "shortUrl": "aB3xY9zK",
    "isDynamic": true,
    "dynamicUrl": "https://smart-qr-code.com/api/redirect/aB3xY9zK",
    "createdAt": "2026-07-11T10:00:00.000Z"
  }
}

The data field depends on type (e.g. WIFI requires ssid/password, VCARD requires firstName/lastName, etc.), just like the form in the app.

List QR codes

GET /api/v1/qrcodes

curl https://smart-qr-code.com/api/v1/qrcodes \
  -H "Authorization: Bearer sqr_your_key"

Response (200):

{
  "qrCodes": [
    {
      "id": "clx...",
      "type": "URL",
      "name": "Company website",
      "shortUrl": "aB3xY9zK",
      "isDynamic": true,
      "scans": 128,
      "dynamicUrl": "https://smart-qr-code.com/api/redirect/aB3xY9zK",
      "createdAt": "2026-07-11T10:00:00.000Z"
    }
  ]
}

scans is the same lifetime total you see in the app. It includes scans imported from another platform, and scans older than 24 months, which we delete while keeping only their count (see our Privacy Policy). It never goes down.

Error codes

  • 401 — missing, invalid or revoked key.
  • 403 — plan does not allow it (no API on your plan, trial expired or QR code limit reached).
  • 400 — invalid data.
  • 429 — you exceeded the per-minute limit or the monthly quota.