Enqre

API za QR kode

Ustvarjajte kode iz svojega zaledja, berite njihova skeniranja in prejmite webhook v trenutku, ko nekdo skenira. Ta stran ne zahteva računa.

API je del paketa Business. Ključe ustvarite v nadzorni plošči pod «API in webhooki»; prikažejo se enkrat — izgubljen ključ prekličete in zamenjate, nikoli ga ne obnovite.

Osnovni URL

https://enqre.com/api/v1

Avtentikacija

Vsaka zahteva nosi ključ kot bearer žeton. Brez veljavnega ključa: 401. Veljaven ključ na paketu brez API-ja: 403.

curl https://enqre.com/api/v1/qrcodes \
  -H "Authorization: Bearer $ENQRE_API_KEY"

Končne točke

GET/api/v1/qrcodes?limit=50&cursor=<id>

Izpiše vaše kode, najnovejše prve. Paginacija s kazalcem: vrnjeni nextCursor pošljite nazaj za naslednjo stran.

{
  "data": [
    {
      "id": "clx…", "name": "Table tent", "type": "URL",
      "slug": "a1b2c3", "destinationUrl": "https://example.com/menu",
      "scanCount": 128, "active": true, "createdAt": "2026-09-01T10:00:00.000Z",
      "shortUrl": "https://enqre.com/r/a1b2c3"
    }
  ],
  "nextCursor": "clx…"
}

POST/api/v1/qrcodes

Ustvari dinamično URL kodo. Odgovor vsebuje kratek URL za tisk.

{ "name": "Table tent", "url": "https://example.com/menu" }
201 Created
{
  "data": {
    "id": "clx…", "name": "Table tent", "slug": "a1b2c3",
    "destinationUrl": "https://example.com/menu",
    "shortUrl": "https://enqre.com/r/a1b2c3"
  }
}

GET/api/v1/qrcodes/{id}

Prebere eno kodo.

PATCH/api/v1/qrcodes/{id}

Spremeni kodo, tudi njen cilj. Prav zato obstaja dinamična koda: natisnjeni izvod dela naprej in kaže drugam.

{ "url": "https://example.com/autumn-menu", "name": "Autumn menu", "active": true }

DELETE/api/v1/qrcodes/{id}

Izbriše kodo. Natisnjeni izvodi se nehajo razreševati, zato kampanje tako ne ustavljajte — raje nastavite active na false.

GET/api/v1/qrcodes/{id}/scans

Zadnjih 1.000 skeniranj ene kode, najnovejša prva, in skupni seštevek.

{
  "total": 128,
  "data": [
    { "createdAt": "2026-09-06T18:12:03.000Z", "device": "mobile", "os": "iOS", "browser": "Safari" }
  ]
}

Napake

Napake so JSON s stabilno strojno berljivo kodo. Vejite se po kodi, ne po sporočilu: sporočila se lahko preoblikujejo, kode ne.

401invalid_api_keyNo key, a revoked key, or one that does not exist.
403api_not_available_on_planThe key is valid; the account is not on Business.
400invalid_bodyThe JSON body failed validation.
402plan_limit_reachedThe account is at its dynamic-code limit.
404not_foundNo code with that id on this account.
429rate_limitedMore than 60 writes in a minute.

Omejitev zahtev

60 pisanj na minuto na račun, nad tem 429. Branja danes niso omejena, kar ni obljuba, na kateri bi gradili.

Webhooki

Vpišite URL pod «API in webhooki» in vsako skeniranje gre takoj tja: vaš sistem izve zanj brez poizvedovanja.

POST your-endpoint
X-Enqre-Event: scan.created
X-Enqre-Signature: <hex hmac-sha256 of the raw body>
Content-Type: application/json

{
  "event": "scan.created",
  "qrCodeId": "clx…",
  "slug": "a1b2c3",
  "name": "Table tent",
  "device": "mobile",
  "os": "iOS",
  "browser": "Safari"
}

Preverite podpis

Izračunajte HMAC-SHA256 surovega telesa zahteve s svojo skrivnostjo webhooka in ga primerjajte z glavo. Kar se ne ujema, zavrnite — in primerjajte v konstantnem času.

import crypto from "node:crypto";

const raw = await req.text(); // the raw body, before JSON.parse
const expected = crypto
  .createHmac("sha256", process.env.ENQRE_WEBHOOK_SECRET)
  .update(raw)
  .digest("hex");

const given = req.headers.get("x-enqre-signature") ?? "";
const ok =
  given.length === expected.length &&
  crypto.timingSafeEqual(Buffer.from(given), Buffer.from(expected));

Zbirka Postman

Vse končne točke s te strani, pripravljene za zagon: uvozite zbirko, nastavite spremenljivko apiKey in pošljite.

Prenesi zbirko

Česa API še ne zna

Kode, ustvarjene prek API-ja, so URL kode s privzetim oblikovanjem. Ostalih šestnajst tipov, oblikovna polja in množični uvoz so za zdaj le v nadzorni plošči. Kar API ustvari, je povsem običajna koda: spremenljiva, merljiva in natisljiva kot vsaka druga.

Pridobite ključ

API, webhooki, GS1 Digital Link, white-label in lastna domena so v paketu Business, 39 € na mesec.

Poglejte pakete