REST API

Create codes, change destinations and read scans and leads from your own systems.

Use the REST API to list and create dynamic codes, change their destinations, pause them, read scan stats and leads, manage bio pages and subscribe to events from your own systems. Plan limits, destination safety checks and the audit log apply in the same way as in the dashboard.

Base URL

https://dynaqr.app/api/v1

Every request needs an API key. See Authentication.

Which plan you need

API keys come with every paid plan (Starter, Pro and Business). Some endpoints need Pro or Business.

Calling an endpoint your plan doesn't cover returns 402 with the code PLAN_FEATURE and names the plan that includes it. If the workspace drops to Free, its API keys stop working and every call returns 401.

Quick start

curl https://dynaqr.app/api/v1/codes \
  -H "Authorization: Bearer qrm_live_your_key"
curl -X PATCH https://dynaqr.app/api/v1/codes/0b8f6c2e-3f7a-4d0e-9a61-2f4c7f1d9b10 \
  -H "Authorization: Bearer qrm_live_your_key" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/autumn-menu"}'

Conventions

  • Requests and responses are JSON. Send Content-Type: application/json with a body.
  • Successful responses wrap the result in data, except GET /me and POST /hooks.
  • Ids are UUIDs. Timestamps are ISO 8601 in UTC, for example 2026-11-14T09:30:00.000Z.
  • GET /codes lists dynamic codes only, and POST /codes creates dynamic codes only. Static codes can't be tracked or changed after printing.

In this section

To connect an AI assistant such as Claude or ChatGPT instead, see the MCP section.