QRdx
HelpGuidesDevelopersReact librarySelf-hosting

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.

POST
/codes

Authorization

oauth2 codes:write
headerAuthorizationBearer <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

Request Body

application/json
  1. body

A new dynamic QR code

destinationUrl*string

Where a scan sends people: a full http(s) URL, up to 2,048 characters

Length1 <= length <= 2048
title?|

Name shown in the dashboard, up to 100 characters

style?|null
domainId?|null
slug?|null

Response Body

Created: { data: Code } for an object, { data: Code[] } for an array

application/json
  1. 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"}'
Example Response
{  "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