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

# Maler

> Lagre gjenbrukbare QR-kodedesign og bruk dem på nye QR-koder.

> [!NOTE]
>
> GetQR API-et er i beta og er tilgjengelig for utvalgte arbeidsområder. Detaljer kan endres før den generelle lanseringen.

En mal lagrer et gjenbrukbart design: `styles`, `frameOptions` og `logoOptions`. Den inneholder aldri innhold eller en lenke. Maler deles av alle i arbeidsområdet.

| Metode | Bane | Beskrivelse |
| - | - | - |
| `GET` | `/api/v1/templates` | [Vis maler](#vis-maler) |
| `POST` | `/api/v1/templates` | [Opprett en mal](#opprett-en-mal) |
| `GET` | `/api/v1/templates/{templateId}` | [Hent en mal](#hent-en-mal) |
| `PATCH` | `/api/v1/templates/{templateId}` | [Oppdater en mal](#oppdater-en-mal) |
| `DELETE` | `/api/v1/templates/{templateId}` | [Slett en mal](#slett-en-mal) |
| `POST` | `/api/v1/templates/{templateId}/duplicate` | [Dupliser en mal](#dupliser-en-mal) |

## Bruk en mal

Send `templateId` når du [oppretter en QR-kode](https://docs.getqr.com/no/api/endpoints/qr-codes.md). Malens design brukes på den nye QR-koden. De av de tre designobjektene du sender i samme forespørsel, flettes oppå det.

* **Kopiert, ikke koblet.** QR-koden beholder sin egen kopi av designet. Redigerer eller sletter du malen senere, endres ikke QR-koden.
* **Bare egendefinerte design.** En mal med `designKind` `branded` eller `ai` kan ikke brukes via API-et og returnerer `422` (`art_template_unsupported`).
* **Bare ditt arbeidsområde.** En ukjent mal, eller en fra et annet arbeidsområde, returnerer `404`.

## Headere

**Authorization** `string` *required*

`Bearer` etterfulgt av API-nøkkelen din. Se [Autentisering](https://docs.getqr.com/no/api/authentication.md).

**Content-Type** `string`

`application/json`. Påkrevd ved forespørsler med body.

## Malobjektet

**id** `string`

ID-en til malen, for eksempel `qrt_8Hs2mQvKpLd4RtYw`.

**name** `string`

Navnet som vises når du velger mal.

**designKind** `string`

Skrivebeskyttet. `custom` er et design som API-et kan redigere fullt ut. `branded` og `ai` er et Branded design eller AI design laget i dashbordet: bildet kan ikke redigeres via API-et, og det beholdes når du endrer de andre designfeltene.

**design** `object`

Det lagrede designet. Hvert felt har samme form som feltet med samme navn i forespørselen, så du kan sende det tilbake.

**properties**

**styles** `object | null`

Former og farger på prikker og hjørner.

**frameOptions** `object | null`

Rammen rundt QR-koden og teksten for handlingsoppfordringen.

**logoOptions** `object | null`

Logo i midten.

**createdAt** `string`

Opprettelsesdato, ISO 8601.

**updatedAt** `string`

Dato for siste oppdatering, ISO 8601.

## Vis maler

`GET /api/v1/templates`

Returnerer malene i arbeidsområdet ditt, med de nyeste først. Listen er paginert: se [Paginering](https://docs.getqr.com/no/api/introduction.md#paginering).

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

Siden som skal returneres, 1 eller høyere.

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

Resultater per side, 1 til 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 }
}
```

## Opprett en mal

`POST /api/v1/templates`

Lagrer et nytt design. Svarer `201 Created`. Designfeltene kontrolleres mot katalogene i [Tilpasning](https://docs.getqr.com/no/api/guides/customization.md), så en ukjent form, ramme eller logo avvises med `422`.

**name** `string` *required*

Navnet som vises når du velger mal, 1 til 40 tegn.

**styles** `object`

Former og farger på prikker og hjørner. Se [Tilpasning](https://docs.getqr.com/no/api/guides/customization.md).

**frameOptions** `object`

Rammen rundt QR-koden og teksten for handlingsoppfordringen. Se [Tilpasning](https://docs.getqr.com/no/api/guides/customization.md).

**logoOptions** `object`

Logo i midten: en foreslått logo, eller din egen fil lastet opp med target `logo` i [Filer](https://docs.getqr.com/no/api/endpoints/files.md). Se [Tilpasning](https://docs.getqr.com/no/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"
}
```

## Hent en mal

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

**templateId** `string` *required*

ID-en til malen. Hent den fra svaret på listen eller opprettelsen.

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

## Oppdater en mal

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

Send bare feltene du vil endre. Designobjekter flettes inn i det lagrede designet, så en delvis `styles` beholder resten. QR-koder som allerede er opprettet fra malen, beholder designet de ble laget med.

**templateId** `string` *required*

ID-en til malen.

**name** `string`

Nytt navn, 1 til 40 tegn.

**styles** `object`

Stilendringer, flettet inn i den lagrede `styles`.

**frameOptions** `object`

Rammeendringer, flettet inn i den lagrede rammen.

**logoOptions** `object`

Logoendringer, flettet inn i den lagrede logoen.

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

## Slett en mal

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

Sletter malen. QR-koder som er opprettet fra den, beholder designet sitt.

**templateId** `string` *required*

ID-en til malen.

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

## Dupliser en mal

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

Oppretter en kopi med navnet `<name> copy`, med egen ID og et uavhengig design som du kan redigere fritt. Tar ingen body. Svarer `201 Created`.

**templateId** `string` *required*

ID-en til malen som skal kopieres.

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

## Vanlige problemer

> [accordion] 404 "QR template not found."
>
> `templateId` samsvarer ikke med en mal i arbeidsområdet ditt. Hent den fra [Vis maler](#vis-maler).

> [accordion] 422 når jeg oppretter eller oppdaterer en mal
>
> Et designfelt samsvarer ikke med katalogene, for eksempel en ukjent prikktype, ramme eller foreslått logo. Meldingen navngir feltet. Se [Tilpasning](https://docs.getqr.com/no/api/guides/customization.md).

> [accordion] 422 art\_template\_unsupported når jeg oppretter en QR-kode
>
> Malen bruker et Branded design eller AI design. Bruk i stedet en mal med `designKind` `custom`.

## Neste steg

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

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

> [card] [Maler i appen](https://docs.getqr.com/no/templates/save-template.md)

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


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