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

# QR-koder

> Opprett, vis, oppdater, sett på pause, dupliser, slett og last ned 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 QR-kode i GetQR er bildet pluss en kortlenke som den løses gjennom. Når du oppretter en QR-kode, opprettes også kortlenken, så du kan endre målet senere uten å trykke koden på nytt.

| Metode | Bane | Beskrivelse |
| - | - | - |
| `GET` | `/api/v1/qrs` | [Vis QR-koder](#vis-qr-koder) |
| `POST` | `/api/v1/qrs` | [Opprett en QR-kode](#opprett-en-qr-kode) |
| `GET` | `/api/v1/qrs/{qrId}` | [Hent en QR-kode](#hent-en-qr-kode) |
| `PATCH` | `/api/v1/qrs/{qrId}` | [Oppdater en QR-kode](#oppdater-en-qr-kode) |
| `PUT` | `/api/v1/qrs/{qrId}` | [Angi pausestatus](#angi-pausestatus) |
| `POST` | `/api/v1/qrs/{qrId}/pause` | [Sett en QR-kode på pause](#sett-en-qr-kode-på-pause) |
| `POST` | `/api/v1/qrs/{qrId}/activate` | [Reaktiver en QR-kode](#reaktiver-en-qr-kode) |
| `POST` | `/api/v1/qrs/{qrId}/duplicate` | [Dupliser en QR-kode](#dupliser-en-qr-kode) |
| `DELETE` | `/api/v1/qrs/{qrId}` | [Slett en QR-kode](#slett-en-qr-kode) |
| `GET` | `/api/v1/qrs/{qrId}/download` | [Last ned et QR-kodebilde](#last-ned-et-qr-kodebilde) |

> [card] [QR-kodedata per type](https://docs.getqr.com/no/api/guides/qr-types.md)
>
> `data`-formatet for hver av de 16 typene.

> [card] [Tilpasning](https://docs.getqr.com/no/api/guides/customization.md)
>
> Prikkstiler, farger, rammer og logoer.

> [card] [Tilgangsregler](https://docs.getqr.com/no/api/guides/access-rules.md)
>
> Tidsplan, skannegrense og passord.

Se [Analyse](https://docs.getqr.com/no/api/endpoints/analytics.md) for skannestatistikk for en QR-kode.

## QR-kodeobjektet

Alle QR-kode-endepunkter svarer med dette objektet, unntatt [Slett](#slett-en-qr-kode) og [Last ned](#last-ned-et-qr-kodebilde). Listen returnerer en matrise av dem.

**id** `string`

Unik ID for QR-koden, for eksempel `qr_1EPcVfeHZAY2iNoVLsgW2Aqf`.

**qrType** `string`

QR-kodetype, for eksempel `website`. Se [QR-kodedata per type](https://docs.getqr.com/no/api/guides/qr-types.md) for alle 16 verdiene.

**title** `string | null`

Navnet på QR-koden, som vises i dashbordet.

**description** `string | null`

Fritt notat om QR-koden.

**data** `string`

Den lagrede payloaden. For `wifi`, `vcard`, `social`, `multilink`, `event` og `sms` er det payloaden du sendte. For alle andre typer er det kortlenken, så les målet fra `url`.

**archived** `boolean`

`true` når QR-koden er satt på pause.

**isStatic** `boolean`

`true` for en statisk QR-kode laget i dashbordet, som ikke har noen kortlenke. API-et oppretter alltid dynamiske QR-koder.

**shortLink** `string | null`

Hele kortlenken, for eksempel `https://getqr.sh/x7Kd2p1`.

**domain** `string | null`

Domenet til kortlenken.

**key** `string | null`

Slugen til kortlenken.

**keyIsCustom** `boolean`

`true` når slugen er valgt i stedet for generert.

**url** `string | null`

Målet kortlenken videresender til.

**ios** `string | null`

Mål for besøkende på iOS, for `app`-QR-koder.

**android** `string | null`

Mål for besøkende på Android, for `app`-QR-koder.

**scans** `integer`

Totalt antall skanninger.

**access** `object`

Tilgangsregler. Selve passordet returneres aldri. Se [Tilgangsregler](https://docs.getqr.com/no/api/guides/access-rules.md).

**properties**

**passwordProtected** `boolean`

Om besøkende må skrive inn et passord.

**activeAt** `string | null`

Planlagt start, ISO 8601.

**pauseAt** `string | null`

Planlagt slutt, ISO 8601.

**scanLimit** `integer | null`

Maksimalt antall skanninger.

**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. API-et kan ikke redigere bildet, men beholder det når du endrer andre felt.

**design** `object`

Det lagrede designet: `styles`, `frameOptions` og `logoOptions`, hver et objekt eller `null`. De har samme form som feltene i forespørselen, så du kan sende dem tilbake. Se [Tilpasning](https://docs.getqr.com/no/api/guides/customization.md).

**file** `object | null`

Filen til en `pdf`-, `image`- eller `video`-QR-kode: `id`, `name` og `size` i byte.

**appName** `string | null`

Skrivebeskyttet. Visningsnavnet til en `app`-QR-kode laget i dashbordet.

**pdfBundle** `object | null`

Skrivebeskyttet. En `pdf`-QR-kode med flere filer, laget i dashbordet: `title`, `layout` og `files`.

**imageGallery** `object | null`

Skrivebeskyttet. En `image`-QR-kode med flere bilder, laget i dashbordet: `title`, `layout` og `files`.

**createdAt** `string`

Opprettelsesdato, ISO 8601.

**updatedAt** `string`

Dato for siste oppdatering, ISO 8601.

Hemmeligheter og interne ID-er (`password`, `userId`, `workspaceId`, `projectId`) returneres aldri.

```json theme={null}
{
  "id": "qr_1EPcVfeHZAY2iNoVLsgW2Aqf",
  "qrType": "website",
  "title": "Landing page",
  "description": null,
  "data": "https://getqr.sh/x7Kd2p1",
  "archived": false,
  "isStatic": false,
  "shortLink": "https://getqr.sh/x7Kd2p1",
  "domain": "getqr.sh",
  "key": "x7Kd2p1",
  "keyIsCustom": false,
  "url": "https://example.com",
  "ios": null,
  "android": null,
  "scans": 128,
  "access": {
    "passwordProtected": false,
    "activeAt": null,
    "pauseAt": null,
    "scanLimit": null
  },
  "designKind": "custom",
  "design": {
    "styles": { "dotsOptions": { "type": "rounded", "color": "#1E40AF" }, … },
    "frameOptions": { "id": "card", "text": "Scan me!", … },
    "logoOptions": { "type": "suggested", "id": "logo-website-3", "scalePercent": 25 }
  },
  "file": null,
  "appName": null,
  "pdfBundle": null,
  "imageGallery": null,
  "createdAt": "2026-08-01T10:00:00.000Z",
  "updatedAt": "2026-08-01T10:00:00.000Z"
}
```

## Vis QR-koder

`GET /api/v1/qrs`

Returnerer QR-kodene i arbeidsområdet ditt, én side om gangen.

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

Siden som skal returneres, 1 eller høyere.

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

QR-koder per side, fra 1 til 100. En større verdi avvises.

**search** `string`

Søker i tittelen på QR-koden. Søk på mer enn 2 tegn søker også i den lagrede `data`. For lenketyper er den lagrede `data` kortlenken, så det går ikke an å søke på mål-URL-er.

**sortBy** `string` (default: createdAt)

Feltet det sorteres etter: `createdAt`, `updatedAt`, `clicks` (totalt antall skanninger), `lastClicked` (siste skanning) eller `type`. `type` sorterer alltid synkende og ignorerer `sortOrder`.

**sortOrder** `string` (default: desc)

Sorteringsretning: `asc` eller `desc`.

**showArchived** `boolean` (default: false)

Ta med QR-koder som er satt på pause.

**onlyArchived** `boolean` (default: false)

Returner bare QR-koder som er satt på pause. Går foran `showArchived`.

Boolske parametere tar strengene `true` eller `false`. Be om neste side så lenge `pagination.hasMore` er `true`. Se [Paginering](https://docs.getqr.com/no/api/introduction.md#paginering).

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

```json 200 theme={null}
{
  "data": [
    {
      "id": "qr_1EPcVfeHZAY2iNoVLsgW2Aqf",
      "qrType": "website",
      "title": "Landing page",
      "shortLink": "https://getqr.sh/x7Kd2p1",
      "url": "https://example.com",
      "scans": 128,
      "…": "…"
    }
  ],
  "pagination": { "page": 1, "pageSize": 100, "total": 1, "hasMore": false }
}
```

## Opprett en QR-kode

`POST /api/v1/qrs`

Oppretter en QR-kode og kortlenken samtidig. Svarer `201 Created` med den nye [QR-koden](#qr-kodeobjektet).

**Idempotency-Key** `string`

Ditt eget token for nye forsøk. Gjentar du forespørselen med samme nøkkel innen 24 timer, returneres det opprinnelige svaret i stedet for at det opprettes en ny QR-kode. Se [Nye forsøk og duplikater](#nye-forsøk-og-duplikater).

**qrType** `string` *required*

Hva QR-koden koder. Den bestemmer også formatet `data` må ha. En av `website`, `pdf`, `image`, `video`, `whatsapp`, `social`, `wifi`, `app`, `feedback`, `vcard`, `sms`, `payment`, `location`, `multilink`, `email`, `event`.

**data** `string` *required*

Typens payload, kontrollert mot `qrType`. En tom streng hopper over kontrollen. Formatet for hver type står i [QR-kodedata per type](https://docs.getqr.com/no/api/guides/qr-types.md).

**link** `object`

Kortlenken som QR-koden løses gjennom. Valgfritt: utelates den, følger `link.url` verdien i `data`.

**properties**

**url** `string`

Målet kortlenken videresender til. Utelates eller er den tom, er standard `data`. Når begge sendes og er ulike, vinner `link.url`. `vcard`-, `social`-, `multilink`- og `event`-QR-koder peker alltid mot den hostede siden sin, og `pdf`-, `image`- og `video`-QR-koder med en `fileId` mot filen. Godtatte skjemaer: `http:`, `https:`, `wifi:`, `mailto:`, `sms:`, `begin:`.

**domain** `string`

Domenet til kortlenken. Det må være et aktivt domene i arbeidsområdet ditt: et annet domene gir `403`, og et domene som ikke er aktivt ennå, gir `422`. Standard er arbeidsområdets standarddomene.

**key** `string`

Slugen til kortlenken, 3 til 15 tegn, lagret med små bokstaver. En slug som ikke er tillatt, gir `422`, og en som er tatt, gir `409`. En tilfeldig slug på 7 tegn genereres når den utelates.

**ios** `string | null`

Mål-URL for besøkende på iOS, for `app`-QR-koder.

**android** `string | null`

Mål-URL for besøkende på Android, for `app`-QR-koder.

**title** `string | null`

Tittel for lenkeforhåndsvisning (`og:title`), lagret på kortlenken. Ikke det samme som QR-kodens egen `title`. Ingenting viser den ennå.

**description** `string | null`

Beskrivelse for lenkeforhåndsvisning (`og:description`), lagret på kortlenken. Ingenting viser den ennå.

**expiresAt, expiredUrl** `—`

Ikke tilgjengelig i dette API-et: sender du en av dem, får du `422`. Bruk `access.pauseAt` for å stoppe QR-koden på et bestemt tidspunkt.

**title** `string`

Navnet på QR-koden, som vises i dashbordet. Mellomrom i starten og slutten fjernes, 1 til 40 tegn. Utelates den, får QR-koden ingen tittel.

**description** `string`

Fritt notat om QR-koden. Opptil 280 tegn.

**fileId** `string`

Filen til en `pdf`-, `image`- eller `video`-QR-kode, lastet opp med tilsvarende target. For `vcard`, `social` og `multilink` et valgfritt profilbilde lastet opp med target `logo`. `event` godtar den også, men siden leser forsidebildet fra `data.fileId`. Andre typer gir `422`. Last først opp filen med [Filer](https://docs.getqr.com/no/api/endpoints/files.md). Se [Filer i QR-koder](https://docs.getqr.com/no/api/guides/qr-types.md#filer-i-qr-koder).

**templateId** `string`

[Mal](https://docs.getqr.com/no/api/endpoints/templates.md) der designet brukes på den nye QR-koden. Designfelt du sender, flettes oppå det. En mal med Branded design eller AI design gir `422` (`art_template_unsupported`). En ukjent mal, eller en fra et annet arbeidsområde, gir `404`.

**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`. En ukjent fil, en ufullført opplasting eller en fil fra et annet target avvises. Se [Tilpasning](https://docs.getqr.com/no/api/guides/customization.md).

**access** `object`

Tidsplan, skannegrense og passordbeskyttelse. Se [Tilgangsregler](https://docs.getqr.com/no/api/guides/access-rules.md).

**properties**

**activeAt** `string | null`

Planlagt start, ISO 8601.

**pauseAt** `string | null`

Planlagt slutt, ISO 8601.

**scanLimit** `integer | null`

Maksimalt antall skanninger, et positivt heltall.

**password** `string | null`

Passordet besøkende må skrive inn. Når du sender det, slås beskyttelsen på.

**passwordProtected** `boolean`

Slår beskyttelsen av eller på igjen og beholder det lagrede passordet.

**archived** `boolean`

Om QR-koden er satt på pause. `true` oppretter den på pause: skanninger viser pausesiden i stedet for målet.

Ukjente felt forkastes uten feil. Se [Ikke støttet via API-et](https://docs.getqr.com/no/api/guides/qr-types.md#ikke-støttet-via-api-et).

```bash cURL 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: landing-page-2026-08" \
  -d '{
    "qrType": "website",
    "data": "https://example.com",
    "title": "Landing page",
    "access": { "scanLimit": 500 }
  }'
```

```json 201 theme={null}
{
  "id": "qr_1EPcVfeHZAY2iNoVLsgW2Aqf",
  "qrType": "website",
  "title": "Landing page",
  "data": "https://getqr.sh/x7Kd2p1",
  "shortLink": "https://getqr.sh/x7Kd2p1",
  "url": "https://example.com",
  "scans": 0,
  "access": { "passwordProtected": false, "activeAt": null, "pauseAt": null, "scanLimit": 500 },
  "…": "…"
}
```

### Nye forsøk og duplikater

* **Med nøkkel.** Med en `Idempotency-Key`-header spilles svaret av på nytt i 24 timer.
* **Uten nøkkel.** En identisk body som sendes innen 30 sekunder, behandles som et duplikat.
* **Gjentatte svar.** Et gjentatt svar returnerer det lagrede svaret med `x-idempotent-replay: true`. En ny QR-kode returnerer `false`.
* **Pågående.** En ny forespørsel mens den første fortsatt kjører, får `409 conflict`.
* **Feil.** En mislykket oppretting frigjør nøkkelen med en gang, så du kan prøve igjen med samme nøkkel.
* **Etter beste evne.** Hvis beskyttelsen ikke er tilgjengelig, går opprettinger gjennom uten beskyttelse.

Se også [Idempotens](https://docs.getqr.com/no/api/introduction.md#idempotens).

## Hent en QR-kode

`GET /api/v1/qrs/{qrId}`

Returnerer en [QR-kode](#qr-kodeobjektet) med kortlenke, tilgangsregler, design og, for filbaserte typer, filen.

**qrId** `string` *required*

ID-en til QR-koden, fra svaret på listen eller opprettelsen.

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

Svaret er hele [QR-kodeobjektet](#qr-kodeobjektet).

## Oppdater en QR-kode

`PATCH /api/v1/qrs/{qrId}`

Endrer innhold, mål, design eller tilgangsregler for en QR-kode. Send bare feltene du vil endre. Svarer med den oppdaterte [QR-koden](#qr-kodeobjektet).

**qrId** `string` *required*

ID-en til QR-koden.

Body tar de samme feltene som [Opprett en QR-kode](#opprett-en-qr-kode), alle valgfrie, med disse forskjellene:

* **`templateId`.** Godtas ikke.
* **`link`.** Delvis. Det nåværende målet beholdes når du utelater `link.url`. `link.domain` og `link.key` gir `422`: kortlenken er det den trykte koden koder, så opprett en ny QR-kode for å bruke en annen.
* **`data`.** Kontrolleres mot den resulterende typen bare når `data` eller `qrType` endres. Bytte av `qrType` uten passende `data` avvises. Se [Bytte type](https://docs.getqr.com/no/api/guides/qr-types.md#bytte-type).
* **Design.** `styles`, `frameOptions` og `logoOptions` flettes inn i det lagrede designet, så et delvis objekt endrer bare det det nevner. Velger du en annen logo, erstattes den, men størrelsen beholdes.
* **`access`.** Hver nøkkel brukes når den finnes. `null` fjerner en regel. Tilgangsregler hører hjemme under `access`: sender du dem under `link`, får du `422`.
* **`archived`.** Setter QR-koden og kortlenken på pause eller reaktiverer dem samlet, akkurat som [Pause](#sett-en-qr-kode-på-pause) og [Reaktiver](#reaktiver-en-qr-kode).

```bash cURL theme={null}
curl -X PATCH "https://getqr.com/api/v1/qrs/qr_1EPcVfeHZAY2iNoVLsgW2Aqf" \
  -H "Authorization: Bearer $GETQR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Autumn campaign",
    "access": { "password": "s3cr3t", "passwordProtected": true }
  }'
```

```json 200 theme={null}
{
  "id": "qr_1EPcVfeHZAY2iNoVLsgW2Aqf",
  "title": "Autumn campaign",
  "access": { "passwordProtected": true, "activeAt": null, "pauseAt": null, "scanLimit": null },
  "…": "…"
}
```

Hva du kan endre etter trykk for hver type, står i [QR-kodedata per type](https://docs.getqr.com/no/api/guides/qr-types.md).

## Angi pausestatus

`PUT /api/v1/qrs/{qrId}`

Angir pausestatusen direkte. [Pause](#sett-en-qr-kode-på-pause) og [Reaktiver](#reaktiver-en-qr-kode) gjør det samme og er tydeligere å lese.

**qrId** `string` *required*

ID-en til QR-koden.

**archived** `boolean` *required*

`true` for å sette QR-koden på pause, `false` for å reaktivere den.

```bash cURL theme={null}
curl -X PUT "https://getqr.com/api/v1/qrs/qr_1EPcVfeHZAY2iNoVLsgW2Aqf" \
  -H "Authorization: Bearer $GETQR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "archived": true }'
```

```json 200 theme={null}
{
  "id": "qr_1EPcVfeHZAY2iNoVLsgW2Aqf",
  "archived": true,
  "…": "…"
}
```

## Sett en QR-kode på pause

`POST /api/v1/qrs/{qrId}/pause`

Hindrer QR-koden i å løses til målet: skanninger viser pausesiden i stedet. Den trykte koden og kortlenken forblir gyldige. Ingen body.

**qrId** `string` *required*

ID-en til QR-koden.

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

```json 200 theme={null}
{
  "id": "qr_1EPcVfeHZAY2iNoVLsgW2Aqf",
  "archived": true,
  "…": "…"
}
```

## Reaktiver en QR-kode

`POST /api/v1/qrs/{qrId}/activate`

Får en QR-kode som er satt på pause, til å løses til målet igjen. Eventuelle tidsplaner og skannegrenser gjelder fortsatt. Ingen body.

**qrId** `string` *required*

ID-en til QR-koden.

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

```json 200 theme={null}
{
  "id": "qr_1EPcVfeHZAY2iNoVLsgW2Aqf",
  "archived": false,
  "…": "…"
}
```

## Dupliser en QR-kode

`POST /api/v1/qrs/{qrId}/duplicate`

Oppretter en kopi med samme innhold og design. Ingen body. Svarer `201 Created` med den nye [QR-koden](#qr-kodeobjektet).

**qrId** `string` *required*

ID-en til QR-koden som skal kopieres.

* **Kortlenke.** Kopien får sin egen kortlenke, med en tilfeldig slug på arbeidsområdets standarddomene, ikke kildens domene. Skanningene telles separat.
* **Tittel.** Tittelen får suffikset ` (Copy)`. Resultatet holder seg innenfor 40 tegn: en lang tittel kortes ned først. En QR-kode uten tittel forblir uten tittel.
* **Kopieres ikke.** Tilgangsregler (passord, tidsplan, skannegrense) og pausestatus. Kopien er alltid aktiv.
* **Filer.** PDF- og bildefiler, også filer i pakker og gallerier, kopieres, så kopien eier dem. Videofiler og designfiler, som logoer, deles med kilden.

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

```json 201 theme={null}
{
  "id": "qr_7Hk2PqWmX9cTnV4sLbR8YdZe",
  "title": "Landing page (Copy)",
  "shortLink": "https://getqr.sh/p2Wq9dL",
  "url": "https://example.com",
  "archived": false,
  "scans": 0,
  "…": "…"
}
```

## Slett en QR-kode

`DELETE /api/v1/qrs/{qrId}`

Sletter QR-koden og kortlenken. Svarer med ID-en til den slettede koden.

> [!WARNING]
>
> Sletting er permanent. Den trykte koden og kortlenken slutter å fungere, og skannehistorikken er ikke lenger tilgjengelig. [Sett QR-koden på pause](#sett-en-qr-kode-på-pause) i stedet hvis du kanskje trenger den igjen.

**qrId** `string` *required*

ID-en til QR-koden.

**id** `string`

ID-en til den slettede QR-koden.

**deleted** `boolean`

Alltid `true`.

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

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

## Last ned et QR-kodebilde

`GET /api/v1/qrs/{qrId}/download`

Gjengir QR-koden med designet og returnerer filen.

**qrId** `string` *required*

ID-en til QR-koden som skal gjengis, fra svaret på listen eller opprettelsen.

**format** `string` (default: jpg)

Utdataformat: `jpg`, `png`, `svg`, `pdf` (en A4-side) eller `eps`. Et Branded design eller AI design kan bare lastes ned som `jpg`, `png` eller `pdf`.

**resolution** `integer` (default: 1024)

Bildestørrelse i piksler: `1024`, `2048` eller `4096`. `svg` og `pdf` ignorerer den. Et Branded design eller AI design kan bare lastes ned i `1024`.

| `format` | `Content-Type` | Filnavn |
| - | - | - |
| `jpg` | `image/jpeg` | `<title>-<resolution>px.jpg` |
| `png` | `image/png` | `<title>-<resolution>px.png` |
| `svg` | `image/svg+xml` | `<title>.svg` |
| `pdf` | `application/pdf` | `<title>.pdf` |
| `eps` | `application/postscript` | `<title>-<resolution>px.eps` |

* **Body.** Svarets body er filen. Det foreslåtte filnavnet står i `Content-Disposition`-headeren og bygges fra tittelen, eller `qr-code` for en QR-kode uten tittel.
* **Bufring.** Svarene har en `ETag` og `Cache-Control: private, max-age=3600, must-revalidate`. Send `ETag` tilbake i `If-None-Match` for å få `304 Not Modified` når QR-koden ikke er endret.
* **Feil.** Et format eller en oppløsning som ikke støttes, gir `400 bad_request`. Feilmeldingen oppgir årsaken: `qr_download_invalid_format`, `qr_download_invalid_resolution`, `qr_download_art_format_unsupported` eller `qr_download_art_resolution_unsupported`.

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

```http 200 theme={null}
HTTP/1.1 200 OK
Content-Type: image/png
Content-Disposition: attachment; filename="landing-page-1024px.png"
ETag: "9f2c0e1b5a7d43c8b016e2f4a9d5c3718be40f92"
Cache-Control: private, max-age=3600, must-revalidate

<binary image data>
```

## Tilgangsregler

Send et `access`-objekt ved oppretting eller oppdatering for å planlegge start og slutt, begrense antall skanninger eller kreve passord. Utelatte regler forblir uendret, og `null` fjerner en regel. Hele virkemåten, med eksempler, står i [Tilgangsregler](https://docs.getqr.com/no/api/guides/access-rules.md).

## Designobjekter

`styles`, `frameOptions` og `logoOptions` angir former på prikker og hjørner, farger, ramme og logo. De fungerer likt for QR-koder, [maler](https://docs.getqr.com/no/api/endpoints/templates.md) og [masseopprettelser](https://docs.getqr.com/no/api/endpoints/bulk-qr-creations.md). Ukjente former, rammer eller logoer avvises. Alle godtatte verdier og et fullstendig eksempel står i [Tilpasning](https://docs.getqr.com/no/api/guides/customization.md).

## Vanlige problemer

> [accordion] 422 når jeg angir passord, tidsplan eller skannegrense
>
> Send regelen under `access`, ikke under `link`.

> [accordion] 422 når jeg endrer link.domain eller link.key
>
> Kortlenken kan ikke endres etter oppretting, fordi den trykte koden koder den. Opprett en ny QR-kode i stedet.

> [accordion] 422 "Expected … for qrType"
>
> `data` samsvarer ikke med formatet for `qrType`. Sjekk typen i [QR-kodedata per type](https://docs.getqr.com/no/api/guides/qr-types.md).

> [accordion] 409 conflict når jeg oppretter en QR-kode
>
> En identisk oppretting kjører fortsatt, eller `link.key` er tatt. Prøv igjen når den første forespørselen er ferdig. Med en `Idempotency-Key` returnerer det nye forsøket den opprinnelige QR-koden.

> [accordion] Nedlastingen er JPEG, ikke PNG
>
> Parameterne er `format` og `resolution`, og `format` har standardverdien `jpg`. Send `format=png`.

> [accordion] 404 for en QR-kode jeg ser i dashbordet
>
> Hver forespørsel kjøres i arbeidsområdet til API-nøkkelen din. Sjekk at QR-koden tilhører det. Se [Autentisering](https://docs.getqr.com/no/api/authentication.md).

## Neste steg

> [card] [QR-kodedata per type](https://docs.getqr.com/no/api/guides/qr-types.md)

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

> [card] [Tilgangsregler](https://docs.getqr.com/no/api/guides/access-rules.md)

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


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