Verify QR API

Create verified QR codes automatically, one per event, table, pump or asset.

← What the QR API offers · Your account

How it works

Every registered organisation can use the API. You buy places in your account, and each live code uses one place. Each time your system asks for a code for a new page and identifier, Verify creates it, points it at that page, and sends back the finished PNG. If you have a spare place the code is live straight away. If you do not, the code is still created but is switched off, and we email you (at most once a day) so you can buy more places and switch it on.

1. Get an API key

Sign in at your account, find API access and press Create API key. The key is shown once. Keep it secret, like a password; anyone with it can create codes on your account. You can revoke it at any time and have up to five.

2. Request a code

POST https://verify.eazi.it/qr-api.php with the header Authorization: Bearer YOUR_KEY and a JSON body:

FieldRequiredMeaning
urlYesFull https:// address of the page the code should lead to.
identifierYesThe identifier printed on the right of the PNG, up to 60 characters (for example Lodge 8325 - 18/10/2026).
formatNopng (default) returns the image. json returns details with the PNG as base64.
curl -X POST https://verify.eazi.it/qr-api.php \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.org/events/summer-meeting","identifier":"Lodge 8325 - 18/10/2026"}' \
  -o code.png

The response body is the PNG. Details are in the response headers: X-Verify-Code, X-Verify-Scan-Url, X-Verify-Created (true for a new code, false if it already existed) and X-Verify-Remaining (your spare places) and X-Verify-Active (true if the code is live, false if it was created switched off because you had no spare place).

Fetch a code you already have

GET https://verify.eazi.it/qr-api.php?code=ABCD2345 (same header) returns the PNG again.

Check your places

GET https://verify.eazi.it/qr-api.php?action=status returns JSON such as {"ok":true,"codes_purchased":50,"codes_in_use":13,"codes_remaining":37}. These are the places you own, the live codes using them, and your spare places.

PHP example

$ch = curl_init('https://verify.eazi.it/qr-api.php');
curl_setopt_array($ch, [
  CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $key, 'Content-Type: application/json'],
  CURLOPT_POSTFIELDS => json_encode(['url' => $eventUrl, 'identifier' => $identifier]),
]);
$png = curl_exec($ch);
if (curl_getinfo($ch, CURLINFO_RESPONSE_CODE) === 200) { file_put_contents('code.png', $png); }

If a page stops working

Verify checks the page when someone scans the code. If the page is permanently gone (HTTP 404, 410 or 451), the code is switched off straight away and the owner is emailed. Temporary problems, such as a slow website, a rate limit (429) or a firewall that blocks the checker (403), do not switch a code off. People who scan it see a clear “this code is switched off” message. Fix the page, then switch the code back on from your account page. Switching it back on costs nothing.

Errors

Errors come back as JSON: {"ok":false,"error":"..."}.

StatusMeaning
401Missing, wrong or revoked key.
402Your pool is empty. Buy more codes and reserve them for automation.
403The page is not on a website registered for your account.
404No live code with that value on your account.
422Missing or invalid field, or the page failed the Verify safety check.
429Too many requests. Wait and retry.
502We could not read the page. Make sure it is online and retry.

Questions? Use our contact page.