Skip to content

Developer docs

There are three ways to work with your QR codes and short links from software: the REST API, the MCP server for AI assistants, and connectors for no-code tools. They share one workspace, one plan and one monthly request count.

Pick a route

Choose by who does the work: code you write, an assistant you talk to, or a workflow tool.

RouteBest forSigns in withOn FreeFrom StarterDocs
REST APIScripts, servers and your own appAn API key as a Bearer token, or Sign in with QRSaltRender QR codes and barcodesCodes, short links, scans, folders, tags, forms and menusAPI reference
MCP serverClaude, Cursor, VS Code and other AI clientsSign in with QRSalt, or an API key in a headerThe 2 picture toolsAll 13 toolsMCP setup
n8n and MakeWorkflows you build without codeAn API key saved as a credential or connectionRender and read stepsEvery action and polling triggern8n and Make

Webhooks and instant triggers start on Business. Reading a code out of an image and the keyless render need no account at all.

The whole API reference is also one Markdown file, docs.md, if you'd like to paste it into an AI chat.

Limits by plan

Calls under /api/v1 and every MCP tool call count towards the month. Rendering and the keyless endpoints don't.

PlanPriceAccount accessRequests a monthRequests a minute, per keyWebhooks
Free$0Render onlyNot counted60No
Starter$5 a monthYes500600No
Pro$15 a monthYes5,000600No
Business$39 a monthYes100,000 (fair use)600Yes

Going over either limit answers 429 with the time it resets. The headers and error bodies are in rate limits.

Credentials

Two ways to prove who you are, and two endpoints that need neither.

CredentialWhere you get itHow long it lastsUsed by
API key, qr_live_…Dashboard → API. It is shown once.Until you revoke itYour code, MCP clients that take a header, n8n and Make
Sign in with QRSaltOAuth 2.1 with PKCE, started by the app or clientAccess token 1 hour, refresh token 90 daysMCP clients that support sign-in, and apps you build
NoneNothing to set upNot applicableGET /api/qr/free and POST /api/qr/decode

Give each integration its own key with only the scopes it needs, so you can revoke one without stopping the rest. The scopes section lists what each one allows.