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/v1Avtentikacija
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.
| 401 | invalid_api_key | No key, a revoked key, or one that does not exist. |
| 403 | api_not_available_on_plan | The key is valid; the account is not on Business. |
| 400 | invalid_body | The JSON body failed validation. |
| 402 | plan_limit_reached | The account is at its dynamic-code limit. |
| 404 | not_found | No code with that id on this account. |
| 429 | rate_limited | More 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