KAP haber akışı

KAP'ta (Kamuyu Aydınlatma Platformu) yayımlanan Türk şirket bildirimleri, iki biçimde: kap.org.tr'de yayımlandığı haliyle ham bildirim ve yapay zeka ile işlenmiş katman (Türkçe özet, duygu, analitik döküm).

Resmi KAP bildirimlerinin yayımlandıkça size itilmesini mi istiyorsunuz? KAP WS akışına bakın →

Resmi KAP akışını mı arıyorsunuz?
Bu sayfa haber tabanlı KAP akışını (news_id, yapay zeka ile işlenmiş katmanla) anlatır. KAP'ın kendi bildirimleri, birebir — yapay zeka yok, yeniden yazma yok; KAP'ın disclosure_index numarasıyla, bildirim içeriği, mali tablolar ve şirket künyeleriyle — ayrı bir üründür: Resmi KAP akışı (/v1/kap-feed)

Uç noktalar

Uç noktaKapsamAçıklama
GET/v1/kap?limit=&cursor=&from=&to=&symbol=&type=kapBildirim akışı, en yeni önce (opak imleç ile sayfalama); isteğe bağlı from, to, symbol, type filtreleri
GET/v1/kap/{news_id}kapTek bir bildirim, ham + yapay zeka ile işlenmiş biçimlerde

Deneme Alanı'nda deneyin →

Özel bir kapsam

KAP kendi kap kapsamı altında ölçülür (haber kapsamları değil); böylece şirket bildirimlerine bağımsız abone olabilirsiniz. Bu kapsam olmayan anahtarlar 403 alır.

Ham vs yapay zeka ile işlenmiş

Her öğe tek bir news_id paylaşır. Ham taraf, bildirimi tam olarak sunulduğu haliyle içerir (başlık, semboller, kap.org.tr kalıcı bağlantısı, tam metin). Yapay zeka tarafı bir yapay zeka modeli zenginleştirmesidir — Türkçe özet, duygu (etiket + skor + gerekçe) ve analitik döküm — ve kaynağını ve bir Yapay zeka üretimi; yatırım tavsiyesi değildir uyarısını kendisi etiketler. Yalnızca biri gelmişse diğer taraf null olabilir.

Filtreler

AlanTürNotlar
fromdate | datetimeYayım zamanı için dahil alt sınır. Tarih (2026-09-15) Türkiye saatiyle tüm günü ifade eder; ofsetli ya da Z'li tarih-saat dönüştürülür; ofsetsiz tarih-saat Türkiye saati (UTC+3) olarak okunur. Yanıtlardaki published_at alanının UTC olduğunu unutmayın.
todate | datetimeDahil üst sınır, aynı biçimler. Yalnız tarih verilirse Türkiye saatiyle 23:59:59'a kadar gider. from, to'dan sonraysa 400.
symbolbist:… | fund:…Kanonik bir bist: ya da fund: kimliği (bist:EKGYO, fund:NNF). Başka piyasalar ya da piyasa öneki olmayan sembol 400'dür. Bir fon, yönetim şirketinin kendi koduyla yaptığı bildirimlerle de eşleşir — bildirim sahibi başlığı o fonu adlandırıyorsa (fund_match: filer_title).
typeÖDA | FR | DG | DKBKAP bildirim sınıfı: ÖDA (özel durum açıklaması), FR (finansal rapor), DG (diğer), DKB (düzenleyici kurum bildirimi). ÖDA için ODA da kabul edilir. Başka bir değer, geçerli değerleri listeleyen bir 400'dür.
curl — EKGYO's special-situation disclosures in September (scope: kap)
curl -G -H "X-API-Key: $PORTGATE_KEY" \
  "https://api.theportfoy.com/portgate/v1/kap" \
  --data-urlencode "symbol=bist:EKGYO" \
  --data-urlencode "type=ÖDA" \
  --data-urlencode "from=2026-09-01" \
  --data-urlencode "to=2026-09-30"
symbol ya da type ile kısa sayfalar normaldir
symbol ya da type verildiğinde her istek üst kaynakta sınırlı bir pencere okur; bu yüzden bir sayfa limit'ten az öğe — hatta sıfır — içerirken next_cursor yine dolu olabilir. Bu sona geldiğiniz anlamına gelmez: next_cursor null olana kadar izlemeye devam edin. Her imleçle aynı filtreleri gönderin; farklı filtrelerle kullanılan bir imleç 400 ile reddedilir. Yalnızca tarih filtreleri (ve filtresiz akış) eskisi gibi davranır.

Her bildirimde türetilmiş alanlar

Her öğe — akışta ve ayrıntı görünümünün iki biçiminde de — PortGate'in bildirilen başlık ve kodlardan türettiği üst verileri taşır. Bu, yapay zeka değil, kurala dayalı ayrıştırma ve referans tablolarıdır; kaynak bir değeri desteklemiyorsa alan null (ya da boş) olur.

AlanTürNotlar
disclosure_typestring | nullBaşlıktan ayrıştırılan Türkçe KAP bildirim konusu, ör. Özel Durum Açıklaması (Genel). Üst kaynaktaki başlık kesilmişse ve önek tek anlamlıysa tamamlanır.
disclosure_type_codestring | nullO konunun KAP sınıfı: ÖDA, FR, DG veya DKB — kap.org.tr'den kaydedilmiş konu→sınıf tablosundan (104 konu). Konu bilinmiyorsa ya da belirsiz biçimde kesilmişse null. KAP'ın kendisinin, Borsa İstanbul'un, Takasbank'ın veya MKK'nın yayımladığı duyurular DKB'dir.
filerstring | nullBaşlıkta yazdığı haliyle bildirim sahibi (şirket ya da fon).
kap_codesstring[]Üst kaynakta bildirildiği haliyle kodlar, çözümlemeden önce.
fund_idsstring[]Bildirimin ilgili olduğu fon(lar), kanonik fund: kimlikleriyle.
fund_matchcode | filer_title | nullfund_ids'in nasıl atandığı: code (bir fon kodu bildirilmiş), filer_title (yalnızca yönetim şirketinin kodu bildirilmiş ve bildirim sahibi başlığı fonlarından tam birini eşleştirmiş) ya da null.
kap_issuersobject[]Bir enstrümana değil, bir portföy yönetim şirketine ait bildirilen kodlar (ör. HFP = Hedef Portföy); her biri kap_code, name ve fund_count ile.
Davranış değişikliği: symbols artık yalnızca gerçek enstrümanları (bist: ve fund: kimlikleri) içerir. HFP ya da TEY gibi yönetim şirketi kodları eskiden sahte bist: kimlikleri olarak görünürdü; artık kap_issuers içindeler. Ne BIST ne de fon kataloğunda olan bir kod hâlâ bist:{KOD} olarak döner.
feed item (abridged)
{
  "news_id": "5098715",
  "headline": "MARMARA CAPİTAL PORTFÖY YÖNETİMİ A.Ş. GSDHO,MAC,MAS,MPY Pay Alım Satım Bildirimi",
  "category": "KAP",
  "symbols": ["bist:GSDHO", "fund:MAC", "fund:MAS"],
  "disclosure_type": "Pay Alım Satım Bildirimi",
  "disclosure_type_code": "ÖDA",
  "filer": "MARMARA CAPİTAL PORTFÖY YÖNETİMİ A.Ş.",
  "kap_codes": ["GSDHO", "MAC", "MAS", "MPY"],
  "fund_ids": ["fund:MAC", "fund:MAS"],
  "fund_match": "code",
  "kap_issuers": [{"kap_code": "MPY", "name": "…", "fund_count": …}],
  "ai": { … }
}

Örnek — son bildirimler

curl — newest 25 disclosures (scope: kap)
curl -H "X-API-Key: $PORTGATE_KEY" \
  "https://api.theportfoy.com/portgate/v1/kap?limit=25"

Resmi KAP akışı: taşındı