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

# Modèles

> Enregistrez des designs de QR codes réutilisables et appliquez-les à de nouveaux QR codes.

> [!NOTE]
>
> L'API GetQR est en version bêta et réservée à certains espaces de travail. Certains détails peuvent changer avant la disponibilité générale.

Un modèle stocke un design réutilisable : `styles`, `frameOptions` et `logoOptions`. Il ne contient jamais de contenu ni de lien. Les modèles sont partagés par tous les membres de l'espace de travail.

| Méthode | Chemin | Description |
| - | - | - |
| `GET` | `/api/v1/templates` | [Lister les modèles](#lister-les-modèles) |
| `POST` | `/api/v1/templates` | [Créer un modèle](#créer-un-modèle) |
| `GET` | `/api/v1/templates/{templateId}` | [Récupérer un modèle](#récupérer-un-modèle) |
| `PATCH` | `/api/v1/templates/{templateId}` | [Modifier un modèle](#modifier-un-modèle) |
| `DELETE` | `/api/v1/templates/{templateId}` | [Supprimer un modèle](#supprimer-un-modèle) |
| `POST` | `/api/v1/templates/{templateId}/duplicate` | [Dupliquer un modèle](#dupliquer-un-modèle) |

## Appliquer un modèle

Transmettez `templateId` quand vous [créez un QR code](https://docs.getqr.com/fr/api/endpoints/qr-codes.md). Le design du modèle est appliqué au nouveau QR code. Chacun des trois objets de design que vous envoyez dans la même requête est fusionné par-dessus.

* **Copié, pas lié.** Le QR code conserve sa propre copie du design. Modifier ou supprimer le modèle par la suite ne le change pas.
* **Designs personnalisés uniquement.** Un modèle dont le `designKind` vaut `branded` ou `ai` ne peut pas être appliqué via l'API et renvoie `422` (`art_template_unsupported`).
* **Votre espace de travail uniquement.** Un modèle inconnu, ou provenant d'un autre espace de travail, renvoie `404`.

## En-têtes

**Authorization** `string` *required*

`Bearer` suivi de votre clé API. Consultez [Authentification](https://docs.getqr.com/fr/api/authentication.md).

**Content-Type** `string`

`application/json`. Obligatoire pour les requêtes avec un corps.

## L'objet modèle

**id** `string`

ID du modèle, par exemple `qrt_8Hs2mQvKpLd4RtYw`.

**name** `string`

Nom affiché au moment de choisir un modèle.

**designKind** `string`

Lecture seule. `custom` est un design que l'API peut modifier entièrement. `branded` et `ai` sont un Branded design ou un AI design créé dans le tableau de bord : son image ne peut pas être modifiée via l'API, et elle est conservée quand vous modifiez les autres champs de design.

**design** `object`

Le design enregistré. Chaque champ a la même structure que le champ de requête du même nom : vous pouvez donc le renvoyer tel quel.

**properties**

**styles** `object | null`

Formes et couleurs des points et des coins.

**frameOptions** `object | null`

Cadre autour du QR code et son texte d'appel à l'action.

**logoOptions** `object | null`

Logo au centre.

**createdAt** `string`

Date de création, ISO 8601.

**updatedAt** `string`

Date de dernière mise à jour, ISO 8601.

## Lister les modèles

`GET /api/v1/templates`

Renvoie les modèles de votre espace de travail, du plus récent au plus ancien. La liste est paginée : consultez [Pagination](https://docs.getqr.com/fr/api/introduction.md#pagination).

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

Page à renvoyer, 1 ou plus.

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

Résultats par page, de 1 à 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 }
}
```

## Créer un modèle

`POST /api/v1/templates`

Enregistre un nouveau design. Répond `201 Created`. Les champs de design sont vérifiés par rapport aux catalogues de [Personnalisation](https://docs.getqr.com/fr/api/guides/customization.md) : une forme, un cadre ou un logo inconnu est donc refusé avec `422`.

**name** `string` *required*

Nom affiché au moment de choisir un modèle, de 1 à 40 caractères.

**styles** `object`

Formes et couleurs des points et des coins. Consultez [Personnalisation](https://docs.getqr.com/fr/api/guides/customization.md).

**frameOptions** `object`

Cadre dessiné autour du QR code et son texte d'appel à l'action. Consultez [Personnalisation](https://docs.getqr.com/fr/api/guides/customization.md).

**logoOptions** `object`

Logo placé au centre : un logo suggéré, ou votre propre fichier importé avec la cible `logo` de [Fichiers](https://docs.getqr.com/fr/api/endpoints/files.md). Consultez [Personnalisation](https://docs.getqr.com/fr/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"
}
```

## Récupérer un modèle

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

**templateId** `string` *required*

ID du modèle. Récupérez-le dans la réponse de liste ou de création.

```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"
}
```

## Modifier un modèle

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

N'envoyez que les champs à modifier. Les objets de design sont fusionnés avec le design enregistré : un `styles` partiel conserve donc le reste. Les QR codes déjà créés à partir du modèle gardent le design avec lequel ils ont été créés.

**templateId** `string` *required*

ID du modèle.

**name** `string`

Nouveau nom, de 1 à 40 caractères.

**styles** `object`

Modifications de style, fusionnées avec les `styles` enregistrés.

**frameOptions** `object`

Modifications du cadre, fusionnées avec le cadre enregistré.

**logoOptions** `object`

Modifications du logo, fusionnées avec le logo enregistré.

```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"
}
```

## Supprimer un modèle

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

Supprime le modèle. Les QR codes créés à partir de celui-ci conservent leur design.

**templateId** `string` *required*

ID du modèle.

```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 }
```

## Dupliquer un modèle

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

Crée une copie nommée `<name> copy`, avec son propre ID et un design indépendant que vous pouvez modifier librement. Pas de corps de requête. Répond `201 Created`.

**templateId** `string` *required*

ID du modèle à copier.

```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"
}
```

## Problèmes courants

> [accordion] 404 "QR template not found."
>
> Le `templateId` ne correspond à aucun modèle de votre espace de travail. Récupérez-le avec [Lister les modèles](#lister-les-modèles).

> [accordion] 422 lors de la création ou de la modification d'un modèle
>
> Un champ de design ne correspond pas aux catalogues, par exemple un type de point, un cadre ou un logo suggéré inconnu. Le message indique le champ. Consultez [Personnalisation](https://docs.getqr.com/fr/api/guides/customization.md).

> [accordion] 422 art\_template\_unsupported lors de la création d'un QR code
>
> Le modèle utilise un Branded design ou un AI design. Appliquez plutôt un modèle dont le `designKind` vaut `custom`.

## Et ensuite

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

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

> [card] [Modèles dans l'application](https://docs.getqr.com/fr/templates/save-template.md)

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


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