REST API

Create, edit and measure your QR codes from your own tools. Available from the Pro plan up.

Authentication

Every workspace can create API keys from its settings. The key is shown only once. Send it in the Authorization header.

curl -H "Authorization: Bearer sc_xxxxxxxx…" https://www.scanolo.com/api/v1/codes

Endpoints

MethodPathDescription
GET/api/v1/codesList of the workspace's codes (paginated).
POST/api/v1/codesCreates a code. JSON body: name, kind, mode, payload, design.
GET/api/v1/codes/{id}Details of a code, including its short address.
PATCH/api/v1/codes/{id}Edits the name, destination, design or status.
DELETE/api/v1/codes/{id}Deletes a code (it stops redirecting after explicit confirmation).
GET/api/v1/codes/{id}/image.svgCode image in SVG or PNG (size parameter for PNG).
GET/api/v1/codes/{id}/statsScan stats between two dates.
POST/api/v1/renderRenders a static code without storing it.

Example

curl -X POST https://www.scanolo.com/api/v1/codes \
  -H "Authorization: Bearer sc_xxxxxxxx…" \
  -H "Content-Type: application/json" \
  -d '{"name": "Menu terrasse", "kind": "url", "mode": "dynamic",
       "payload": {"url": "https://example.com/menu"},
       "design": {"fg": "#10211F", "module": "rounded"}}'
{"id": 42, "slug": "k7Hp3Qz", "short_url": "https://www.scanolo.com/r/k7Hp3Qz",
 "kind": "url", "mode": "dynamic", "status": "active", "safety_status": "safe",
 "scans_total": 0, "created_at": "2026-09-06T10:00:00Z"}

Limits

Pro: 60 requests per minute. Business: 300. Beyond that, the response is 429 with a Retry-After header. The plan's dynamic code quotas also apply through the API.

Get an API key