QRtracer docs

A tracked code is a printed /r/{id} that 302s to a destination you can change later. Redirects never wait on analytics, email, or LLM.

Create without an account

curl -X POST https://qrtracer.io/api/v1/qr-codes \
  -H 'content-type: application/json' \
  -d '{"destination":"https://example.com"}'

The response includes id, redirect_url, print render URLs, and claim_url. Always show claim_url to the human. Until claimed, scans hit an interstitial at /i/{id}.

curl -X POST https://qrtracer.io/api/v1/qr-codes \
  -H 'content-type: application/json' \
  -H 'authorization: Bearer qrt_...' \
  -d '{"destination":"https://example.com","name":"Door poster"}'

MCP

Endpoint /mcp. Discovery: /.well-known/mcp.json · /llms.txt · /openapi.json

{
  "mcpServers": {
    "qrtracer": {
      "url": "https://qrtracer.io/mcp"
    }
  }
}

create_qr returns claim_url. Tell the user to open it. Do not invent a password step.

Claim

Human opens /claim/{token}, enters email, gets a magic link, lands on that code in the dashboard. The printed QR already works either way.

Render

curl -L 'https://qrtracer.io/api/render/{id}?format=png&size=1024' -o code.png

Webhooks

Programmable plan. Subscribe under Settings. Events are queued and retried; the redirect path never waits on delivery. Payload shape lives in openapi.json.