QR.

QR. for developers

Mint, print, route, and observe dynamic QR codes. Change the destination anytime — without reprinting.

Free · 20 dynamic QRs / month · unlimited scans · full API

Free dynamic QR — no signup →

Edge network redirects · Official clients on npm, PyPI & Go

No reprint

Change the destination with a PATCH

Print once. Point scanners somewhere new whenever the product, campaign, or store listing changes — without touching the physical code.

PATCH /v1/qr/qr_...
{ "targetUrl": "https://new.example.com" }

Edge rules

One QR code. Many destinations at the edge.

Scans resolve at the edge by device, country, time, or weighted A/B (weights sum to 100) — first match wins, then your default destination. Any plan can add a password gate before the redirect. Change rules anytime without reprinting.

Order: device → country → time → A/B → destination.

POST /v1/qr
{
  "targetUrl": "https://example.com",
  "rules": {
    "device": {
      "ios": "https://apps.apple.com/…",
      "android": "https://play.google.com/…"
    }
  }
}
See A/B, password gate, and routing recipes →

iPhone in India · 10:00

App Store

Matched: Device · iOS

  • device.ios → apps.apple.com/…
  • device.android → play.google.com/…
  • targetUrl → example.com (fallback)

One API spine for most dynamic QR jobs

Compose mint through brand in code — instead of bolting a generator to a redirect service and hoping it holds.

See recipes →

Why not just use node-qrcode?

Generating a PNG is easy. Owning mint, print, live links, routing, and scan events at scale is the real product — that is what QR. ships as an API.

DIYQR.
RedirectsYour region, your uptimeEdge network redirects on go.qrdot.dev
Change destinationRebuild + reprint, or own a redirect hackPATCH the short link — code stays printed
ExportsPNG from canvas; SVG/PDF is your problemPNG, SVG, and print-ready PDF
Routing & eventsCustom geo/device code + queuesDevice, geo, time, A/B, password gate + webhooks

Minutes, not weeks

SDKs for the stack you already ship

Grab an API key, install an official client (Node, Python, Go, PHP, Ruby) or call REST from any language (C#, Java, .NET, …), and create your first dynamic QR before standup ends. CLI for scripts — OpenAPI when you need a generated client.

Browse libraries →
  • @qrdot/sdkNode / TS
  • pip install qrdotPython
  • qrdot-clients/goGo
  • intuitix/qrdot-phpPHP
  • gem install qrdotRuby
  • npx @qrdot/cliCLI

Get your API key in under two minutes

Start on Free, then upgrade when volume or custom domains matter.