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

# Statistik

> Scanningsstatistik for én QR-kode eller hele dit arbejdsområde.

> [!NOTE]
>
> GetQR API'et er i beta og er tilgængeligt for udvalgte arbejdsområder. Detaljer kan ændre sig før den generelle udgivelse.

Hent samlede scanninger og opdelinger efter land, enhed, browser og mere for en enkelt QR-kode eller på tværs af dit arbejdsområde.

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

Se [Rapporter](https://docs.getqr.com/da/api/endpoints/reports.md) for en færdig opsummering pr. QR-kode.

## Hvad tallene betyder

* **Scanninger.** Alle tal står i feltet `clicks`. En scanning tælles, hver gang nogen åbner QR-kodens kortlink.
* **Unikke scanninger.** Med `unique=true` tælles hver besøgende én gang i datointervallet.
* **Omfang.** Tallene kommer fra QR-kodens kortlink. En QR-kode uden kortlink har ingen scanninger at tælle.
* **Historik.** Statistik kan ikke nulstilles via API'et. Sletning af en QR-kode fjerner ikke dens historiske scanningsdata.

## Headere

**Authorization** `string` *required*

`Bearer` efterfulgt af din API-nøgle. Se [Godkendelse](https://docs.getqr.com/da/api/authentication.md).

## Forespørgselsparametre

Begge endepunkter tager disse parametre. De er alle valgfri.

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

Opdelingsdimension. `count` returnerer det samlede antal. Se [Opdelinger](#opdelinger) for alle værdier og deres svarform.

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

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

**start** `string`

Start på et tilpasset interval, ISO 8601, f.eks. `2026-08-01` eller `2026-08-01T00:00:00Z`. Har forrang over `interval`. Skal ligge før `end`.

**end** `string`

Slut på et tilpasset interval, ISO 8601. Standard er slutningen af i dag. Bruges sammen med `start` eller `interval=all` og ignoreres med de andre intervaller.

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

IANA-tidszone, som `timeseries`-intervallerne justeres efter, f.eks. `America/New_York`. En ukendt tidszone returnerer `422`.

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

`true` tæller unikke scanninger i stedet for samlede scanninger.

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

## Datointervaller

| `interval` | Dækker | `timeseries`-intervaller |
| - | - | - |
| `24h` | De seneste 24 timer | Timer |
| `7d` | De seneste 7 dage, inklusive i dag | Dage |
| `30d` | De seneste 30 dage, inklusive i dag | Dage |
| `90d` | De seneste 90 dage, inklusive i dag | Dage |
| `1y` | De seneste 365 dage, inklusive i dag | Måneder |
| `mtd` | Måneden til dato | Dage |
| `qtd` | Kvartalet til dato | Dage |
| `ytd` | Året til dato | Dage, eller måneder efter 180 dage |
| `all` | Siden dit arbejdsområde blev oprettet | Dage, eller måneder efter 180 dage |

Til et tilpasset interval sender du `start` og eventuelt `end`. Intervaller på op til 2 dage bruger timeintervaller, intervaller på over 180 dage bruger månedsintervaller, og alt derimellem bruger dagsintervaller.

## Dimensionsfiltre

Afgræns resultaterne til scanninger, der matcher et filter. Forskellige filtre kombineres med AND. Hvor et filter tager flere værdier, adskiller du dem med kommaer: Værdierne kombineres med OR.

| Filter | Værdi | Flere værdier |
| - | - | - |
| `country` | ISO 3166-1 alpha-2-landekode, f.eks. `US` | Ja |
| `region` | ISO 3166-2-regionskode, f.eks. `US-CA` | Ja |
| `city` | Bynavn, f.eks. `New York` | Ja |
| `continent` | `AF`, `AN`, `AS`, `EU`, `NA`, `OC` eller `SA` | Ja |
| `device` | Enhedstype, f.eks. `Mobile` eller `Desktop` | Ja |
| `browser` | Browsernavn, f.eks. `Chrome` | Ja |
| `os` | Styresystem, f.eks. `iOS` eller `Windows` | Ja |
| `url` | Destinations-URL | Ja |
| `referer` | Henvisende side, f.eks. `google.com` | Nej |
| `utm_source`, `utm_medium`, `utm_campaign`, `utm_term`, `utm_content` | UTM-værdi, op til 190 tegn | Nej |

En ukendt lande- eller kontinentkode returnerer `422`. Navne på enheder, browsere og styresystemer matches med stort begyndelsesbogstav, så `mobile` virker som `Mobile`.

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

## Opdelinger

`count` returnerer et objekt. Alle andre værdier returnerer et array, sorteret efter `clicks` fra højest til lavest (`timeseries` er sorteret efter tid).

| `groupBy` | Hvert element indeholder |
| - | - |
| `count` | `clicks` (et objekt, ikke et array) |
| `timeseries` | `start` (intervallets start), `clicks` |
| `continents` | `continent`, `clicks` |
| `regions` | `region`, `country`, `clicks` |
| `countries` | `country`, `city` (altid `*`), `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 ukendt), `clicks` |
| `referer_urls` | `refererUrl` (`(direct)`, når den er ukendt), `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-værdien (`utm_source`, `utm_medium`, `utm_campaign`, `utm_term` eller `utm_content`), `clicks` |

En ukendt `groupBy` returnerer `422` med listen over gyldige værdier.

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 statistik for en QR-kode

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

Returnerer scanningsstatistik for én QR-kode, afgrænset til dens kortlink. Tager [forespørgselsparametrene](#forespørgselsparametre) og [dimensionsfiltrene](#dimensionsfiltre) ovenfor.

**qrId** `string` *required*

QR-kodens id. Hent det fra svaret på listen eller oprettelsen i [QR-koder](https://docs.getqr.com/da/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 statistik for arbejdsområdet

`GET /api/v1/analytics`

Returnerer scanningsstatistik på tværs af alle QR-koder i dit arbejdsområde. Tager [forespørgselsparametrene](#forespørgselsparametre) og [dimensionsfiltrene](#dimensionsfiltre) ovenfor plus disse parametre til afgrænsning.

**domain** `string`

Sammen med `key` afgrænser den resultaterne til kortlinket med dette domæne, f.eks. `getqr.sh`. Domænet skal høre til dit arbejdsområde.

**key** `string`

Kortlinkets slug, f.eks. `x7Kd2p1`. Brug den sammen med `domain`. Begge findes i [QR-kodeobjektet](https://docs.getqr.com/da/api/endpoints/qr-codes.md).

**qrType** `string`

Kommaseparerede QR-kodetyper, der skal medtages: `website`, `pdf`, `image`, `video`, `whatsapp`, `social`, `wifi`, `app`, `feedback`, `vcard`, `sms`, `payment`, `location`, `multilink`, `email` eller `event`. Se [QR-kodedata efter type](https://docs.getqr.com/da/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 }
]
```

## Almindelige problemer

> [accordion] 400 "QR has no associated link."
>
> QR-koden har intet kortlink, så der er ingen scanninger at tælle.

> [accordion] 404 ved filtrering efter domain og key
>
> Der findes intet kortlink med det domæne og den slug i dit arbejdsområde. Kopiér `domain` og `key` fra QR-kodeobjektet.

> [accordion] 422 på groupBy, interval eller et filter
>
> Værdien understøttes ikke. Fejlbeskeden nævner parameteren og viser de gyldige værdier.

> [accordion] Tallene stemmer ikke med dashboardet
>
> Tjek, at du bruger samme datointerval og tidszone, og om du tæller unikke scanninger (`unique=true`) eller samlede scanninger.

## Næste skridt

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

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

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

> [card] [Hastighedsgrænser](https://docs.getqr.com/da/api/rate-limits.md)


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