> ## 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.

# Vorlagen

> Speichern Sie wiederverwendbare QR-Code-Designs und wenden Sie sie auf neue QR-Codes an.

> [!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.

Eine Vorlage speichert ein wiederverwendbares Design: `styles`, `frameOptions` und `logoOptions`. Sie enthält nie Inhalt oder einen Link. Vorlagen stehen allen im Workspace zur Verfügung.

| Methode | Pfad | Beschreibung |
| - | - | - |
| `GET` | `/api/v1/templates` | [Vorlagen auflisten](#vorlagen-auflisten) |
| `POST` | `/api/v1/templates` | [Vorlage erstellen](#vorlage-erstellen) |
| `GET` | `/api/v1/templates/{templateId}` | [Vorlage abrufen](#vorlage-abrufen) |
| `PATCH` | `/api/v1/templates/{templateId}` | [Vorlage aktualisieren](#vorlage-aktualisieren) |
| `DELETE` | `/api/v1/templates/{templateId}` | [Vorlage löschen](#vorlage-löschen) |
| `POST` | `/api/v1/templates/{templateId}/duplicate` | [Vorlage duplizieren](#vorlage-duplizieren) |

## Vorlage anwenden

Übergeben Sie `templateId`, wenn Sie einen [QR-Code erstellen](https://docs.getqr.com/de/api/endpoints/qr-codes.md). Das Design der Vorlage wird auf den neuen QR-Code angewendet. Design-Objekte, die Sie in derselben Anfrage senden, werden darübergelegt.

* **Kopiert, nicht verknüpft.** Der QR-Code behält seine eigene Kopie des Designs. Spätere Änderungen an der Vorlage oder ihr Löschen wirken sich nicht auf ihn aus.
* **Nur Custom designs.** Eine Vorlage mit `designKind` `branded` oder `ai` lässt sich über die API nicht anwenden und liefert `422` (`art_template_unsupported`).
* **Nur Ihr Workspace.** Eine unbekannte Vorlage oder eine aus einem anderen Workspace liefert `404`.

## Header

**Authorization** `string` *required*

`Bearer` gefolgt von Ihrem API-Schlüssel. Siehe [Authentifizierung](https://docs.getqr.com/de/api/authentication.md).

**Content-Type** `string`

`application/json`. Erforderlich bei Anfragen mit Body.

## Das Vorlagenobjekt

**id** `string`

ID der Vorlage, zum Beispiel `qrt_8Hs2mQvKpLd4RtYw`.

**name** `string`

Name, der bei der Auswahl einer Vorlage angezeigt wird.

**designKind** `string`

Schreibgeschützt. `custom` ist ein Design, das die API vollständig bearbeiten kann. `branded` und `ai` sind ein im Dashboard erstelltes Branded design oder AI design: Sein Bild lässt sich über die API nicht bearbeiten und bleibt erhalten, wenn Sie die anderen Designfelder ändern.

**design** `object`

Das gespeicherte Design. Jedes Feld hat denselben Aufbau wie das gleichnamige Anfragefeld, sodass Sie es zurücksenden können.

**properties**

**styles** `object | null`

Formen und Farben von Punkten und Ecken.

**frameOptions** `object | null`

Rahmen um den QR-Code samt Text der Handlungsaufforderung.

**logoOptions** `object | null`

Logo in der Mitte.

**createdAt** `string`

Erstellungsdatum, ISO 8601.

**updatedAt** `string`

Datum der letzten Aktualisierung, ISO 8601.

## Vorlagen auflisten

`GET /api/v1/templates`

Liefert die Vorlagen Ihres Workspace, die neuesten zuerst. Die Liste ist paginiert: siehe [Paginierung](https://docs.getqr.com/de/api/introduction.md#paginierung).

**page** `integer` (default: 1)

Zurückzugebende Seite, 1 oder höher.

**pageSize** `integer` (default: 100)

Ergebnisse pro Seite, 1 bis 100.

```bash cURL theme={null}
curl "https://getqr.com/api/v1/templates?page=1&pageSize=100" \
  -H "Authorization: Bearer $GETQR_API_KEY"
```

```json 200 theme={null}
{
  "data": [
    {
      "id": "qrt_8Hs2mQvKpLd4RtYw",
      "name": "Brand blue",
      "designKind": "custom",
      "design": {
        "styles": {
          "dotsOptions": { "type": "rounded", "color": "#1E40AF" },
          "backgroundOptions": { "color": "#FFFFFF" }
        },
        "frameOptions": null,
        "logoOptions": null
      },
      "createdAt": "2026-07-20T09:12:00.000Z",
      "updatedAt": "2026-07-20T09:12:00.000Z"
    }
  ],
  "pagination": { "page": 1, "pageSize": 100, "total": 1, "hasMore": false }
}
```

## Vorlage erstellen

`POST /api/v1/templates`

Speichert ein neues Design. Antwortet mit `201 Created`. Die Designfelder werden mit den Katalogen unter [Anpassung](https://docs.getqr.com/de/api/guides/customization.md) abgeglichen, sodass eine unbekannte Form, ein unbekannter Rahmen oder ein unbekanntes Logo mit `422` abgelehnt wird.

**name** `string` *required*

Name, der bei der Auswahl einer Vorlage angezeigt wird, 1 bis 40 Zeichen.

**styles** `object`

Formen und Farben von Punkten und Ecken. Siehe [Anpassung](https://docs.getqr.com/de/api/guides/customization.md).

**frameOptions** `object`

Rahmen um den QR-Code samt Text der Handlungsaufforderung. Siehe [Anpassung](https://docs.getqr.com/de/api/guides/customization.md).

**logoOptions** `object`

Logo in der Mitte: ein vorgeschlagenes Logo oder Ihre eigene Datei, hochgeladen mit dem Target `logo` von [Dateien](https://docs.getqr.com/de/api/endpoints/files.md). Siehe [Anpassung](https://docs.getqr.com/de/api/guides/customization.md).

```bash cURL theme={null}
curl -X POST "https://getqr.com/api/v1/templates" \
  -H "Authorization: Bearer $GETQR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Brand blue",
    "styles": {
      "dotsOptions": { "type": "rounded", "color": "#1E40AF" },
      "backgroundOptions": { "color": "#FFFFFF" }
    }
  }'
```

```json 201 theme={null}
{
  "id": "qrt_8Hs2mQvKpLd4RtYw",
  "name": "Brand blue",
  "designKind": "custom",
  "design": {
    "styles": {
      "dotsOptions": { "type": "rounded", "color": "#1E40AF" },
      "backgroundOptions": { "color": "#FFFFFF" }
    },
    "frameOptions": null,
    "logoOptions": null
  },
  "createdAt": "2026-07-20T09:12:00.000Z",
  "updatedAt": "2026-07-20T09:12:00.000Z"
}
```

## Vorlage abrufen

`GET /api/v1/templates/{templateId}`

**templateId** `string` *required*

ID der Vorlage. Nehmen Sie sie aus der Antwort der Liste oder der Erstellung.

```bash cURL theme={null}
curl "https://getqr.com/api/v1/templates/qrt_8Hs2mQvKpLd4RtYw" \
  -H "Authorization: Bearer $GETQR_API_KEY"
```

```json 200 theme={null}
{
  "id": "qrt_8Hs2mQvKpLd4RtYw",
  "name": "Brand blue",
  "designKind": "custom",
  "design": {
    "styles": {
      "dotsOptions": { "type": "rounded", "color": "#1E40AF" },
      "backgroundOptions": { "color": "#FFFFFF" }
    },
    "frameOptions": null,
    "logoOptions": null
  },
  "createdAt": "2026-07-20T09:12:00.000Z",
  "updatedAt": "2026-07-20T09:12:00.000Z"
}
```

## Vorlage aktualisieren

`PATCH /api/v1/templates/{templateId}`

Senden Sie nur die Felder, die Sie ändern möchten. Design-Objekte werden mit dem gespeicherten Design zusammengeführt, sodass ein unvollständiges `styles` den Rest beibehält. Bereits aus der Vorlage erstellte QR-Codes behalten das Design, mit dem sie erstellt wurden.

**templateId** `string` *required*

ID der Vorlage.

**name** `string`

Neuer Name, 1 bis 40 Zeichen.

**styles** `object`

Änderungen am Stil, zusammengeführt mit den gespeicherten `styles`.

**frameOptions** `object`

Änderungen am Rahmen, zusammengeführt mit dem gespeicherten Rahmen.

**logoOptions** `object`

Änderungen am Logo, zusammengeführt mit dem gespeicherten Logo.

```bash cURL theme={null}
curl -X PATCH "https://getqr.com/api/v1/templates/qrt_8Hs2mQvKpLd4RtYw" \
  -H "Authorization: Bearer $GETQR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Brand blue (2026)" }'
```

```json 200 theme={null}
{
  "id": "qrt_8Hs2mQvKpLd4RtYw",
  "name": "Brand blue (2026)",
  "designKind": "custom",
  "design": {
    "styles": {
      "dotsOptions": { "type": "rounded", "color": "#1E40AF" },
      "backgroundOptions": { "color": "#FFFFFF" }
    },
    "frameOptions": null,
    "logoOptions": null
  },
  "createdAt": "2026-07-20T09:12:00.000Z",
  "updatedAt": "2026-08-14T09:00:00.000Z"
}
```

## Vorlage löschen

`DELETE /api/v1/templates/{templateId}`

Löscht die Vorlage. Daraus erstellte QR-Codes behalten ihr Design.

**templateId** `string` *required*

ID der Vorlage.

```bash cURL theme={null}
curl -X DELETE "https://getqr.com/api/v1/templates/qrt_8Hs2mQvKpLd4RtYw" \
  -H "Authorization: Bearer $GETQR_API_KEY"
```

```json 200 theme={null}
{ "id": "qrt_8Hs2mQvKpLd4RtYw", "deleted": true }
```

## Vorlage duplizieren

`POST /api/v1/templates/{templateId}/duplicate`

Erstellt eine Kopie mit dem Namen `<name> copy`, mit eigener ID und einem unabhängigen Design, das Sie frei bearbeiten können. Erwartet keinen Anfrage-Body. Antwortet mit `201 Created`.

**templateId** `string` *required*

ID der zu kopierenden Vorlage.

```bash cURL theme={null}
curl -X POST "https://getqr.com/api/v1/templates/qrt_8Hs2mQvKpLd4RtYw/duplicate" \
  -H "Authorization: Bearer $GETQR_API_KEY"
```

```json 201 theme={null}
{
  "id": "qrt_2Kd9pLm4Xs7BnVcQ",
  "name": "Brand blue copy",
  "designKind": "custom",
  "design": {
    "styles": {
      "dotsOptions": { "type": "rounded", "color": "#1E40AF" },
      "backgroundOptions": { "color": "#FFFFFF" }
    },
    "frameOptions": null,
    "logoOptions": null
  },
  "createdAt": "2026-08-14T09:30:00.000Z",
  "updatedAt": "2026-08-14T09:30:00.000Z"
}
```

## Häufige Probleme

> [accordion] 404 "QR template not found."
>
> Die `templateId` passt zu keiner Vorlage in Ihrem Workspace. Nehmen Sie sie aus [Vorlagen auflisten](#vorlagen-auflisten).

> [accordion] 422 beim Erstellen oder Aktualisieren einer Vorlage
>
> Ein Designfeld passt nicht zu den Katalogen, zum Beispiel ein unbekannter Punkttyp, Rahmen oder ein unbekanntes vorgeschlagenes Logo. Die Meldung nennt das Feld. Siehe [Anpassung](https://docs.getqr.com/de/api/guides/customization.md).

> [accordion] 422 art\_template\_unsupported beim Erstellen eines QR-Codes
>
> Die Vorlage verwendet ein Branded design oder AI design. Wenden Sie stattdessen eine Vorlage mit `designKind` `custom` an.

## Wie geht es weiter?

> [card] [Anpassung](https://docs.getqr.com/de/api/guides/customization.md)

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

> [card] [Vorlagen in der App](https://docs.getqr.com/de/templates/save-template.md)

> [card] [Dateien](https://docs.getqr.com/de/api/endpoints/files.md)


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