> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getqr.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Einführung in die API

> Verwalten Sie QR-Codes, Vorlagen, Analytics und Berichte aus Ihrem eigenen Code.

> [!NOTE]
>
> Die GetQR API befindet sich in der Beta-Phase und steht ausgewählten Workspaces zur Verfügung. Details können sich bis zur allgemeinen Veröffentlichung noch ändern.

Die GetQR API ist eine REST-API für alles, was Sie im Dashboard tun: QR-Codes erstellen und aktualisieren, ihre Bilder herunterladen, Scan-Analytics abrufen und Berichte exportieren. Sie authentifizieren sich mit dem API-Schlüssel Ihres Kontos und rufen versionierte Endpunkte unter `/api/v1` auf.

## Was Sie tun können

> [card] [QR-Codes](https://docs.getqr.com/de/api/endpoints/qr-codes.md)
>
> QR-Codes erstellen, auflisten, aktualisieren, pausieren, duplizieren, löschen und herunterladen.

> [card] [Analytics](https://docs.getqr.com/de/api/endpoints/analytics.md)
>
> Scan-Summen und Aufschlüsselungen für einen QR-Code oder den gesamten Workspace.

> [card] [Berichte](https://docs.getqr.com/de/api/endpoints/reports.md)
>
> Einen einmaligen Bericht exportieren oder wiederkehrende Berichts-E-Mails planen.

> [card] [Vorlagen](https://docs.getqr.com/de/api/endpoints/templates.md)
>
> Designs speichern und auf neue QR-Codes anwenden.

> [card] [Massenerstellung](https://docs.getqr.com/de/api/endpoints/bulk-qr-creations.md)
>
> Bis zu 100 QR-Codes auf einmal aus JSON oder einer CSV-Datei erstellen.

> [card] [Dateien](https://docs.getqr.com/de/api/endpoints/files.md)
>
> PDFs, Bilder, Videos und Logos für Ihre QR-Codes hochladen.

> [card] [Statusprüfung](https://docs.getqr.com/de/api/endpoints/health.md)
>
> Prüfen, ob die API erreichbar ist. Kein API-Schlüssel nötig.

## Leitfäden

> [card] [QR-Typen](https://docs.getqr.com/de/api/guides/qr-types.md)
>
> Das Datenformat für jeden der 16 QR-Typen.

> [card] [Anpassung](https://docs.getqr.com/de/api/guides/customization.md)
>
> Punktstile, Ecken, Farben, Rahmen und Logos.

> [card] [Zugriffsregeln](https://docs.getqr.com/de/api/guides/access-rules.md)
>
> Zeitpläne, Scan-Limits, Passwörter, Pausieren und Löschen.

## Basis-URL

Alle Endpunkte liegen unter einer gemeinsamen Basis-URL:

```text theme={null}
https://getqr.com/api/v1
```

## Versionierung

Die API-Version ist Teil des Pfads: Jeder Endpunkt liegt unter `/api/v1/`.

* Inkompatible Änderungen erscheinen unter einem neuen Versionspräfix wie `/api/v2/`, und `/api/v1/` funktioniert weiter.
* Ergänzungen wie neue optionale Felder oder neue Endpunkte können innerhalb von v1 hinzukommen. Ignorieren Sie Antwortfelder, die Ihr Code nicht kennt.

## Schnellstart

**1. API-Schlüssel abrufen**

Erzeugen oder zeigen Sie Ihren Schlüssel in den Kontoeinstellungen an. Siehe [Authentifizierung](https://docs.getqr.com/de/api/authentication.md).

**2. Prüfen, ob die API erreichbar ist**

```bash theme={null}
curl https://getqr.com/api/v1/health
```

Die Antwort lautet `{ "status": "ok", "version": "v1" }`.

**3. Ersten QR-Code erstellen**

```bash theme={null}
curl -X POST "https://getqr.com/api/v1/qrs" \
  -H "Authorization: Bearer $GETQR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: first-qr-0001" \
  -d '{
    "qrType": "website",
    "data": "https://example.com",
    "title": "Landing page"
  }'
```

Die API antwortet mit `201` und dem neuen QR-Code, einschließlich `id` und `shortLink`.

**4. Bild herunterladen**

```bash theme={null}
curl "https://getqr.com/api/v1/qrs/{qrId}/download?format=png&resolution=1024" \
  -H "Authorization: Bearer $GETQR_API_KEY" \
  --output qr-code.png
```

## Anfragen und Antworten

* **Format.** Senden Sie Anfrage-Bodys als JSON mit `Content-Type: application/json`. Ausnahme ist der CSV-Upload für die [Massenerstellung](https://docs.getqr.com/de/api/endpoints/bulk-qr-creations.md), der `multipart/form-data` verwendet.
* **Antworten.** Antworten sind JSON. Downloads wie QR-Bilder und ZIP-Archive der Massenerstellung liefern die Datei selbst.
* **Datumsangaben.** Datumsangaben sind ISO-8601-Strings in UTC, zum Beispiel `2026-08-01T10:00:00.000Z`.
* **Query-Parameter.** Boolesche Parameter erwarten die Strings `true` oder `false`.
* **Teilaktualisierungen.** `PATCH`-Endpunkte ändern nur die Felder, die Sie senden.
* **Geheimnisse.** Antworten enthalten nie Passwörter oder interne Kennungen. Ein passwortgeschützter QR-Code meldet nur `passwordProtected: true`.
* **Workspace.** Jede Anfrage läuft in dem Workspace, zu dem Ihr API-Schlüssel gehört. Sie übergeben keine Workspace-ID. Siehe [Zugriff und Rollen](https://docs.getqr.com/de/api/authentication.md#zugriff-und-rollen).
* **Fehler.** Fehlgeschlagene Anfragen liefern ein `error`-Objekt mit einem stabilen `code`. Siehe [Fehler](https://docs.getqr.com/de/api/errors.md).

## Paginierung

Listen-Endpunkte (QR-Codes, Vorlagen und geplante Berichte) akzeptieren zwei Query-Parameter:

| Parameter | Beschreibung |
| - | - |
| `page` | Zurückzugebende Seite. Standard ist `1`. |
| `pageSize` | Ergebnisse pro Seite, maximal `100`. Standard ist `100`. |

Sie antworten mit einem `data`-Array und einem `pagination`-Objekt:

```json theme={null}
{
  "data": [ … ],
  "pagination": { "page": 1, "pageSize": 50, "total": 128, "hasMore": true }
}
```

| Feld | Beschreibung |
| - | - |
| `page` | Die erhaltene Seite. |
| `pageSize` | Die erhaltene Seitengröße. |
| `total` | Anzahl der Ergebnisse über alle Seiten. |
| `hasMore` | `true`, solange eine weitere Seite wartet. |

Fordern Sie die nächste Seite an, solange `hasMore` den Wert `true` hat. Eine `pageSize` über `100` liefert [`422`](https://docs.getqr.com/de/api/errors#validierungsfehler).

## Idempotenz

Nach einem Netzwerkfehler wissen Sie unter Umständen nicht, ob eine Anfrage angekommen ist. Um [QR-Code erstellen](https://docs.getqr.com/de/api/endpoints/qr-codes.md#qr-code-erstellen) gefahrlos zu wiederholen, senden Sie einen `Idempotency-Key`-Header mit einem eindeutigen Wert Ihrer Wahl:

```bash theme={null}
-H "Idempotency-Key: order-4821-qr"
```

* Wiederholen Sie die Anfrage innerhalb von 24 Stunden mit demselben Schlüssel, erhalten Sie die ursprüngliche Antwort, statt einen zweiten QR-Code zu erstellen.
* Der Antwort-Header `x-idempotent-replay` ist `true` bei einer wiederholt ausgelieferten Antwort und `false` bei einer neuen.
* Läuft die erste Anfrage mit diesem Schlüssel noch, antwortet die API mit `409 conflict`. Wiederholen Sie sie, sobald sie abgeschlossen ist.
* Wird ein Schlüssel mit einem anderen Anfrage-Body wiederverwendet, lautet die Antwort `422 unprocessable_entity`.
* Ohne den Header gilt ein identischer Anfrage-Body, der innerhalb von 30 Sekunden gesendet wird, als Duplikat.

Bei der Massenerstellung übergeben Sie stattdessen ein Feld `idempotencyKey` im Anfrage-Body. Siehe [Massenerstellung](https://docs.getqr.com/de/api/endpoints/bulk-qr-creations.md).

## Ratenbegrenzungen

Jeder API-Schlüssel kann bis zu 600 Anfragen pro Minute senden. Siehe [Ratenbegrenzungen](https://docs.getqr.com/de/api/rate-limits.md).

## Demnächst

Druckfertige Pakete sind für eine spätere Version geplant.

## Wie geht es weiter?

> [card] [Authentifizierung](https://docs.getqr.com/de/api/authentication.md)

> [card] [QR-Codes](https://docs.getqr.com/de/api/endpoints/qr-codes.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.