# KAP bildirimleri

`GET https://ulawk.com/api/v1/sirketler/{sirket_id}/kap/`

Şirketin eşleştiği KAP üyesi, kurucusu olduğu fonlar ve şirketin/fonların son KAP bildirimleri (konu, özet, ekler). Eşleşme yoksa 404 `kap_eslesmesi_yok` (taraf kaynak, kaynak kap).

## Kimlik doğrulama

Her istekte iki başlık: `X-API-Key` ve `X-API-Secret`.

## Yol parametreleri

- `sirket_id` (integer | string, zorunlu) — Şirket kimliği (`/api/v1/sirketler/` listesindeki `id`).

## Sorgu parametreleri

- `adet` (integer) — En çok bildirim.

## Yanıt

### 200 — KAP verisi.

- `sirket` (object, zorunlu)
- `sirket.id` (integer, zorunlu)
- `sirket.unvan` (string, null, zorunlu)
- `kap_sirket` (object, zorunlu)
- `kap_sirket.kap_id` (integer | string, zorunlu)
- `kap_sirket.unvan` (string, null, zorunlu)
- `kap_sirket.borsa_kodu` (string, null, zorunlu)
- `kap_sirket.uye_tipi` (string, null, zorunlu)
- `fonlar[]` (object[], zorunlu)
- `fonlar[].fon_id` (integer | string, zorunlu)
- `fonlar[].kod` (string, null, zorunlu)
- `fonlar[].ad` (string, null, zorunlu)
- `fonlar[].tur` (string, null, zorunlu)
- `fonlar[].sinif` (string, null, zorunlu)
- `fonlar[].durum` (string, null, zorunlu)
- `bildirimler[]` (object[], zorunlu)
- `bildirimler[].index` (integer | string, zorunlu)
- `bildirimler[].zaman` (string (date-time), null, zorunlu)
- `bildirimler[].tip` (string, null, zorunlu)
- `bildirimler[].sinif` (string, null, zorunlu)
- `bildirimler[].konu` (string, null, zorunlu)
- `bildirimler[].ozet` (string, null, zorunlu)
- `bildirimler[].fon_kod` (string, null, zorunlu)
- `bildirimler[].link` (string, null, zorunlu)
- `bildirimler[].ekler[]` (object[], zorunlu)
- `bildirimler[].ekler[].ad` (string, null, zorunlu)
- `bildirimler[].ekler[].indir` (string (uri), zorunlu)
- `bildirimler[].veri` (any, zorunlu) — Bildirimin yapılandırılmış verisi (varsa).
- `kaynak` (string, zorunlu)

```json
{
  "sirket": {
    "id": 1234,
    "unvan": "ÖRNEK DENEME SANAYİ VE TİCARET ANONİM ŞİRKETİ"
  },
  "kap_sirket": {
    "kap_id": 1001,
    "unvan": "ÖRNEK DENEME SANAYİ VE TİCARET A.Ş.",
    "borsa_kodu": "ORNEK",
    "uye_tipi": "IGS"
  },
  "fonlar": [],
  "bildirimler": [
    {
      "index": 1500001,
      "zaman": "2026-10-15T00:00:00+03:00",
      "tip": "ODA",
      "sinif": "ODA",
      "konu": "Yönetim Kurulu Üyeliğine Atama",
      "ozet": "Deneme bildirimi.",
      "fon_kod": null,
      "link": "https://ulawk.com/kap/bildirim/1500001/",
      "ekler": [],
      "veri": null
    }
  ],
  "kaynak": "KAP (Kamuyu Aydınlatma Platformu)"
}
```

### 404 — `bulunamadi` ya da `kap_eslesmesi_yok`.


```json
{
  "hata": "kap_eslesmesi_yok",
  "detay": "Bu şirket KAP şirketiyle eşleşmemiş.",
  "hata_ayrinti": {
    "kod": "kap_eslesmesi_yok",
    "mesaj": "Bu şirket KAP şirketiyle eşleşmemiş.",
    "taraf": "kaynak",
    "kaynak": "kap",
    "tekrar_denenebilir": false,
    "tekrar_sn": null
  }
}
```

### 400 — Geçersiz parametre (`gecersiz_parametre`, `gecersiz_kategori`, `gecersiz_tarih`…) ya da bu uç deneme anahtarıyla kullanılamaz (`deneme_desteklenmiyor`).


```json
{
  "hata": "gecersiz_parametre",
  "detay": "Sayfa ve adet tam sayı olmalı.",
  "hata_ayrinti": {
    "kod": "gecersiz_parametre",
    "mesaj": "Sayfa ve adet tam sayı olmalı.",
    "taraf": "istemci",
    "kaynak": null,
    "tekrar_denenebilir": false,
    "tekrar_sn": null
  }
}
```

### 503 — Resmî kaynak şu an erişilemiyor (`kaynak_erisilemiyor`, taraf kaynak). Deneme ortamında DENEME-KAYNAK-KAPALI.

Retry-After: `300`

```json
{
  "hata": "kaynak_erisilemiyor",
  "detay": "Ticaret Sicili Gazetesi şu an yanıt vermiyor; kısa süre sonra yeniden deneyin. (Deneme ortamı benzetimi.)",
  "hata_ayrinti": {
    "kod": "kaynak_erisilemiyor",
    "mesaj": "Ticaret Sicili Gazetesi şu an yanıt vermiyor; kısa süre sonra yeniden deneyin. (Deneme ortamı benzetimi.)",
    "taraf": "kaynak",
    "kaynak": "ttsg",
    "tekrar_denenebilir": true,
    "tekrar_sn": 300
  }
}
```

### 401 — Anahtar yok ya da geçersiz (`yetkisiz`).


```json
{
  "hata": "yetkisiz",
  "detay": "Geçerli X-API-Key başlığı gerekli (panel › API).",
  "hata_ayrinti": {
    "kod": "yetkisiz",
    "mesaj": "Geçerli X-API-Key başlığı gerekli (panel › API).",
    "taraf": "istemci",
    "kaynak": null,
    "tekrar_denenebilir": false,
    "tekrar_sn": null
  }
}
```

### 429 — Saatlik istek sınırı aşıldı (`hiz_siniri`); Retry-After başlığı sıfırlanmaya kalan saniyeyi verir.

Retry-After: `3085`

```json
{
  "hata": "hiz_siniri",
  "detay": "Saatlik istek sınırı aşıldı (600). Bir sonraki saatte tekrar deneyin.",
  "hata_ayrinti": {
    "kod": "hiz_siniri",
    "mesaj": "Saatlik istek sınırı aşıldı (600). Bir sonraki saatte tekrar deneyin.",
    "taraf": "istemci",
    "kaynak": null,
    "tekrar_denenebilir": true,
    "tekrar_sn": 3085
  }
}
```

### 500 — Beklenmeyen hata (`ic_hata`, taraf ulawk); kısa süre sonra yeniden deneyin.

Retry-After: `60`

```json
{
  "hata": "ic_hata",
  "detay": "Beklenmeyen bir hata oluştu; kısa süre sonra yeniden deneyin.",
  "hata_ayrinti": {
    "kod": "ic_hata",
    "mesaj": "Beklenmeyen bir hata oluştu; kısa süre sonra yeniden deneyin.",
    "taraf": "ulawk",
    "kaynak": null,
    "tekrar_denenebilir": true,
    "tekrar_sn": 60
  }
}
```

## İstek

```bash
curl "https://ulawk.com/api/v1/sirketler/DENEME-100001/kap/" \
  -H "X-API-Key: ulk_DENEME_ANAHTARINIZ" \
  -H "X-API-Secret: ulsk_DENEME_GIZLI_ANAHTARINIZ"
```
