Included in the Business plan

QR Code API

Create dynamic QR codes from your own system, change where they point at any time, and pull the scan data back into your reports.

REST · JSON · OpenAPI 3 · Postman collection

What you can build with it

A code for every order, product or tableCreate codes from your own records and keep your own ID on each one.
Thousands at onceSend up to 100 codes per request. Each one is safe to retry on its own.
Destinations that changePoint a printed code at a new page with one PATCH. The picture stays the same.
Print-ready SVGFetch any code as SVG at the size and quiet zone you need, with your logo and colours.
Scan data in your reportsTotals per day, country, device, app and placement, in the time zone you choose.
A live feed without webhooksPoll new scan events in order and store one cursor. Nothing to expose on your side.

Create a code in one request

Send the destination and your own reference. The response contains the short link to encode and, with include=svg, the finished image.

curl -X POST "https://qrmaker.ai/api/v1/qrcodes?include=svg" \
  -H "Authorization: Bearer $QR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "target_url": "https://shop.example.com/product/AB12CD",
    "external_id": "AB12CD",
    "name": "Product AB12CD",
    "folder": "spring-campaign",
    "style": { "dot_style": "fluid", "finder_shape": "smooth" }
  }'
{
  "success": true,
  "data": {
    "id": "hzu23X",
    "external_id": "AB12CD",
    "target_url": "https://shop.example.com/product/AB12CD",
    "short_link": "https://qrmk.cc/hzu23X",
    "status": "active",
    "scan_count": 0,
    "image_version": "a1b2c3d4e5f60718",
    "svg": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 1000 1000\" …>"
  }
}

Encode the short_link, never your own URL: it is what makes the code editable and countable. Sending the same external_id again returns the same code, so a retry cannot create a duplicate.

Endpoints

POST /v1/qrcodes
Create a code (add ?include=svg to get the image too)
POST /v1/qrcodes/batch
Create up to 100 codes in one request
GET /v1/qrcodes
List codes, with incremental sync by updated_since
PATCH /v1/qrcodes/{id}
Change the destination, name, folder, status or style
GET /v1/qrcodes/{id}/svg
The code as SVG, with ETag caching
GET /v1/qrcodes/{id}/analytics
Scans for one code over a date range
GET /v1/analytics/summary
Many codes in one call, grouped by code, folder or day
GET /v1/scans
New scan events since the last one you processed
GET /v1/scans/export
Scan events as a CSV file
GET /v1/usage
This month’s usage and quota

Runnable examples

Each file is a complete program. Set your token and run it.

Limits and price

Plan
Business: $29 a month or $279 a year
Free trial
14 days on the monthly plan for new customers. A card is required.
Monthly quota
50,000 successful requests. Failed requests do not count.
Rate limit
120 requests a minute per account
Where it runs
Server to server. Browser calls are blocked by CORS.
Image format
SVG only. Convert to PNG in your own system if you need it.

See Business pricing

Details that save you trouble later

  • Retry-safe creation. An external_id is unique per account. The same ID with the same destination returns the existing code with a 200.
  • A POST never moves a printed code. The same ID with a different destination returns 409. Changing a destination is always an explicit PATCH, which goes through the same safety checks as the website.
  • Stable error codes. Every error has a machine-readable code. The English message is for people and may change.
  • Cache the image by version. image_version changes only when the picture does, and it doubles as the ETag of the SVG endpoint. Changing a destination never changes it.
  • Read-only tokens. Give reporting systems a token that can only GET. If it leaks, nothing can be created, changed or deleted with it.

Frequently asked questions

Is there a free tier for the API?

No. The API is part of the Business plan. New customers can try the monthly plan free for 14 days; a card is required, and it renews at $29 a month unless you cancel.

Can I get PNG images?

The API returns SVG, which prints sharply at any size and works in an img tag. If you need PNG, convert the SVG in your own system. The integration guide shows how in Node, Python and the browser.

Can I call the API from a web page?

No. Cross-origin browser requests are blocked, so the token stays on your server. Call the API from your backend and pass the result to the page.

Do you support webhooks?

No. Instead, GET /v1/scans returns new scan events in order. Poll it every 30 to 60 seconds and store the cursor it returns. Empty responses do not count towards the quota.

What happens to my codes if I cancel?

They keep redirecting. API access stops when the plan ends, along with the other Business features.

Start with a free code.

REST · JSON · OpenAPI 3 · Postman collection

Read the API docs →