QR-Codes aus deiner eigenen App per REST-API erstellen: Anleitung in 10 Minuten
Um QR-Codes aus deinem eigenen System zu erstellen, schickst du einen authentifizierten POST mit der Ziel-URL und deiner eigenen Referenz-ID an die REST-API von QR Maker und gibst dann den zurückgelieferten Kurzlink aus. Nutze die Referenz-ID, um Wiederholungen sicher zu machen, fordere das SVG im selben Aufruf an und ändere das Ziel später per PATCH, wenn sich die Seite ändert. Die API gibt es im Business-Tarif, und sie ist dafür gedacht, von deinem Server aufgerufen zu werden, nicht aus einem Browser.
Was du brauchst
- Einen Business-Tarif und ein API-Token. Erstelle das Token auf der Seite Einstellungen unter API-Tokens und kopiere es, sobald es angezeigt wird: Es beginnt mit
qrs_und wird nur einmal angezeigt. Wähle die Leseberechtigung für Tokens, die nur Berichte abrufen. - Eine serverseitige Umgebung. Die API erlaubt keine Cross-Origin-Aufrufe aus dem Browser, also bleibt das Token auf deinem Server.
- Eine stabile Referenz für jeden Code in deinem eigenen System, etwa eine Bestellnummer, eine SKU oder einen Empfehlungscode. Sie wird zur
external_id.
Die Basis-URL ist https://qrmaker.ai/api/v1, und jede Anfrage trägt Authorization: Bearer qrs_....
Schritt 1: einen Code erstellen
curl -X POST "https://qrmaker.ai/api/v1/qrcodes?include=svg" \
-H "Authorization: Bearer $QR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"target_url": "https://shop.example.com/product/AB12CD?ref=qr",
"external_id": "AB12CD",
"name": "Product AB12CD",
"folder": "spring-campaign"
}'
Nur target_url ist Pflicht. Die Antwort enthält den Code, darunter einen short_link wie https://qrmk.cc/hzu23X und, dank ?include=svg, das SVG-Markup im Feld svg. Nur der Kurzlink sollte ins Bild kodiert oder geteilt werden. Ändert sich target_url später, bleibt das Bild gleich.
Schritt 2: Wiederholungen mit external_id sicher machen
Netzwerke fallen aus, und Jobs laufen doppelt. Schickst du dieselbe external_id mit derselben target_url erneut, legt die API keinen zweiten Code an: Sie liefert den bestehenden mit Status 200 und dem Header X-Idempotent-Replay: true zurück. Eine andere target_url für eine bestehende external_id ergibt 409, sodass eine Wiederholung nie unbemerkt ändern kann, wohin ein gedruckter Code führt.
Schritt 3: das SVG verwenden
Speichere oder liefere das SVG unverändert aus. Es skaliert auf jede Druckgröße und funktioniert in einem img-Tag. Um es später abzurufen, rufst du GET /v1/qrcodes/{id}/svg mit den optionalen Parametern size und margin auf; die Antwort trägt ein ETag, du kannst es also cachen und nur neu laden, wenn sich der Stil ändert. Die API erzeugt keine PNG-Dateien. Brauchst du PNG, wandle das SVG in deinem eigenen System um.
Schritt 4: das Ziel ohne Nachdruck ändern
curl -X PATCH "https://qrmaker.ai/api/v1/qrcodes/by-external-id/AB12CD" \
-H "Authorization: Bearer $QR_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "target_url": "https://shop.example.com/product/AB12CD-v2" }'
Du kannst Codes über deine eigene Referenz nachschlagen, musst die ID von QR Maker also gar nicht speichern. Die neue URL durchläuft dieselben Sicherheitsprüfungen wie eine auf der Website eingegebene.
Schritt 5: die Ergebnisse lesen
GET /v1/qrcodes/{id}/analytics liefert Scans, eindeutige Besucher pro Tag und Aufschlüsselungen nach Land, Gerät, Betriebssystem, Browser, Referrer, Sprache und Platzierungs-Tag, für einen Zeitraum und eine Zeitzone deiner Wahl. GET /v1/analytics/summary fasst viele Codes in einem Aufruf zusammen, was eine Anfrage pro Code erspart. Wenn du lieber einen Feed möchtest, liefert GET /v1/scans neue Scan-Ereignisse der Reihe nach, und du speicherst die zuletzt gesehene next_since_id.
Ratenlimits und Kontingente
Jedes Konto kann 120 API-Anfragen pro Minute stellen, geteilt von allen seinen Tokens, und jede Antwort enthält Header mit dem verbleibenden Budget. Der Business-Tarif umfasst 50.000 erfolgreiche Anfragen pro Monat; Anfragen, die mit einem 4xx- oder 5xx-Status scheitern, zählen nicht. Für Massenjobs erstellt POST /v1/qrcodes/batch bis zu 100 Codes pro Anfrage, jeden einzeln idempotent.
Ein kleines Node-Beispiel
const res = await fetch('https://qrmaker.ai/api/v1/qrcodes?include=svg', {
method: 'POST',
headers: { Authorization: `Bearer ${process.env.QR_TOKEN}`, 'Content-Type': 'application/json' },
body: JSON.stringify({ target_url: url, external_id: orderId }),
})
if (!res.ok) throw new Error(`QR API ${res.status}: ${(await res.json()).code}`)
const { data } = await res.json()
// data.short_link ist, was der gedruckte Code kodiert; data.svg ist das Bild
Verlass dich auf das stabile Feld code in Fehlerantworten statt auf die lesbare Meldung.
Wie es weitergeht
Die API-Referenz listet alle Endpunkte und Fehlercodes auf, und die Übersichtsseite verlinkt die OpenAPI-Datei, die Postman-Sammlung und vollständige Beispielprogramme. Um Codes ohne eigenen Server zu erstellen, sieh dir die Anleitungen für Google Sheets und für Make, n8n und Zapier an.
FAQ
Kann ich die API aus dem Browser aufrufen?
Nein. Würden Browser die API direkt aufrufen, wäre dein Token für jeden Besucher sichtbar. Ruf sie von deinem Server auf und gib das SVG oder den Kurzlink an die Seite weiter.
Was passiert, wenn mein Token in falsche Hände gerät?
Widerrufe es in den Einstellungen und erstelle ein neues. Tokens können nur die QR-Code-API aufrufen, nicht dein Passwort, deine Abrechnung oder deine Domains ändern, und ein Token mit Leseberechtigung kann nichts erstellen, ändern oder löschen.
Können die Codes meine eigene Domain nutzen?
Ja. Im Business-Tarif kannst du eine eigene Kurzlink-Domain verbinden. Übergib sie beim Erstellen eines Codes als short_domain, und der Kurzlink nutzt deine Domain statt der gemeinsamen.