A REST API for creating and managing dynamic QR codes programmatically. JSON in, JSON out.
Generate a key under Dashboard → API Keys and send it as a bearer token on every request. API access requires the Pro plan.
Authorization: Bearer sk_live_…Base URL: https://crazyqrcode.libraryofapps.com/api/v1
Each account is limited to 120 requests per minute across all of its API keys. Exceeding it returns 429 with a Retry-After header (seconds until the window resets).
Create a QR code.
curl -X POST https://crazyqrcode.libraryofapps.com/api/v1/qrcodes \
-H "Authorization: Bearer sk_live_…" \
-H "Content-Type: application/json" \
-d '{
"name": "Promo",
"destinationUrl": "https://example.com",
"slug": "summer-promo"
}'Create a QR code and print it as scannable terminal art (great for curl).
curl -X POST "https://crazyqrcode.libraryofapps.com/api/v1/qrcodes?format=ansi" \
-H "Authorization: Bearer sk_live_…" \
-H "Content-Type: application/json" \
-d '{ "name": "Promo", "destinationUrl": "https://example.com" }'List all your QR codes, newest first.
curl https://crazyqrcode.libraryofapps.com/api/v1/qrcodes \
-H "Authorization: Bearer sk_live_…"Fetch a single code together with its last-30-day analytics.
curl https://crazyqrcode.libraryofapps.com/api/v1/qrcodes/6a2b2beb57dba38e562cd1ba \
-H "Authorization: Bearer sk_live_…"Delete a code and all of its scan history.
curl -X DELETE https://crazyqrcode.libraryofapps.com/api/v1/qrcodes/6a2b2beb57dba38e562cd1ba \
-H "Authorization: Bearer sk_live_…"| Field | Type | Required | Description |
|---|---|---|---|
| name | string | Yes | Label for the code (1–120 chars). |
| destinationUrl | string | Yes | Where the QR should redirect. |
| slug | string | — | Custom vanity slug (Pro). 3–40 chars, [a-z0-9-]. |
| style | "Standard" | "Rounded" | "Soft" | — | Visual style. Defaults to Standard. |
| color | string | — | Hex color, e.g. #2563eb. Defaults to #000000. |
| active | boolean | — | Whether the redirect is live. Defaults to true. |
| variants | array | — | A/B split destinations (Pro). |
| geoRules | array | — | Country-based redirects (Pro). |
| schedules | array | — | Time-windowed redirects (Pro). |
Errors return a JSON body of the form { "error": "…" } with an appropriate status code.
| 400 | Invalid request body (failed validation). |
| 401 | Missing, malformed, invalid, or revoked API key. |
| 402 | Plan limit reached (e.g. free-tier QR cap). |
| 403 | API access requires the Pro plan. |
| 404 | Resource not found. |
| 409 | Slug already taken. |
| 413 | Request body too large (max 64 KB). |
| 429 | Rate limit exceeded — see the Retry-After header. |
| 500 | Internal server error. |
Need a key? Create one in your dashboard.