Skip to main content
GET
Lists and generates AI artwork variants for one Dynamic QR Code.
string
required
The QR Code’s qrid. Must be a Dynamic (dy) QR Code — a static one returns 400.
Generating consumes the AI_QR_CODE quota.

Generate (POST)

string
required
The image prompt, max 200 characters.
string
What to avoid, max 50 characters.
Every other field — weight, qr_code_pattern, preset, provider, status, selected, is_scannable, qr_image_url, qr_image, created — is read-only.
One POST creates one record per configured AI provider, so the response is a {"results": [...]} list, not a single object. Don’t write client code that expects a single created resource — and remember each of those records counts against your generation quota.
Generation is asynchronous. status moves newgeneratinggenerated (or failed). The default GET returns only generated variants, so poll in-flight records explicitly with ?ids=501,502 until they leave generating.

Authorizations

Authorization
string
header
required

Send your Management API key as the raw value of the Authorization header — no "Bearer " or "Token " prefix, and no other characters. Example: Authorization: 401f7ac837da42b97f613d789819ff93537bee6a. A header containing more than one space-separated part is rejected outright. Requests also require the request's Host header to be the management API host (e.g. api.scanova.io) — the same key sent to the regular API host will not authenticate.

Path Parameters

qrid
string
required

The QR code's qrid — the opaque public identifier returned by the list endpoint, not the numeric id.

Query Parameters

ids
string

Comma-separated AI-record ids. Returns those records regardless of status, instead of the default generated-only listing.

Response

AI variants for this QR code.