REST API v1
Developer API
QR-Erstellung, Updates und Organisation aus Backend, Skripten oder CI-Pipelines automatisieren.
Endpunkte
| Methode | Pfad | Beschreibung |
|---|---|---|
GET | /api/v1/qr | QR-Codes auflisten |
POST | /api/v1/qr | QR-Code erstellen |
POST | /api/v1/qr/bulk | QR-Codes massenhaft erstellen (JSON items oder CSV) |
GET | /api/v1/qr/:id | Einzelnen QR-Code abrufen |
GET | /api/v1/qr/:id/analytics | Scan-Analysen für einen QR-Code |
PATCH | /api/v1/qr/:id | QR-Code aktualisieren |
DELETE | /api/v1/qr/:id | QR-Code löschen |
GET | /api/v1/folders | Ordner auflisten |
POST | /api/v1/folders | Ordner erstellen |
GET | /api/v1/folders/:id | Einzelnen Ordner abrufen |
PATCH | /api/v1/folders/:id | Ordner aktualisieren |
DELETE | /api/v1/folders/:id | Ordner 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
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).
| Methode | Pfad | Beschreibung |
|---|---|---|
GET | /api/mobile/v1/summary | Plan-Nutzung und letzte Scans |
GET | /api/mobile/v1/qr | QR-Codes auflisten (Mobile-Form) |
POST | /api/mobile/v1/qr | QR-Code erstellen |
GET | /api/mobile/v1/qr/:id | QR-Detail plus letzte Scans |
PATCH | /api/mobile/v1/qr/:id | QR-Code aktualisieren |
DELETE | /api/mobile/v1/qr/:id | QR-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
- Dashboard → Einstellungen → Team → SCIM öffnen und Provisioning aktivieren.
- Den einmal angezeigten Bearer-Token (Präfix qrb_scim_) kopieren und im IdP speichern.
- SCIM-Basis-URL auf https://qrbanner.com/api/scim/v2 mit Authorization: Bearer <token> setzen.
- 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
| Methode | Pfad | Beschreibung |
|---|---|---|
GET | /api/scim/v2/Users | Workspace-Mitglieder auflisten |
POST | /api/scim/v2/Users | Mitglied einladen oder provisionieren |
GET | /api/scim/v2/Users/:id | Einzelnes Mitglied abrufen |
PATCH | /api/scim/v2/Users/:id | Mitgliederattribute oder Rolle aktualisieren |
PUT | /api/scim/v2/Users/:id | Mitglied ersetzen (Alias von PATCH) |
DELETE | /api/scim/v2/Users/:id | Mitglied entfernen |
GET | /api/scim/v2/Groups | Virtuelle Rollengruppen auflisten |
POST | /api/scim/v2/Groups | Virtuelle Rollengruppe sicherstellen (idempotent) |
GET | /api/scim/v2/Groups/:id | Einzelne Rollengruppe und Mitglieder abrufen |
PATCH | /api/scim/v2/Groups/:id | Gruppenmitgliedschaft / Rollenzuordnung patchen |
PUT | /api/scim/v2/Groups/:id | Gruppenmitgliedschaft ersetzen (Alias von PATCH) |
DELETE | /api/scim/v2/Groups/:id | Gruppe löschen (virtuelle Rollengruppen liefern 400) |
GET | /api/scim/v2/ServiceProviderConfig | SCIM-Service-Provider-Konfiguration |
GET | /api/scim/v2/ResourceTypes | Unterstützte Ressourcentypen |
GET | /api/scim/v2/Schemas | SCIM-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" }
}'