Ana Sayfa / Blog / Finans & Borsa
Finans & Borsa

Ekonomik Takvim API Entegrasyonu: TÜFE, Faiz Kararı ve Yüksek Etkili Makro Verileri Otomatik Takip Etmek

Yazar: apibir Geliştirici Ekibi 7 dk okuma süresi

Özet: Bu rehber, apibir Ekonomik Takvim API'sinin /calendar/events, /calendar/today, /calendar/indicators ve /calendar/webhooks uçlarını kullanarak TÜFE, faiz kararı, istihdam ve PMI gibi makro açıklamaları Node.js ve Python ile nasıl çekeceğinizi, önem filtresi uygulayacağınızı ve açıklama anında webhook uyarısı kuracağınızı adım adım anlatmaktadır.

İçindekiler

  1. Neden ekonomik takvimi API ile çekmelisiniz?
  2. Uç noktalar ve alanlar
  3. Bugünün ve haftanın takvimini çekmek
  4. Ülke, önem ve para birimi filtreleri
  5. Gösterge sözlüğü ve tarihçe
  6. Webhook ile açıklama anı uyarısı
  7. Faiz ve kur API'leriyle birlikte kullanım
  8. Sık yapılan hatalar
  9. Sık sorulan sorular

Özet: Fintech panolarında, trading ekranlarında ve hazine planlarında kritik makro tarihleri çoğu zaman bir Excel satırında veya üçüncü parti sitede kalır. TÜFE sabah 10:00'da açıklanınca uygulama hâlâ “bekleniyor” yazar; faiz kararı günü poll mantığı yoksa kullanıcı geç haber alır. Bu yazıda apibir Ekonomik Takvim API ile olay listesini çekmeyi, high-importance filtrelemeyi, actual/forecast/surprise alanl

Manuel takipte tipik kırılmalar:

  • Gecikme: Veri açıklandıktan sonra ekranınızda hâlâ “bekleniyor” durur.
  • Gürültü: Düşük etkili olaylar high-importance olaylarla aynı listede karışır.
  • Sürpriz yok: “Beklentinin kaç puan altında/üstünde?” sorusuna yanıt veremezsiniz.

API tabanlı kurgu üçünü birden çözer: güncelleme açıklama anına yakın, önem filtresi sunucuda uygulanır ve surprise / impact alanları hazır gelir.

Uç Noktalar ve Alanlar

Temel adres: https://api.apibir.com/v1

Ne döner
GET /calendar/events Tarih aralığındaki ekonomik olaylar
GET /calendar/today Bugünün takvimi
GET /calendar/indicators Gösterge sözlüğü ve tarihçesi
POST /calendar/webhooks Açıklama anında bildirim aboneliği

Kimlik doğrulama tüm apibir uçlarında aynıdır:

Authorization: apikey APIBIR-8f2c...9d41
Accept: application/json

Yanıt zarfı diğer servislerle ortaktır: success, datacURL — tarih aralığı

curl --request GET \
  --url "https://api.apibir.com/v1/calendar/events?start=2026-09-01&end=2026-09-30" \
  --header "authorization: apikey APIBIR-8f2c...9d41" \
  --header "accept: application/json"

Node.js (fetch)

async function haftalikTakvim(start, end) {
  const url = new URL("https://api.apibir.com/v1/calendar/events");
  url.searchParams.set("start", start);
  url.searchParams.set("end", end);

  const res = await fetch(url, {
    headers: { authorization: `apikey ${process.env.APIBIR_KEY}` }
  });
  if (!res.ok) throw new Error(`apibir ${res.status}`);

  const { data, timezone } = await res.json();
  return { events: data, timezone };
}

const { events } = await haftalikTakvim("2026-09-08", "2026-09-14");
console.log(events.length, events[0]?.event, events[0]?.datetime);

Python

import os, requests

HEADERS = {"authorization": f"apikey {os.environ['APIBIR_KEY']}"}

def calendar_events(start, end, **filters):
    r = requests.get(
        "https://api.apibir.com/v1/calendar/events",
        params={"start": start, "end": end, **filters},
        headers=HEADERS,
        timeout=10,
{
  "success": true,
  "creditsUsed": 1,
  "timezone": "Europe/Istanbul",
  "data": [
    {
      "id": "tr-cpi-2026-08",
      "datetime": "2026-08-03T10:00:00+03:00",
      "country": "TR",
      "currency": "TRY",
      "event": "TÜFE (Yıllık)",
      "indicator": "cpi_yoy",
      "importance": "high",
      "period": "Temmuz 2026",
      "actual": 28.4,
      "forecast": 29.1,
      "previous": 30.6,
      "unit": "%",
      "surprise": -0.7,
      "impact": "positive"
    }
  ]
}

actual henüz yoksa null gelir; panoda “bekleniyor” göstermek için bu alanı kullanın. Açıklama sonrası surprise (actual − forecast) ve impact (positive · negative · neutral) dolabilir.



2. Adım: Ülke, Önem ve Para Birimi Filtreleri


Trading veya hazine ekranında tüm olayları göstermek gürültü yaratır. Sunucu tarafı filtreler:


def kritik_takvim(start, end):
    events, _ = calendar_events(
        start,
        end,
        countries="TR,US",
        importance="high",
    )
    return sorted(events, key=lambda e: e["datetime"])

for e in kritik_takvim("2026-09-08", "2026-09-14"):
    print(e["datetime"], e["country"], e["event"], e.get("forecast"), e.get("actual"))

JavaScript — pano kartı

function takvimKartlari(events) {
  return events.map((e) => ({
    baslik: e.event,
    saat: e.datetime,
    ulke: e.country,
    onem: e.importance,
    beklenti: e.forecast,
    gerceklesen: e.actual,
    surpiriz: e.surprise,
    birim: e.unit,
  }));
}

3. Adım: Gösterge Sözlüğü ve Tarihçe

“TÜFE yıllık hangi kodda?” veya “Bu göstergenin son 12 açıklaması neydi?” soruları için /calendar/indicators kullanılır.

curl --request GET \
  --url "https://api.apibir.com/v1/calendar/indicators?code=cpi_yoy" \
  --header "authorization: apikey APIBIR-8f2c...9d41"
def indicator_meta(code):
    r = requests.get(
        "https://api.apibir.com/v1/calendar/indicators",

4. Adım: Webhook ile Açıklama Anı Uyarısı


Poll yerine olay bazlı abonelik için POST /calendar/webhooks kullanılır. Yüksek etkili bir açıklama geldiğinde Slack, Teams veya kendi endpoint'inize JSON düşer.


curl --request POST \
  --url "https://api.apibir.com/v1/calendar/webhooks" \
  --header "authorization: apikey APIBIR-8f2c...9d41" \
  --header "content-type: application/json" \
  --data '{
    "url": "https://hooks.example.com/apibir-calendar",
    "countries": ["TR", "US"],
    "importance": "high",
    "events": ["cpi_yoy", "policy_rate", "nfp"]
  }'

Python — gelen webhook'u işle


import json
from http.server import BaseHTTPRequestHandler

class Handler(BaseHTTPRequestHandler):
    def do_POST(self):
        length = int(self.headers.get("Content-Length", 0))
        body = json.loads(self.rfile.read(length))
        event = body.get("data") or body
        # actual dolunca bülten üret
        if event.get("actual") is not None:

5. Adım: Faiz ve Kur API'leriyle Birlikte Kullanım


Takvim “ne zaman?” sorusunu cevaplar; “oran ne?” ve “kur ne?” soruları ayrı servislerdedir:


  •  
  • PPK / faiz kararı günü → Faiz Oranları API (/rates/policy) ile oranı doğrulayın.
  •  
  • TÜFE sonrası kur hareketi → Döviz Kurları API ile anlık veya bülten kurunu okuyun.
  •  
  • İş günü / tatil filtresi → Resmi Tatiller & İş Günü API ile çekim takviminizi süzün.
  •  

def tufe_gunu_otomasyonu(events):
    """Yüksek etkili TR TÜFE olayında faiz + kur kartlarını yenile."""
    for e in events:
        if e.get("country") == "TR" and e.get("indicator") == "cpi_yoy":
            if e.get("actual") is not None:
                return {
                    "cpi": e,
                    # ayrı uçlardan çekilecek:
                    # rates = tcmb_politika()
                    # fx = usdtry_latest()
                }
    return None

Faiz Oranları entegrasyon rehberimizdeki nextMeeting alanı ile takvim olayını çapraz doğrulayabilirsiniz; tek kaynağa güvenmek yerine “takvim saati + oran güncellemesi” ikilisini ürün kuralı yapın.


Webhook zorunlu mu?

Hayır. Poll ile /calendar/today veya /calendar/events yeterlidir; düşük gecikme ve kredi tasarrufu için yüksek etkili olaylarda webhook tercih edin.

Faiz kararı ile politika faizi aynı şey mi?

Hayır. Takvim “karar saati”ni verir; güncel oran Faiz Oranları API'dedir. İkisini birlikte kullanın.

Kod yazmadan takip edebilir miyim?

Evet. Piyasa takip ve makroekonomik bülten otomasyonu kritik açıklamaları WhatsApp veya e-posta ile iletebilir. Kapsam için hizmetler ve teklif formuna bakın.

Başlamak için: Ücretsiz plan 100 kredi/ay ile geliştirme ve deneme için yeterlidir. Uç noktaların tamamı Ekonomik Takvim API sayfasında; kimlik doğrulama ve hata kodları dokümantasyonda yer alır.

Ücretsiz API anahtarını 30 saniyede alın →

Parametre Örnek Açıklama
Saat dilimini yok saymak ABD NFP'yi Türkiye saatinde yanlış göstermek. Yanıttaki timezone ve ISO-8601 datetime ile formatlayın.
Her sayfa yüklemesinde geniş aralık çekmek Gereksiz kredi tüketimi. Günü / haftayı önbelleğe alın; webhook ile yenileyin.
Görünen event metnine göre filtrelemek Metin değişince kural kırılır. indicator kodunu sabitleyin.
Takvimle oranı karıştırmak “Faiz kararı var” = “oran değişti” sanmak. Takvim + Faiz Oranları API birlikte.


Sık Sorulan Sorular


Veriler ne sıklıkla güncellenir?


Takvim olayları açıklama anına yakın güncellenir; actual alanı dolduğunda webhook abonelikleriniz tetiklenebilir. Ücretsiz planda aylık kredi limiti geçerlidir.


Hangi ülkeler destekleniyor?


countries parametresiyle TR, US, EU ve diğer yaygın kodlar filtrelenir. Ürün kapsamınız için Ekonomik Takvim API sayfasındaki güncel listeye bakın.



Sık Yapılan Entegrasyon Hataları




            print(
                f"{event['event']}: actual={event['actual']} "
                f"forecast={event.get('forecast')} surprise={event.get('surprise')}"
            )
        self.send_response(204)
        self.end_headers()

Aynı deseni Resmi Gazete özetlerini Slack'e taşıma yazımızda da kullanmıştık; yalnızca kaynak uç noktası değişir. Kod yazmadan takip isteyen ekipler için apibir'in makroekonomik bülten otomasyonu kritik açıklamaları WhatsApp veya e-posta olarak iletir.



        params={"code": code},
        headers=HEADERS,
        timeout=10,
    )
    r.raise_for_status()
    return r.json()["data"]

Gösterge kodunu (indicator) ürün kuralınızda sabit tutun; görünen event metni dil veya kaynak güncellemesiyle değişebilir. Geçmiş açıklama serisini kendi veritabanınızda saklayıp panoyu oradan besleyin; her sayfa görüntülemesinde API'ye gitmeyin.

Hata Sonucu Doğrusu
Tüm olayları aynı öncelikte göstermek Kullanıcı kritik veriyi kaçırır. importance=high veya ayrı “kritik” sekmesi.
actual null iken sürpriz hesaplamak Yanlış bülten / NaN. Açıklama sonrası surprise alanını kullanın.
start / end 2026-09-01 Tarih aralığı (varsayılan: bugün → +7 gün)
countries TR,US,EU Ülke kodları
importance high low, medium, high
currency TRY Etkilediği para birimi

Python — yalnızca yüksek etkili TR/US olayları



    )
    r.raise_for_status()
    payload = r.json()
    return payload["data"], payload.get("timezone")

events, tz = calendar_events("2026-09-01", "2026-09-30")
print(tz, len(events), events[0]["event"] if events else None)

Örnek yanıt iskeleti (dokümantasyondaki şemaya uygun):

e>, creditsUsed, creditsRemaining. Her başarılı istek 1 kredi harcar; 4xx hataları kredi düşürmez. Takvim yanıtlarında ek olarak timezone (varsayılan Europe/Istanbul) döner.

 

1. Adım: Bugünün ve Haftanın Takvimini Çekmek

cURL — bugün

curl --request GET \
  --url "https://api.apibir.com/v1/calendar/today" \
  --header "authorization: apikey APIBIR-8f2c...9d41" \
  --header "accept: application/json"

arını okumayı ve webhook ile anlık bildirim kurmayı anlatıyoruz.

 

Neden Ekonomik Takvimi API ile Çekmelisiniz?

Makro takvim tek bir “haber listesi” değildir. Ürününüzün ihtiyacına göre şu katmanlar ayrı ayrı gelir:

  •  
  • Zamanlama — açıklama tarih-saati (Europe/Istanbul veya seçilen dilim).
  •  
  • Önem — low / medium / high; piyasa etkisi beklentisi.
  •  
  • Beklenti vs gerçekleşen — forecast, previous, actual ve surprise.
  •  
  • Bağlam — ülke, para birimi, gösterge kodu (ör. cpi_yoy, nfp).
  •  

← Tüm Blog Yazılarına Dön Ücretsiz API Anahtarı Al