Ö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
- Neden ekonomik takvimi API ile çekmelisiniz?
- Uç noktalar ve alanlar
- Bugünün ve haftanın takvimini çekmek
- Ülke, önem ve para birimi filtreleri
- Gösterge sözlüğü ve tarihçe
- Webhook ile açıklama anı uyarısı
- Faiz ve kur API'leriyle birlikte kullanım
- Sık yapılan hatalar
- 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
| Uç | 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?
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?
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?
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).