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

# Analys

> Skanningsstatistik för en QR-kod eller hela arbetsytan.

> [!NOTE]
>
> GetQR:s API är i beta och finns för utvalda arbetsytor. Detaljer kan ändras före den allmänna lanseringen.

Hämta totalt antal skanningar och uppdelningar per land, enhet, webbläsare med mera, för en enskild QR-kod eller för hela arbetsytan.

| Metod | Sökväg | Beskrivning |
| - | - | - |
| `GET` | `/api/v1/qrs/{qrId}/analytics` | [Hämta statistik för en QR-kod](#hämta-statistik-för-en-qr-kod) |
| `GET` | `/api/v1/analytics` | [Hämta statistik för arbetsytan](#hämta-statistik-för-arbetsytan) |

En färdig sammanställning per QR-kod finns i [Rapporter](https://docs.getqr.com/sv/api/endpoints/reports.md).

## Vad siffrorna betyder

* **Skanningar.** Varje antal finns i fältet `clicks`. En skanning räknas varje gång någon öppnar QR-kodens korta länk.
* **Unika skanningar.** Med `unique=true` räknas varje besökare en gång inom datumintervallet.
* **Omfång.** Siffrorna kommer från QR-kodens korta länk. En QR-kod utan kort länk har inga skanningar att räkna.
* **Historik.** Statistiken kan inte nollställas via API:et. Om du tar bort en QR-kod raderas inte dess historiska skanningsdata.

## Huvuden

**Authorization** `string` *required*

`Bearer` följt av din API-nyckel. Se [Autentisering](https://docs.getqr.com/sv/api/authentication.md).

## Frågeparametrar

Båda slutpunkterna tar de här parametrarna. Alla är valfria.

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

Uppdelningsdimension. `count` returnerar totalen. Alla värden och deras svarsform finns i [Uppdelningar](#uppdelningar).

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

Fördefinierat datumintervall: `24h`, `7d`, `30d`, `90d`, `1y`, `mtd`, `qtd`, `ytd` eller `all`. Se [Datumintervall](#datumintervall). Ignoreras när du skickar `start`.

**start** `string`

Start för ett anpassat intervall, ISO 8601, till exempel `2026-08-01` eller `2026-08-01T00:00:00Z`. Har företräde framför `interval`. Måste vara tidigare än `end`.

**end** `string`

Slut för ett anpassat intervall, ISO 8601. Standard är slutet av i dag. Används tillsammans med `start` eller `interval=all` och ignoreras med de andra intervallen.

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

IANA-tidszon som används för att justera `timeseries`-intervallen, till exempel `America/New_York`. En okänd tidszon returnerar `422`.

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

`true` räknar unika skanningar i stället för totalt antal skanningar.

Du kan också skicka [dimensionsfilter](#dimensionsfilter).

## Datumintervall

| `interval` | Omfattar | `timeseries`-intervall |
| - | - | - |
| `24h` | De senaste 24 timmarna | Timmar |
| `7d` | De senaste 7 dagarna, inklusive i dag | Dagar |
| `30d` | De senaste 30 dagarna, inklusive i dag | Dagar |
| `90d` | De senaste 90 dagarna, inklusive i dag | Dagar |
| `1y` | De senaste 365 dagarna, inklusive i dag | Månader |
| `mtd` | Månaden hittills | Dagar |
| `qtd` | Kvartalet hittills | Dagar |
| `ytd` | Året hittills | Dagar, eller månader efter 180 dagar |
| `all` | Sedan arbetsytan skapades | Dagar, eller månader efter 180 dagar |

För ett anpassat intervall skickar du `start` och eventuellt `end`. Intervall på upp till 2 dagar delas upp per timme, intervall över 180 dagar per månad och allt däremellan per dag.

## Dimensionsfilter

Begränsa resultaten till skanningar som matchar ett filter. Olika filter kombineras med AND. Där ett filter tar flera värden separerar du dem med kommatecken: värdena kombineras med OR.

| Filter | Värde | Flera värden |
| - | - | - |
| `country` | Landskod enligt ISO 3166-1 alpha-2, till exempel `US` | Ja |
| `region` | Regionkod enligt ISO 3166-2, till exempel `US-CA` | Ja |
| `city` | Ortnamn, till exempel `New York` | Ja |
| `continent` | `AF`, `AN`, `AS`, `EU`, `NA`, `OC` eller `SA` | Ja |
| `device` | Enhetstyp, till exempel `Mobile` eller `Desktop` | Ja |
| `browser` | Webbläsarens namn, till exempel `Chrome` | Ja |
| `os` | Operativsystem, till exempel `iOS` eller `Windows` | Ja |
| `url` | Mål-URL | Ja |
| `referer` | Hänvisande källa, till exempel `google.com` | Nej |
| `utm_source`, `utm_medium`, `utm_campaign`, `utm_term`, `utm_content` | UTM-värde, högst 190 tecken | Nej |

En okänd lands- eller kontinentkod returnerar `422`. Namn på enheter, webbläsare och operativsystem matchas med stor begynnelsebokstav, så `mobile` fungerar som `Mobile`.

Till exempel skanningar från USA eller Kanada på mobila enheter: `?country=US,CA&device=Mobile`.

## Uppdelningar

`count` returnerar ett objekt. Alla andra värden returnerar en array, sorterad efter `clicks` från högst till lägst (`timeseries` sorteras efter tid).

| `groupBy` | Varje post innehåller |
| - | - |
| `count` | `clicks` (ett objekt, inte en array) |
| `timeseries` | `start` (intervallets början), `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 är okänd), `clicks` |
| `referer_urls` | `refererUrl` (`(direct)` när den är okänd), `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ärdet (`utm_source`, `utm_medium`, `utm_campaign`, `utm_term` eller `utm_content`), `clicks` |

En okänd `groupBy` returnerar `422` med en lista över giltiga värden.

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

## Hämta statistik för en QR-kod

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

Returnerar skanningsstatistik för en QR-kod, begränsad till dess korta länk. Tar [frågeparametrarna](#frågeparametrar) och [dimensionsfiltren](#dimensionsfilter) ovan.

**qrId** `string` *required*

QR-kodens id. Hämta det från svaret på listningen eller skapandet i [QR-koder](https://docs.getqr.com/sv/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
}
```

## Hämta statistik för arbetsytan

`GET /api/v1/analytics`

Returnerar skanningsstatistik för alla QR-koder i din arbetsyta. Tar [frågeparametrarna](#frågeparametrar) och [dimensionsfiltren](#dimensionsfilter) ovan, plus de här parametrarna för att begränsa omfånget.

**domain** `string`

Tillsammans med `key` begränsas resultaten till den korta länken med den här domänen, till exempel `getqr.sh`. Domänen måste höra till din arbetsyta.

**key** `string`

Den korta länkens slug, till exempel `x7Kd2p1`. Använd den tillsammans med `domain`. Båda finns i [QR-kodobjektet](https://docs.getqr.com/sv/api/endpoints/qr-codes.md).

**qrType** `string`

Kommaseparerade QR-kodstyper att ta med: `website`, `pdf`, `image`, `video`, `whatsapp`, `social`, `wifi`, `app`, `feedback`, `vcard`, `sms`, `payment`, `location`, `multilink`, `email` eller `event`. Se [QR-typer](https://docs.getqr.com/sv/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 }
]
```

## Vanliga problem

> [accordion] 400 "QR has no associated link."
>
> QR-koden har ingen kort länk, så det finns inga skanningar att räkna.

> [accordion] 404 vid filtrering på domain och key
>
> Det finns ingen kort länk med den domänen och slugen i din arbetsyta. Kopiera `domain` och `key` från QR-kodobjektet.

> [accordion] 422 för groupBy, interval eller ett filter
>
> Värdet stöds inte. Felmeddelandet anger parametern och listar de giltiga värdena.

> [accordion] Siffrorna stämmer inte med instrumentpanelen
>
> Kontrollera att du använder samma datumintervall och tidszon, och om du räknar unika skanningar (`unique=true`) eller totalt antal skanningar.

## Nästa steg

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

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

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

> [card] [Hastighetsbegränsningar](https://docs.getqr.com/sv/api/rate-limits.md)


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