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

# Analizler

> Tek bir QR kodu veya tüm çalışma alanınız için tarama istatistikleri.

> [!NOTE]
>
> GetQR API'si beta aşamasındadır ve seçili çalışma alanlarında kullanılabilir. Ayrıntılar genel sürümden önce değişebilir.

Tek bir QR kodu için veya tüm çalışma alanınız genelinde tarama toplamlarını ve ülkeye, cihaza, tarayıcıya ve daha fazlasına göre dağılımları alın.

| Yöntem | Yol | Açıklama |
| - | - | - |
| `GET` | `/api/v1/qrs/{qrId}/analytics` | [Bir QR kodunun analizlerini alma](#bir-qr-kodunun-analizlerini-alma) |
| `GET` | `/api/v1/analytics` | [Çalışma alanı analizlerini alma](#çalışma-alanı-analizlerini-alma) |

QR kodu başına hazır bir özet için bkz. [Raporlar](https://docs.getqr.com/tr/api/endpoints/reports.md).

## Sayıların anlamı

* **Taramalar.** Her sayım `clicks` alanındadır. Biri QR kodunun kısa bağlantısını her açtığında bir tarama sayılır.
* **Benzersiz taramalar.** `unique=true` ile her ziyaretçi tarih aralığında bir kez sayılır.
* **Kapsam.** Sayılar QR kodunun kısa bağlantısından gelir. Kısa bağlantısı olmayan bir QR kodunun sayılacak taraması yoktur.
* **Geçmiş.** Analizler API üzerinden sıfırlanamaz. Bir QR kodunu silmek geçmiş tarama verilerini temizlemez.

## Başlıklar

**Authorization** `string` *required*

`Bearer` ve ardından API anahtarınız. Bkz. [Kimlik doğrulama](https://docs.getqr.com/tr/api/authentication.md).

## Sorgu parametreleri

Her iki uç nokta da bu parametreleri alır. Hepsi isteğe bağlıdır.

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

Dağılım boyutu. `count` toplamı döndürür. Tüm değerler ve yanıt yapıları için bkz. [Dağılımlar](#dağılımlar).

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

Hazır tarih aralığı: `24h`, `7d`, `30d`, `90d`, `1y`, `mtd`, `qtd`, `ytd` veya `all`. Bkz. [Tarih aralıkları](#tarih-aralıkları). `start` gönderdiğinizde yok sayılır.

**start** `string`

Özel aralığın başlangıcı, ISO 8601; örneğin `2026-08-01` veya `2026-08-01T00:00:00Z`. `interval` değerine göre önceliklidir. `end` değerinden önce olmalıdır.

**end** `string`

Özel aralığın bitişi, ISO 8601. Varsayılanı bugünün sonu. `start` veya `interval=all` ile birlikte kullanılır, diğer aralıklarda yok sayılır.

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

`timeseries` dilimlerini hizalamak için kullanılan IANA saat dilimi; örneğin `America/New_York`. Bilinmeyen bir saat dilimi `422` döndürür.

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

`true`, toplam taramalar yerine benzersiz taramaları sayar.

[Boyut filtreleri](#boyut-filtreleri) de gönderebilirsiniz.

## Tarih aralıkları

| `interval` | Kapsadığı süre | `timeseries` dilimleri |
| - | - | - |
| `24h` | Son 24 saat | Saatler |
| `7d` | Bugün dahil son 7 gün | Günler |
| `30d` | Bugün dahil son 30 gün | Günler |
| `90d` | Bugün dahil son 90 gün | Günler |
| `1y` | Bugün dahil son 365 gün | Aylar |
| `mtd` | Ay başından bugüne | Günler |
| `qtd` | Çeyrek başından bugüne | Günler |
| `ytd` | Yıl başından bugüne | Günler; 180 günden sonra aylar |
| `all` | Çalışma alanınız oluşturulduğundan beri | Günler; 180 günden sonra aylar |

Özel bir aralık için `start` ve isteğe bağlı olarak `end` gönderin. En fazla 2 günlük aralıklar saatlik dilimler, 180 günü aşan aralıklar aylık dilimler, aradaki her şey günlük dilimler kullanır.

## Boyut filtreleri

Sonuçları bir filtreyle eşleşen taramalarla sınırlayın. Farklı filtreler AND ile birleştirilir. Bir filtre birden fazla değer alıyorsa değerleri virgülle ayırın: değerler OR ile birleştirilir.

| Filtre | Değer | Birden fazla değer |
| - | - | - |
| `country` | ISO 3166-1 alpha-2 ülke kodu; örneğin `US` | Evet |
| `region` | ISO 3166-2 bölge kodu; örneğin `US-CA` | Evet |
| `city` | Şehir adı; örneğin `New York` | Evet |
| `continent` | `AF`, `AN`, `AS`, `EU`, `NA`, `OC` veya `SA` | Evet |
| `device` | Cihaz türü; örneğin `Mobile` veya `Desktop` | Evet |
| `browser` | Tarayıcı adı; örneğin `Chrome` | Evet |
| `os` | İşletim sistemi; örneğin `iOS` veya `Windows` | Evet |
| `url` | Hedef URL | Evet |
| `referer` | Yönlendiren; örneğin `google.com` | Hayır |
| `utm_source`, `utm_medium`, `utm_campaign`, `utm_term`, `utm_content` | UTM değeri; en fazla 190 karakter | Hayır |

Bilinmeyen bir ülke veya kıta kodu `422` döndürür. Cihaz, tarayıcı ve işletim sistemi adları ilk harfi büyük olacak şekilde eşleştirilir; bu nedenle `mobile`, `Mobile` gibi çalışır.

Örneğin ABD veya Kanada'daki mobil cihazlardan gelen taramalar: `?country=US,CA&device=Mobile`.

## Dağılımlar

`count` bir nesne döndürür. Diğer tüm değerler, `clicks` değerine göre en yüksekten en düşüğe sıralanmış bir dizi döndürür (`timeseries` zamana göre sıralanır).

| `groupBy` | Her öğenin içeriği |
| - | - |
| `count` | `clicks` (dizi değil, nesne) |
| `timeseries` | `start` (dilimin başlangıcı), `clicks` |
| `continents` | `continent`, `clicks` |
| `regions` | `region`, `country`, `clicks` |
| `countries` | `country`, `city` (her zaman `*`), `clicks` |
| `cities` | `city`, `country`, `clicks` |
| `devices` | `device`, `clicks` |
| `browsers` | `browser`, `clicks` |
| `os` | `os`, `clicks` |
| `triggers` | `trigger` (`qr` veya `link`), `clicks` |
| `referers` | `referer` (bilinmiyorsa `(direct)`), `clicks` |
| `referer_urls` | `refererUrl` (bilinmiyorsa `(direct)`), `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 değeri (`utm_source`, `utm_medium`, `utm_campaign`, `utm_term` veya `utm_content`), `clicks` |

Bilinmeyen bir `groupBy`, geçerli değerlerin listesiyle birlikte `422` döndürür.

`groupBy=count` olduğunda yanıt:

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

`groupBy=countries` olduğunda yanıt:

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

## Bir QR kodunun analizlerini alma

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

Bir QR kodunun kısa bağlantısıyla sınırlı tarama istatistiklerini döndürür. Yukarıdaki [sorgu parametrelerini](#sorgu-parametreleri) ve [boyut filtrelerini](#boyut-filtreleri) alır.

**qrId** `string` *required*

QR kodunun kimliği. [QR kodları](https://docs.getqr.com/tr/api/endpoints/qr-codes.md) uç noktalarının liste veya oluşturma yanıtından alın.

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

## Çalışma alanı analizlerini alma

`GET /api/v1/analytics`

Çalışma alanınızdaki tüm QR kodlarının tarama istatistiklerini döndürür. Yukarıdaki [sorgu parametrelerini](#sorgu-parametreleri) ve [boyut filtrelerini](#boyut-filtreleri), ayrıca şu kapsam parametrelerini alır.

**domain** `string`

`key` ile birlikte, sonuçları bu alan adına sahip kısa bağlantıyla sınırlar; örneğin `getqr.sh`. Alan adı çalışma alanınıza ait olmalıdır.

**key** `string`

Kısa bağlantı slug'ı; örneğin `x7Kd2p1`. `domain` ile birlikte kullanın. İkisi de [QR kodu nesnesinde](https://docs.getqr.com/tr/api/endpoints/qr-codes.md) bulunur.

**qrType** `string`

Dahil edilecek QR kodu türleri, virgülle ayrılmış: `website`, `pdf`, `image`, `video`, `whatsapp`, `social`, `wifi`, `app`, `feedback`, `vcard`, `sms`, `payment`, `location`, `multilink`, `email` veya `event`. Bkz. [QR türleri](https://docs.getqr.com/tr/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 }
]
```

## Sık karşılaşılan sorunlar

> [accordion] 400 "QR has no associated link."
>
> QR kodunun kısa bağlantısı yok, bu nedenle sayılacak tarama yok.

> [accordion] domain ve key ile filtrelerken 404
>
> Çalışma alanınızda bu alan adına ve slug'a sahip bir kısa bağlantı yok. `domain` ve `key` değerlerini QR kodu nesnesinden kopyalayın.

> [accordion] groupBy, interval veya bir filtrede 422
>
> Değer desteklenmiyor. Hata mesajı parametrenin adını verir ve geçerli değerleri listeler.

> [accordion] Sayılar panelle eşleşmiyor
>
> Aynı tarih aralığını ve saat dilimini kullandığınızı ve benzersiz taramaları (`unique=true`) mı yoksa toplam taramaları mı saydığınızı kontrol edin.

## Sırada ne var

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

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

> [card] [Uygulamada analizler](https://docs.getqr.com/tr/analytics/overview.md)

> [card] [İstek sınırları](https://docs.getqr.com/tr/api/rate-limits.md)


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