API, MCP and webhooks
The REST API
1 min read·Updated October 27, 2026
Short answer
Make codes, read stats and change destinations from your own tools at https://ariaqr.com/api/v1, with your key as a Bearer token. JSON in and out. The full spec is at /openapi.json and the docs at /developers.
Your app
POST /api/v1/codes
Authorization: Bearer aq_…
A verified code or a live page
Endpoints
POST /api/v1/codes: turn an image into a verified code and (by default) activate it. Business.GET /api/v1/codes: every code, newest first.GET /api/v1/codes/{code}: one code, with its stats.PATCH /api/v1/codes/{code}: change where it points. Business.GET /api/v1/pages/{id}/leads: a page’s leads, as JSON or CSV.
Create a code
bash
curl -X POST https://ariaqr.com/api/v1/codes \
-H "Authorization: Bearer aq_your_key_here" \
-H "Content-Type: application/json" \
-d '{"image_url":"https://harborpine.com/lighthouse.png","url":"https://aqr.li/harborpine","edge":"soft"}'The image must be square (PNG, JPEG or WebP, up to 10 MB). Generation and verification can take a few minutes. The response has the short link, the preview, the download link and the private stats link.
json
{
"job_id": "j_8f2c…",
"verified": true,
"activated": true,
"code": "a7Bx9Q",
"short_url": "aqr.li/a7Bx9Q",
"preview_url": "https://ariaqr.com/api/preview/…",
"download_url": "https://ariaqr.com/api/download/…",
"stats_url": "https://ariaqr.com/stats/a7Bx9Q?k=…",
"pay_url": null
}Errors and limits
Errors come back as { "error": "…" } with status 400, 401, 402 (plan needed), 403, 404 or 429. The limit is 60 requests a minute per key.
Tip · Landing pages are made through MCP, not REST: see connect Claude or ChatGPT.