Zum Hauptinhalt springen

REST API v1

Developer API

QR-Erstellung, Updates und Organisation aus Backend, Skripten oder CI-Pipelines automatisieren.

Endpunkte

MethodePfadBeschreibung
GET
/api/v1/qrQR-Codes auflisten
POST
/api/v1/qrQR-Code erstellen
POST
/api/v1/qr/bulkQR-Codes massenhaft erstellen (JSON items oder CSV)
GET
/api/v1/qr/:idEinzelnen QR-Code abrufen
GET
/api/v1/qr/:id/analyticsScan-Analysen für einen QR-Code
PATCH
/api/v1/qr/:idQR-Code aktualisieren
DELETE
/api/v1/qr/:idQR-Code löschen
GET
/api/v1/foldersOrdner auflisten
POST
/api/v1/foldersOrdner erstellen
GET
/api/v1/folders/:idEinzelnen Ordner abrufen
PATCH
/api/v1/folders/:idOrdner aktualisieren
DELETE
/api/v1/folders/:idOrdner löschen

Authentifizierung

API-Key im Dashboard → Einstellungen erstellen. Senden als:

Authorization: Bearer qb_live_...

# or

X-API-Key: qb_live_...

Scan-Webhooks

HTTPS-Endpunkte unter Einstellungen → Scan-Webhooks hinzufügen. Scans, Landing-Leads und CTA-Klicks senden JSON POST mit X-QRbanner-Signature (HMAC-SHA256).

{
  "event": "scan",
  "qr_code_id": "...",
  "qr_name": "Store Istanbul",
  "short_code": "abc12",
  "scan": {
    "country": "TR",
    "city": "Istanbul",
    "device": "mobile",
    "scanned_at": "2026-06-29T12:00:00.000Z"
  }
}
Integrationen ansehen

Signaturen prüfen

Raw Request Body lesen, HMAC-SHA256 mit Signing Secret berechnen und mit X-QRbanner-Signature vergleichen (Präfix sha256=). Fehlgeschlagene Zustellungen werden bis zu 3× wiederholt; Send test in Einstellungen nutzen.

const crypto = require('crypto');

function verifyWebhook(body, signatureHeader, secret) {
  const expected = 'sha256=' + crypto
    .createHmac('sha256', secret)
    .update(body)
    .digest('hex');
  return crypto.timingSafeEqual(
    Buffer.from(signatureHeader),
    Buffer.from(expected)
  );
}

OpenAPI-Spezifikation

Maschinenlesbares OpenAPI-3.0 für REST API v1, Mobile API und SCIM 2.0 — in Postman, Insomnia oder API Gateway importieren.

Rate Limits

Zwei Limits pro Plan: Burst pro Minute plus monatliches Kontingent. Jede Antwort trägt X-RateLimit-* Header; Überschreitung liefert 429 mit Retry-After.

  • Free — 60/Min. · 1.000/Mon.
  • Pro — 120/Min. · 10.000/Mon.
  • Business — 300/Min. · 100.000/Mon.
  • Agency — 600/Min. · 500.000/Mon.

Basis-URL

https://qrbanner.com

API-Zugang erhalten

Mobile API

Begleit-Endpunkte für PWA und eigene Mobile-Clients. Authentifizierung per Session-Cookie oder demselben API-Key wie REST v1. Antwortfelder in camelCase (siehe OpenAPI MobileQr).

PWA- & Mobile-Apps-Seite

MethodePfadBeschreibung
GET
/api/mobile/v1/summaryPlan-Nutzung und letzte Scans
GET
/api/mobile/v1/qrQR-Codes auflisten (Mobile-Form)
POST
/api/mobile/v1/qrQR-Code erstellen
GET
/api/mobile/v1/qr/:idQR-Detail plus letzte Scans
PATCH
/api/mobile/v1/qr/:idQR-Code aktualisieren
DELETE
/api/mobile/v1/qr/:idQR-Code löschen

SCIM-2.0-Bereitstellung

Business- und Agency-Team-Workspaces können Mitglieder aus Okta, Microsoft Entra ID (Azure AD), Google Workspace oder jedem SCIM-2.0-IdP synchronisieren. SCIM unter Einstellungen → Team aktivieren, Bearer-Token einmal kopieren und Ihr IdP auf die Basis-URL unten zeigen.

SCIM-Endpunkte in der interaktiven API-Referenz ansehen

IdP-Einrichtung

  1. Dashboard → Einstellungen → Team → SCIM öffnen und Provisioning aktivieren.
  2. Den einmal angezeigten Bearer-Token (Präfix qrb_scim_) kopieren und im IdP speichern.
  3. SCIM-Basis-URL auf https://qrbanner.com/api/scim/v2 mit Authorization: Bearer <token> setzen.
  4. IdP-Gruppen oder Rollenzuweisungen auf virtuelle Groups admin, editor oder viewer mappen — diese steuern Workspace-Mitgliederrollen.
Base URL: https://qrbanner.com/api/scim/v2
Authorization: Bearer qrb_scim_...

# Roles ↔ virtual Groups: admin | editor | viewer
MethodePfadBeschreibung
GET
/api/scim/v2/UsersWorkspace-Mitglieder auflisten
POST
/api/scim/v2/UsersMitglied einladen oder provisionieren
GET
/api/scim/v2/Users/:idEinzelnes Mitglied abrufen
PATCH
/api/scim/v2/Users/:idMitgliederattribute oder Rolle aktualisieren
PUT
/api/scim/v2/Users/:idMitglied ersetzen (Alias von PATCH)
DELETE
/api/scim/v2/Users/:idMitglied entfernen
GET
/api/scim/v2/GroupsVirtuelle Rollengruppen auflisten
POST
/api/scim/v2/GroupsVirtuelle Rollengruppe sicherstellen (idempotent)
GET
/api/scim/v2/Groups/:idEinzelne Rollengruppe und Mitglieder abrufen
PATCH
/api/scim/v2/Groups/:idGruppenmitgliedschaft / Rollenzuordnung patchen
PUT
/api/scim/v2/Groups/:idGruppenmitgliedschaft ersetzen (Alias von PATCH)
DELETE
/api/scim/v2/Groups/:idGruppe löschen (virtuelle Rollengruppen liefern 400)
GET
/api/scim/v2/ServiceProviderConfigSCIM-Service-Provider-Konfiguration
GET
/api/scim/v2/ResourceTypesUnterstützte Ressourcentypen
GET
/api/scim/v2/SchemasSCIM-Schemas

Verwandte Seiten

Beispielanfrage

curl -X POST https://qrbanner.com/api/v1/qr \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Store Istanbul",
    "category": "url",
    "qr_data": { "url": "https://example.com/tr" }
  }'