Create codes
Creates one dynamic code, or up to 100 at once.
Send an object for one code, or an array for several (Pro). The response's shortLink is what the QR code encodes: point it somewhere else later with PATCH and the printed code keeps working. Render it with the image API, for example https://api.qrdx.dev/v1/qr?data=<shortLink>. Free workspaces have 10 active codes. Create requests are limited to 20 a minute.
oauth2 codes:writeAuthorizationBearer <token>An OAuth 2.0 access token, sent as Authorization: Bearer <token>. Register an app in Settings → Developers, send the user through authorization (PKCE S256), then exchange the code for a token. Access tokens last 1 hour; refresh tokens 30 days. Step by step.
Scope: codes:write
application/json- body
A new dynamic QR code
destinationUrl*stringWhere a scan sends people: a full http(s) URL, up to 2,048 characters
1 <= length <= 2048title?|Name shown in the dashboard, up to 100 characters
style?|nulldomainId?|nullslug?|nullCreated: { data: Code } for an object, { data: Code[] } for an array
application/json- response
data*A dynamic QR code
curl -X POST 'https://api.qrdx.dev/v1/codes' \ -H 'Content-Type: application/json' \ -d '{ "destinationUrl": "https://example.com/menu", "title": "Spring menu"}'{ "data": { "id": "cm5code0spring0menu00001", "slug": "aB3dE5f", "shortLink": "https://qrdx.dev/q/aB3dE5f", "defaultShortLink": "https://qrdx.dev/q/aB3dE5f", "domain": null, "destinationUrl": "https://example.com/menu", "title": "Spring menu", "contentType": "url", "status": "active", "style": { "fgColor": "#111827", "bgColor": "#ffffff", "bodyPattern": "circle", "cornerEyePattern": "rounded", "level": "Q" }, "scanCount": 128, "lastScannedAt": "2026-01-12T18:04:11.000Z", "archivedAt": null, "createdAt": "2026-01-05T09:30:00.000Z", "updatedAt": "2026-01-05T09:30:00.000Z", "organizationId": null }}Last updated on