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

# Plantillas

> Guarda diseños de códigos QR reutilizables y aplícalos a códigos QR nuevos.

> [!NOTE]
>
> La API de GetQR está en beta y solo está disponible para algunos espacios de trabajo. Los detalles pueden cambiar antes del lanzamiento general.

Una plantilla guarda un diseño reutilizable: `styles`, `frameOptions` y `logoOptions`. Nunca incluye contenido ni un enlace. Las plantillas se comparten con todo el espacio de trabajo.

| Método | Ruta | Descripción |
| - | - | - |
| `GET` | `/api/v1/templates` | [Listar plantillas](#listar-plantillas) |
| `POST` | `/api/v1/templates` | [Crear una plantilla](#crear-una-plantilla) |
| `GET` | `/api/v1/templates/{templateId}` | [Obtener una plantilla](#obtener-una-plantilla) |
| `PATCH` | `/api/v1/templates/{templateId}` | [Actualizar una plantilla](#actualizar-una-plantilla) |
| `DELETE` | `/api/v1/templates/{templateId}` | [Eliminar una plantilla](#eliminar-una-plantilla) |
| `POST` | `/api/v1/templates/{templateId}/duplicate` | [Duplicar una plantilla](#duplicar-una-plantilla) |

## Aplicar una plantilla

Pasa `templateId` al [crear un código QR](https://docs.getqr.com/es/api/endpoints/qr-codes.md). El diseño de la plantilla se aplica al nuevo código QR. Los objetos de diseño que envíes en la misma solicitud se combinan sobre él.

* **Copiado, no vinculado.** El código QR guarda su propia copia del diseño. Editar o eliminar la plantilla más tarde no lo cambia.
* **Solo diseños personalizados.** Una plantilla con `designKind` `branded` o `ai` no se puede aplicar con la API y devuelve `422` (`art_template_unsupported`).
* **Solo tu espacio de trabajo.** Una plantilla desconocida, o de otro espacio de trabajo, devuelve `404`.

## Cabeceras

**Authorization** `string` *required*

`Bearer` seguido de tu clave de API. Consulta [Autenticación](https://docs.getqr.com/es/api/authentication.md).

**Content-Type** `string`

`application/json`. Obligatorio en las solicitudes con cuerpo.

## El objeto de plantilla

**id** `string`

ID de la plantilla, por ejemplo `qrt_8Hs2mQvKpLd4RtYw`.

**name** `string`

Nombre que se muestra al elegir una plantilla.

**designKind** `string`

Solo lectura. `custom` es un diseño que la API puede editar por completo. `branded` y `ai` son un Branded design o un AI design creado en el panel: su imagen no se puede editar con la API y se conserva cuando cambias los demás campos de diseño.

**design** `object`

El diseño guardado. Cada campo tiene la misma forma que el campo de la solicitud con el mismo nombre, así que puedes volver a enviarlo.

**properties**

**styles** `object | null`

Formas y colores de los puntos y las esquinas.

**frameOptions** `object | null`

Marco alrededor del código QR y su texto de llamada a la acción.

**logoOptions** `object | null`

Logotipo en el centro.

**createdAt** `string`

Fecha de creación, ISO 8601.

**updatedAt** `string`

Fecha de la última actualización, ISO 8601.

## Listar plantillas

`GET /api/v1/templates`

Devuelve las plantillas de tu espacio de trabajo, de la más reciente a la más antigua. La lista está paginada: consulta [Paginación](https://docs.getqr.com/es/api/introduction.md#paginación).

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

Página que se devuelve, 1 o más.

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

Resultados por página, de 1 a 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 }
}
```

## Crear una plantilla

`POST /api/v1/templates`

Guarda un diseño nuevo. Responde `201 Created`. Los campos de diseño se validan con los catálogos de [Personalización](https://docs.getqr.com/es/api/guides/customization.md), así que una forma, un marco o un logotipo desconocido se rechaza con `422`.

**name** `string` *required*

Nombre que se muestra al elegir una plantilla, de 1 a 40 caracteres.

**styles** `object`

Formas y colores de los puntos y las esquinas. Consulta [Personalización](https://docs.getqr.com/es/api/guides/customization.md).

**frameOptions** `object`

Marco dibujado alrededor del código QR y su texto de llamada a la acción. Consulta [Personalización](https://docs.getqr.com/es/api/guides/customization.md).

**logoOptions** `object`

Logotipo colocado en el centro: un logotipo sugerido o tu propio archivo subido con el target `logo` de [Archivos](https://docs.getqr.com/es/api/endpoints/files.md). Consulta [Personalización](https://docs.getqr.com/es/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"
}
```

## Obtener una plantilla

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

**templateId** `string` *required*

ID de la plantilla. Tómalo de la respuesta del listado o de la creación.

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

## Actualizar una plantilla

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

Envía solo los campos que quieras cambiar. Los objetos de diseño se combinan con el diseño guardado, así que un `styles` parcial conserva el resto. Los códigos QR ya creados a partir de la plantilla conservan el diseño con el que se crearon.

**templateId** `string` *required*

ID de la plantilla.

**name** `string`

Nombre nuevo, de 1 a 40 caracteres.

**styles** `object`

Cambios de estilo, que se combinan con el `styles` guardado.

**frameOptions** `object`

Cambios del marco, que se combinan con el marco guardado.

**logoOptions** `object`

Cambios del logotipo, que se combinan con el logotipo guardado.

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

## Eliminar una plantilla

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

Elimina la plantilla. Los códigos QR creados a partir de ella conservan su diseño.

**templateId** `string` *required*

ID de la plantilla.

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

## Duplicar una plantilla

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

Crea una copia llamada `<name> copy`, con su propio ID y un diseño independiente que puedes editar libremente. No lleva cuerpo de solicitud. Responde `201 Created`.

**templateId** `string` *required*

ID de la plantilla que se copia.

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

## Problemas habituales

> [accordion] 404 "QR template not found."
>
> El `templateId` no coincide con ninguna plantilla de tu espacio de trabajo. Tómalo de [Listar plantillas](#listar-plantillas).

> [accordion] 422 al crear o actualizar una plantilla
>
> Un campo de diseño no coincide con los catálogos, por ejemplo un tipo de punto, un marco o un logotipo sugerido desconocido. El mensaje indica el campo. Consulta [Personalización](https://docs.getqr.com/es/api/guides/customization.md).

> [accordion] 422 art\_template\_unsupported al crear un código QR
>
> La plantilla usa un Branded design o un AI design. Aplica en su lugar una plantilla con `designKind` `custom`.

## Siguientes pasos

> [card] [Personalización](https://docs.getqr.com/es/api/guides/customization.md)

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

> [card] [Plantillas en la app](https://docs.getqr.com/es/templates/save-template.md)

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


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