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

# Analyse

> Skannestatistikk for én QR-kode eller hele arbeidsområdet.

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

Hent totalt antall skanninger og oppdelinger etter land, enhet, nettleser og mer, for én QR-kode eller på tvers av arbeidsområdet.

| Metode | Bane | Beskrivelse |
| - | - | - |
| `GET` | `/api/v1/qrs/{qrId}/analytics` | [Hent analyse for en QR-kode](#hent-analyse-for-en-qr-kode) |
| `GET` | `/api/v1/analytics` | [Hent analyse for arbeidsområdet](#hent-analyse-for-arbeidsområdet) |

Se [Rapporter](https://docs.getqr.com/no/api/endpoints/reports.md) for et ferdig sammendrag per QR-kode.

## Hva tallene betyr

* **Skanninger.** Alle tall står i feltet `clicks`. En skanning telles hver gang noen åpner kortlenken til QR-koden.
* **Unike skanninger.** Med `unique=true` telles hver besøkende én gang i datointervallet.
* **Omfang.** Tallene kommer fra kortlenken til QR-koden. En QR-kode uten kortlenke har ingen skanninger å telle.
* **Historikk.** Analysen kan ikke tilbakestilles via API-et. Å slette en QR-kode fjerner ikke de historiske skannedataene.

## Headere

**Authorization** `string` *required*

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

## Spørringsparametere

Begge endepunktene tar disse parameterne. Alle er valgfrie.

**groupBy** `string` (default: count)

Dimensjonen for oppdelingen. `count` returnerer totalen. Se [Oppdelinger](#oppdelinger) for alle verdier og formen på svaret.

**interval** `string` (default: 30d)

Forhåndsdefinert datointervall: `24h`, `7d`, `30d`, `90d`, `1y`, `mtd`, `qtd`, `ytd` eller `all`. Se [Datointervaller](#datointervaller). Ignoreres når du sender `start`.

**start** `string`

Start på et egendefinert intervall, ISO 8601, for eksempel `2026-08-01` eller `2026-08-01T00:00:00Z`. Har forrang over `interval`. Må være tidligere enn `end`.

**end** `string`

Slutt på et egendefinert intervall, ISO 8601. Standard er slutten av i dag. Brukes sammen med `start` eller `interval=all`, og ignoreres med de andre intervallene.

**timezone** `string` (default: UTC)

IANA-tidssone som brukes til å justere `timeseries`-intervallene, for eksempel `America/New_York`. En ukjent tidssone returnerer `422`.

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

`true` teller unike skanninger i stedet for totalt antall skanninger.

Du kan også sende [dimensjonsfiltre](#dimensjonsfiltre).

## Datointervaller

| `interval` | Dekker | `timeseries`-intervaller |
| - | - | - |
| `24h` | De siste 24 timene | Timer |
| `7d` | De siste 7 dagene, inkludert i dag | Dager |
| `30d` | De siste 30 dagene, inkludert i dag | Dager |
| `90d` | De siste 90 dagene, inkludert i dag | Dager |
| `1y` | De siste 365 dagene, inkludert i dag | Måneder |
| `mtd` | Måneden hittil | Dager |
| `qtd` | Kvartalet hittil | Dager |
| `ytd` | Året hittil | Dager, eller måneder etter 180 dager |
| `all` | Siden arbeidsområdet ble opprettet | Dager, eller måneder etter 180 dager |

For et egendefinert intervall sender du `start` og eventuelt `end`. Intervaller på opptil 2 dager bruker timesintervaller, intervaller over 180 dager bruker månedsintervaller, og alt imellom bruker dagsintervaller.

## Dimensjonsfiltre

Begrens resultatene til skanninger som samsvarer med et filter. Ulike filtre kombineres med AND. Der et filter tar flere verdier, skiller du dem med komma: verdiene kombineres med OR.

| Filter | Verdi | Flere verdier |
| - | - | - |
| `country` | Landkode etter ISO 3166-1 alpha-2, for eksempel `US` | Ja |
| `region` | Regionkode etter ISO 3166-2, for eksempel `US-CA` | Ja |
| `city` | Bynavn, for eksempel `New York` | Ja |
| `continent` | `AF`, `AN`, `AS`, `EU`, `NA`, `OC` eller `SA` | Ja |
| `device` | Enhetstype, for eksempel `Mobile` eller `Desktop` | Ja |
| `browser` | Nettlesernavn, for eksempel `Chrome` | Ja |
| `os` | Operativsystem, for eksempel `iOS` eller `Windows` | Ja |
| `url` | Mål-URL | Ja |
| `referer` | Henviser, for eksempel `google.com` | Nei |
| `utm_source`, `utm_medium`, `utm_campaign`, `utm_term`, `utm_content` | UTM-verdi, opptil 190 tegn | Nei |

En ukjent lande- eller kontinentkode returnerer `422`. Navn på enheter, nettlesere og operativsystemer sammenlignes med stor forbokstav, så `mobile` fungerer som `Mobile`.

For eksempel skanninger fra USA eller Canada på mobile enheter: `?country=US,CA&device=Mobile`.

## Oppdelinger

`count` returnerer et objekt. Alle andre verdier returnerer en matrise, sortert etter `clicks` fra høyest til lavest (`timeseries` sorteres etter tid).

| `groupBy` | Hvert element inneholder |
| - | - |
| `count` | `clicks` (et objekt, ikke en matrise) |
| `timeseries` | `start` (starten av intervallet), `clicks` |
| `continents` | `continent`, `clicks` |
| `regions` | `region`, `country`, `clicks` |
| `countries` | `country`, `city` (alltid `*`), `clicks` |
| `cities` | `city`, `country`, `clicks` |
| `devices` | `device`, `clicks` |
| `browsers` | `browser`, `clicks` |
| `os` | `os`, `clicks` |
| `triggers` | `trigger` (`qr` eller `link`), `clicks` |
| `referers` | `referer` (`(direct)` når den er ukjent), `clicks` |
| `referer_urls` | `refererUrl` (`(direct)` når den er ukjent), `clicks` |
| `top_links` | `id`, `domain`, `key`, `shortLink`, `url`, `createdAt`, `qr` (`id`, `qrType`, `title`), `clicks` |
| `top_urls` | `url`, `clicks` |
| `top_types` | `qr_type`, `clicks` |
| `utm_sources`, `utm_mediums`, `utm_campaigns`, `utm_terms`, `utm_contents` | UTM-verdien (`utm_source`, `utm_medium`, `utm_campaign`, `utm_term` eller `utm_content`), `clicks` |

En ukjent `groupBy` returnerer `422` med listen over gyldige verdier.

Svar når `groupBy=count`:

```json theme={null}
{ "clicks": 142 }
```

Svar når `groupBy=countries`:

```json theme={null}
[
  { "country": "US", "city": "*", "clicks": 87 },
  { "country": "DE", "city": "*", "clicks": 31 },
  { "country": "GB", "city": "*", "clicks": 24 }
]
```

## Hent analyse for en QR-kode

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

Returnerer skannestatistikk for én QR-kode, avgrenset til kortlenken. Tar [spørringsparameterne](#spørringsparametere) og [dimensjonsfiltrene](#dimensjonsfiltre) ovenfor.

**qrId** `string` *required*

ID-en til QR-koden. Hent den fra svaret på listen eller opprettelsen i [QR-koder](https://docs.getqr.com/no/api/endpoints/qr-codes.md).

```bash Total scans, last 30 days theme={null}
curl "https://getqr.com/api/v1/qrs/qr_1EPcVfeHZAY2iNoVLsgW2Aqf/analytics?groupBy=count&interval=30d" \
  -H "Authorization: Bearer $GETQR_API_KEY"
```

```bash Unique scans theme={null}
curl "https://getqr.com/api/v1/qrs/qr_1EPcVfeHZAY2iNoVLsgW2Aqf/analytics?groupBy=count&interval=30d&unique=true" \
  -H "Authorization: Bearer $GETQR_API_KEY"
```

```bash By country, last 7 days theme={null}
curl "https://getqr.com/api/v1/qrs/qr_1EPcVfeHZAY2iNoVLsgW2Aqf/analytics?groupBy=countries&interval=7d" \
  -H "Authorization: Bearer $GETQR_API_KEY"
```

```json 200 theme={null}
{
  "clicks": 142
}
```

## Hent analyse for arbeidsområdet

`GET /api/v1/analytics`

Returnerer skannestatistikk på tvers av alle QR-koder i arbeidsområdet ditt. Tar [spørringsparameterne](#spørringsparametere) og [dimensjonsfiltrene](#dimensjonsfiltre) ovenfor, pluss disse parameterne for avgrensning.

**domain** `string`

Sammen med `key` begrenser den resultatene til kortlenken med dette domenet, for eksempel `getqr.sh`. Domenet må tilhøre arbeidsområdet ditt.

**key** `string`

Slugen til kortlenken, for eksempel `x7Kd2p1`. Bruk den sammen med `domain`. Begge finnes i [QR-kodeobjektet](https://docs.getqr.com/no/api/endpoints/qr-codes.md).

**qrType** `string`

Kommaseparerte QR-kodetyper som skal tas med: `website`, `pdf`, `image`, `video`, `whatsapp`, `social`, `wifi`, `app`, `feedback`, `vcard`, `sms`, `payment`, `location`, `multilink`, `email` eller `event`. Se [QR-kodedata per type](https://docs.getqr.com/no/api/guides/qr-types.md).

```bash Devices, last 7 days theme={null}
curl "https://getqr.com/api/v1/analytics?groupBy=devices&interval=7d" \
  -H "Authorization: Bearer $GETQR_API_KEY"
```

```bash Devices, website QR codes only theme={null}
curl "https://getqr.com/api/v1/analytics?groupBy=devices&interval=30d&qrType=website" \
  -H "Authorization: Bearer $GETQR_API_KEY"
```

```bash One short link theme={null}
curl "https://getqr.com/api/v1/analytics?groupBy=count&domain=getqr.sh&key=x7Kd2p1" \
  -H "Authorization: Bearer $GETQR_API_KEY"
```

```json 200 theme={null}
[
  { "device": "Mobile", "clicks": 980 },
  { "device": "Desktop", "clicks": 240 }
]
```

## Vanlige problemer

> [accordion] 400 "QR has no associated link."
>
> QR-koden har ingen kortlenke, så det finnes ingen skanninger å telle.

> [accordion] 404 ved filtrering på domain og key
>
> Det finnes ingen kortlenke med det domenet og den slugen i arbeidsområdet ditt. Kopier `domain` og `key` fra QR-kodeobjektet.

> [accordion] 422 på groupBy, interval eller et filter
>
> Verdien støttes ikke. Feilmeldingen navngir parameteren og viser de gyldige verdiene.

> [accordion] Tallene stemmer ikke med dashbordet
>
> Sjekk at du bruker samme datointervall og tidssone, og om du teller unike skanninger (`unique=true`) eller totalt antall skanninger.

## Neste steg

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

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

> [card] [Analyse i appen](https://docs.getqr.com/no/analytics/overview.md)

> [card] [Hastighetsgrenser](https://docs.getqr.com/no/api/rate-limits.md)


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