# KAP disclosures

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

The matched KAP member, funds it founded and recent KAP disclosures of the company and its funds (subject, summary, attachments). No match: 404 `kap_eslesmesi_yok` (taraf kaynak, kaynak kap).

## Authentication

Two headers on every request: `X-API-Key` and `X-API-Secret`.

## Path parameters

- `sirket_id` (integer | string, required) — Company id (`id` from `/api/v1/sirketler/`).

## Query parameters

- `adet` (integer) — Maximum disclosures.

## Response

### 200 — KAP data.

- `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) — Structured data of the disclosure, if any.
- `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` or `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 — Invalid parameter (`gecersiz_parametre`, `gecersiz_kategori`, `gecersiz_tarih`…) or the endpoint does not support sandbox keys (`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 — The official source is unreachable right now (`kaynak_erisilemiyor`, taraf kaynak). Sandbox: 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 — Missing or invalid key (`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 — Hourly rate limit exceeded (`hiz_siniri`); the Retry-After header gives the seconds until reset.

Retry-After: `2494`

```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": 2494
  }
}
```

### 500 — Unexpected error (`ic_hata`, taraf ulawk); retry shortly.

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

## Request

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