API overview

API overview

The REST API lives at /api/v1. The reference lists every route and /api/v1/doc returns the OpenAPI document.

Authenticate

Create a key under Settings > API Keys and send it as a bearer token. The key is shown once, and only its hash is stored.

curl -H "Authorization: Bearer $QRHOOKS_API_KEY" \
  https://your-domain/api/v1/qr-codes

A key belongs to one workspace, so it only sees that workspace's codes. A missing or wrong key returns 401.

Errors

Errors return a JSON body with a message and a code:

{ "error": "QR code not found", "code": "not_found" }

A URL field using a scheme such as javascript: or data:text/html returns 400 with the code invalid_url.

Each key gets 1000 requests per 24 hours. Requests over that return 429 with a Retry-After header in seconds.

Retry a failed delivery

curl -X POST -H "Authorization: Bearer $QRHOOKS_API_KEY" \
  https://your-domain/api/v1/webhook-deliveries/$ID/retry

Returns 202 with the new delivery's id, or 409 if that delivery didn't fail. The retry uses the original scan data and the webhook's current URL and template.

Check the service

GET /api/v1/health returns {"status":"ok"} and needs no key.