İçeriğe geç

Kılavuz APIv0.1.0

Doküman

Türkiye verisi için tek anahtar, tek kredi havuzu: adres, doğrulama, kamu verisi, vergi ve finans, kargo ve e-ticaret, takvim, metin, spor ve araçlar. 9 grupta 36 alan, 135 uç; 89 tanesi ücretsiz. Aynı araçlar MCP olarak da sunulur (POST /mcp). Hatalar her zaman {"hata": "…"} biçimindedir.

Bu sayfa GET /openapi.json şemasından üretildi (OpenAPI 3.1). Kendi istemcini üretmek için aynı dosyayı kullanabilirsin.

İlk istek

  1. Anahtarını al

    Kayıt formu ya da POST /v1/kayit. Anahtar bir kez gösterilir; biz yalnız özetini saklarız.

  2. İki değişken tanımla

    export KILAVUZ="https://api.kilavuzapi.com"
    export KILAVUZ_ANAHTAR="ak_live_…"
  3. Bir adres çözümle

    curl -X POST "$KILAVUZ/v1/address/resolve" \
      -H "authorization: Bearer $KILAVUZ_ANAHTAR" \
      -H "content-type: application/json" \
      -d '{"q":"kadikoy istanbul moda cad 14"}'

Kimlik ve kredi

Her istek authorization: Bearer ak_live_… başlığıyla gelir. Bütün uçlar aynı kredi havuzundan harcar: ücretsiz planda ayda 1.000 kredi. Her ucun fiyatı aşağıda kendi başlığının yanında yazar; toplu isteklerde adres ya da IBAN başına düşer. Ücretsiz (anahtarla) yazan uç kredi düşürmez ama anahtar ister; anahtarsız yazan uç anahtarsız çağrılır. Kalan krediyi GET /v1/kullanim ya da panel söyler.

Aynı araçlar uzak MCP olarak da açık: POST /mcp. İstemci kurulumu bağlan sayfasında.

Claude'a bağlan

Claude'u anahtar yapıştırmadan bağlarsın: bağlayıcı seni Kılavuz girişine gönderir, izin verince araçlar açılır. Kredi hesabından düşer; bağlantıyı panelde Bağlı uygulamalardan kesersin.

  1. Bağlayıcı ekle

    Claude.ai ya da Claude Desktop'ta Ayarlar → Bağlayıcılar → Özel bağlayıcı ekle.

  2. Adresi yapıştır

    https://api.kilavuzapi.com/mcp
  3. Gir ve izin ver

    Bağlan'a basınca Kılavuz giriş sayfası açılır. Google, Apple ya da e-posta koduyla gir, sonra izin ver.

Claude Code'da aynı adresle:

claude mcp add --transport http kilavuz https://api.kilavuzapi.com/mcp

Ardından Claude Code içinde /mcp yazıp girişi tamamla.

Hatalar

Hata her uçta aynı biçimde döner, yanında anlamlı bir HTTP durum kodu:

{ "hata": "geçersiz API anahtarı" }
400
İstek gövdesi eksik ya da hatalı; mesaj hangi alan olduğunu söyler.
401
Anahtar yok, geçersiz ya da iptal edilmiş.
429
Kredi bitti ya da hız sınırı doldu. Varsa Retry-After kaç saniye bekleneceğini söyler.
503
Hizmet geçici olarak kapalı; ödeme uçları sağlayıcı açılana kadar bunu döner.

Toplu CSV

Sipariş ya da müşteri dosyasını tek istekte temizle: POST /v1/address/temizle. Gövde dosyanın kendisidir (multipart değil). Yanıt aynı CSV'dir: senin sütunların olduğu gibi kalır, sonuna ak_ önekli 11 sütun eklenir. Aynı işi panelden dosya seçerek de yapabilirsin.

curl -X POST "$KILAVUZ/v1/address/temizle" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR" \
  -H "content-type: text/csv" \
  --data-binary @siparisler.csv \
  -D - -o siparisler-temiz.csv

-d değil --data-binary kullan; -d satır sonlarını siler. -D - yanıt başlıklarını ekrana basar: x-adreskit-satir adresi dolu satır sayısı, x-adreskit-kredi düşen kredi, x-adreskit-kodlama dosyanın hangi kodlamayla okunduğu.

Kredi ve sınırlar

Kredi tekil dolu adres başına 1'dir. Dosyada tekrar eden adres bir kez, boş hücre hiç sayılmaz. Dosya en fazla 2,5 MB ve 10.000 veri satırı olabilir; büyüğünü parçalara böl. Dosya ya bütünüyle işlenir ya da kredi düşmez: aşağıdaki hataların hiçbiri kredi yakmaz. Dosya saklanmaz; yalnız kimlik ve adres sütunlarını göndermen yeterli.

Örnek

siparisler.csv

siparis;adres
1001;moda cad 14 kadikoy istanbul
1002;Atatürk Blv. No:5 Kızılay Çankaya Ankara
1003;moda cad 14 kadikoy istanbul
1004;Konak İzmir
1005;

siparisler-temiz.csv

siparis;adres;ak_il;ak_ilce;ak_mahalle;ak_yol;ak_bina_no;ak_daire;ak_enlem;ak_boylam;ak_hassasiyet;ak_guven;ak_durum
1001;moda cad 14 kadikoy istanbul;İstanbul;Kadıköy;;Moda Caddesi;14;;40.985993;29.024957;sokak;0.85;tamam
1002;Atatürk Blv. No:5 Kızılay Çankaya Ankara;Ankara;Çankaya;;Atatürk Bulvarı;5;;39.91933;32.854647;sokak;0.85;tamam
1003;moda cad 14 kadikoy istanbul;İstanbul;Kadıköy;;Moda Caddesi;14;;40.985993;29.024957;sokak;0.85;tamam
1004;Konak İzmir;İzmir;Konak;;;;;38.418474;27.139799;ilce;0.4;kismi
1005;;;;;;;;;;;;bos

Bu dosya için yanıt başlıkları x-adreskit-satir: 4, x-adreskit-kredi: 3 olur: 1001 ile 1003 aynı adres, 1005 boş. Çıktı her zaman UTF-8'dir ve başında BOM vardır ki Excel Türkçe karakterleri doğru açsın. Ayırıcı girdiyle aynı kalır.

Eklenen sütunlar
ak_ilİl, resmî yazımıyla
ak_ilceİlçe
ak_mahalleMahalle; adreste yoksa ya da bulunamazsa boş
ak_yolCadde, sokak ya da bulvar, tam adıyla
ak_bina_noKapı numarası
ak_daireDaire
ak_enlemEnlem (WGS84)
ak_boylamBoylam (WGS84)
ak_hassasiyetKoordinatın inceliği: sokak, ilçe (merkez) ya da il (merkez); adresin doğrulanmasından bağımsız
ak_guven0 ile 1 arası güven puanı
ak_durumSatırın özeti; aşağıda

ak_durum değerleri

tamam
İl, ilçe ve yol sicilde bulundu.
kismi
İl ve ilçe bulundu; yol bulunamadı ya da adreste yazmıyor.
yalniz_il
Yalnız il bulundu. Bu satıra elle bak.
cozulemedi
İl bile bulunamadı.
bos
Adres hücresi boş; kredi düşmez.

Seçenekler

Hepsi isteğe bağlı sorgu parametresidir; varsayılanlar çoğu dosyada doğru çalışır.

sutun
Adres sütununun başlık adı ya da 1'den başlayan sırası. Verilmezse adres, address, açık adres, teslimat adresi gibi adlar aranır.
ayirici
auto (varsayılan), ,, ; ya da tab.
kodlama
auto, utf-8 ya da windows-1254. Türkçe Excel'in "CSV" kaydı windows-1254'tür; auto ikisini de tanır.
baslik
0 verilirse ilk satır veri sayılır; o zaman sutun sıra numarası olmalı.

Hatalar

400
CSV bozuk (mesaj satır numarasını söyler) ya da adres sütunu bulunamadı. İkincisinde yanıtta basliklar da gelir; birini sutun ile seç.
413
Dosya 2,5 MB'ı ya da 10.000 satırı aşıyor.
415
Gövde CSV değil; content-type: text/csv gönder.
429
Kredi yetmiyor; mesaj bu dosyanın kaç kredi gerektirdiğini söyler.
503
Dosya süre sınırında işlenemedi. Daha küçük parçalarla dene.

Adres

Serbest yazılmış adresi çözümle, doğrula, karşılaştır; koordinattan en yakın sokak, iki nokta arası mesafe; form için il, ilçe, mahalle, sokak ve plaka listeleri.

Adres

0–1 kredi

İl, ilçe ve mahalle listeleri ücretsiz; form açılır kutuları için. Sokak tamamlama ilçe içinde arar, mahalleye göre süzmez: sicilde sokak ilçeye bağlı. Mesafe kuş uçuşu; karayolu değeri ×1,3 katsayılı tahmindir, rota değildir. Ters geokod en yakın koordinatlı sokağı döner, mahalle vermez; sonuç yoksa ücretsiz.

POST/v1/address/resolve

1 kredi

Adres çözümle ve doğrula

Anahtar gerekli

Serbest metin adresi bileşenlerine ayırır, adları sokak sicilinde arar. adresler[] ile toplu (en fazla 1000, adres başına 1 kredi). Koordinat yalnız sokak sicilde koordinatlıysa döner.

İstek gövdesi
AlanTipAçıklama
qstring
adreslerstring[]en fazla 1000

Örnek istek

curl -X POST "$KILAVUZ/v1/address/resolve" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR" \
  -H "content-type: application/json" \
  -d '{"q":"kadikoy istanbul moda cad 14"}'

Yanıtlar

  • 200BaşarılıAdresSonucu ya da object
  • 400q ya da adresler eksik, boş ya da metin olmayan elemanHata
  • 401Anahtar yok ya da geçersizHata
  • 4131000'den fazla adresHata
  • 429Kredi limiti aşıldıHata
Toplu yanıt
sonuclarAdresSonucu[]

POST/v1/address/parse

ücretsiz (anahtarla)

Yalnız ayrıştır (ücretsiz)

Anahtar gerekli

Sicile bakmaz, koordinat vermez. Anahtar ister ama kredi düşmez.

İstek gövdesi
AlanTipAçıklama
qzorunlustring

Örnek istek

curl -X POST "$KILAVUZ/v1/address/parse" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR" \
  -H "content-type: application/json" \
  -d '{"q":"ataturk bulv no:12/5 cankaya"}'

Yanıtlar

GET/v1/address/posta-kodu/{kod}

ücretsiz (anahtarla)

Posta kodundan ilçe (ücretsiz)

Anahtar gerekli

Kodun gözlendiği ilçeler, POI sayısına göre sıralı; kod birden çok ilçeye yayılıyorsa hepsi döner. Kaynak PTT değil: Overture Maps Places (CDLA-Permissive 2.0) işletme adreslerindeki kodlar. Kapsam eksik (yaklaşık 3.600 kod); bulunamayan kod 404. Mahalle düzeyinde eşleme yok.

Parametreler
AdYerTipAçıklama
kodzorunluyolstring

Örnek istek

curl "$KILAVUZ/v1/address/posta-kodu/<kod>" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400Kod 5 haneli değilHata
  • 401Anahtar geçersizHata
  • 404Kod kaynakta gözlenmedi (kaynak ve kapsam notuyla)Hata
Yanıt alanları
kodstring
ilcelerobject[]
ilceler[].ilstring
ilceler[].ilcestring
ilceler[].poiSayisiintegerKodu bu ilçede yazan işletme sayısı
kaynakstring
kapsamstring

GET/v1/address/plaka/{kod}

ücretsiz (anahtarla)

Plaka kodundan il (ücretsiz)

Anahtar gerekli

İl plaka kodu (01–81) → il adı; /v1/address/iller listesinin ters yönü. Kaynak aynı kamu kaydı. 82 ve üstü kodlar il değildir, 422 döner.

Parametreler
AdYerTipAçıklama
kodzorunluyolstring

Örnek istek

curl "$KILAVUZ/v1/address/plaka/<kod>" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400Kod 1–2 haneli sayı değilHata
  • 401Anahtar geçersizHata
  • 422Koda karşılık il yokHata
Yanıt alanları
plakaintegerSayı olarak kod (34)
kodstringİki haneli yazım ("06")
ilstring
kaynakstring
lisansstring

GET/v1/address/iller

ücretsiz (anahtarla)

81 il (ücretsiz)

Anahtar gerekli

Örnek istek

curl "$KILAVUZ/v1/address/iller" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 401Anahtar geçersizHata
Yanıt alanları
toplaminteger
illerobject[]
iller[].plakainteger
iller[].adstring
kaynakstring
lisansstring

GET/v1/address/ilceler

ücretsiz (anahtarla)

İlin ilçeleri (ücretsiz)

Anahtar gerekli

Parametreler
AdYerTipAçıklama
ilzorunlusorgustringAd ya da plaka

Örnek istek

curl "$KILAVUZ/v1/address/ilceler?il=İzmir" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400il eksikHata
  • 401Anahtar geçersizHata
  • 422il bulunamadıHata
Yanıt alanları
ilstring
plakainteger
toplaminteger
ilcelerobject[]
ilceler[].idinteger
ilceler[].adstring
kaynakstring
lisansstring

GET/v1/address/mahalleler

ücretsiz (anahtarla)

İlçenin mahalle ve köyleri (ücretsiz)

Anahtar gerekli

Parametreler
AdYerTipAçıklama
ilzorunlusorgustringAd ya da plaka
ilcezorunlusorgustring

Örnek istek

curl "$KILAVUZ/v1/address/mahalleler?il=İstanbul&ilce=Kadıköy" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400il ya da ilce eksikHata
  • 401Anahtar geçersizHata
  • 422il ya da ilçe bulunamadıHata
Yanıt alanları
ilstring
ilcestring
toplaminteger
mahallelerobject[]
mahalleler[].adstring
mahalleler[].tip"mahalle" | "koy"
kaynakstring
lisansstring

GET/v1/address/sokak-tamamla

1 kredi

Sokak adı tamamlama

Anahtar gerekli

İlçedeki sicil sokaklarından q ile başlayanlar, sonra adının bir sözcüğü q ile başlayanlar; her grupta işlek sokak önce. Türkçe karaktersiz yazılabilir. Mahalleye göre süzmez: sicilde sokak ilçeye bağlı. yollar her yol tipiyle tam ad ("Bağdat Caddesi"). Öneri yoksa kredi düşmez.

Parametreler
AdYerTipAçıklama
ilzorunlusorgustring
ilcezorunlusorgustring
qzorunlusorgustring
limitsorguinteger

Örnek istek

curl "$KILAVUZ/v1/address/sokak-tamamla?il=İstanbul&ilce=Kadıköy&q=bagd&limit=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400q, il ya da ilce eksik; limit aralık dışıHata
  • 401Anahtar yok ya da geçersizHata
  • 422il ya da ilçe bulunamadıHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
ilstring
ilcestring
qstring
sokaklarobject[]
sokaklar[].adstring
sokaklar[].tiplerstring[]
sokaklar[].yollarstring[]
kaynakstring
lisansstring

GET/v1/address/ters

1 kredi

Ters geokod: koordinattan en yakın sokak

Anahtar gerekli

Koordinata en yakın sicil sokağını, ilçesini ve ilini döner. Sokak koordinatı o sokağa adres yazan işletmelerin medyanıdır (kapı numarası değil), bu yüzden uzaklikM sokağın üstündeyken bile birkaç yüz metre olabilir. Arama yarıçapı 25 km (routes/ters.ts AZAMI_YARICAP_KM); içinde sokak yoksa alanlar null döner ve kredi düşmez. Mahalle verilmez (sicilde sokak ilçeye bağlı). Türkiye dışı koordinat 422.

Parametreler
AdYerTipAçıklama
latzorunlusorgunumber
lonzorunlusorgunumber

Örnek istek

curl "$KILAVUZ/v1/address/ters?lat=40.9812&lon=29.0257" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400lat ya da lon eksik veya aralık dışıHata
  • 401Anahtar yok ya da geçersizHata
  • 422Koordinat Türkiye dışındaHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
konumobject
konum.latnumber
konum.lonnumber
aramaYaricapiKmnumber
sokakobject | null
sokak.adstring
sokak.tiplerstring[]
sokak.yollarstring[]
sokak.latnumber
sokak.lonnumber
sokak.poiSayisiintegerKoordinatın kaç işletmeden türediği
ilstring | null
plakainteger | null
ilcestring | null
mahallenullSicilde sokak-mahalle bağı yok; her zaman null
uzaklikMinteger | null
kaynakstring
lisansstring
notstring

GET/v1/address/mesafe

ücretsiz (anahtarla)

İki nokta arası mesafe (ücretsiz)

Anahtar gerekli

a ve b il adı, plaka ya da "enlem,boylam" olabilir. Kuş uçuşu mesafe haversine ile; karayolu tahmini kuş uçuşunun 1,3 katı, kaba bir yaklaşıklık — rota servisi değildir. İl verilirse merkez koordinatı Overture POI medyanından gelir.

Parametreler
AdYerTipAçıklama
azorunlusorgustring
bzorunlusorgustring

Örnek istek

curl "$KILAVUZ/v1/address/mesafe?a=İstanbul&b=35" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400a ya da b eksik veya koordinat biçimi hatalıHata
  • 401Anahtar geçersizHata
  • 422il bulunamadıHata
Yanıt alanları
aMesafeUcu
bMesafeUcu
kusUcusuKmnumber
karayoluTahminiKmnumber
katsayinumber
kaynakstring
notstring

POST/v1/address/ayni-mi

1 kredi

İki adres aynı yer mi

Anahtar gerekli

İki adres çözümlenip bileşen bileşen karşılaştırılır. karar: ayni_adres (il, ilçe, yol, bina no aynı; daire aynı ya da ikisinde de yok), ayni_bina (daire farklı ya da birinde yok), ayni_sokak, farkli, belirsiz (ilçe ya da yol çözülemedi). Mahalle karara girmez. benzerlik 0–1: üst bileşen farklıysa alttakiler sayılmaz.

İstek gövdesi
AlanTipAçıklama
azorunlustringen fazla 1000 karakter
bzorunlustringen fazla 1000 karakter

Örnek istek

curl -X POST "$KILAVUZ/v1/address/ayni-mi" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR" \
  -H "content-type: application/json" \
  -d '{}'

Yanıtlar

  • 200Başarılı
  • 400a ya da b eksikHata
  • 401Anahtar yok ya da geçersizHata
  • 413adres 1000 karakteri aşıyorHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
karar"ayni_adres" | "ayni_bina" | "ayni_sokak" | "farkli" | "belirsiz"
benzerliknumber
bilesenlerobjectayni; farkli; eksik (yalnız birinde var); yok (ikisinde de yok)
bilesenler.il"ayni" | "farkli" | "eksik" | "yok"
bilesenler.ilce"ayni" | "farkli" | "eksik" | "yok"
bilesenler.mahalle"ayni" | "farkli" | "eksik" | "yok"
bilesenler.yol"ayni" | "farkli" | "eksik" | "yok"
bilesenler.binaNo"ayni" | "farkli" | "eksik" | "yok"
bilesenler.daire"ayni" | "farkli" | "eksik" | "yok"
farklarstring[]
aobject
bobject

POST/v1/address/temizle

1 kredi

Toplu adres temizleme (CSV → CSV)

Anahtar gerekli

Gövde ham CSV (multipart değil). Aynı CSV döner: özgün sütunlar olduğu gibi, sona ak_il, ak_ilce, ak_mahalle, ak_yol, ak_bina_no, ak_daire, ak_enlem, ak_boylam, ak_hassasiyet, ak_guven, ak_durum (tamam: il+ilçe+yol sicilde | kismi: il+ilçe | yalniz_il | cozulemedi | bos). Kredi **tekil dolu adres** başına 1; dosya içi tekrar ve boş hücre ücretsiz. Dosya ya bütünüyle işlenir ya da kredi düşmez. En fazla 2,5 MB ve 10.000 veri satırı; büyük dosyayı bölün. Dosya saklanmaz; yalnız kimlik ve adres sütunlarını göndermeniz yeterli.

Parametreler
AdYerTipAçıklama
sutunsorgustringAdres sütununun başlık adı ya da 1'den başlayan sırası. Verilmezse `adres`, `address`, `açık adres`, `teslimat adresi`… aranır.
ayiricisorgu"auto" | "," | ";" | "tab"
basliksorgu"1" | "0"0: ilk satır veri; `sutun` sıra numarası olmalı
kodlamasorgu"auto" | "utf-8" | "windows-1254"TR Excel "CSV" kaydı windows-1254; auto ikisini de tanır. Çıktı her zaman UTF-8 (BOM ile).

Örnek istek

curl -X POST "$KILAVUZ/v1/address/temizle" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR" \
  -H "content-type: text/csv" \
  --data-binary @siparisler.csv \
  -o siparisler-temiz.csv

Yanıtlar

  • 200Temizlenmiş CSV
  • 400CSV bozuk (satır numarasıyla) ya da adres sütunu bulunamadıHata
  • 401Anahtar yok ya da geçersizHata
  • 4132,5 MB ya da 10.000 satır aşıldıHata
  • 415Gövde CSV değilHata
  • 429Kredi limiti aşıldıHata
  • 503Süre sınırı aşıldı; kredi düşülmediHata

Doğrulama

Numaraların ve barkodların biçim ve algoritma kontrolü; resmî bir kayda sorulmaz.

IBAN

0–1 kredi

POST/v1/iban/dogrula

1 kredi

IBAN doğrula, bankayı çöz

Anahtar gerekli

ISO 13616 mod-97. ibanlar[] ile toplu (en fazla 1000, IBAN başına 1 kredi).

İstek gövdesi
AlanTipAçıklama
ibanstring
ibanlarstring[]en fazla 1000

Örnek istek

curl -X POST "$KILAVUZ/v1/iban/dogrula" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR" \
  -H "content-type: application/json" \
  -d '{"iban":"TR33 0006 1005 1978 6457 8413 26"}'

Yanıtlar

  • 200BaşarılıIbanSonucu ya da object
  • 400iban ya da ibanlar eksik, boş ya da metin olmayan elemanHata
  • 401Anahtar yok ya da geçersizHata
  • 4131000'den fazla IBANHata
  • 429Kredi limiti aşıldıHata
Toplu yanıt
sonuclarIbanSonucu[]
ozetobject
ozet.toplaminteger
ozet.gecerliinteger

GET/v1/iban/bankalar

ücretsiz (anahtarla)

TCMB banka kodu listesi (ücretsiz)

Anahtar gerekli

Örnek istek

curl "$KILAVUZ/v1/iban/bankalar" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 401Anahtar geçersizHata

Alan kodu

ücretsiz (anahtarla)

BTK’nın tahsisli numaralar raporundan. GSM öneki numaranın ilk tahsis edildiği işletmeciyi gösterir; numara taşınmışsa bugünkü işletmeci farklı olabilir.

GET/v1/telefon/alan-kodu/{kod}

ücretsiz (anahtarla)

Alan kodundan il, GSM önekinden işletmeci (ücretsiz)

Anahtar gerekli

Üç haneli coğrafi alan kodunu ile çevirir (0212 → İstanbul Avrupa Yakası, 0216 → Anadolu Yakası) ya da GSM önekinin ilk tahsis edildiği işletmeciyi söyler (0532 → Turkcell). Numara taşınabilirliği nedeniyle GSM önekinin numaranın bugünkü işletmecisini göstermediği yanıtta yazar. "+90 212", "(0212)", "212" kabul.

Parametreler
AdYerTipAçıklama
kodzorunluyolstring

Örnek istek

curl "$KILAVUZ/v1/telefon/alan-kodu/<kod>" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 401Anahtar yok ya da geçersizHata
  • 404alan kodu tanınmadıHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
tur"cografi" | "gsm"
kodstring
bolumstringYalnız İstanbul
ilobject
il.plakainteger
il.adstring
il.bolgestring
alanKodlariobject[]
alanKodlari[].kodstring
alanKodlari[].bolumstring
operatorstringYalnız GSM
kullanim"mobil" | "m2m" | "yabanci"Yalnız GSM
kaynakstring
kaynakUrlstring
guncellemestring
notstring

Barkod

0–1 kredi

EAN-13, EAN-8 ve UPC-A kontrol hanesi. GS1 öneki numaranın hangi GS1 üye kuruluşundan alındığını söyler; ürünün nerede üretildiğini söylemez.

POST/v1/urun/kdv-orani

1 kredi

Ürün adından KDV oranı (1/10/20) ve GTİP tahmini

Anahtar gerekli

Ürün adını 2007/13033 BKK eki (I) ve (II) sayılı listelerden yazılmış ölçüte göre %1, %10 ya da %20'ye sınıflandırır ve gömülü TGTC 2026 cetvelinden çıkan on iki haneli adaylar arasından GTİP'i seçer (TypeSafe Jev, tek istek). Oran güveni 0,8'in altındaysa belirsiz: true; GTİP güveni 0,6 altıysa gtip.belirsiz: true, 0,3 altıysa ya da uygun aday yoksa gtip: null. GTİP fasılı oranla çelişirse (gıda fasılı ama %20 gibi) ikisi de belirsiz, gerekçe celiski'de. **Tahmindir, vergi ya da gümrük tavsiyesi değildir.** Tek ürün urun ya da en çok 100 ürün urunler; ürün başına 1 kredi, sınıflandırılamayan ürün kredisiz. Sınıflandırıcıya ulaşılamazsa 503 (kredi düşmez). Yalnız ürün adı gönderin: e-posta ya da 10+ haneli numara içeren girdi 400. Ürün adı loglanmaz.

İstek gövdesi
AlanTipAçıklama
urunstringen fazla 200 karakter
urunlerstring[]en fazla 100

Örnek istek

curl -X POST "$KILAVUZ/v1/urun/kdv-orani" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR" \
  -H "content-type: application/json" \
  -d '{"urun":"Organik süzme bal 850 g"}'

Yanıtlar

  • 200Başarılı
  • 400urun/urunler eksik ya da ürün adı değilHata
  • 401Anahtar yok ya da geçersizHata
  • 413100'den fazla ürünHata
  • 429Kredi limiti aşıldıHata
  • 503Sınıflandırıcı kapalı ya da ulaşılamıyor; kredi düşülmediHata
Yanıt alanları
urunstring
kdvOrani1 | 10 | 20
guvennumber
belirsizbooleanOran güveni 0,8 altı ya da GTİP fasılıyla çelişiyor: mali müşavire danışın
olasiliklarobject
olasiliklar.1number
olasiliklar.10number
olasiliklar.20number
gtipobject | nullÜrün adından GTİP (TGTC 2026) tahmini: cetvelden çıkan adaylardan seçilen on iki haneli satır. Aday yoksa, sınıflandırıcı "hiçbiri" dediyse ya da güveni 0,3 altındaysa null. Gümrük beyanında kullanılmaz.
gtip.kodstring
gtip.kodNoktalistring
gtip.tanimstringPozisyondan satıra tanımlar, " › " ile
gtip.guvennumber
gtip.belirsizbooleanGüven 0,6 altı ya da oranla çelişiyor
celiskistring | nullGTİP fasılı ile oran çelişiyorsa kısa gerekçe (ör. gıda fasılı ama %20)
onbellekboolean
sonuclarobject[]Yalnız toplu istekte, girdi sırasıyla
sonuclar[].urunstring
sonuclar[].kdvOrani1 | 10 | 20
sonuclar[].guvennumber
sonuclar[].belirsizbooleanOran güveni 0,8 altı ya da GTİP fasılıyla çelişiyor: mali müşavire danışın
sonuclar[].olasiliklarobject
sonuclar[].gtipobject | nullÜrün adından GTİP (TGTC 2026) tahmini: cetvelden çıkan adaylardan seçilen on iki haneli satır. Aday yoksa, sınıflandırıcı "hiçbiri" dediyse ya da güveni 0,3 altındaysa null. Gümrük beyanında kullanılmaz.
sonuclar[].celiskistring | nullGTİP fasılı ile oran çelişiyorsa kısa gerekçe (ör. gıda fasılı ama %20)
sonuclar[].onbellekboolean
sonuclar[].hatastringYalnız toplu yanıtta, sınıflandırılamayan ürün (kredisiz)
ozetobject
ozet.toplaminteger
ozet.basariliinteger
ozet.belirsizinteger
kaynakstring
yontemstring
notstring
guncellemestring

GET/v1/urun/barkod/{ean}

ücretsiz (anahtarla)

Barkod sağlaması ve GS1 öneki (ücretsiz)

Anahtar gerekli

EAN-13, EAN-8 ve UPC-A kontrol hanesini doğrular; UPC-A'yı 13 haneli karşılığına çevirir ve ilk üç haneden öneki tahsis eden GS1 üye kuruluşunu söyler (868–869 = GS1 Türkiye). Boşluk ve tire yok sayılır. Önek ürünün **üretim yerini göstermez**, numarayı veren kuruluşu gösterir; yanıttaki not bunu taşır. Kontrol hanesi tutmayan barkod 200 + gecerli: false (beklenen hane ile) döner; harf ya da geçersiz uzunluk 400. Ağ isteği yok, tablo gömülü. GÜBİS güvensiz ürün tablosu varsa guvensizBildirim eklenir (bildirimde yazan barkoda göre; ayrıntı GET /v1/urun/guvensiz); tablo yoksa alan hiç gelmez.

Parametreler
AdYerTipAçıklama
eanzorunluyolstring

Örnek istek

curl "$KILAVUZ/v1/urun/barkod/<ean>" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400Barkod rakam dışı karakter içeriyor ya da uzunluk 8/12/13 değilHata
  • 401Anahtar geçersizHata
Yanıt alanları
gecerliboolean
barkodstring
tur"ean13" | "ean8" | "upca"
ean13string
onekstring | nullİlk üç hane (EAN-8'de yok)
ulkestring | nullÖneki tahsis eden GS1 üye kuruluşu
turkiyeboolean
kontrolHanesiobject
kontrolHanesi.verilenstring
kontrolHanesi.beklenenstring
hatastring | nullYalnız gecerli=false iken: kontrol_basamagi
aciklamastring | null
notstringÖnek yorumunun sınırı; kullanıcıya iletin
guvensizBildirimobjectGÜBİS'te bu barkodu anan güvensiz ürün bildirimi var mı (yalnız tablo varken)
guvensizBildirim.varboolean
guvensizBildirim.bildirimlerobject[]
guvensizBildirim.kaynakstring
guvensizBildirim.ayrintistringAyrıntılı sorgu yolu

GET/v1/urun/guvensiz

1 kredi

Güvensiz ürün bildirimleri (GÜBİS)

Anahtar gerekli

Ticaret Bakanlığı Güvensiz Ürün Bilgi Sistemi'ndeki bildirimler (2018–, ~1.000): ürün, marka, model, barkod, menşe, risk, güvensizlik nedeni, alınan önlem (toplatma, piyasaya arz yasağı…) ve mevzuat. Günde iki kez çekilir, istek anında kaynağa gidilmez. Firma adı ve adresi verilmez (şahıs ithalatçıda kişisel veri). Barkod yalnız bildirimde yazıyorsa eşleşir; çoğu bildirimde yok, marka/ara ile de sorun. marka, kategori, ara sözcükleri ürün, marka, model, etiket adı ve kategoride aranır (hepsi geçmeli). En yeni bildirim önce. Liste boşsa kredi düşmez.

Parametreler
AdYerTipAçıklama
barkodsorgustring8–14 hane
markasorgustring
kategorisorgustring
arasorgustring
limitsorguinteger

Örnek istek

curl "$KILAVUZ/v1/urun/guvensiz?barkod=…&marka=…&kategori=oyuncak&ara=peluş anahtarlık&limit=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400filtre yok, barkod ya da limit geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
toplaminteger
bildirimlerobject[]
bildirimler[].ridintegerGÜBİS kayıt kimliği
bildirimler[].bildirimNostring
bildirimler[].bildirimTarihistring (date)
bildirimler[].kurumstring | null
bildirimler[].kategoristring | null
bildirimler[].urunGrubustring | null
bildirimler[].urunstring
bildirimler[].markastring | null
bildirimler[].modelstring | null
bildirimler[].etiketAdistring | null
bildirimler[].barkodlarstring[]
bildirimler[].menseistring | null
bildirimler[].risklerstring | null
bildirimler[].nedenstring | null
bildirimler[].onlemstring | null
bildirimler[].onlemTarihistring | null (date)
bildirimler[].mevzuatstring | null
bildirimler[].urlstring
bildirimler[].detaylibooleanAyrıntı sayfası okunduysa true; değilse yalnız RSS alanları dolu
kaynakstring
kaynakUrlstring
lisansstring
guncellemestring | nullSon başarılı çekim (ISO 8601); hiç yoksa null
bayatboolean
notstring

TCKN, VKN, telefon

0–1 kredi

Yalnız algoritma kontrolü; resmî bir kayda sorulmaz. Gönderilen numara veritabanına yazılmaz, TCKN yanıtta dönmez.

POST/v1/dogrula/tckn

1 kredi

TCKN doğrula

Anahtar gerekli

11 hane, ilk hane ≠ 0, iki kontrol hanesi. Numara yanıtta dönmez. tcknler[] ile toplu (en fazla 1000, öğe başına 1 kredi).

İstek gövdesi
AlanTipAçıklama
tcknstring
tcknlerstring[]en fazla 1000

Örnek istek

curl -X POST "$KILAVUZ/v1/dogrula/tckn" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR" \
  -H "content-type: application/json" \
  -d '{"tckn":"10000000146"}'

Yanıtlar

  • 200BaşarılıKimlikSonucu ya da object
  • 400tckn ya da tcknler eksikHata
  • 401Anahtar yok ya da geçersizHata
  • 4131000'den fazla elemanHata
  • 429Kredi limiti aşıldıHata
Toplu yanıt
sonuclarKimlikSonucu[]Girdi sırasıyla
ozetobject
ozet.toplaminteger
ozet.gecerliinteger

POST/v1/dogrula/vkn

1 kredi

VKN doğrula

Anahtar gerekli

GİB kontrol hanesi. 11 hane gelirse şahıs şirketi (VKN = TCKN) sayılır. vknler[] ile toplu (en fazla 1000, öğe başına 1 kredi).

İstek gövdesi
AlanTipAçıklama
vknstring
vknlerstring[]en fazla 1000

Örnek istek

curl -X POST "$KILAVUZ/v1/dogrula/vkn" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR" \
  -H "content-type: application/json" \
  -d '{"vkn":"1234567890"}'

Yanıtlar

  • 200BaşarılıKimlikSonucu ya da object
  • 400vkn ya da vknler eksikHata
  • 401Anahtar yok ya da geçersizHata
  • 4131000'den fazla elemanHata
  • 429Kredi limiti aşıldıHata
Toplu yanıt
sonuclarKimlikSonucu[]Girdi sırasıyla
ozetobject
ozet.toplaminteger
ozet.gecerliinteger

POST/v1/dogrula/telefon

1 kredi

Telefon doğrula ve biçimle

Anahtar gerekli

BTK numara planı; E.164, tür ve sabit hatta il. Operatör verilmez (numara taşıma). telefonlar[] ile toplu (en fazla 1000, öğe başına 1 kredi).

İstek gövdesi
AlanTipAçıklama
telefonstring
telefonlarstring[]en fazla 1000

Örnek istek

curl -X POST "$KILAVUZ/v1/dogrula/telefon" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR" \
  -H "content-type: application/json" \
  -d '{"telefon":"0532 123 45 67"}'

Yanıtlar

  • 200BaşarılıTelefonSonucu ya da object
  • 400telefon ya da telefonlar eksikHata
  • 401Anahtar yok ya da geçersizHata
  • 4131000'den fazla elemanHata
  • 429Kredi limiti aşıldıHata
Toplu yanıt
sonuclarTelefonSonucu[]Girdi sırasıyla
ozetobject
ozet.toplaminteger
ozet.gecerliinteger

POST/v1/dogrula/kart

ücretsiz (anahtarla)

Ödeme kartı numarası doğrula (ücretsiz)

Anahtar gerekli

Luhn sağlaması, IIN aralığından şema (Visa, Mastercard, Troy, Amex…) ve şemaya göre uzunluk. Banka (BIN) verilmez: ticari kullanıma açık güvenilir liste yok. Tam numara saklanmaz, loglanmaz ve yanıtta dönmez; yalnız maskeli (ilk 6 + son 4). Kartın var olduğunu göstermez. kartlar[] ile toplu (en fazla 1000).

İstek gövdesi
AlanTipAçıklama
kartstring
kartlarstring[]en fazla 1000

Örnek istek

curl -X POST "$KILAVUZ/v1/dogrula/kart" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR" \
  -H "content-type: application/json" \
  -d '{"kart":"4111 1111 1111 1111"}'

Yanıtlar

  • 200Başarılıobject ya da object
  • 400kart ya da kartlar eksikHata
  • 401Anahtar yok ya da geçersizHata
  • 4131000'den fazla elemanHata
  • 429Kredi limiti aşıldıHata
Toplu yanıt
gecerliboolean
maskelistringİlk 6 + son 4 (16 haneden kısada baştan daha az); tam numara dönmez
uzunlukinteger
luhnboolean
sema"visa" | "mastercard" | "amex" | "troy" | "discover" | "unionpay" | "jcb" | "diners" | "maestro" | "mir" | "uatp" | null
semaAdistring | null
olasiSemalarstring[]
semaUzunluguUygunboolean | null
hata"bos" | "gecersiz_karakter" | "uzunluk" | "luhn" | "sema_uzunlugu"
aciklamastring
notstring
Toplu yanıt
sonuclarobject[]Girdi sırasıyla
sonuclar[].gecerliboolean
sonuclar[].maskelistringİlk 6 + son 4 (16 haneden kısada baştan daha az); tam numara dönmez
sonuclar[].uzunlukinteger
sonuclar[].luhnboolean
sonuclar[].sema"visa" | "mastercard" | "amex" | "troy" | "discover" | "unionpay" | "jcb" | "diners" | "maestro" | "mir" | "uatp" | null
sonuclar[].semaAdistring | null
sonuclar[].olasiSemalarstring[]
sonuclar[].semaUzunluguUygunboolean | null
sonuclar[].hata"bos" | "gecersiz_karakter" | "uzunluk" | "luhn" | "sema_uzunlugu"
sonuclar[].aciklamastring
sonuclar[].notstring
ozetobject
ozet.toplaminteger
ozet.gecerliinteger

Kamu verisi

Kamu kurumlarının ve meslek odalarının yayımladığı veri: günlük nöbet, fiyat, baraj ve hava durumundan İstanbul trafiğine, il kartı ve nüfusa. Yanıtta kaynağı ve güncelleme tarihi. Kaynak ve kaldırma politikası: /kaynaklar.

Nöbetçi eczane

1 kredi

Kapsam 77 il: Adana, Adıyaman, Afyonkarahisar, Ağrı, Aksaray, Ankara, Antalya, Ardahan, Artvin, Aydın, Balıkesir, Bartın, Batman, Bayburt, Bingöl, Bitlis, Bolu, Burdur, Bursa, Çanakkale, Çankırı, Çorum, Denizli, Diyarbakır, Düzce, Edirne, Elazığ, Erzincan, Erzurum, Eskişehir, Gaziantep, Giresun, Gümüşhane, Hakkari, Hatay, Iğdır, Isparta, İstanbul, İzmir, Kahramanmaraş, Karabük, Karaman, Kars, Kastamonu, Kayseri, Kırıkkale, Kırklareli, Kırşehir, Kocaeli, Konya, Kütahya, Malatya, Manisa, Mardin, Mersin, Muğla, Muş, Nevşehir, Niğde, Ordu, Osmaniye, Sakarya, Samsun, Siirt, Sinop, Sivas, Şanlıurfa, Şırnak, Tekirdağ, Tokat, Trabzon, Tunceli, Uşak, Van, Yalova, Yozgat, Zonguldak; her ilin kaynağı /kaynaklar sayfasında. Eczacı adı, sicil numarası ve cep numarası alınmaz; telefon yalnız iş yeri hattıdır.

GET/v1/eczane/nobetci

1 kredi

Nöbetçi eczaneler

Anahtar gerekli

İlin (isteğe bağlı ilçenin) en son yayımlanan nöbet listesi. Veri kaynaktan günde iki kez çekilir, istek anında kaynağa gidilmez; son başarılı çekim kaynağın tazelik süresinden eskiyse bayat: true. Eczacı adı yok; ad tabeladaki unvan, telefon sabit iş yeri hattı (cep numarası verilmez). İlçe/mahalle referans veriyle belirlenir, bulunamazsa ilçe null. Kapsam: 77 il (Kilis, Rize, Amasya, Bilecik yok). Liste boşsa kredi düşmez. Kapsam dışı il 422 ve kapsam listesi.

Parametreler
AdYerTipAçıklama
ilzorunlusorgustring
ilcesorgustring

Örnek istek

curl "$KILAVUZ/v1/eczane/nobetci?il=İzmir&ilce=Bornova" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400il eksikHata
  • 401Anahtar yok ya da geçersizHata
  • 422Bu il için kaynak yok
  • 429Kredi limiti aşıldıHata
Yanıt alanları
ilstring | null
ilcestring | null
nobetTarihistring | null
eczanelerobject[]
eczaneler[].adstring
eczaneler[].ilcestring | null
eczaneler[].mahallestring | null
eczaneler[].adresstring
eczaneler[].telefonstring | null
eczaneler[].latnumber | null
eczaneler[].lonnumber | null
eczaneler[].nobetTurustring | null
eczaneler[].nobetBaslangicstring | nullISO 8601; kaynak saat vermiyorsa null
eczaneler[].nobetBitisstring | null
kaynakstring
kaynakUrlstring
lisansstring
guncellemestring | nullSon başarılı çekim (ISO 8601); hiç yoksa null
bayatboolean
notstring

GET/v1/eczane/nobetci/yakin

1 kredi

Konuma en yakın nöbetçi eczaneler

Anahtar gerekli

Koordinatın düştüğü ilin en son nöbet listesini kuş uçuşu uzaklığa göre sıralar (yaricap içinde, en çok limit). İl, en yakın koordinatlı sokağın ilçesinden bulunur (25 km içinde yoksa liste boş); yalnız o ilin nöbetçileri sıralanır. Eczanenin koordinatı yoksa ilçe merkezine düşülür (konumKaynagi: "ilce_merkezi", kaba tahmin); mahalle merkezi yok. Her eczanede son30GunNobet: son 30 günde kaç ayrı gün nöbetçiydi (gecmis.veriGunu 30'dan küçükse eksik dönem). Eczacı adı ve cep telefonu yok. Liste boşsa kredi düşmez. Konumun ili kapsam dışıysa 422 ve kapsam.

Parametreler
AdYerTipAçıklama
latzorunlusorgunumber
lonzorunlusorgunumber
yaricapsorgunumberkm
limitsorguinteger

Örnek istek

curl "$KILAVUZ/v1/eczane/nobetci/yakin?lat=38.4622&lon=27.2167&yaricap=…&limit=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400lat/lon eksik ya da yaricap/limit geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 422Koordinat Türkiye dışında ya da ili kapsam dışı
  • 429Kredi limiti aşıldıHata
Yanıt alanları
konumobject
konum.latnumber
konum.lonnumber
ilstring | nullKonumun düştüğü il; bulunamazsa null
yaricapKmnumber
nobetTarihistring | null
eczanelerobject[]Uzaklığa göre artan
eczaneler[].adstring
eczaneler[].ilcestring | null
eczaneler[].mahallestring | null
eczaneler[].adresstring
eczaneler[].telefonstring | null
eczaneler[].latnumber | null
eczaneler[].lonnumber | null
eczaneler[].konumKaynagi"eczane" | "ilce_merkezi"Uzaklığın hesaplandığı nokta
eczaneler[].uzaklikKmnumberKuş uçuşu
eczaneler[].nobetTurustring | null
eczaneler[].nobetBaslangicstring | null
eczaneler[].nobetBitisstring | null
eczaneler[].son30GunNobetinteger | nullSon 30 günde nöbetçi olduğu gün sayısı
disaridaobject
disarida.yaricapDisiinteger
disarida.konumsuzintegerNe koordinatı ne ilçe merkezi olan, sıralanamayan eczane
gecmisobject
gecmis.guninteger
gecmis.veriGunuinteger
kaynakstring | null
kaynakUrlstring | null
lisansstring | null
guncellemestring | nullSon başarılı çekim (ISO 8601); hiç yoksa null
bayatboolean
notstring

Akaryakıt

1 kredi

EPDK Bildirim Portalı bayi fiyatları. Birim kaynakta yazmıyor; benzin ve motorinde TL/litre ile uyumlu. İl/ürün ortancasından %25'ten fazla sapan fiyat `supheli` işaretlenir, özete katılmaz.

GET/v1/akaryakit/fiyat

1 kredi

Akaryakıt bayi fiyatları (EPDK)

Anahtar gerekli

İlin marka ve ürün bazında güncel bayi fiyatları ve ürün başına en düşük/ortalama/en yüksek. Kaynak EPDK Bildirim Portalı raporu; günde iki kez çekilir, istek anında EPDK'ya gidilmez. Her fiyatın tarihi son bildirildiği gün. İstanbul Anadolu ve Avrupa diye iki bölge (bolge). 81 il. Liste boşsa kredi düşmez.

Parametreler
AdYerTipAçıklama
ilzorunlusorgustring
urunsorgustringÜrün adında geçen metin (Türkçe karaktersiz de olur)
markasorgustring
bolgesorgu"anadolu" | "avrupa"Yalnız İstanbul

Örnek istek

curl "$KILAVUZ/v1/akaryakit/fiyat?il=Ankara&urun=motorin&marka=opet&bolge=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400il eksikHata
  • 401Anahtar yok ya da geçersizHata
  • 422il bulunamadıHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
ilstring
fiyatlarobject[]
fiyatlar[].bolgestring | null
fiyatlar[].markastring
fiyatlar[].urunstring
fiyatlar[].fiyatnumber
fiyatlar[].tarihstringFiyatın son bildirildiği gün (YYYY-AA-GG)
fiyatlar[].suphelibooleanİl/ürün ortancasından %25'ten fazla sapıyor (kaynaktaki olası hatalı bildirim); özete katılmaz
ozetobject[]
ozet[].urunstring
ozet[].enDusuknumber
ozet[].ortalamanumber
ozet[].enYukseknumber
ozet[].markaSayisiinteger
ozet[].supheliSayisiinteger
kaynakstring
kaynakUrlstring
lisansstring
guncellemestring | nullSon başarılı çekim (ISO 8601); hiç yoksa null
bayatboolean
notstring

Hal fiyatı

1 kredi

Ticaret Bakanlığı Hal Kayıt Sistemi günlük bülteni; Türkiye geneli, il ayrımı yok. Kaynak hatalı değer olabileceğini kendisi yazıyor; düşük hacimli satırlar uç değer verebilir, süzülmez.

GET/v1/hal/fiyat

1 kredi

Toptancı hal fiyat bülteni (Hal Kayıt Sistemi)

Anahtar gerekli

Türkiye geneli sebze-meyve toptancı hal ortalama fiyatları: ürün, cins, tür (konvansiyonel/iyi tarım/organik), fiyat (TL / birim), işlem hacmi. Kaynak Ticaret Bakanlığı Hal Kayıt Sistemi günlük bülteni; günde iki kez çekilir, geçmiş bültenler tutulur. tarih verilmezse en yeni bülten. Liste boşsa kredi düşmez.

Parametreler
AdYerTipAçıklama
urunsorgustringÜrün ya da cins adında geçen metin (Türkçe karaktersiz de olur)
tursorgu"konvansiyonel" | "iyi-tarim" | "organik"
tarihsorgustring (date)Bülten günü (YYYY-AA-GG)

Örnek istek

curl "$KILAVUZ/v1/hal/fiyat?urun=domates&tur=…&tarih=2026-09-18" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400tur ya da tarih geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
bultenTarihistring | nullBülten günü
veriTarihistring | nullBültenin kullandığı verinin günü (çoğunlukla önceki iş günü)
urunlerobject[]
urunler[].urunstring
urunler[].cinsstring
urunler[].turstring
urunler[].fiyatnumberOrtalama fiyat, TL / birim
urunler[].hacimnumberİşlem hacmi, birim cinsinden
urunler[].birimstringKg, Adet, Bağ
kaynakstring
kaynakUrlstring
lisansstring
guncellemestring | nullSon başarılı çekim (ISO 8601); hiç yoksa null
bayatboolean
notstring

İstanbul (İBB açık veri)

0–1 kredi

İBB Açık Veri Portalı, İBB Açık Veri Lisansı 1.0: ticari kullanım serbest, atıf zorunlu; atıf metni her yanıtın `atif` alanında. İBB bu hizmeti onaylamaz ya da desteklemez. Trafik, otopark, hava kalitesi ve metro istek anında, kısa önbellekle; kaynak düşerse eski veri `bayat: true`. Hava kalitesi ölçümleri ham veridir. Raylı istasyon, Wi-Fi, İstanbulkart, itfaiye ve şarj noktaları koda gömülü, ücretsiz.

GET/v1/ibb/trafik

1 kredi

İstanbul anlık trafik indeksi (İBB)

Anahtar gerekli

İBB Ulaşım Yönetim Merkezi'nin İstanbul geneli trafik yoğunluk indeksi (0–100) ve yaka indeksleri. Veri istek anında api.ibb.gov.tr'den, en çok 1 dakika önbellekli; gecmis ile son 24 saate kadar 5 dakikalık seri. İBB yanıt vermezken 30 dakikaya kadar eski veri bayat: true, hiç veri yoksa 503 (kredisiz).

Parametreler
AdYerTipAçıklama
gecmissorguintegerKaç saatlik geçmiş

Örnek istek

curl "$KILAVUZ/v1/ibb/trafik?gecmis=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400gecmis 0–24 olmalıHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
  • 503İBB yanıt vermiyor ve önbellek yokHata
Yanıt alanları
indeksnumber
anadolunumber | null
avrupanumber | null
gecmisobject[]
gecmis[].zamanstringTürkiye saati (+03:00)
gecmis[].indeksnumber
kaynakstring
kaynakUrlstring
lisansstring
lisansUrlstring
atifstringİBB Açık Veri Lisansı gereği gösterilmesi gereken atıf metni
guncellemestringİBB'den son alınma (ISO 8601)
bayatboolean
notstring

GET/v1/ibb/otopark

1 kredi

İSPARK otopark doluluğu

Anahtar gerekli

İSPARK otoparklarının anlık boş yer sayısı ve doluluğu. lat/lon verilirse yarıçap içindekiler yakından uzağa (mesafeM). İstek anında İBB'den, 1 dakika önbellek. Liste boşsa kredi düşmez.

Parametreler
AdYerTipAçıklama
latsorgunumber
lonsorgunumber
yaricapsorguintegerMetre
ilcesorgustring
arasorgustringOtopark adındaki sözcükler
tursorgu"acik" | "kapali" | "yol_ustu"
bossorgubooleantrue: yalnız boş yeri olanlar
aciksorgubooleantrue: yalnız şu an işletmede olanlar
limitsorguinteger

Örnek istek

curl "$KILAVUZ/v1/ibb/otopark?lat=40.9903&lon=29.029&yaricap=…&ilce=Kadıköy&ara=…&tur=…&bos=…&acik=…&limit=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400parametre geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 422İstanbul ilçesi bulunamadıHata
  • 429Kredi limiti aşıldıHata
  • 503İBB yanıt vermiyor ve önbellek yokHata
Yanıt alanları
toplaminteger
ozetobject
ozet.kapasiteinteger
ozet.bosinteger
otoparklarobject[]
otoparklar[].idinteger
otoparklar[].adstring
otoparklar[].tur"acik" | "kapali" | "yol_ustu" | "diger"
otoparklar[].turAdistring | null
otoparklar[].ilcestring | null
otoparklar[].latnumber
otoparklar[].lonnumber
otoparklar[].kapasiteinteger
otoparklar[].bosinteger
otoparklar[].doluluknumber | nullYüzde
otoparklar[].acikboolean
otoparklar[].calismaSaatleristring | null
otoparklar[].ucretsizDakikanumber | null
otoparklar[].mesafeMinteger
kaynakstring
kaynakUrlstring
lisansstring
lisansUrlstring
atifstringİBB Açık Veri Lisansı gereği gösterilmesi gereken atıf metni
guncellemestringİBB'den son alınma (ISO 8601)
bayatboolean
notstring

GET/v1/ibb/otopark/{id}

1 kredi

İSPARK otopark ayrıntısı (tarife)

Anahtar gerekli

Tek İSPARK otoparkının doluluğu, adresi, saatlik tarifesi ve aylık abonelik ücreti. Bilinmeyen numara 404, kredisiz.

Parametreler
AdYerTipAçıklama
idzorunluyolinteger

Örnek istek

curl "$KILAVUZ/v1/ibb/otopark/<id>" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400id sayı olmalıHata
  • 401Anahtar yok ya da geçersizHata
  • 404bu numarada İSPARK otoparkı yokHata
  • 429Kredi limiti aşıldıHata
  • 503İBB yanıt vermiyor ve önbellek yokHata
Yanıt alanları
otoparkobject
otopark.idinteger
otopark.adstring
otopark.tur"acik" | "kapali" | "yol_ustu" | "diger"
otopark.turAdistring | null
otopark.ilcestring | null
otopark.latnumber
otopark.lonnumber
otopark.kapasiteinteger
otopark.bosinteger
otopark.doluluknumber | nullYüzde
otopark.acikboolean
otopark.calismaSaatleristring | null
otopark.ucretsizDakikanumber | null
otopark.mesafeMinteger
otopark.adresstring | null
otopark.aylikAboneliknumber | null
otopark.olcumZamanistring | null
otopark.tarifeobject[]
kaynakstring
kaynakUrlstring
lisansstring
lisansUrlstring
atifstringİBB Açık Veri Lisansı gereği gösterilmesi gereken atıf metni
guncellemestringİBB'den son alınma (ISO 8601)
bayatboolean
notstring

GET/v1/ibb/hava/istasyonlar

ücretsiz (anahtarla)

İBB hava kalitesi istasyonları (ücretsiz)

Anahtar gerekli

İBB hava kalitesi izleme istasyonları: id, ad, ilçe, konum. 24 saat önbellek.

Örnek istek

curl "$KILAVUZ/v1/ibb/hava/istasyonlar" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
  • 503İBB yanıt vermiyor ve önbellek yokHata
Yanıt alanları
toplaminteger
istasyonlarobject[]
istasyonlar[].idstring
istasyonlar[].adstring
istasyonlar[].ilcestring | null
istasyonlar[].latnumber
istasyonlar[].lonnumber
kaynakstring
kaynakUrlstring
lisansstring
lisansUrlstring
atifstringİBB Açık Veri Lisansı gereği gösterilmesi gereken atıf metni
guncellemestringİBB'den son alınma (ISO 8601)
bayatboolean

GET/v1/ibb/hava

1 kredi

İstanbul hava kalitesi ölçümleri

Anahtar gerekli

Bir İBB istasyonunun saatlik hava kalitesi ölçümleri, yeniden eskiye: indeks, baskın kirletici, konsantrasyonlar. istasyon (ad ya da id) ya da lat/lon (en yakın sabit istasyon) gerekli. 10 dakika önbellek. Ölçüm yoksa kredi düşmez. Ham ölçümdür, resmî değerlendirme yerine geçmez.

Parametreler
AdYerTipAçıklama
istasyonsorgustring
latsorgunumber
lonsorgunumber
yaricapsorguintegerEn yakın istasyon en çok bu kadar uzakta (metre)
saatsorguinteger

Örnek istek

curl "$KILAVUZ/v1/ibb/hava?istasyon=Kadıköy&lat=…&lon=…&yaricap=…&saat=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400istasyon ya da lat/lon yok, parametre geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 422istasyon bulunamadı ya da yarıçapta istasyon yokHata
  • 429Kredi limiti aşıldıHata
  • 503İBB yanıt vermiyor ve önbellek yokHata
Yanıt alanları
istasyonobject
istasyon.idstring
istasyon.adstring
istasyon.ilcestring | null
istasyon.latnumber
istasyon.lonnumber
mesafeMinteger
sonobject | null
son.zamanstringTürkiye saati (+03:00)
son.aqinumber
son.baskinKirleticistring | null
son.durumstring | null
son.renkstring | null
son.konsantrasyonobject
son.altIndeksobject
olcumlerobject[]
olcumler[].zamanstringTürkiye saati (+03:00)
olcumler[].aqinumber
olcumler[].baskinKirleticistring | null
olcumler[].durumstring | null
olcumler[].renkstring | null
olcumler[].konsantrasyonobject
olcumler[].altIndeksobject
kaynakstring
kaynakUrlstring
lisansstring
lisansUrlstring
atifstringİBB Açık Veri Lisansı gereği gösterilmesi gereken atıf metni
guncellemestringİBB'den son alınma (ISO 8601)
bayatboolean
notstring

GET/v1/ibb/metro/durum

1 kredi

Metro İstanbul hat aksaklıkları

Anahtar gerekli

Metro İstanbul'un güncel hat aksaklık duyuruları. Liste boşsa (normal: true) bütün hatlar normal ve kredi düşmez. 5 dakika önbellek.

Parametreler
AdYerTipAçıklama
hatsorgustring

Örnek istek

curl "$KILAVUZ/v1/ibb/metro/durum?hat=M7" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
  • 503İBB yanıt vermiyor ve önbellek yokHata
Yanıt alanları
normalboolean
duyurularobject[]
duyurular[].hatstring
duyurular[].hatIdinteger | null
duyurular[].aciklamastring
duyurular[].guncellendistring | null
kaynakstring
kaynakUrlstring
lisansstring
lisansUrlstring
atifstringİBB Açık Veri Lisansı gereği gösterilmesi gereken atıf metni
guncellemestringİBB'den son alınma (ISO 8601)
bayatboolean
notstring

GET/v1/ibb/nokta

ücretsiz (anahtarla)

İstanbul nokta verisi (ücretsiz)

Anahtar gerekli

İBB Açık Veri Portalı nokta listeleri: rayli raylı sistem istasyonları, wifi ibbWiFi, istanbulkart dolum noktaları, itfaiye itfaiye istasyonları, sarj elektrikli araç şarj istasyonları. lat/lon ile yakından uzağa. Veri koda gömülü (guncelleme paketlendiği gün, kaynakGuncelleme portaldaki son değişiklik).

Parametreler
AdYerTipAçıklama
turzorunlusorgu"rayli" | "wifi" | "istanbulkart" | "itfaiye" | "sarj"
latsorgunumber
lonsorgunumber
yaricapsorguintegerMetre
ilcesorgustring
arasorgustringAd, hat/marka ve adresteki sözcükler (hepsi)
altTursorgustringMetro, Tramvay, Banliyö…; halka_acik|ozel; itfaiye statüsü
insaatsorgubooleanrayli: inşaattaki istasyonlar da
limitsorguinteger
sayfasorguinteger

Örnek istek

curl "$KILAVUZ/v1/ibb/nokta?tur=…&lat=41.0369&lon=28.985&yaricap=…&ilce=…&ara=…&altTur=…&insaat=…&limit=…&sayfa=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400tur yok ya da parametre geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 422İstanbul ilçesi bulunamadıHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
turstring
toplaminteger
sayfainteger
noktalarobject[]
noktalar[].idstring | null
noktalar[].adstring
noktalar[].altTurstring | null
noktalar[].ilcestring | null
noktalar[].adresstring | null
noktalar[].ekstring | nullHat adı (rayli) ya da marka (sarj)
noktalar[].insaatboolean
noktalar[].latnumber
noktalar[].lonnumber
noktalar[].mesafeMinteger
kaynakstring
kaynakUrlstring
lisansstring
lisansUrlstring
atifstringİBB Açık Veri Lisansı gereği gösterilmesi gereken atıf metni
guncellemestring (date)
kaynakGuncellemestring | null
notstring

Baraj doluluk

1 kredi

DSİ Türkiye geneli (yalnız aktif doluluk, il kırılımı yok) ile ASKİ (Ankara), İZSU açık verisi (İzmir, CC BY) ve GASKİ (Gaziantep). İstanbul yok: İSKİ verisi anahtarla korunuyor. İstek anında, kaynak başına 1 saat önbellek; düşen kaynak `eksik` listesinde, ötekiler gelir.

GET/v1/su/baraj-doluluk

1 kredi

Baraj doluluk oranları

Anahtar gerekli

İdarelerin kendi yayımladığı baraj doluluk oranları: Türkiye geneli (DSİ panosu), Ankara (ASKİ), İzmir (İZSU açık veri, CC BY 4.0), Gaziantep (GASKİ). İstek anında, kaynak başına 1 saat önbellek; kaynak düşerse 48 saate kadar eski veri bayat: true. il verilmezse kapsamdaki hepsi; düşen kaynak eksikte. İstanbul ve Bursa kapsam dışı (gerekçe kaynak notunda).

Parametreler
AdYerTipAçıklama
ilsorgustringİl adı ya da "Türkiye"; boşsa hepsi

Örnek istek

curl "$KILAVUZ/v1/su/baraj-doluluk?il=İzmir" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 401Anahtar yok ya da geçersizHata
  • 422il bulunamadı ya da kapsam dışı (kapsam yanıtta)Hata
  • 429Kredi limiti aşıldıHata
  • 503kaynaklar yanıt vermiyor ve önbellek yokHata
Yanıt alanları
ilstring | null
sonuclarobject[]
sonuclar[].ilstring
sonuclar[].tarihstring | nullVerinin günü (kaynağın yazdığı); yoksa null
sonuclar[].toplamDolulukYuzdenumber | null
sonuclar[].aktifDolulukYuzdenumber | null
sonuclar[].gecenYilobject | null
sonuclar[].barajlarobject[]
sonuclar[].amaclarobject[]
sonuclar[].aciklamastring
sonuclar[].kaynakstring
sonuclar[].kaynakUrlstring
sonuclar[].lisansstring
sonuclar[].guncellemestringBu kaynaktan son alınma (ISO 8601)
sonuclar[].bayatboolean
eksikobject[]
eksik[].ilstring
eksik[].nedenstring
kapsamstring[]
kaynakstring
guncellemestringSonuçlardaki en eski alma zamanı (ISO 8601)
bayatboolean
notstring

Hava durumu

0–1 kredi

MET Norway sayısal model tahmini (CC BY 4.0, atıf yanıtta); MGM’nin resmî tahmini ya da uyarısı değildir. Saatler UTC; günlük özet Türkiye gününe göre. İl verilirse il merkezinin koordinatı kullanılır. Nokta başına 30 dk önbellek.

GET/v1/hava/durum

1 kredi

Hava durumu tahmini (MET Norway)

Anahtar gerekli

İl merkezi ya da koordinat için anlık, 24 saatlik ve 7 günlük tahmin. Kaynak MET Norway Locationforecast 2.0 (NLOD 2.0 / CC BY 4.0), istek anında, nokta başına 30 dk önbellek; koordinat 2 ondalığa yuvarlanır. MGM'nin resmî tahmini değildir. Kaynak düşerse 6 saate kadar eski tahmin bayat: true, hiç yoksa 503.

Parametreler
AdYerTipAçıklama
ilsorgustringİl adı ya da plaka; lat/lon ile birlikte verilmez
latsorgunumber
lonsorgunumber

Örnek istek

curl "$KILAVUZ/v1/hava/durum?il=Ankara&lat=…&lon=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400il ya da lat/lon eksik ya da geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 422il bulunamadı ya da koordinat kapsam dışıHata
  • 429Kredi limiti aşıldıHata
  • 503kaynak yanıt vermiyor ve önbellek yokHata
Yanıt alanları
ilstring | null
plakainteger | null
konumobject
konum.latnumber
konum.lonnumber
konum.rakimMnumber | null
konum.kaynakstring
anlikHavaSaati ya da null
saatlikHavaSaati[]
gunlukobject[]
gunluk[].tarihstring
gunluk[].enDusukCnumber | null
gunluk[].enYuksekCnumber | null
gunluk[].yagisMmnumber
gunluk[].durumstring | null
gunluk[].durumKodstring | null
modelGuncellemestring | null
kaynakstring
kaynakUrlstring
lisansstring
guncellemestringMET'ten son alınma (ISO 8601)
bayatboolean
notstring

GET/v1/hava/kalite

1 kredi

Hava kalitesi, 81 il (Çevre Bakanlığı SİM)

Anahtar gerekli

Çevre, Şehircilik ve İklim Değişikliği Bakanlığı Sürekli İzleme Merkezi'nin ~336 istasyonundan son saatlik ölçüm: Ulusal Hava Kalitesi İndeksi (aqi), durum, baskın kirletici, PM10/PM2.5/NO2/SO2/CO/O3 konsantrasyonu ve alt indeksleri. İl (ilçe), istasyon ya da koordinatla (en yakın istasyonlar, seyyar araç hariç). Kaynak yurt dışı IP'ye kapalı: ölçümler Türkiye'deki bir makineden gündüz (08:30–20:30) iki saatte bir çekilir; son çekim 3 saatten eskiyse (gece, kaçan tur) bayat: true, hiç veri yoksa 503. Doğrulanmamış ham veri. Ölçümü olan istasyon yoksa kredi düşmez.

Parametreler
AdYerTipAçıklama
ilsorgustringİl adı ya da plaka
ilcesorgustringYalnız il ile
istasyonsorgustringİstasyon adı (parçası) ya da kimliği
latsorgunumber
lonsorgunumber
yaricapKmsorguintegerKoordinatla arama yarıçapı
limitsorguintegerKoordinatla varsayılan 3, öteki 50

Örnek istek

curl "$KILAVUZ/v1/hava/kalite?il=Ankara&ilce=…&istasyon=…&lat=…&lon=…&yaricapKm=…&limit=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400il, istasyon ya da lat/lon eksik; parametreler çelişiyor ya da geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 422il ya da istasyon bulunamadı, koordinat kapsam dışı ya da yarıçapta istasyon yokHata
  • 429Kredi limiti aşıldıHata
  • 503hava kalitesi verisi henüz yok (hiç çekilmedi)Hata
Yanıt alanları
ilstring | null
istasyonlarobject[]
istasyonlar[].idstring
istasyonlar[].kodstring | null
istasyonlar[].adstring
istasyonlar[].ilstring
istasyonlar[].ilcestring | null
istasyonlar[].latnumber
istasyonlar[].lonnumber
istasyonlar[].turstring | null
istasyonlar[].isletenstring | null
istasyonlar[].mobilbooleanSeyyar ölçüm aracı
istasyonlar[].mesafeKmnumberYalnız koordinatla aramada
istasyonlar[].olcumobject
istasyonlar[].eskibooleanSon ölçüm 3 saatten eski
ozetobject
ozet.istasyonSayisiinteger
ozet.olcumluinteger
ozet.enYuksekobject | null
esiklerobject[]
esikler[].kodinteger
esikler[].adstring
esikler[].minnumber
esikler[].maxnumber
esikler[].aciklamastring
kaynakstring
kaynakUrlstring
lisansstring
guncellemestringSİM'den son başarılı çekim (ISO 8601)
bayatboolean
notstring

GET/v1/hava/kalite/istasyonlar

ücretsiz (anahtarla)

Hava kalitesi istasyonları (ücretsiz)

Anahtar gerekli

SİM hava kalitesi istasyonları: kimlik, ad, il, ilçe, konum, tür, işleten. İl ile süzülebilir.

Parametreler
AdYerTipAçıklama
ilsorgustringİl adı ya da plaka

Örnek istek

curl "$KILAVUZ/v1/hava/kalite/istasyonlar?il=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 401Anahtar yok ya da geçersizHata
  • 422il bulunamadıHata
  • 429Kredi limiti aşıldıHata
  • 503hava kalitesi verisi henüz yok (hiç çekilmedi)Hata
Yanıt alanları
toplaminteger
istasyonlarobject[]
istasyonlar[].idstring
istasyonlar[].kodstring | null
istasyonlar[].adstring
istasyonlar[].ilstring
istasyonlar[].ilcestring | null
istasyonlar[].latnumber
istasyonlar[].lonnumber
istasyonlar[].turstring | null
istasyonlar[].isletenstring | null
istasyonlar[].mobilboolean
kaynakstring
kaynakUrlstring
lisansstring
guncellemestring
bayatboolean

Deprem

1 kredi

AFAD olay servisinden istek anında, 60 sn önbellek. `zaman` UTC, `zamanTr` Türkiye saati. AFAD olayları sonradan düzeltebilir. Resmî uyarı ya da erken uyarı yerine geçmez.

GET/v1/deprem/son

1 kredi

Son depremler (AFAD)

Anahtar gerekli

AFAD Deprem Dairesi olay servisinden son depremler, yeniden eskiye. Veri istek anında AFAD'dan alınır, en çok 1 dakika önbellekte tutulur; en çok 168 saat (7 gün) geriye. AFAD yanıt vermezken 6 saate kadar eski veri bayat: true ile döner, hiç veri yoksa 503. Liste boşsa kredi düşmez.

Parametreler
AdYerTipAçıklama
saatsorguinteger
minBuyukluksorgunumber
ilsorgustringAFAD'ın olaya yazdığı il (denizdeki olayda en yakın il)
limitsorguinteger

Örnek istek

curl "$KILAVUZ/v1/deprem/son?saat=…&minBuyukluk=3&il=İzmir&limit=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400parametre aralık dışındaHata
  • 401Anahtar yok ya da geçersizHata
  • 422il bulunamadıHata
  • 429Kredi limiti aşıldıHata
  • 503AFAD yanıt vermiyor ve önbellek yokHata
Yanıt alanları
ilstring | null
toplamintegerSüzgece uyan olay sayısı (limit öncesi)
depremlerobject[]
depremler[].idstring
depremler[].zamanstringUTC, ISO 8601
depremler[].zamanTrstringTürkiye saati (+03:00)
depremler[].buyukluknumber
depremler[].turstringML, MW…
depremler[].derinlikKmnumber
depremler[].latnumber
depremler[].lonnumber
depremler[].yerstring
depremler[].ulkestring | null
depremler[].ilstring | null
depremler[].ilcestring | null
depremler[].mahallestring | null
depremler[].guncellendistring | nullAFAD olayı düzelttiyse güncelleme zamanı (UTC)
kaynakstring
kaynakUrlstring
lisansstring
guncellemestringAFAD'dan son alınma (ISO 8601)
bayatboolean
notstring

Eğitim

ücretsiz (anahtarla)

MEB resmî okul ve kurum listesi (özel okul ve adres yok; okul türü addan çıkarılır). YÖK üniversite listesi, YÖK Atlas 2026 tercih kılavuzu ve ÖSYM sınav takvimi (başvuru, sınav, sonuç tarihleri; yalnız yayımlanmış yıllar), koda gömülü. Taban puan ve başarı sırası kılavuzdaki son yerleştirme; tercih için ÖSYM kılavuzu esastır.

GET/v1/egitim/universiteler

ücretsiz (anahtarla)

Üniversiteler (ücretsiz)

Anahtar gerekli

YÖK listesi (devlet, vakıf, vakıf MYO, KKTC) + YÖK Atlas'taki yurt dışı kurumlar. id YÖK birim numarası; programlar için /v1/egitim/universiteler/{id}. Veri gömülü, guncelleme alındığı gün.

Parametreler
AdYerTipAçıklama
arasorgustringAd içinde geçen
ilsorgustring
tursorgu"devlet" | "vakif" | "vakif_myo" | "kktc" | "yurtdisi"

Örnek istek

curl "$KILAVUZ/v1/egitim/universiteler?ara=teknik&il=Ankara&tur=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400tur geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
toplaminteger
universitelerobject[]
universiteler[].idinteger | nullYÖK birim numarası
universiteler[].adstring
universiteler[].ilstring | null
universiteler[].tur"devlet" | "vakif" | "vakif_myo" | "kktc" | "yurtdisi"
universiteler[].kurulusstring | null (date)
universiteler[].webstring | null
universiteler[].adresstring | null
universiteler[].programSayisiobject
kaynakstring
kaynakUrlstring[]
lisansstring
guncellemestring (date)
kilavuzYiliinteger | null

GET/v1/egitim/universiteler/{id}

ücretsiz (anahtarla)

Üniversite ve programları (ücretsiz)

Anahtar gerekli

Parametreler
AdYerTipAçıklama
idzorunluyolintegerYÖK birim numarası
duzeysorgu"lisans" | "onlisans"
puanTurusorgu"SAY" | "EA" | "SÖZ" | "DİL" | "TYT"

Örnek istek

curl "$KILAVUZ/v1/egitim/universiteler/<id>?duzey=…&puanTuru=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400id ya da duzey geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 404bu numarada üniversite yokHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
universiteobject
universite.idinteger | nullYÖK birim numarası
universite.adstring
universite.ilstring | null
universite.tur"devlet" | "vakif" | "vakif_myo" | "kktc" | "yurtdisi"
universite.kurulusstring | null (date)
universite.webstring | null
universite.adresstring | null
universite.programSayisiobject
programSayisiinteger
programlarobject[]
programlar[].kodintegerÖSYM kılavuz kodu
programlar[].universiteIdinteger
programlar[].fakultestring | null
programlar[].adstring
programlar[].grupstring | null
programlar[].duzey"lisans" | "onlisans"
programlar[].ogretimTurustring | null
programlar[].sureYilnumber | null
programlar[].puanTurustring | null
programlar[].dilstring | null
programlar[].bursstring | null
programlar[].kontenjannumber | null
programlar[].tabanPuannumber | null
programlar[].tabanBasariSirasinumber | null
programlar[].ucretTlnumber | null
programlar[].ilstring | null
programlar[].ilcestring | null
kaynakstring
kaynakUrlstring[]
lisansstring
guncellemestring (date)
kilavuzYiliinteger | null
uyaristring

GET/v1/egitim/okullar

ücretsiz (anahtarla)

MEB okul ve kurumları (ücretsiz)

Anahtar gerekli

MEB "Okullar ve Diğer Kurumlar" listesindeki resmî okul ve kurumlar (~55 bin): ad, MEB kurum kodu, tür, il, ilçe, meb.k12.tr sitesi. il ya da ara gerekli. Adres kaynakta yok; özel okullar yok. tur addan çıkarıldı.

Parametreler
AdYerTipAçıklama
ilsorgustringİl adı ya da plaka
ilcesorgustring
tursorgu"anaokulu" | "ilkokul" | "ortaokul" | "imam_hatip_ortaokulu" | "anadolu_lisesi" | "fen_lisesi" | "sosyal_bilimler_lisesi" | "imam_hatip_lisesi" | "mesleki_teknik_lise" | "guzel_sanatlar_spor_lisesi" | "lise" | "ozel_egitim" | "bilsem" | "halk_egitim" | "mesleki_egitim_merkezi" | "ram" | "ogretmenevi" | "mudurluk" | "diger"
arasorgustringAddaki sözcükler (hepsi)
limitsorguinteger
sayfasorguinteger

Örnek istek

curl "$KILAVUZ/v1/egitim/okullar?il=Ankara&ilce=Çankaya&tur=…&ara=fen lisesi&limit=…&sayfa=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400parametre geçersiz ya da il/ara yokHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
toplaminteger
sayfainteger
limitinteger
okullarobject[]
okullar[].kurumKoduinteger
okullar[].adstring
okullar[].turstring
okullar[].ilstring
okullar[].ilcestring
okullar[].ilKoduinteger
okullar[].webstring | null
kaynakstring
kaynakUrlstring
lisansstring
guncellemestring (date)
uyaristring

POST/v1/egitim/yks-puani

ücretsiz (anahtarla)

YKS net, OBP ve yerleştirme puanı (ücretsiz)

Anahtar gerekli

ÖSYM 2026 kılavuzuna göre: test ve alt alan netleri (doğru − yanlış/4), puan türü koşulları (Tablo 1D), OBP (diploma notu × 5, 50'nin altı 50) ve adayın ÖSYM sonucundaki sınav puanından yerleştirme puanı (+ OBP × 0,12; meslek lisesi ek puanı OBP × 0,06; önceki yıl yerleşenlerde yarısı). Sınav puanı netten hesaplanmaz: standart puan ve 100–500 dönüşümü aday kitlesinin istatistiğine bağlı (sinavPuaniNotu).

İstek gövdesi
AlanTipAçıklama
tytobjectturkce (40), sosyal (20), temelMatematik (40), fen (20): {dogru, yanlis}
aytobjectmatematik 40, fizik 14, kimya 13, biyoloji 13, edebiyat 24, tarih1 10, cografya1 6, tarih2 11, cografya2 11, felsefe 12, din 6
ydtobjectyabanciDil (80)
diplomaNotunumber0–100
sinavPuanlariobjectÖSYM sonuç belgesindeki puanlar: TYT, SAY, EA, SOZ, DIL (100–500)
oncekiYilYerlestiboolean2025-YKS ile yerleşen: OBP katsayıları yarıya
meslekEkPuanibooleanMeslek lisesi mezunu, Tablo 3A/3B.1/3C/3D programı

Örnek istek

curl -X POST "$KILAVUZ/v1/egitim/yks-puani" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR" \
  -H "content-type: application/json" \
  -d '{"tyt":{"turkce":{"dogru":32,"yanlis":6},"temelMatematik":{"dogru":28,"yanlis":8}},"ayt":{"matematik":{"dogru":20,"yanlis":8}},"diplomaNotu":85,"sinavPuanlari":{"SAY":400}}'

Yanıtlar

  • 200Başarılı
  • 400Girdi geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
netlerobject
testNetleriobject
puanTurleriobject
obpobject | null
obpKatsayilariobject
yerlestirmeobject | null
sinavPuaninull
sinavPuaniNotustring
agirliklarobject
kaynakobject
guncellemestring (date)
uyaristring

POST/v1/egitim/lgs-puani

ücretsiz (anahtarla)

LGS netleri ve katsayılar (ücretsiz)

Anahtar gerekli

MEB 2026 kılavuzuna göre test netleri (doğru − yanlış/3), ağırlık katsayıları (Türkçe, matematik, fen 4; diğerleri 1) ve resmî formül. MSP netten hesaplanmaz: standart puan ve 100–500 dönüşümü bütün öğrencilerin istatistiğine bağlı (mspNotu).

İstek gövdesi
AlanTipAçıklama
testlerzorunluobjectturkce 20, matematik 20, fen 20, inkilap 10, din 10, yabanciDil 10: {dogru, yanlis}
muaf"din" | "yabanciDil"[]

Örnek istek

curl -X POST "$KILAVUZ/v1/egitim/lgs-puani" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR" \
  -H "content-type: application/json" \
  -d '{"testler":{"turkce":{"dogru":18,"yanlis":2},"matematik":{"dogru":15,"yanlis":3}}}'

Yanıtlar

  • 200Başarılı
  • 400Girdi geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
netlerobject
toplamNetnumber
verilmeyenTestlerstring[]
muafstring[]
katsayilarobject
mspnull
mspNotustring
formulobject
kaynakobject
guncellemestring (date)
uyaristring

GET/v1/egitim/sinav-takvimi

ücretsiz (anahtarla)

ÖSYM sınav takvimi (ücretsiz)

Anahtar gerekli

ÖSYM yıllık sınav takvimi: başvuru başlangıç/bitiş, geç başvuru, sınav ve sonuç tarihleri; bugüne göre durum. Çok oturumlu sınavlar (YKS, KPSS…) oturumlar altında toplanır. Takvim yayımlanmamış yıl için boş liste ve yayimlanmadi notu döner. Kesin tarih için osym.gov.tr esastır.

Parametreler
AdYerTipAçıklama
yilsorgustringVarsayılan bu yıl
arasorgustringSınav adı ya da kısaltması

Örnek istek

curl "$KILAVUZ/v1/egitim/sinav-takvimi?yil=2026&ara=KPSS" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400yil ya da ara geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
yilinteger
toplaminteger
yayimlanmadistring
sinavlarobject[]
sinavlar[].adstring
sinavlar[].kodstring
sinavlar[].uzunAdstring
sinavlar[].basvuruBaslangicstring | null
sinavlar[].basvuruBitisstring | null
sinavlar[].gecBasvuruobject
sinavlar[].sinavTarihleristring (date)[]
sinavlar[].sinavSaatistring
sinavlar[].sonucTarihistring | null
sinavlar[].aciklamastring
sinavlar[].durum"basvuru_bekleniyor" | "basvuru_acik" | "sinav_bekleniyor" | "sonuc_bekleniyor" | "tamamlandi"
sinavlar[].oturumlarobject[]
sinavlar[].belirsizboolean
sinavlar[].notstring
bilinenYillarinteger[]
kaynakstring
kaynakUrlstring
guncellemestring (date)
uyaristring

GET/v1/egitim/programlar

ücretsiz (anahtarla)

Program / bölüm ara (ücretsiz)

Anahtar gerekli

YÖK Atlas tercih kılavuzundaki lisans ve önlisans programları; son yerleştirmenin taban başarı sırasına göre (sırası olmayanlar sonda). ara, universite ya da ilden en az biri gerekli. Taban puan bu yılın değil, son yerleştirmenindir.

Parametreler
AdYerTipAçıklama
arasorgustringProgram ya da program grubu adındaki sözcükler (hepsi)
universitesorgustringÜniversite adı ya da YÖK birim numarası
ilsorgustring
puanTurusorgu"SAY" | "EA" | "SÖZ" | "DİL" | "TYT"
duzeysorgu"lisans" | "onlisans"
burssorgustring"Burslu", "%50", "Ücretli" (içerir)
dilsorgustring
universiteTurusorgu"devlet" | "vakif" | "vakif_myo" | "kktc" | "yurtdisi"
limitsorguinteger
sayfasorguinteger

Örnek istek

curl "$KILAVUZ/v1/egitim/programlar?ara=bilgisayar mühendisliği&universite=…&il=…&puanTuru=…&duzey=…&burs=Burslu&dil=İngilizce&universiteTuru=…&limit=…&sayfa=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400parametre geçersiz ya da arama ölçütü yokHata
  • 401Anahtar yok ya da geçersizHata
  • 404üniversite bulunamadıHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
toplaminteger
sayfainteger
limitinteger
programlarobject[]
programlar[].kodintegerÖSYM kılavuz kodu
programlar[].universiteIdinteger
programlar[].fakultestring | null
programlar[].adstring
programlar[].grupstring | null
programlar[].duzey"lisans" | "onlisans"
programlar[].ogretimTurustring | null
programlar[].sureYilnumber | null
programlar[].puanTurustring | null
programlar[].dilstring | null
programlar[].bursstring | null
programlar[].kontenjannumber | null
programlar[].tabanPuannumber | null
programlar[].tabanBasariSirasinumber | null
programlar[].ucretTlnumber | null
programlar[].ilstring | null
programlar[].ilcestring | null
programlar[].universitestring
programlar[].universiteTurustring
kaynakstring
kaynakUrlstring[]
lisansstring
guncellemestring (date)
kilavuzYiliinteger | null
uyaristring

Otoyol ve köprü geçişi

0–1 kredi

KGM’nin 19 tarife PDF’inden, koda gömülü; araç sınıfı 1–6. İhlalli geçiş cezası, HGS/OGS kampanyaları ve Avrasya Tüneli kapsam dışı.

GET/v1/ulasim/yol-maliyeti

1 kredi

Yol maliyeti tahmini (mesafe + yakıt + geçiş)

Anahtar gerekli

**Tahmindir.** ab arası karayolu mesafesi (kuş uçuşu × 1,3; rota hesabı değil), çıkış (a) ilinin güncel EPDK bayi ortalamasıyla yakıt litresi ve tutarı, isteğe bağlı tek geçiş ücreti ve toplam. Geçiş ücreti güzergâh bilinmediği için **tahmin edilmez**: yalnız yol + giris + cikis (köprüde yalnız yol) verilirse KGM tarifesinden eklenir; verilmezse gecis: null, toplamda geçiş yok. tuketim verilmezse benzinde 7, motorinde 6 L/100 km varsayılır (tuketimVarsayilan: true). LPG EPDK bayi raporunda yok. 1 kredi; yakıt fiyatı bulunamazsa toplamTl: null ve kredi düşmez.

Parametreler
AdYerTipAçıklama
azorunlusorgustringÇıkış: il adı, plaka ya da "enlem,boylam"
bzorunlusorgustringVarış: il adı, plaka ya da "enlem,boylam"
yakitsorgu"benzin" | "motorin"
tuketimsorgunumberL/100 km
sinifsorguintegerKGM araç sınıfı (1 otomobil); yalnız geçiş ücretinde
yolsorgustringGeçiş tarifesi (köprü adı ya da otoyol)
girissorgustringOtoyol giriş istasyonu; cikis ile birlikte
cikissorgustringOtoyol çıkış istasyonu; giris ile birlikte

Örnek istek

curl "$KILAVUZ/v1/ulasim/yol-maliyeti?a=İstanbul&b=Ankara&yakit=…&tuketim=…&sinif=…&yol=osmangazi&giris=…&cikis=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400a/b eksik, parametre geçersiz ya da geçiş belirsizHata
  • 401Anahtar yok ya da geçersizHata
  • 404geçiş tarifesi ya da giriş-çıkış çifti bulunamadıHata
  • 422a ya da b bulunamadıHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
aobject
bobject
mesafeobject
mesafe.kusUcusuKmnumber
mesafe.karayoluTahminiKmnumber
mesafe.katsayinumber
aracobject
arac.sinifinteger
arac.sinifTanimstring | null
arac.yakit"benzin" | "motorin"
arac.tuketimL100number
arac.tuketimVarsayilanboolean
yakitobject
yakit.ilstring | nullFiyatın alındığı il (çıkış)
yakit.urunstring
yakit.litreFiyatinumber | nullTL/litre, EPDK bayi ortalaması (şüpheli bildirimler hariç)
yakit.enDusuknumber | null
yakit.enYukseknumber | null
yakit.markaSayisiinteger
yakit.fiyatTarihistring | null
yakit.litrenumber
yakit.tutarTlnumber | null
gecisobject | nullYalnız yol/giris/cikis verildiyse
gecis.yolobject
gecis.girisstring | null
gecis.cikisstring | null
gecis.sinifinteger
gecis.ucretTlnumber
gecis.gecerlilikstring | null
gecisTlnumber
toplamTlnumber | nullYakıt + geçiş; yakıt fiyatı yoksa null
tahminboolean
kaynakstring
kaynakUrlstring
guncellemestring | nullYakıt fiyatlarının son başarılı çekimi (ISO 8601)
bayatboolean
notstring

GET/v1/ulasim/gecis-ucretleri

ücretsiz (anahtarla)

Otoyol ve köprü geçiş ücretleri (ücretsiz)

Anahtar gerekli

KGM tarifeleri (15 Temmuz/FSM, Osmangazi, YSS, 1915 Çanakkale köprüleri ve otoyollar), araç sınıfı 1–6, TL, KDV dahil. Parametresiz bütün tarifeler; yol ile tek tarife; giris + cikis ile o çiftin ücreti (yol verilmezse bütün otoyollarda aranır). ucretler dizisi sınıf sırasıyla; sinif verilirse tek eleman. yonlu: false tarifede iki yön aynı ücret.

Parametreler
AdYerTipAçıklama
yolsorgustringTarife numarası ya da adındaki sözcükler
girissorgustringGiriş istasyonu (cikis ile birlikte)
cikissorgustring
sinifsorguinteger1 otomobil … 5 altı+ akslı, 6 motosiklet

Örnek istek

curl "$KILAVUZ/v1/ulasim/gecis-ucretleri?yol=izmir çeşme&giris=urla&cikis=çeşme&sinif=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400parametre geçersiz ya da istasyon adı birden çok istasyona uyuyor (adaylar)Hata
  • 401Anahtar yok ya da geçersizHata
  • 404tarife ya da giriş-çıkış çifti bulunamadıHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
toplaminteger
siniflarobject[]
siniflar[].sinifinteger
siniflar[].tanimstring
tarifelerobject[]
tarifeler[].nointeger
tarifeler[].adstring
tarifeler[].tur"kopru" | "otoyol"
tarifeler[].gecerlilikstring | null (date)
tarifeler[].kdvDahilboolean
tarifeler[].kaynakUrlstring
tarifeler[].ucretlernumber | null[]
tarifeler[].kesimlerobject[]
sonuclarobject[]giris+cikis ile
sonuclar[].yolobject
sonuclar[].kesiminteger
sonuclar[].girisstring
sonuclar[].cikisstring
sonuclar[].yonluboolean
sonuclar[].ucretlernumber | null[]
kaynakstring
kaynakUrlstring
lisansstring
guncellemestring (date)
uyaristring

Enerji tarifeleri

ücretsiz (anahtarla)

Elektrik: EPDK tarife tablosu, vergiler ve fonlar hariç enerji ve dağıtım bedeli (kr/kWh). Doğal gaz: BOTAŞ toptan satış fiyatı ve il bazında konut kademe limiti; dağıtım şirketi bedeli, ÖTV ve KDV yok. Evdeki fatura değildir.

GET/v1/enerji/tarife

ücretsiz (anahtarla)

Elektrik ve doğal gaz tarifesi (ücretsiz)

Anahtar gerekli

Vergiler hariç resmî tarifeler. elektrik: EPDK tarife tablosu (kr/kWh), sınıf × abone grubu satırları, perakendeTekZamanli = enerji + dağıtım. dogalgaz: BOTAŞ toptan satış fiyatı (TL/Sm³; dağıtım şirketinin alış fiyatı, ev faturasına dağıtım bedeli + ÖTV + KDV eklenir); il verilirse konut kademe limiti. Tarife değişince gömülü veri güncellenir; gecerlilik.baslangic yürürlük günü.

Parametreler
AdYerTipAçıklama
tursorgu"elektrik" | "dogalgaz"Verilmezse ikisi
grupsorgustringElektrik abone grubu (içerir)
sinifsorgustringElektrik tarife sınıfı (başlar)
ilsorgustringDoğal gaz konut kademe limiti
aysorgustringKademe limitinin ayı; varsayılan bu ay

Örnek istek

curl "$KILAVUZ/v1/enerji/tarife?tur=…&grup=mesken&sinif=AG&il=Ankara&ay=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400parametre geçersiz ya da il bulunamadıHata
  • 401Anahtar yok ya da geçersizHata
  • 404eşleşen elektrik tarifesi yok (yanıtta gruplar ve siniflar)Hata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
elektrikobject
elektrik.gecerlilikobject
elektrik.baslikstring
elektrik.birimobject
elektrik.satirlarobject[]
elektrik.notlarstring[]
elektrik.kaynakstring
elektrik.kaynakUrlstring
elektrik.notstring
dogalgazobject
dogalgaz.gecerlilikobject
dogalgaz.baslikstring
dogalgaz.birimstring
dogalgaz.fiyatlarobject[]
dogalgaz.kademeobjectil verilirse: aylar (12 ay, aylikSm3) ve secilenAy (aylikSm3, gunlukSm3)
dogalgaz.notlarstring[]
dogalgaz.kaynakstring
dogalgaz.kaynakUrlstring
dogalgaz.notstring
lisansstring
uyaristring

Resmî Gazete

0–1 kredi

Günlük fihrist: bölüm, kategori, başlık ve resmigazete.gov.tr bağlantısı; belge metni yok, resmî metin yerine geçmez. İlan sayfaları açılmaz; başlığında kişi adı geçen satır yalnız kategorisiyle saklanır, adla aranamaz. Geçmiş 5 yıl.

GET/v1/resmi-gazete/bugun

ücretsiz (anahtarla)

En yeni Resmî Gazete fihristi

Anahtar gerekli

Elimizdeki en yeni günün Resmî Gazete fihristi (içindekiler): başlık, bölüm, kategori ve resmigazete.gov.tr bağlantısı. Aynı günün mükerrer sayıları ayrı girdi (mukerrer > 0). Belgelerin metni yoktur. Vitrin ucu: her zaman ücretsiz.

Örnek istek

curl "$KILAVUZ/v1/resmi-gazete/bugun" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
tarihstring | null (date)Yayım günü; kayıt yoksa null
sayilarobject[]Gün içindeki sayılar: asıl sayı ve varsa mükerrerler
sayilar[].tarihstring (date)
sayilar[].sayiintegerGazete sayısı, örn. 33378
sayilar[].mukerrerinteger0 asıl sayı, 1 birinci mükerrer…
sayilar[].urlstringFihrist sayfasının adresi
sayilar[].basliklarobject[]
kaynakstring
kaynakUrlstring
lisansstring
guncellemestring | nullSon başarılı çekim (ISO 8601); hiç yoksa null
bayatboolean
notstring

GET/v1/resmi-gazete

1 kredi

Bir günün ya da sayının fihristi

Anahtar gerekli

Verilen günün (tarih) ya da sayının (sayi) fihristi; en az biri gerekli. Kaynak günde iki kez çekilir, geçmiş 5 yıl tutulur. Gazete o gün yayımlanmadıysa (resmî tatil) liste boş döner ve kredi düşmez.

Parametreler
AdYerTipAçıklama
tarihsorgustring (date)Yayım günü (YYYY-AA-GG)
sayisorguintegerGazete sayısı; mükerrerler de gelir

Örnek istek

curl "$KILAVUZ/v1/resmi-gazete?tarih=2026-09-22&sayi=33378" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400tarih ya da sayi gerekli / geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
tarihstring | null (date)Yayım günü; kayıt yoksa null
sayilarobject[]Gün içindeki sayılar: asıl sayı ve varsa mükerrerler
sayilar[].tarihstring (date)
sayilar[].sayiintegerGazete sayısı, örn. 33378
sayilar[].mukerrerinteger0 asıl sayı, 1 birinci mükerrer…
sayilar[].urlstringFihrist sayfasının adresi
sayilar[].basliklarobject[]
kaynakstring
kaynakUrlstring
lisansstring
guncellemestring | nullSon başarılı çekim (ISO 8601); hiç yoksa null
bayatboolean
notstring

GET/v1/resmi-gazete/ara

1 kredi

Fihrist başlıklarında arama ve konu süzgeci

Anahtar gerekli

Başlıkta geçen metne göre (Türkçe karakter ve büyük/küçük harf ayrımı yok) ve/veya konu etiketine göre arar; q ya da etiketten en az biri gerekli. Yeniden eskiye, en çok 50 sonuç. Etiket otomatik sınıflandırmadır, yanılabilir. kisisel: true satırların başlığı kategorisine indirgenmiştir: kişi adıyla aranamaz. Sonuç boşsa kredi düşmez.

Parametreler
AdYerTipAçıklama
qsorgustring
etiketsorgu"egitim" | "vergi_maliye" | "finans" | "enerji" | "gida_tarim" | "saglik" | "cevre" | "ulasim" | "yargi" | "kamu_personel" | "kamu_idare" | "uluslararasi" | "ticaret_sanayi" | "diger"
baslangicsorgustring (date)En eski gün
bitissorgustring (date)En yeni gün
bolumsorgu"yasama" | "yurutme" | "yargi" | "ilan"

Örnek istek

curl "$KILAVUZ/v1/resmi-gazete/ara?q=tıbbi cihaz&etiket=vergi_maliye&baslangic=2026-09-18&bitis=2026-09-18&bolum=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400q ya da etiket yok, q 3 karakterden kısa / etiket, tarih ya da bolum geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
qstring | null
etiketstring | null
sonuclarobject[]
sonuclar[].tarihstring (date)
sonuclar[].sayiinteger
sonuclar[].mukerrerinteger0 asıl sayı, 1 birinci mükerrer…
sonuclar[].bolumstringYasama, Yürütme ve İdare, Yargı ya da İlan
sonuclar[].kategoristringAlt başlık: YÖNETMELİKLER, TEBLİĞLER, ATAMA KARARLARI…
sonuclar[].baslikstring`kisisel` ise başlık yerine kategorisi
sonuclar[].urlstringresmigazete.gov.tr'deki belge bağlantısı
sonuclar[].kisiselbooleanBaşlıkta kişi adı geçiyordu; ad saklanmadı
sonuclar[].etiket"egitim" | "vergi_maliye" | "finans" | "enerji" | "gida_tarim" | "saglik" | "cevre" | "ulasim" | "yargi" | "kamu_personel" | "kamu_idare" | "uluslararasi" | "ticaret_sanayi" | "diger" | nullOtomatik konu etiketi (yanılabilir); sınıflandırılmadıysa null
kaynakstring
kaynakUrlstring
lisansstring
guncellemestring | nullSon başarılı çekim (ISO 8601); hiç yoksa null
bayatboolean
notstring

İlaç listesi

ücretsiz (anahtarla)

TİTCK SKRS e-reçete listesi (haftalık) ve referans bazlı ilaç fiyat listesi (GKF, €), koda gömülü; yanıttaki `skrsDonemi` hangi haftanın verisi olduğunu söyler. Eczane satış fiyatı (TL) yok: o liste girişe bağlı. Tıbbi tavsiye değildir.

GET/v1/ilac/ara

ücretsiz (anahtarla)

İlaç ara: barkod, ad, ATC (ücretsiz)

Anahtar gerekli

TİTCK SKRS e-reçete listesindeki ilaç ve farmasötik ürünler (haftalık): barkod, ATC kodu ve etkin madde, firma, reçete türü (Normal/Kırmızı/Turuncu/Mor/Yeşil), aktif/pasif. Referans bazlı listedeki gerçek kaynak fiyat (gkfEuro, €) ad eşlemesiyle; eşleşmeyen üründe null. Eczane satış fiyatı yok (TİTCK fiyat listesi girişe bağlı). ara, barkod ya da atc gerekli; barkodla aranınca varsayılan durum hepsi, yoksa aktif.

Parametreler
AdYerTipAçıklama
arasorgustringÜrün adı ya da etkin maddedeki sözcükler (hepsi)
barkodsorgustring
atcsorgustringATC kodu ya da başı (N02)
durumsorgu"aktif" | "pasif" | "hepsi"
limitsorguinteger
sayfasorguinteger

Örnek istek

curl "$KILAVUZ/v1/ilac/ara?ara=parol&barkod=8699578095307&atc=N02BE01&durum=…&limit=…&sayfa=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400parametre geçersiz ya da arama ölçütü yokHata
  • 401Anahtar yok ya da geçersizHata
  • 404barkod listede yokHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
toplaminteger
sayfainteger
limitinteger
ilaclarobject[]
ilaclar[].adstring
ilaclar[].barkodstring
ilaclar[].atcKodustring | null
ilaclar[].atcAdistring | null
ilaclar[].firmastring | null
ilaclar[].receteTuru"Normal" | "Kırmızı" | "Turuncu" | "Mor" | "Yeşil" | null
ilaclar[].durum"aktif" | "pasif"
ilaclar[].temelIlacobject | null
ilaclar[].listeTarihistring | null (date)
ilaclar[].gkfEuronumber | null
kaynakstring
kaynakUrlstring[]
lisansstring
guncellemestring (date)
skrsDonemistring | null
gkfTarihistring | null (date)
uyaristring

İl kartı ve bölgeler

ücretsiz (anahtarla)

Koda gömülü; istek anında dışarıya gidilmez. Yüzölçümü TÜİK nüfusu ve yoğunluğundan türetilir (göl ve baraj yüzeyi hariç). Merkez koordinatı yaklaşık, resmî değil. Rakım Copernicus DEM GLO-90 yüzey modelinden (bina ve ağaç dahil), MGM istasyon rakımı değildir; atıf yanıtta `rakimKaynak` alanında. Coğrafi bölge idari birim değildir.

GET/v1/il/bolgeler

ücretsiz (anahtarla)

Yedi coğrafi bölge ve illeri (ücretsiz)

Anahtar gerekli

Marmara, Ege, Akdeniz, İç Anadolu, Karadeniz, Doğu Anadolu, Güneydoğu Anadolu; her bölgenin illeri ve toplam nüfusu. Coğrafi bölge idari bir birim değildir — resmî istatistik bölgesi için /v1/il/ibbs.

Örnek istek

curl "$KILAVUZ/v1/il/bolgeler" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
toplaminteger
bolgelerobject[]
bolgeler[].adstring
bolgeler[].ilSayisiinteger
bolgeler[].nufusinteger
bolgeler[].illerobject[]
kaynakstring
guncellemestring
notstring

GET/v1/il/ibbs

ücretsiz (anahtarla)

İBBS/NUTS bölge birimleri (ücretsiz)

Anahtar gerekli

TÜİK İstatistiki Bölge Birimleri Sınıflaması: Düzey 1 (12 bölge, TR1…TRC), Düzey 2 (26 alt bölge) ve Düzey 3 (81 il). AB fonu, istatistik raporlaması ve bölgesel kırılım için. Düzey 3'te plaka de döner.

Parametreler
AdYerTipAçıklama
duzeysorgu"1" | "2" | "3"Varsayılan 3 (il)

Örnek istek

curl "$KILAVUZ/v1/il/ibbs?duzey=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400duzey geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
duzeyinteger
toplaminteger
birimlerIbbsBirimi[]
kaynakstring
guncellemestring
lisansstring
notstring

GET/v1/il/{il}/ilceler

ücretsiz (anahtarla)

İlin ilçeleri, nüfusu ve koordinatı (ücretsiz)

Anahtar gerekli

İlin tüm ilçeleri: TÜİK ADNKS nüfusu, yıllık artış hızı ve yaklaşık merkez koordinatı. Koordinat sokak sicilindeki noktaların medyanı (resmî ilçe merkezi değil); yeterli nokta yoksa merkez: null.

Parametreler
AdYerTipAçıklama
ilzorunluyolstringPlaka ya da il adı

Örnek istek

curl "$KILAVUZ/v1/il/<il>/ilceler" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 401Anahtar yok ya da geçersizHata
  • 404il bulunamadıHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
ilstring
plakainteger
yilinteger
toplaminteger
nufusinteger
ilcelerIlceNufusu[]
kaynakstring
kaynakUrlstring
guncellemestring
lisansstring
notstring

GET/v1/il/{il}

ücretsiz (anahtarla)

İl bilgi kartı (ücretsiz)

Anahtar gerekli

Plakadan ya da il adından tek çağrıda: coğrafi bölge, İBBS/NUTS Düzey 1-2-3 kodu, telefon alan kodu, TÜİK nüfusu (il/ilçe merkezi ve belde/köy kırılımıyla), nüfus yoğunluğu, yüzölçümü, merkez koordinatı, rakım (yüzey modelinden, yaklaşık), komşu iller, ilçe sayısı, posta kodu aralığı ve büyükşehir olup olmadığı.

Parametreler
AdYerTipAçıklama
ilzorunluyolstringPlaka ("42", "06") ya da il adı ("Konya", "afyon")

Örnek istek

curl "$KILAVUZ/v1/il/<il>" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 401Anahtar yok ya da geçersizHata
  • 404il bulunamadıHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
ilIlKarti
kaynakstring
kaynakUrlstring
guncellemestring
lisansstring
olguKaynakstring
rakimKaynakobject
rakimKaynak.kaynakstring
rakimKaynak.lisansstring
rakimKaynak.yontemstring
notstring

Nüfus

ücretsiz (anahtarla)

TÜİK Adrese Dayalı Nüfus Kayıt Sistemi 2025 sonuçları. İl serisi 2000–2025 (2007 öncesi TÜİK tahmini); ilçede yalnız son yıl.

GET/v1/nufus

ücretsiz (anahtarla)

İl nüfusu, yıllara göre seri (ücretsiz)

Anahtar gerekli

TÜİK ADNKS il nüfusu ve 2000'den bu yana yıllık seri. yil verilirse yalnız o yıl. ilce verilirse ilçe nüfusu döner — ilçede yalnız son yıl var, TÜİK geçmiş yılların ilçe ekini yayımdan kaldırıyor.

Parametreler
AdYerTipAçıklama
ilzorunlusorgustringPlaka ya da il adı
ilcesorgustring
yilsorguinteger

Örnek istek

curl "$KILAVUZ/v1/nufus?il=Bursa&ilce=Nilüfer&yil=2015" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400il gerekli ya da yil geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 422il ya da ilçe bulunamadı, ya da istenen yıl seride yokHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
ilstring
plakainteger
ilcestring
yilinteger
nufusinteger
yillikArtisHizinumber | null
yogunluknumber
ilceSayisiinteger
seriNufusYili[]
kaynakstring
kaynakUrlstring
guncellemestring
lisansstring
notstring

Vergi ve finans

Kurlar, altın, enflasyon, vergi dilimleri, bordro ve tazminat; tapu, emlak, damga, veraset ve MTV hesabı; harçlar, avukatlık ve noter ücretleri, trafik cezaları ve vergi daireleri. Değerler resmî belgelerden; ikincil kaynaktan alınanlar notta işaretli. Bilgilendirme amaçlıdır.

TCMB kuru

ücretsiz (anahtarla)

GET/v1/kur

ücretsiz (anahtarla)

TCMB döviz kurları (ücretsiz)

Anahtar gerekli

Tatil/hafta sonunda en yakın önceki iş gününe düşer; geriyeDusuldu bunu söyler. TCMB ticari kullanımı yazılı izne bağlıyor; izin gelene kadar 0 kredi, not alanıyla.

Parametreler
AdYerTipAçıklama
tarihsorgustring (date)YYYY-AA-GG

Örnek istek

curl "$KILAVUZ/v1/kur?tarih=2026-09-18" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400tarih biçimi hatalıHata
  • 401Anahtar yok ya da geçersizHata
  • 404Yayın bulunamadıHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
kaynakobject
veriKaynagistring`kaynak` ile aynı
notstring
tarihstring
istenenTarihstring
geriyeDusulduboolean
bultenNostring | null
kurlarKur[]

POST/v1/kur/cevir

ücretsiz (anahtarla)

Para birimi çevir (TCMB kuru, ücretsiz)

Anahtar gerekli

Yanıttaki kaynak kaynak para birimidir; veri kaynağı veriKaynagi (TCMB).

İstek gövdesi
AlanTipAçıklama
tutarzorunlunumber
kaynakzorunlustring
hedefzorunlustring
kurTipi"alis" | "satis" | "efektifAlis" | "efektifSatis"varsayılan "satis"
tarihstring (date)

Örnek istek

curl -X POST "$KILAVUZ/v1/kur/cevir" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR" \
  -H "content-type: application/json" \
  -d '{"tutar":100,"kaynak":"USD","hedef":"TRY"}'

Yanıtlar

  • 200Başarılı
  • 400Eksik alan, bilinmeyen para birimi ya da yayımlanmamış kurHata
  • 401Anahtar yok ya da geçersizHata
  • 404Yayın bulunamadıHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
veriKaynagiobject
notstring
tutarnumber
kaynakstring
hedefstring
sonucnumber
kurTipistring
tarihstring
geriyeDusulduboolean
kullanilanKurobject
kullanilanKur.kaynaknumber
kullanilanKur.hedefnumber

GET/v1/kur/ecb

ücretsiz (anahtarla)

ECB euro referans kurları (ücretsiz)

Anahtar gerekli

29 para birimi, ECB iş günlerinde ~16:00 CET yayımlar. baz EUR ise değerler ECB'nin yayımladığı gibi; başka bazda ECB kurlarından hesaplanır ve her kurda hesaplanan: true olur. Bu veri ecb.europa.eu'dan ücretsiz alınabilir.

Parametreler
AdYerTipAçıklama
bazsorgustringÜç harfli kod, örn. TRY

Örnek istek

curl "$KILAVUZ/v1/kur/ecb?baz=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400baz geçersiz ya da ECB listesinde yokHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
  • 503ECB yayını alınamıyorHata
Yanıt alanları
kaynakstring
notstring
hesaplamaNotustringYalnız EUR dışı bazda
tarihstring
bazstring
kurlarobject[]
kurlar[].kodstring
kurlar[].orannumber1 baz = oran kod
kurlar[].hesaplananboolean

Altın ve serbest piyasa

1 kredi

doviz.com serbest piyasa (kuyumcu, döviz bürosu) alış-satış fiyatı; banka, Kapalıçarşı ve Borsa İstanbul fiyatından farklıdır. Ons ABD doları, gerisi TL; `saat` kaynağın son fiyat saati. 2 dk önbellek; kaynak düşerse 6 saate kadar eski fiyat `bayat: true`.

GET/v1/altin/fiyat

1 kredi

Altın ve serbest piyasa döviz fiyatı

Anahtar gerekli

Serbest piyasa altın (gram, has, çeyrek, yarım, tam, cumhuriyet, ata, 14/18/22 ayar, ons, gümüş…) ve döviz alış/satış fiyatları. Kaynak doviz.com sayfaları, istek anında, en çok 2 dakika önbellek; kaynak düşerse 6 saate kadar eski veri bayat: true, hiç yoksa 503 (kredi düşmez). Banka, Kapalıçarşı ve Borsa İstanbul fiyatı değildir.

Parametreler
AdYerTipAçıklama
urunsorgustringVirgüllü ürün kodu ya da kısa ad (gram, has, ceyrek, yarim, tam, cumhuriyet, ata, ons, bilezik); boşsa hepsi
dovizsorgustringVirgüllü döviz kodu, "hepsi" ya da "yok"; varsayılan USD,EUR,GBP,CHF

Örnek istek

curl "$KILAVUZ/v1/altin/fiyat?urun=gram,ceyrek,cumhuriyet&doviz=USD,EUR" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400doviz listesi geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 422ürün bulunamadı (geçerli kodlar yanıtta)Hata
  • 429Kredi limiti aşıldıHata
  • 503kaynak yanıt vermiyor ve önbellek yokHata
Yanıt alanları
altinPiyasaFiyati[]
dovizPiyasaFiyati[]
kaynakstring
kaynakUrlstring[]
lisansstring
guncellemestringKaynaktan son alınma (ISO 8601)
bayatboolean
notstring

Vergi dairesi

ücretsiz (anahtarla)

GİB listesinden, koda gömülü; ücretsiz. İl merkezindeki daireler ilçe "Merkez" döner (İstanbul ve Ankara'da hangi merkez ilçe olduğu kaynakta yok); adla arayın: ara=kadikoy. Mükellefin kayıtlı olduğu daireyi söylemez.

GET/v1/vergi-dairesi

ücretsiz (anahtarla)

Vergi daireleri listesi (GİB)

Anahtar gerekli

GİB "Defterdarlık ve Vergi Daireleri Listesi": vergi dairesi müdürlükleri (muhasebe birim koduyla), şubeleri ve Eskişehir Defterdarlığı. Süzgeçsiz tüm Türkiye (~1.100 kayıt). guncelleme kaynak listenin tarihi. Ücretsiz.

Parametreler
AdYerTipAçıklama
ilsorgustring
ilcesorgustringKaynaktaki ilçe. İl merkezindeki (büyükşehirde merkez ilçelerdeki) daireler "Merkez"; hangi merkez ilçede oldukları listede yok
arasorgustringAd ya da ilçede sözcük başından, Türkçe karaktersiz
tursorgu"mudurluk" | "sube" | "defterdarlik"

Örnek istek

curl "$KILAVUZ/v1/vergi-dairesi?il=İstanbul&ilce=Silivri&ara=kadikoy&tur=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400tur geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 422il bulunamadıHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
ilstring | null
toplaminteger
vergiDaireleriVergiDairesi[]
kaynakstring
kaynakUrlstring
lisansstring
guncellemestringKaynak listenin tarihi (YYYY-AA-GG)
bayatbooleanListe 1 yıldan eski
notstring

GET/v1/vergi-dairesi/{kod}

ücretsiz (anahtarla)

Muhasebe birim kodundan vergi dairesi

Anahtar gerekli

Parametreler
AdYerTipAçıklama
kodzorunluyolstring

Örnek istek

curl "$KILAVUZ/v1/vergi-dairesi/<kod>" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400kod 5 haneli değilHata
  • 401Anahtar yok ya da geçersizHata
  • 404kod listede yokHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
vergiDairesiVergiDairesi
kaynakstring
kaynakUrlstring
lisansstring
guncellemestring
bayatboolean
notstring

TÜFE ve kira

ücretsiz (anahtarla)

TÜİK TÜFE serisi (2025=100), kaynak gösterilerek. Kira artışı TBK m.344 ve 2022–2024 konut tavanından; hukuki tavsiye değildir.

GET/v1/ekonomi/politika-faizi

ücretsiz (anahtarla)

TCMB politika faizi, gecelik oranlar, reeskont/avans (ücretsiz)

Anahtar gerekli

Bir hafta vadeli repo (2010'dan politika faizi), gecelik borç alma/verme (2002'den), reeskont ve avans (1990'dan), son PPK kararı ve sonraki toplantı. Koda gömülü TCMB tablosu, guncelleme gününe kadar doğrulandı; tarih verilmezse son hâli. TCMB verisi ücretsiz ve kaynak gösterilerek verilir (not).

Parametreler
AdYerTipAçıklama
tarihsorgustring (date)

Örnek istek

curl "$KILAVUZ/v1/ekonomi/politika-faizi?tarih=2025-06-30" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400tarih geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 422tarih tablo dışında (doğrulama gününden sonra ya da 1990 öncesi)Hata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
tarihstring
politikaFaiziobject | null
politikaFaizi.adstring
politikaFaizi.orannumber
politikaFaizi.yururlukstring
politikaFaiziNotustring
gecelikobject | null
gecelik.borcAlmanumber
gecelik.borcVermenumber
gecelik.yururlukstring
reeskontobject
reeskont.orannumber
reeskont.yururlukstring
avansobject
avans.orannumber
avans.yururlukstring
sonKararobject ya da null
sonrakiToplantistring | null
uyaristring
kaynakobject
guncellemestring (date)
notstring

GET/v1/ekonomi/ppk-kararlari

ücretsiz (anahtarla)

TCMB PPK kararları (ücretsiz)

Anahtar gerekli

2026 için bütün toplantılar (sabit bırakılanlar dahil, basın duyurusu bağlantısıyla) ve kalan toplantı günleri; 2010–2025 için yalnız politika faizi değişiklikleri (yürürlük günü, repo ve gecelik oranlar). TCMB verisi (not).

Parametreler
AdYerTipAçıklama
yilsorguintegerVarsayılan tablonun son yılı

Örnek istek

curl "$KILAVUZ/v1/ekonomi/ppk-kararlari?yil=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400yil geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
yilinteger
toplantilarobject[] ya da null
toplantiNotustring
degisikliklerobject[]
degisiklikler[].yururlukstring
degisiklikler[].reponumber
degisiklikler[].gecelikBorcVermenumber | null
degisiklikler[].gecelikBorcAlmanumber | null
sonrakiToplantilarstring[]
kaynakobject
guncellemestring (date)
notstring

GET/v1/ekonomi/gostergeler

ücretsiz (anahtarla)

TÜİK ana göstergeler: son açıklanan değerler (ücretsiz)

Anahtar gerekli

TÜİK haber bültenlerinin başlık cümlelerinden okunan son değerler: TÜFE, Yİ-ÜFE, Tarım-ÜFE (yıllık %), işsizlik oranı (mevsim etkisinden arındırılmış), GSYH büyümesi (çeyrek), sanayi üretimi, tüketici ve ekonomik güven endeksi, ihracat/ithalat (milyon USD), konut satışları, trafiğe kaydı yapılan taşıt. Her gösterge dönemi, öteki oranları (degisimler), bülten başlık cümlesi (ozet) ve bülten bağlantısıyla. Toplayıcı günde iki kez yeni bülten arar; tablo boşsa liste boş ve bayat: true.

Parametreler
AdYerTipAçıklama
kodsorgustringVirgülle ayrılmış gösterge kodları; verilmezse hepsi. Geçerli: tufe, yi-ufe, tarim-ufe, issizlik, gsyh, sanayi-uretim, tuketici-guven, ekonomik-guven, ihracat, ithalat, konut-satis, motorlu-tasit

Örnek istek

curl "$KILAVUZ/v1/ekonomi/gostergeler?kod=tufe,issizlik" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400bilinmeyen gösterge koduHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
gostergelerobject[]
gostergeler[].kod"tufe" | "yi-ufe" | "tarim-ufe" | "issizlik" | "gsyh" | "sanayi-uretim" | "tuketici-guven" | "ekonomik-guven" | "ihracat" | "ithalat" | "konut-satis" | "motorlu-tasit"
gostergeler[].adstring
gostergeler[].donemstring"2026-08" ya da çeyrek için "2026-Q2"
gostergeler[].donemAdistringBültendeki yazılışı: "Ağustos 2026"
gostergeler[].degernumber
gostergeler[].birimstring"%", "endeks", "adet", "milyon USD"
gostergeler[].degisimlerobjectBültende geçen öteki değerler: aylik, yilbasindan, oniKiAylikOrtalama, istihdamOrani, ilkEl…
gostergeler[].ozetstring | nullBültenin başlık cümlesi
gostergeler[].bultenobject
kaynakstring
kaynakUrlstring
lisansstring
guncellemestring | nullSon başarılı çekim (ISO 8601); hiç yoksa null
bayatboolean
notstring

GET/v1/ekonomi/bultenler

ücretsiz (anahtarla)

TÜİK bülten akışı (ücretsiz)

Anahtar gerekli

TÜİK'in yayımladığı haber bültenleri ve veri tarayıcısı tabloları, en yeni önce: başlık, dönem, yayım anı, konu, bağlantı. Portalın son 50 yayımından birikiyor (üç yıl tutulur). Bülten içeriği verilmez, yalnız künyesi.

Parametreler
AdYerTipAçıklama
arasorgustringBaşlıkta parça eşleşme (Türkçe karaktersiz de olur)
konusorgustringKonu adında parça eşleşme
tursorgu"bulten" | "tablo"
limitsorguinteger

Örnek istek

curl "$KILAVUZ/v1/ekonomi/bultenler?ara=konut&konu=enflasyon&tur=…&limit=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400ara/konu çok uzun, tur ya da limit geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
arastring | null
konustring | null
tur"bulten" | "tablo" | null
bultenlerobject[]
bultenler[].baslikstring
bultenler[].donemstring | null
bultenler[].yayinTarihistring | null
bultenler[].tur"bulten" | "tablo"
bultenler[].konustring | null
bultenler[].urlstring
kaynakstring
kaynakUrlstring
lisansstring
guncellemestring | nullSon başarılı çekim (ISO 8601); hiç yoksa null
bayatboolean
notstring

GET/v1/ekonomi/seri

ücretsiz (anahtarla)

TÜİK aylık seri: konut satışı, motorlu taşıt, tarım ÜFE (ücretsiz)

Anahtar gerekli

TÜİK Veri Tarayıcısı'ndan aylık seri, eskiden yeniye. konut-satis: Türkiye ya da il (il), kırılım toplam, ilk-el, ikinci-el, ipotekli, diger, yabanci. motorlu-tasit: Türkiye, araç türü kırılımı; ölçü kayit ya da silinen. tarim-ufe: Türkiye, genel ve ana gruplar; ölçü endeks, aylik, yilbasindan, yillik, ortalama. Yanıttaki kirilimlar ve olculer seri için geçerli kodları verir.

Parametreler
AdYerTipAçıklama
adzorunlusorgu"konut-satis" | "motorlu-tasit" | "tarim-ufe"
ilsorgustringYalnız konut-satis: il adı ya da plaka; verilmezse Türkiye
kirilimsorgustringVarsayılan toplam (tarim-ufe: genel)
olcusorgustringVarsayılan adet / kayit / yillik
sonsorguintegerAralık verilmezse son kaç ay
baslangicsorgustring
bitissorgustring

Örnek istek

curl "$KILAVUZ/v1/ekonomi/seri?ad=…&il=Antalya&kirilim=…&olcu=…&son=…&baslangic=…&bitis=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400ad, kirilim, olcu, il, son ya da tarih aralığı geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
ad"konut-satis" | "motorlu-tasit" | "tarim-ufe"
seriAdistring
bolgestring | null
bolgeKodstring"TR" ya da İBBS düzey-3 kodu ("TR611")
kirilimstring
kirilimAdistring
olcustring
olcuAdistring
noktalarobject[]
noktalar[].donemstring
noktalar[].degernumber
sonobject ya da null
kirilimlarobject
olculerobject
kaynakstring
kaynakUrlstring
lisansstring
guncellemestring | nullSon başarılı çekim (ISO 8601); hiç yoksa null
bayatboolean
notstring

GET/v1/ekonomi/tufe

ücretsiz (anahtarla)

TÜFE: aylık, yıllık, 12 aylık ortalama (TÜİK, ücretsiz)

Anahtar gerekli

TÜİK tüketici fiyat endeksi ve dört değişim oranı, 2005'ten bu yana aylık. ay verilmezse son açıklanan ay. son=N ile aya kadar son N ay seride. Yeni ay her ayın 3'ü 10:00'da (TR) TÜİK'ten alınır; TÜİK'e ulaşılamazsa eldeki seri bayat: true ile döner.

Parametreler
AdYerTipAçıklama
aysorgustring
sonsorguintegerSeri uzunluğu (ay sayısı)

Örnek istek

curl "$KILAVUZ/v1/ekonomi/tufe?ay=2026-08&son=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400ay ya da son geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 422ay henüz açıklanmadı (`sonAy`) ya da seriden eskiHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
aystringYYYY-AA
endeksnumber
ayliknumberÖnceki aya göre, %
aralikaGorenumberÖnceki yılın Aralık ayına göre, %
yilliknumberÖnceki yılın aynı ayına göre, %
oniKiAylikOrtalamanumber12 aylık ortalamalara göre, %
bazstring"2025=100"
seriobject[]
seri[].aystringYYYY-AA
seri[].endeksnumber
seri[].ayliknumberÖnceki aya göre, %
seri[].aralikaGorenumberÖnceki yılın Aralık ayına göre, %
seri[].yilliknumberÖnceki yılın aynı ayına göre, %
seri[].oniKiAylikOrtalamanumber12 aylık ortalamalara göre, %
kaynakstring
kaynakUrlstring
lisansstring
guncellemestringTÜİK bülteninin yayım anı
bayatbooleanAçıklanmış olması gereken son ay eksik (TÜİK'e ulaşılamadı)
notstring

GET/v1/ekonomi/kira-artis

ücretsiz (anahtarla)

Yasal kira artış üst sınırı (TBK m.344, ücretsiz)

Anahtar gerekli

TÜFE on iki aylık ortalama değişimi; konutta 11.06.2022–01.07.2024 arası yenilemelerde %25 tavanı. yenileme (kira döneminin başladığı gün) verilirse önceki ayın oranı; ay verilirse o ayın oranı (yenileme izleyen ay); ikisi de yoksa son açıklanan ay. kira verilirse yeni azami kira. Hukuki tavsiye değildir.

Parametreler
AdYerTipAçıklama
yenilemesorgustring (date)
aysorgustringTÜFE ayı
tursorgu"konut" | "isyeri"Varsayılan konut
kirasorgunumberMevcut aylık kira, TL

Örnek istek

curl "$KILAVUZ/v1/ekonomi/kira-artis?yenileme=2026-09-15&ay=…&tur=…&kira=20000" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400parametre geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 422TÜFE ayı henüz açıklanmadıHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
tufeAyistring
oniKiAylikOrtalamanumber
turstring
yenilemestring
azamiOrannumberYüzde
konutTavaniobject | null
konutTavani.orannumber
konutTavani.uygulanirboolean | nullnull: yenileme gününe bağlı
kiranumber | null
yeniAzamiKiranumber | null
dayanakobject
dayanak.ustSinirstring
dayanak.konutTavanistring
kaynakstring
kaynakUrlstring
lisansstring
guncellemestring
bayatboolean
notstring
uyaristring

Vergi ve SGK

0–1 kredi

Değerler resmî belgelerden elle yazıldı; her bölümde geçerlilik ve kaynak. MTV 2026 tutarları ikincil kaynaktan (tebliğin tabloları Resmî Gazete PDF’inde görüntü). Tapu harcı devir eden ve alan için ayrı ayrı binde 20; tapu döner sermaye ücreti yöresel katsayı yayımlanmadığı için hesaplanmaz. Emlak vergisinde matrah (arsa ve bina birim değeri) belediyeden alınır. Doğrulanamayan kalemler `belirsiz: true`. Hukuki ya da mali tavsiye değildir.

GET/v1/vergi/parametreler

ücretsiz (anahtarla)

Yıllık vergi ve SGK parametreleri (ücretsiz)

Anahtar gerekli

Gelir vergisi tarifesi (ücret ve ücret dışı), asgari ücret (brüt, net, işçi/işveren payları), prime esas kazanç alt/üst sınırı, KDV genel oranları. Her bölümde gecerlilik {baslangic, bitis} ve kaynak {belge, rg, url}; asgari ücret yıl içinde değişirse dizide yeni dönem. Bordro (brütten nete) hesabı yok.

Parametreler
AdYerTipAçıklama
yilsorguintegerVarsayılan içinde bulunulan yıl

Örnek istek

curl "$KILAVUZ/v1/vergi/parametreler?yil=2026" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 401Anahtar yok ya da geçersizHata
  • 422yıl için parametre yok (yanıtta `yillar`)Hata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
yilinteger
gelirVergisiTarifesiobject
gelirVergisiTarifesi.gecerlilikGecerlilik
gelirVergisiTarifesi.kaynakResmiKaynak
gelirVergisiTarifesi.ucretDilim[]
gelirVergisiTarifesi.ucretDisiDilim[]
asgariUcretobject[]
asgariUcret[].gecerlilikGecerlilik
asgariUcret[].kaynakResmiKaynak
asgariUcret[].brutAyliknumber
asgariUcret[].brutGunluknumber
asgariUcret[].netAyliknumber
asgariUcret[].isciSgkOraninumber
asgariUcret[].isciIssizlikOraninumber
asgariUcret[].isverenSgkOraniobject
asgariUcret[].isverenIssizlikOraninumber
primeEsasKazancobject
primeEsasKazanc.gecerlilikGecerlilik
primeEsasKazanc.kaynakResmiKaynak
primeEsasKazanc.gunlukAltnumber
primeEsasKazanc.gunlukUstnumber
primeEsasKazanc.aylikAltnumber
primeEsasKazanc.aylikUstnumber
kdvOranlariobject
kdvOranlari.gecerlilikGecerlilik
kdvOranlari.kaynakResmiKaynak
kdvOranlari.genelnumber
kdvOranlari.birSayiliListenumber
kdvOranlari.ikiSayiliListenumber
notstring
uyaristring

GET/v1/vergi/gelir-vergisi

ücretsiz (anahtarla)

Yıllık matrahtan gelir vergisi (GVK m.103, ücretsiz)

Anahtar gerekli

Tarifeyi yıllık matraha uygular, dilim dökümüyle. İstisna, indirim, kümülatif bordro hesabı yapmaz.

Parametreler
AdYerTipAçıklama
matrahzorunlusorgunumberYıllık, TL
tursorgu"ucret" | "ucret-disi"Varsayılan ucret-disi; ücrette 3. dilim geniş
yilsorguinteger

Örnek istek

curl "$KILAVUZ/v1/vergi/gelir-vergisi?matrah=500000&tur=…&yil=2026" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400matrah ya da tur geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 422yıl için parametre yokHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
yilinteger
turstring
matrahnumber
verginumber
ortalamaOrannumber
marjinalOrannumber
dokumobject[]
dokum[].altnumber
dokum[].ustnumber | null
dokum[].orannumber
dokum[].matrahnumber
dokum[].verginumber
gecerlilikGecerlilik
kaynakResmiKaynak
notstring
uyaristring

GET/v1/vergi/kdv

ücretsiz (anahtarla)

KDV ekle ya da ayır (ücretsiz)

Anahtar gerekli

Oran (I) ve (II) sayılı listelere göre kullanıcı seçer; uç hangi malın hangi orana tabi olduğunu söylemez.

Parametreler
AdYerTipAçıklama
tutarzorunlusorgunumber
oransorgu1 | 10 | 20Varsayılan genel oran
dahilsorgu"true" | "false"true: tutar KDV dahil, ayrıştır
yilsorguinteger

Örnek istek

curl "$KILAVUZ/v1/vergi/kdv?tutar=1200&oran=…&dahil=…&yil=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400tutar, oran ya da dahil geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 422yıl için parametre yokHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
orannumber
kdvHaricnumber
kdvnumber
kdvDahilnumber
gecerlilikGecerlilik
kaynakResmiKaynak
notstring
uyaristring

GET/v1/vergi/mtv

ücretsiz (anahtarla)

Motorlu taşıtlar vergisi (2026 tarifesi, ücretsiz)

Anahtar gerekli

197 sayılı Kanun m.5/6 ve geçici m.8 tarifeleri (58 Seri No.lu MTV Genel Tebliği). Otomobilde 1/1/2018 ve sonrası tescilliler (I) sayılı tarifeye göre taşıt değeriyle birlikte, öncekiler (I/A) sayılı tarifeye göre yalnız motor hacmi ve yaşla vergilendirilir. deger verilmezse vergi yerine o motor hacmine ait değer bantları döner. Yaş = vergilendirme yılı − model yılı + 1. Taksitler Ocak ve Temmuz.

Parametreler
AdYerTipAçıklama
tursorgu"otomobil" | "motosiklet" | "minibus" | "panelvan" | "otobus" | "kamyon"Varsayılan otomobil
modelYilizorunlusorguinteger
motorHacmisorgunumbercm³; otomobil, motosiklet ve panelvanda zorunlu
degersorgunumberTaşıt değeri (TL); (I) sayılı tarifede bant seçer
koltuksorguintegerOtobüste oturma yeri sayısı
agirliksorgunumberKamyon/kamyonet/çekicide azami toplam ağırlık (kg)
tescilYilisorguinteger2018 öncesi tescilli otomobilde (I/A) tarifesi; verilmezse model yılı kullanılır
yilsorguintegerVarsayılan 2026; başka yıl 422

Örnek istek

curl "$KILAVUZ/v1/vergi/mtv?tur=…&modelYili=2024&motorHacmi=1600&deger=…&koltuk=…&agirlik=…&tescilYili=…&yil=2026" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400tur, modelYili ya da ölçü geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 422yıl için tarife yokHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
turstring
yilinteger
modelYiliinteger
yasinteger
yasGrubustring
tarife"I" | "I/A" | "II"
olcuobject
olcu.adstring
olcu.degernumber
olcu.bantstring
verginumber | nullYıllık TL; değer bandı seçilemediyse null
taksitlerobject[]
taksitler[].aystring
taksitler[].tutarnumber
degerBandistring | null
bantlarobject[]
bantlar[].degerstring
bantlar[].verginumber
gecerlilikGecerlilik
kaynakResmiKaynak
notstring
uyaristring

GET/v1/vergi/takvim

ücretsiz (anahtarla)

GİB vergi takvimi: beyanname ve ödeme son günleri (ücretsiz)

Anahtar gerekli

"Bu hafta hangi beyannamelerin son günü?", "Eylül KDV ne zaman ödenir?". Kaynak GİB vergi takvimi; yıl başına istek anında GİB'den (6 saat önbellek, süre uzatmaları yansır), ulaşılamazsa koda gömülü anlık görüntü (durum: gomulu). Aralık ay, hafta, tarih ya da baslangic+bitis (en çok 400 gün) ile; hiçbiri yoksa bugünden 30 gün. Varsayılan kapsam=son-gun: son günü aralıkta olanlar; acik: dönemi aralıkla örtüşenler.

Parametreler
AdYerTipAçıklama
aysorgustringYYYY-AA
haftasorgustringISO hafta ya da "bu"
tarihsorgustring (date)Tek gün
baslangicsorgustring (date)
bitissorgustring (date)
arasorgustringBaşlık, vergi türü ya da açıklamada geçen metin
konusorgustringBeyan ve Ödeme, Ödeme, Bildirim, Berat…
kapsamsorgu"son-gun" | "acik"

Örnek istek

curl "$KILAVUZ/v1/vergi/takvim?ay=2026-09&hafta=2026-W39&tarih=2026-09-18&baslangic=2026-09-18&bitis=2026-09-18&ara=katma değer&konu=Beyan ve Ödeme&kapsam=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400tarih/ay/hafta ya da kapsam geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
  • 503GİB'e ulaşılamadı ve gömülü kopyada bu yıl yokHata
Yanıt alanları
sorguobject
sorgu.nestring
sorgu.baslangicstring
sorgu.bitisstring
sorgu.kapsamstring
sorgu.arastring | null
sorgu.konustring | null
sayiinteger
kayitlarobject[]
kayitlar[].idinteger
kayitlar[].baslikstring
kayitlar[].aciklamastring | null
kayitlar[].baslangicstring (date)
kayitlar[].sonGunstring (date)
kayitlar[].vergiTurustring | null
kayitlar[].donemstring | null
kayitlar[].konustring | null
kayitlar[].oncelikinteger | null
kaynakstring
kaynakUrlstring
guncellemestring
durum"canli" | "bayat" | "gomulu"
eksikYilinteger[]
notstring
uyaristring

GET/v1/vergi/oranlar

ücretsiz (anahtarla)

Gecikme zammı, tecil faizi, yeniden değerleme oranları (ücretsiz)

Anahtar gerekli

GİB "Yararlı Bilgiler" tabloları: gecikme zammı (6183 m.51, aylık %; 20.01.2000'den), tecil faizi (6183 m.48, yıllık %; 25.01.2000'den), yeniden değerleme oranı (VUK mük. m.298; 2010–). tarih verilirse yalnız o gün geçerli oran.

Parametreler
AdYerTipAçıklama
tursorgu"gecikme-zammi" | "tecil-faizi" | "yeniden-degerleme"Yoksa üçü
tarihsorgustring (date)Geçerli oran; yoksa bugün ve bütün dönemler

Örnek istek

curl "$KILAVUZ/v1/vergi/oranlar?tur=…&tarih=2026-09-18" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400tur ya da tarih geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
tarihstring
gecikmeZammiobject
gecikmeZammi.birimstring
gecikmeZammi.dayanakKanunstring
gecikmeZammi.gecerliOranDonemi
gecikmeZammi.donemlerOranDonemi[]
gecikmeZammi.kaynakUrlstring
gecikmeZammi.notstring
tecilFaiziobject
tecilFaizi.birimstring
tecilFaizi.dayanakKanunstring
tecilFaizi.gecerliOranDonemi
tecilFaizi.donemlerOranDonemi[]
tecilFaizi.kaynakUrlstring
yenidenDegerlemeobject
yenidenDegerleme.birimstring
yenidenDegerleme.dayanakKanunstring
yenidenDegerleme.kaynakUrlstring
yenidenDegerleme.notstring
yenidenDegerleme.oranlarobject[]
kaynakstring
kaynakUrlstring
guncellemestring
uyaristring

GET/v1/vergi/gecikme-zammi

ücretsiz (anahtarla)

Vergi borcuna gecikme zammı hesabı (ücretsiz)

Anahtar gerekli

6183 s.K. m.51: vadeyi izleyen her tam ay için o dönemin aylık oranı, ay kesri için günlük (oran/30); oran değiştiyse süre bölünür, parça parça döküm. Yaklaşık hesap, kuruş farkı olabilir.

Parametreler
AdYerTipAçıklama
tutarzorunlusorgunumberAmme alacağının aslı, TL
vadezorunlusorgustring (date)Son ödeme günü (2000-01-20 ve sonrası)
odemesorgustring (date)Varsayılan bugün

Örnek istek

curl "$KILAVUZ/v1/vergi/gecikme-zammi?tutar=10000&vade=2025-06-26&odeme=2026-09-18" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400tutar ya da tarih geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 422vade 20.01.2000 öncesiHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
anaparanumber
vadestring
odemestring
gecikmeGunuinteger
gecikmeZamminumber
toplamnumber
dokumOranParcasi[]
yontemstring
kaynakstring
kaynakUrlstring
guncellemestring
notstring
uyaristring

GET/v1/vergi/tecil-faizi

ücretsiz (anahtarla)

Tecil faizi hesabı (ücretsiz)

Anahtar gerekli

6183 s.K. m.48: yıllık oranla gün esaslı basit faiz (tutar × oran × gün / 36500); oran değiştiyse süre bölünür.

Parametreler
AdYerTipAçıklama
tutarzorunlusorgunumber
baslangiczorunlusorgustring (date)
bitiszorunlusorgustring (date)

Örnek istek

curl "$KILAVUZ/v1/vergi/tecil-faizi?tutar=50000&baslangic=2026-01-15&bitis=2026-07-15" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400tutar ya da tarih geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 422başlangıç 25.01.2000 öncesiHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
anaparanumber
baslangicstring
bitisstring
guninteger
tecilFaizinumber
toplamnumber
dokumOranParcasi[]
yontemstring
kaynakstring
kaynakUrlstring
guncellemestring
notstring
uyaristring

GET/v1/vergi/yeniden-degerleme

ücretsiz (anahtarla)

Yeniden değerleme oranı ve güncellenmiş tutar (ücretsiz)

Anahtar gerekli

VUK mükerrer m.298 oranı; yil oranın ait olduğu yıl, ertesi yılın maktu tutarlarına uygulanır. Yeni tutar yuvarlanmaz.

Parametreler
AdYerTipAçıklama
yilsorguintegerVarsayılan en son ilan edilen yıl
tutarsorgunumber

Örnek istek

curl "$KILAVUZ/v1/vergi/yeniden-degerleme?yil=2025&tutar=1000" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400tutar geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 422yıl için oran yok (yanıtta `yillar`)Hata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
yilinteger
orannumber
dayanakstring
uygulanacakYilinteger
tutarnumber
yeniTutarnumber
kaynakstring
kaynakUrlstring
guncellemestring
notstring
uyaristring

GET/v1/vergi/ozelge/ara

1 kredi

GİB özelgelerinde tam metin arama

Anahtar gerekli

Gelir İdaresi'nin yayımladığı özelgelerde (~18.000) konu + metin araması. Türkçe karakter ve büyük/küçük harf ayrımı yok; sözcüklerin ilk 5 harfi eşleşir ("harcından" = "harcı"), 5 harften kısa sözcük ön ek. Bütün sözcükler geçmeli. Konusunda geçenler önce, sonra yeniden eskiye. En çok 50 sonuç, 20 sayfa. Sonuç boşsa kredi düşmez. Metinler kişisel veri taramasından geçmiştir.

Parametreler
AdYerTipAçıklama
qzorunlusorgustring
kanunsorgustringKanun numarası (3065) ya da kısaltma: kdv, gv, kv, vuk, harc, damga, mtv, otv, emlak, veraset, amme, bsmv, smmm
yilsorguintegerÖzelge tarihinin yılı
limitsorguinteger
sayfasorguinteger

Örnek istek

curl "$KILAVUZ/v1/vergi/ozelge/ara?q=riskli yapı tapu harcı&kanun=kdv&yil=…&limit=…&sayfa=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400q boş / kanun, yil, limit ya da sayfa geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
qstring
kanunstring | null
yilinteger | null
sayfainteger
limitinteger
toplamintegerBütün eşleşen özelge sayısı
sonuclarobject[]
sonuclar[].idintegerGİB kayıt kimliği; tam metin için /v1/vergi/ozelge/{id}
sonuclar[].nostring | nullÖzelge (evrak) sayısı
sonuclar[].tarihstring | null (date)
sonuclar[].konustring
sonuclar[].kanunobject
sonuclar[].maddelerstring[]
sonuclar[].birimstring | nullÖzelgeyi veren vergi dairesi başkanlığı / defterdarlık
sonuclar[].urlstringgib.gov.tr sayfası
sonuclar[].ozetstringİlk eşleşmenin çevresi
kaynakstring
kaynakUrlstring
lisansstring
guncellemestring | nullSon başarılı çekim (ISO 8601); hiç yoksa null
bayatboolean
notstring

GET/v1/vergi/ozelge/{id}

ücretsiz (anahtarla)

GİB özelgesinin tam metni (ücretsiz)

Anahtar gerekli

Arama sonucundaki id ile tam metin. maskelenen: yayın öncesi taramada * ile kapatılan bulgu sayısı.

Parametreler
AdYerTipAçıklama
idzorunluyolinteger

Örnek istek

curl "$KILAVUZ/v1/vergi/ozelge/<id>" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400id geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 404bu id ile özelge yokHata
  • 429Kredi limiti aşıldıHata
  • 503arşiv okunamıyorHata
Yanıt alanları
idintegerGİB kayıt kimliği; tam metin için /v1/vergi/ozelge/{id}
nostring | nullÖzelge (evrak) sayısı
tarihstring | null (date)
konustring
kanunobject
kanun.nostring | null
kanun.adstring | null
maddelerstring[]
birimstring | nullÖzelgeyi veren vergi dairesi başkanlığı / defterdarlık
urlstringgib.gov.tr sayfası
metinstring
maskeleneninteger
kaynakstring
kaynakUrlstring
lisansstring
guncellemestring | nullSon başarılı çekim (ISO 8601); hiç yoksa null
bayatboolean
notstring

POST/v1/vergi/tapu

ücretsiz (anahtarla)

Tapu harcı hesapla (ücretsiz)

Anahtar gerekli

Alıcı ve satıcıdan ayrı ayrı binde 20; matrah emlak vergisi değerinden az olamaz (Harçlar K. m.63).

İstek gövdesi
AlanTipAçıklama
satisBedelizorunlunumber
emlakVergisiDegerinumber
taraf"alici" | "satici" | "ikisi"Varsayılan "ikisi"
indirimlibooleanOran indirimi varsayımı (binde 15); 2026 yılında yürürlükte indirim yok

Örnek istek

curl -X POST "$KILAVUZ/v1/vergi/tapu" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR" \
  -H "content-type: application/json" \
  -d '{"satisBedeli":4500000,"taraf":"alici"}'

Yanıtlar

  • 200Başarılı
  • 400satisBedeli, taraf ya da indirimli geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
matrahnumber
matrahKaynagistring
bindenumber
tarafstring
aliciHarcinumber
saticiHarcinumber
toplamHarcnumber
odeneceknumber
asgariUygulandiboolean
donerSermayeobjectHarç değil; yöresel katsayı yayımlanmadığı için tutar hesaplanmaz
gecerlilikGecerlilik
kaynakResmiKaynak[]
guncellemestring (date)
aciklamastring
notstring
uyaristring

POST/v1/vergi/emlak

ücretsiz (anahtarla)

Emlak vergisi ve değerli konut vergisi (ücretsiz)

Anahtar gerekli

Mesken binde 1, işyeri binde 2, arsa binde 3, arazi binde 1; büyükşehirde iki katı (1319 s.K. m.8 ve m.18).

İstek gövdesi
AlanTipAçıklama
rayicDegerzorunlunumberBelediyenin belirlediği vergi değeri, TL
turzorunlu"konut" | "isyeri" | "arsa" | "arazi"
buyuksehirboolean
yilintegerŞimdilik yalnız 2026

Örnek istek

curl -X POST "$KILAVUZ/v1/vergi/emlak" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR" \
  -H "content-type: application/json" \
  -d '{"rayicDeger":3200000,"tur":"konut","buyuksehir":true}'

Yanıtlar

  • 200Başarılı
  • 400rayicDeger, tur ya da buyuksehir geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 422yıl için oran ve had yokHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
yilinteger
turstring
turAdistring
rayicDegernumber
buyuksehirboolean
bindenumber
verginumber
taksitlerobject[]
taksitler[].sirainteger
taksitler[].tutarnumber
taksitler[].donemstring
degerliKonutVergisiobject
degerliKonutVergisi.tabiboolean
degerliKonutVergisi.esiknumber
degerliKonutVergisi.matrahnumber
degerliKonutVergisi.verginumber
degerliKonutVergisi.bindenumber | null
degerliKonutVergisi.notstring
gecerlilikGecerlilik
kaynakResmiKaynak[]
guncellemestring (date)
aciklamastring
notstring
uyaristring

POST/v1/vergi/damga

ücretsiz (anahtarla)

Damga vergisi hesapla (ücretsiz)

Anahtar gerekli

Konut kira sözleşmesi istisnadır (tur: "kira-konut"). 2026 azami tutar 29.115.961,10 TL (488 s.K. m.14).

İstek gövdesi
AlanTipAçıklama
turzorunlu"sozlesme" | "kira" | "kira-konut" | "ihale" | "ihale-sozlesmesi" | "maas" | "kefalet" | "fesihname" | "ikinci-el-arac"
tutarzorunlunumberKirada sözleşme süresinin tamamına ait bedel

Örnek istek

curl -X POST "$KILAVUZ/v1/vergi/damga" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR" \
  -H "content-type: application/json" \
  -d '{"tur":"sozlesme","tutar":250000}'

Yanıtlar

  • 200Başarılı
  • 400tur ya da tutar geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
turstring
adstring
matrahnumber
bindenumber
hamVerginumber
azaminumber
azamiUygulandiboolean
verginumber
istisnaboolean
dayanakstring
turlerstring[]
azamiTutarnumber
maktuKalemlerobject[]
maktuKalemler[].adstring
maktuKalemler[].tutarnumber
maktuKalemler[].dayanakstring
gecerlilikGecerlilik
kaynakResmiKaynak[]
guncellemestring (date)
aciklamastring
notstring
uyaristring

POST/v1/vergi/veraset

ücretsiz (anahtarla)

Veraset ve intikal vergisi hesapla (ücretsiz)

Anahtar gerekli

İstisnayı düşüp artan oranlı tarifeyi dilim dilim uygular (7338 s.K.). İstisna her mirasçının hissesine ayrı uygulanır.

İstek gövdesi
AlanTipAçıklama
tutarzorunlunumberMirasçıya isabet eden hisse, TL
tur"veraset" | "ivazsiz"Varsayılan "veraset"
yakinlik"furu" | "es-furu-var" | "es-furu-yok" | "diger"Varsayılan "diger"

Örnek istek

curl -X POST "$KILAVUZ/v1/vergi/veraset" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR" \
  -H "content-type: application/json" \
  -d '{"tutar":6000000,"tur":"veraset","yakinlik":"furu"}'

Yanıtlar

  • 200Başarılı
  • 400tutar, tur ya da yakinlik geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
turstring
yakinlikstring | null
tutarnumber
istisnanumber
istisnaAdistring
matrahnumber
dilimlerobject[]
dilimler[].dilimstring
dilimler[].orannumber
dilimler[].matrahnumber
dilimler[].verginumber
verginumber
efektifOrannumber
taksitobject
taksit.sayiinteger
taksit.tutarnumber
taksit.donemstring
tarifeobject[]
istisnalarobject
beyanSuresistring
gecerlilikGecerlilik
kaynakResmiKaynak[]
guncellemestring (date)
aciklamastring
notstring
uyaristring

Bordro ve tazminat

ücretsiz (anahtarla)

Brütten nete, netten brüte, kıdem, ihbar, yıllık izin ve asgari ücret tarihçesi. Teşvikler, eksik gün ve kısmi süreli çalışma yok. Kıdem tavanı tarihçesi ve SGDP oranı ikincil kaynaktan. Bilgilendirme amaçlıdır; kesin hesap için mali müşavire danışın.

POST/v1/bordro/hesapla

ücretsiz (anahtarla)

Brütten nete / netten brüte ücret (ücretsiz)

Anahtar gerekli

Aylık bordro: SGK ve işsizlik işçi payı, kümülatif matrahla gelir vergisi, asgari ücret gelir ve damga vergisi istisnası, damga vergisi, isteğe bağlı otomatik katılım (OKS) kesintisi, işveren payları ve işverene maliyet. brut ya da net alanlarından tam olarak biri verilir; net verilirse brüt aranır. aylik: true ile o aydan yıl sonuna 12 aylık tablo ve yıllık toplam. Girdi saklanmaz.

İstek gövdesi
AlanTipAçıklama
brutnumberAylık brüt ücret; `net` ile birlikte verilemez
netnumberHedef net ücret; brüt aranır
ayintegerVarsayılan 1. 1–12
yilinteger
kumulatifMatrahnumberÖnceki aylardan devreden gelir vergisi matrahı
engelIndiriminumberAylık engellilik indirimi (TL)
engelDerecesi1 | 2 | 3GVK m.31 derecesi; tutar tebliğden okunur
sgkTuru"4a" | "emekli""emekli": sosyal güvenlik destek primi
besbooleanOtomatik katılım çalışan katkı payı kesilsin mi
besPuanIndirimibooleanİşveren SGK payında 5 puanlık indirim (5510 m.81/ı)
aylikboolean12 aylık tablo

Örnek istek

curl -X POST "$KILAVUZ/v1/bordro/hesapla" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR" \
  -H "content-type: application/json" \
  -d '{"brut":75000,"ay":1,"yil":2026}'

Yanıtlar

  • 200Başarılı
  • 400girdi geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 422yıl için parametre yokHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
yilinteger
yon"brutten-nete" | "netten-brute"
sgkTurustring
brutnumber
sgkMatrahinumber
sgkIscinumber
issizlikIscinumber
gelirVergisiMatrahinumber
kumulatifMatrahnumber
hesaplananGelirVergisinumber
asgariUcretGelirVergisiIstisnasinumber
gelirVergisinumber
hesaplananDamgaVergisinumber
asgariUcretDamgaIstisnasinumber
damgaVergisinumber
besKesintisinumber
kesintiToplaminumber
netnumber
isverenSgknumber
isverenIssizliknumber
isvereneMaliyetnumber
aylikobject[]`aylik: true` verildiyse 12 aylık tablo
yillikToplamobject
parametrelerobject
kaynakobject
notstring

POST/v1/bordro/tazminat

ücretsiz (anahtarla)

Kıdem, ihbar ve yıllık izin ücreti (ücretsiz)

Anahtar gerekli

Kıdem tazminatı (1475 s.K. m.14, dönem tavanıyla sınırlı, yalnız damga vergisi kesilir), ihbar tazminatı (4857 m.17 önelleri; gelir + damga) ve isteğe bağlı kullanılmayan yıllık izin ücreti (4857 m.53/59; SGK + gelir + damga). cikisNedeni hangi kalemin doğduğunu belirler. Girdi saklanmaz.

İstek gövdesi
AlanTipAçıklama
iseGiriszorunlustring (date)
isCikiszorunlustring (date)
brutUcretzorunlunumberAylık çıplak brüt ücret
ekOdemelernumberGiydirilmiş ücrete eklenen aylık düzenli ödemeler
cikisNedeni"isveren_fesih" | "isveren_hakli_fesih" | "isci_istifa" | "isci_hakli_fesih" | "emeklilik" | "askerlik" | "evlilik" | "olum" | "belirli_sure_bitimi"Varsayılan isveren_fesih
kullanilmayanIzinGuninteger0–1000
kumulatifMatrahnumber
tavanTutarinumberKıdem tavanı tabloda yoksa elle

Örnek istek

curl -X POST "$KILAVUZ/v1/bordro/tazminat" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR" \
  -H "content-type: application/json" \
  -d '{"iseGiris":"2015-03-01","isCikis":"2026-09-30","brutUcret":60000}'

Yanıtlar

  • 200Başarılı
  • 400tarih ya da tutar geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 422yıl için parametre ya da kıdem tavanı yokHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
yilinteger
cikisNedenistring
kidemGuninteger
kidemYiliobject
kidemYili.yilinteger
kidemYili.ayinteger
kidemYili.guninteger
giydirilmisAylikUcretnumber
giydirilmisGunlukUcretnumber
kidemTavaniobject
hakobject
hak.kidemboolean
hak.ihbarboolean
hak.aciklamastring
kidemobject | null
ihbarobject | null
yillikIzinobject | null
toplamNetnumber
kaynakobject
notstring

GET/v1/bordro/asgari-ucret

ücretsiz (anahtarla)

Asgari ücret tarihçesi (ücretsiz)

Anahtar gerekli

2016'dan bugüne asgari ücret dönemleri: brüt, net, işçi ve işveren payları, işverene maliyet (indirimsiz ve 5 puan indirimli). Net tutarlar 2022 öncesinde AGİ dahildir. Kaynak her dönemde Asgari Ücret Tespit Komisyonu Kararı; Resmî Gazete tarihi doğrulanamayan dönemlerde rg null.

Parametreler
AdYerTipAçıklama
yilsorguintegerVerilmezse tüm tarihçe

Örnek istek

curl "$KILAVUZ/v1/bordro/asgari-ucret?yil=2026" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400yil geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 422yıl için asgari ücret kaydı yokHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
yillarinteger[]
donemlerobject[]
donemler[].donemstring
donemler[].gecerlilikGecerlilik
donemler[].kaynakResmiKaynak
donemler[].brutAyliknumber
donemler[].brutGunluknumber
donemler[].netAyliknumber
donemler[].isciSgkOraninumber
donemler[].isciIssizlikOraninumber
donemler[].isverenSgkOraniobject
donemler[].isverenIssizlikOraninumber
donemler[].isvereneMaliyetobject
notstring
aciklamastring

Harçlar

ücretsiz (anahtarla)

2026 tarifeleri: pasaport, sürücü belgesi, kimlik kartı, noter, tapu, yargı, çalışma ve ikamet izni. Maktu harçlar 2026’da %18,95 arttı (%25,49 değil: o, trafik cezalarının oranı). Polis Vakfı payı ikincil kaynaktan, `belirsiz: true`.

GET/v1/harc

ücretsiz (anahtarla)

2026 harç ve değerli kâğıt tarifeleri (ücretsiz)

Anahtar gerekli

2026 maktu harçlar yeniden değerleme oranıyla (%25,49) değil, 10783 sayılı Cumhurbaşkanı Kararıyla %18,95 oranında artırıldı. tur verilmezse bütün gruplar döner.

Parametreler
AdYerTipAçıklama
tursorgu"pasaport" | "ehliyet" | "kimlik" | "noter" | "tapu" | "mahkeme" | "calisma-izni"
suresorgu"6ay" | "1yil" | "2yil" | "3yil" | "10yil" | "suresiz"Pasaport ve çalışma izninde

Örnek istek

curl "$KILAVUZ/v1/harc?tur=…&sure=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 401Anahtar yok ya da geçersizHata
  • 422tur ya da sure bilinmiyorHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
turlerstring[]
surelerstring[]
adetinteger
belirsizSayisiinteger
gruplarobject[]
gruplar[].turstring
gruplar[].baslikstring
gruplar[].gecerlilikGecerlilik
gruplar[].kaynakResmiKaynak[]
gruplar[].kalemlerHarcKalemi[]
gruplar[].notstring
kaynakResmiKaynak[]Döndürülen grupların kaynakları, tekil
guncellemestring (date)
notstring
uyaristring

Trafik cezası

ücretsiz (anahtarla)

27.02.2026’dan itibaren 7574 sayılı Kanun tutarları, öteki kalemler EGM 2026 ceza rehberinden; ceza puanı Karayolları Trafik Yönetmeliği Ek-35 cetvelinden. %25 indirim tebliğden itibaren 1 ay içinde ödemede. Tekerrür kademesini ve puan bakiyesini uç bilemez. Hukuki tavsiye değildir.

GET/v1/ceza/trafik

ücretsiz (anahtarla)

2026 trafik cezası tutarları (ücretsiz)

Anahtar gerekli

Tutarların çoğu 7574 sayılı Kanunla (RG 27.02.2026 / 33181) yeniden belirlendi; yeniden değerleme sonucu değildir; kalan tutarlar ve ceza puanları EGM 2026 Trafik İdari Para Ceza Rehberinden. puanCetveli Karayolları Trafik Yönetmeliği Ek-35 (128 satır); 7574 ile yeniden yazılan maddelere dayanan satırlar uyari taşır.

Parametreler
AdYerTipAçıklama
maddesorgustringKTK madde/fıkra ön eki
arasorgustringBaşlık, not ve etiketlerde serbest metin

Örnek istek

curl "$KILAVUZ/v1/ceza/trafik?madde=47/1-b&ara=kirmizi isik" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400ara en az 2 karakter olmalıHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
adetinteger
belirsizSayisiinteger
cezalarTrafikCezasi[]
puanSistemiobjectKTK m.118 eşik ve kademeler
puanCetveliobjectKTY Ek-35 ceza puanı cetveli; madde/ara süzgeci burada da uygulanır
puanCetveli.adetinteger
puanCetveli.uyariSayisiinteger
puanCetveli.satirlarobject[]
puanCetveli.kaynakResmiKaynak
indirimobject
indirim.orannumber
indirim.sureGuninteger
indirim.aciklamastring
kaynakResmiKaynak[]
guncellemestring (date)
notstring
uyaristring

POST/v1/ceza/trafik/indirim

ücretsiz (anahtarla)

Peşin ödeme indirimi ve gecikme faizi (ücretsiz)

Anahtar gerekli

Bir ay içinde ödemede %25 indirim (5326 s.K. m.17/6); sonrasında KTK m.115 uyarınca aylık %5 faiz, ay kesri tam ay, tavan cezanın iki katı.

İstek gövdesi
AlanTipAçıklama
tutarzorunlunumberCeza aslı, TL
odemeGunuintegerTebliğden itibaren geçen gün; varsayılan 0. 0–3650

Örnek istek

curl -X POST "$KILAVUZ/v1/ceza/trafik/indirim" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR" \
  -H "content-type: application/json" \
  -d '{"tutar":5000,"odemeGunu":10}'

Yanıtlar

  • 200Başarılı
  • 400tutar ya da odemeGunu geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
tutarnumber
odemeGunuinteger
indirimliboolean
indirimnumber
gecikmeAyinteger
faiznumber
tavanUygulandiboolean
odeneceknumber
kuralobject
kural.indirimOraninumber
kural.odemeSuresiGuninteger
kural.aylikFaiznumber
kural.aciklamastring
kaynakResmiKaynak[]
guncellemestring (date)
notstring
uyaristring

Avukatlık ve noter ücretleri

ücretsiz (anahtarla)

Avukatlık Asgari Ücret Tarifesi 2025–2026 (RG 04.11.2025) ve 2026 Noterlik Ücret Tarifesi ile noter harçları, koda gömülü. Tarifenin hesaba giren kuralları uygulanır, ötekiler `kurallar` alanında özet olarak durur. Doğrulanamayan kalemler (noter KDV’si, taşınmaz satışında noter harcı) `belirsiz: true`. Hukuki tavsiye değildir.

GET/v1/hukuk/faiz

ücretsiz (anahtarla)

Yasal faiz ve ticari temerrüt faizi oranı (ücretsiz)

Anahtar gerekli

3095 sayılı Kanun: m.1 kanuni faiz (5335 %12, BKK 2005/9831 %9, CBK 8485 %24; 7589 ile 31.07.2026'dan TCMB reeskont oranının %80'i) ve m.2/2 ticari temerrüt faizi (TCMB kısa vadeli avans oranı, kanuni faizden yüksekse). Yarıyıl kuralı: 30 Haziran oranı 31 Aralık'takinden 5 puan ya da daha çok farklıysa ikinci yarıda o. tarih verilmezse bütün dönemler. Kapsam 01.05.2005–31.12.2026. TCMB verisi içerir (not). Hukuki tavsiye değildir.

Parametreler
AdYerTipAçıklama
tarihsorgustring (date)

Örnek istek

curl "$KILAVUZ/v1/hukuk/faiz?tarih=2025-09-01" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400tarih geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 422tarih kapsam dışında (oran henüz belirlenmedi ya da 2005 öncesi)Hata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
tarihstring
yasalobject
yasal.orannumberYıllık %
yasal.dayanakobject
yasal.tcmbOraniobject
yasal.avansOraninumber
yasal.yasalOraninumber
yasal.aciklamastring
ticariobject
ticari.orannumberYıllık %
ticari.dayanakobject
ticari.tcmbOraniobject
ticari.avansOraninumber
ticari.yasalOraninumber
ticari.aciklamastring
donemobject
donem.baslangicstring
donem.bitisstring
adetinteger
donemlerobject[]
donemler[].baslangicstring
donemler[].bitisstring
donemler[].yasalnumber
donemler[].ticarinumber
donemler[].avansnumber
donemler[].yasalDayanakstring
donemler[].ticariDayanakstring
aciklamaobject
kapsamobject
kapsam.baslangicstring
kapsam.bitisstring
kaynakobject
guncellemestring (date)
uyaristring
notstring

POST/v1/hukuk/faiz

ücretsiz (anahtarla)

Yasal / ticari temerrüt faizi hesapla (ücretsiz)

Anahtar gerekli

Basit faiz: anapara × oran × gün / 365, oran değiştiği günlerde parçalanır; başlangıç günü sayılmaz, bitiş sayılır. Mürekkep faiz yok (3095 m.3). Sözleşme faizi ve yabancı para borcu hesaba girmez. Hukuki tavsiye değildir.

İstek gövdesi
AlanTipAçıklama
anaparazorunlunumberTL
baslangiczorunlustring (date)Temerrüt / faiz başlangıç günü
bitiszorunlustring (date)Ödeme ya da hesap günü (en geç 2026-12-31)
tur"yasal" | "ticari"Varsayılan yasal

Örnek istek

curl -X POST "$KILAVUZ/v1/hukuk/faiz" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR" \
  -H "content-type: application/json" \
  -d '{"anapara":100000,"baslangic":"2025-01-15","bitis":"2026-03-01","tur":"ticari"}'

Yanıtlar

  • 200Başarılı
  • 400anapara, tarih ya da tur geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 422tarih aralığı kapsam dışındaHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
turstring
anaparanumber
baslangicstring
bitisstring
guninteger
faiznumber
toplamnumber
parcalarobject[]
parcalar[].baslangicstring
parcalar[].bitisstring
parcalar[].guninteger
parcalar[].orannumber
parcalar[].faiznumber
aciklamastring
varsayimlarstring[]
kapsamobject
kaynakobject
guncellemestring (date)
uyaristring
notstring

GET/v1/hukuk/avukatlik-ucreti

ücretsiz (anahtarla)

Avukatlık Asgari Ücret Tarifesi kalemleri (ücretsiz)

Anahtar gerekli

AAÜT 2025–2026 (RG 04.11.2025/33067, değişiklik 08.01.2026/33131): kalemler, nispi dilimler, hesap kuralları. Hukuki tavsiye değildir.

Parametreler
AdYerTipAçıklama
arasorgustringKalem adında arama (2–100 karakter)

Örnek istek

curl "$KILAVUZ/v1/hukuk/avukatlik-ucreti?ara=tüketici" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400ara geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
adetinteger
kalemlerobject[]
kalemler[].kodstring
kalemler[].bolumstring
kalemler[].adstring
kalemler[].tutarnumber | null
kalemler[].birimstring
kalemler[].notstring
dilimlerobject[]
dilimler[].ustSinirnumber | null
dilimler[].orannumber
kurallarobject[]
kurallar[].maddestring
kurallar[].metinstring
hesapTurleristring[]
sonrakiDonemstring
belirsizSayisiinteger
kaynakobject
guncellemestring (date)
uyaristring

POST/v1/hukuk/avukatlik-ucreti

ücretsiz (anahtarla)

Asgari avukatlık ücreti hesapla (ücretsiz)

Anahtar gerekli

dava: nispi dilimlerle mahkemenin maktu tabanından büyüğü (md. 13/1), hüküm altına alınan miktarı geçemez (13/2). icra: 56.250 TL'ye kadar maktu 9.000 TL, üstü nispi (md. 11). arabuluculuk: md. 16/2. KDV ve stopaj dahil değil. Hukuki tavsiye değildir.

İstek gövdesi
AlanTipAçıklama
degerzorunlunumberDava değeri / takip miktarı, TL
tur"dava" | "icra" | "arabuluculuk"Varsayılan "dava"
mahkemestringİkinci kısım ikinci bölüm kodu; varsayılan "2.2.10" (asliye hukuk)
onIncelemedenOnceboolean
suresindeOdendiboolean
anlasmaboolean

Örnek istek

curl -X POST "$KILAVUZ/v1/hukuk/avukatlik-ucreti" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR" \
  -H "content-type: application/json" \
  -d '{"deger":1000000,"tur":"dava","mahkeme":"2.2.10"}'

Yanıtlar

  • 200Başarılı
  • 400deger, tur ya da mahkeme geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
turstring
degernumber
nispinumber
ucretnumber
dilimlerobject[]
maktuobject
maktu.kodstring
maktu.adstring
maktu.tutarnumber
adimlarstring[]
maddelerstring[]
notstring
belirsizSayisiinteger
kaynakobject
guncellemestring (date)
uyaristring

GET/v1/hukuk/noter-ucreti

ücretsiz (anahtarla)

Noterlik ücret tarifesi ve noter harçları (ücretsiz)

Anahtar gerekli

2026 Noterlik Ücret Tarifesi (RG 30.12.2025/33123, değişiklik 26.08.2026/33352) ve 492 s. Kanun (2) sayılı tarife 2026 tutarları (HKGT 98). Hukuki tavsiye değildir.

Parametreler
AdYerTipAçıklama
arasorgustringKalem adında arama (2–100 karakter)

Örnek istek

curl "$KILAVUZ/v1/hukuk/noter-ucreti?ara=vekaletname" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400ara geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
adetinteger
kalemlerobject[]
kalemler[].kodstring
kalemler[].bolumstring
kalemler[].adstring
kalemler[].tutarnumber | null
kalemler[].birimstring
kalemler[].notstring
kalemler[].belirsizboolean
yapistring
vergiNotuobject
islemTurleristring[]
sonrakiDonemstring
belirsizSayisiinteger
kaynakobject
guncellemestring (date)
uyaristring

POST/v1/hukuk/noter-ucreti

ücretsiz (anahtarla)

Noter harcı ve ücreti hesapla (ücretsiz)

Anahtar gerekli

Harç + noter ücreti (harcın %30'u, en az 58,82 TL) + yazı ücreti + KDV (belirsiz). Taşınmaz satışında ücret binde 1 (500–4.000 TL). Damga vergisi dahil değil (/v1/vergi/damga). Hukuki tavsiye değildir.

İstek gövdesi
AlanTipAçıklama
islemzorunlu"degerli" | "degersiz" | "vekaletname" | "ihtarname" | "tasinmaz_satis" | "arac_satis"
degernumberdegerli, tasinmaz_satis, arac_satis için TL
imzainteger1–1000
tebligNushasiinteger1–1000
sayfainteger1–1000
kdvbooleanVarsayılan true

Örnek istek

curl -X POST "$KILAVUZ/v1/hukuk/noter-ucreti" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR" \
  -H "content-type: application/json" \
  -d '{"islem":"degerli","deger":500000,"imza":2,"sayfa":9}'

Yanıtlar

  • 200Başarılı
  • 400islem, deger ya da sayı alanları geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
islemstring
harcobject
harc.adstring
harc.tutarnumber
harc.hesapstring
harc.belirsizboolean
harc.notstring
noterUcretiobject
yaziUcretiobject
kdvobject
toplamnumber
belirsizboolean
belirsizSayisiinteger
notlarstring[]
kaynakobject
guncellemestring (date)
uyaristring

Kargo ve e-ticaret

Kargo takibi, takip numarasından taşıyıcı, etiket adres bloğu ve teslim tahmini; mesafeli satış süreleri, müşteri listesinde tekrar bulma.

Kargo

0–1 kredi

Takip şimdilik yalnız Yurtiçi Kargo; gönderen ve alıcı adı yanıtta yer almaz. Teslim tahmini ve desi taşıyıcıdan bağımsız hesaptır; tahmin taahhüt değildir. Takip numarası tanıma olası taşıyıcıları güvene göre sıralar, kesin değildir. Etikette kişi adı yalnız geçirilir; saklanmaz, loglanmaz.

GET/v1/kargo/takip

1 kredi

Kargo takip

Anahtar gerekli

Şu an yalnız Yurtiçi. Gönderici/alıcı adı döndürülmez. 5 dakika önbellek.

Parametreler
AdYerTipAçıklama
tasiyicizorunlusorgu"yurtici"
nozorunlusorgustring

Örnek istek

curl "$KILAVUZ/v1/kargo/takip?tasiyici=…&no=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200BaşarılıKargoSonucu
  • 400Eksik ya da hatalı parametreHata
  • 401Anahtar yok ya da geçersizHata
  • 422Taşıyıcı desteklenmiyorHata
  • 429Kredi limiti aşıldıHata
  • 502Taşıyıcıya ulaşılamıyorHata

GET/v1/kargo/tasiyicilar

anahtarsız

Taşıyıcılar ve destek durumu

Anahtarsız

Örnek istek

curl "$KILAVUZ/v1/kargo/tasiyicilar"

Yanıtlar

  • 200Başarılı
Yanıt alanları
tasiyicilarobject[]

POST/v1/kargo/desi

ücretsiz (anahtarla)

Desi ve ücretlendirilen ağırlık (ücretsiz)

Anahtar gerekli

desi = en × boy × yükseklik (cm) / bölen; bölen varsayılan 3000 (yurt içi yaygın), 4000–6000 seçilebilir. Ücretlendirilen ağırlık = max(desi, ağırlık). Taşıyıcı tarifesi esastır.

İstek gövdesi
AlanTipAçıklama
enzorunlunumbercm
boyzorunlunumbercm
yukseklikzorunlunumbercm
agirlikzorunlunumberkg
bolen3000 | 4000 | 5000 | 6000varsayılan 3000

Örnek istek

curl -X POST "$KILAVUZ/v1/kargo/desi" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR" \
  -H "content-type: application/json" \
  -d '{"en":40,"boy":30,"yukseklik":25,"agirlik":3.5}'

Yanıtlar

  • 200Başarılı
  • 400Ölçü eksik, pozitif değil ya da bölen geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
ennumber
boynumber
yuksekliknumber
agirliknumber
boleninteger
hacimCm3number
desinumber
ucretlendirilenAgirliknumber
esas"desi" | "agirlik"

POST/v1/kargo/etiket

1 kredi

Kargo etiketi için adres bloğu

Anahtar gerekli

Gönderen ve alıcı adresini çözümler (il/ilçe/mahalle/sokak resmî yazımıyla) ve etikete basılacak satırlara indirir: uzun yazımlar kısaltılır ("Caddesi" → "Cad."), kalan taşma sözcük sınırından sarılır, her satır en çok 35 karakter. desi verilirse desi ve ücretlendirilen ağırlık da hesaplanır. Çözülemeyen kritik bileşenler eksikler ve uyarilar ile bildirilir. Kişi/firma adı yalnız geçirilir: çözümlenmez, saklanmaz, loglanmaz. Gönderi başına 1 kredi (iki adres birden).

İstek gövdesi
AlanTipAçıklama
alicizorunluEtiketTarafGirdisi
gonderenzorunluEtiketTarafGirdisi
desiobject
desi.enzorunlunumber
desi.boyzorunlunumber
desi.yukseklikzorunlunumber
desi.agirlikzorunlunumber
desi.bolen3000 | 4000 | 5000 | 6000varsayılan 3000
tasiyicistringYalnız yanıta aktarılır. en fazla 40 karakter

Örnek istek

curl -X POST "$KILAVUZ/v1/kargo/etiket" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR" \
  -H "content-type: application/json" \
  -d '{"alici":{"ad":"Ayşe Yılmaz","adres":"moda cad 14/5 kadikoy istanbul"},"gonderen":{"ad":"Örnek Ltd. Şti.","adres":"ataturk bulv no:12 cankaya ankara"},"desi":{"en":30,"boy":40,"yukseklik":20,"agirlik":4}}'

Yanıtlar

  • 200Başarılı
  • 400alici/gonderen eksik ya da desi ölçüsü geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 413adres 1000, ad 100 karakteri aşıyorHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
gonderenEtiketTaraf
aliciEtiketTaraf
tasiyicistring
desiobject
satirUzunluguinteger
uyarilarstring[]
notstring

POST/v1/kargo/takip-tani

ücretsiz (anahtarla)

Takip numarasından olası taşıyıcı (ücretsiz)

Anahtar gerekli

Numaranın biçiminden (uzunluk, önek, varsa kontrol hanesi) olası taşıyıcıları güvene göre sıralar. **Kesinlik iddiası yok**: taşıyıcılar numara şemalarını resmî olarak yayımlamıyor ve uzunluklar örtüşüyor; kurallar kamuya açık örneklerden çıkarıldı. UPS 1Z… kontrol hanesi ve DHL Express 10 hane mod-7 sağlaması hesaplanır, tutarsa güven yükselir. Boşluk, tire ve nokta yok sayılır. takipDestegi: true olan taşıyıcıda GET /v1/kargo/takip ile gerçek durum sorulabilir. Her adayda takipUrl: taşıyıcının herkese açık takip sayfası, numara bağlantıya gömülü; yalnız resmî sitede doğrulanmış kalıplarda dolu (şimdilik Yurtiçi, Aras), sayfası numarayı bağlantıdan almayan taşıyıcıda null. Kredi harcamaz.

İstek gövdesi
AlanTipAçıklama
numarazorunlustringen fazla 60 karakter

Örnek istek

curl -X POST "$KILAVUZ/v1/kargo/takip-tani" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR" \
  -H "content-type: application/json" \
  -d '{"numara":"1Z999AA10123456784"}'

Yanıtlar

  • 200Başarılı
  • 400numara eksik ya da 6–35 karakter harf/rakam değilHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
numarastringNormalize hâli (büyük harf, ayraçsız)
bicim"rakam" | "upu" | "ups" | "alfanumerik"
uzunlukinteger
adaylarobject[]Güvene göre azalan; boş olabilir
adaylar[].kodstring
adaylar[].adstring
adaylar[].guvennumberSıralama ölçüsü, olasılık değil. 0–1
adaylar[].gerekcestring
adaylar[].takipDestegiboolean
adaylar[].takipUrlstring | null (uri)Taşıyıcının takip sayfası, numara gömülü; doğrulanmış kalıp yoksa null
notstring

POST/v1/kargo/teslim-tahmini

1 kredi

Teslim tarihi tahmini (il→il iş günü)

Anahtar gerekli

Gönderim tarihi ve iki ilden tahmini teslim ve en geç tarih. Tablo: aynı il 1, aynı/komşu bölge 2, uzak bölge 3 iş günü; Doğu/Güneydoğu Anadolu +1. Hafta sonu, resmî tatil ve arife dağıtım günü sayılmaz; tatil günü verilen gönderi sonraki iş gününde kabul edilir. **Tahmindir, taşıyıcı taahhüdü değildir**; tasiyici yalnız yanıta aktarılır. Kapsam 2022–2028 (tatil tablosu).

İstek gövdesi
AlanTipAçıklama
gonderimTarihizorunlustring (date)
gonderenIlzorunlustring
aliciIlzorunlustring
tasiyicistringYalnız yanıta aktarılır; hesabı değiştirmez. en fazla 40 karakter

Örnek istek

curl -X POST "$KILAVUZ/v1/kargo/teslim-tahmini" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR" \
  -H "content-type: application/json" \
  -d '{"gonderimTarihi":"2026-05-22","gonderenIl":"İstanbul","aliciIl":"Van"}'

Yanıtlar

  • 200BaşarılıTeslimTahmini
  • 400Tarih biçimi hatalı ya da il tanınmadıHata
  • 401Anahtar yok ya da geçersizHata
  • 422Yıl kapsam dışında (2022–2028)Hata
  • 429Kredi limiti aşıldıHata

E-ticaret kuralları

ücretsiz (anahtarla)

Mesafeli Sözleşmeler Yönetmeliği ve VUK'tan hesaplanır; hukuki tavsiye değildir. Dayanak /kaynaklar sayfasında.

GET/v1/ticaret/cayma

ücretsiz (anahtarla)

Cayma hakkı süresi ve istisnaları (ücretsiz)

Anahtar gerekli

Mesafeli Sözleşmeler Yönetmeliği m.9: teslimden itibaren 14 gün (teslim günü sayılmaz); m.10: eksik bilgilendirmede sürenin mutlak sonu (+1 yıl); m.15 istisnaları urunTuru ile (caymaHakkiVar: false + bent). Mühürlü hijyen ürünü ve medya gibi koşullu istisnalarda istisna.kosul yazar. Hukuki tavsiye değildir (uyari).

Parametreler
AdYerTipAçıklama
teslimTarihizorunlusorgustring (date)Mal: teslim günü; hizmet: sözleşme günü
urunTurusorgu"standart" | "hizmet" | "finansal_dalgalanma" | "kisiye_ozel" | "cabuk_bozulan" | "muhurlu_hijyen" | "karisan_mal" | "muhru_acilmis_medya" | "sureli_yayin" | "tarihli_hizmet" | "anlik_dijital" | "onayla_baslanan_hizmet"

Örnek istek

curl "$KILAVUZ/v1/ticaret/cayma?teslimTarihi=2026-09-18&urunTuru=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400teslimTarihi hatalı ya da urunTuru bilinmiyorHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
teslimTarihistring
urunTurustring
caymaHakkiVarboolean
sureobject
sonGunstring (date)
sonGunTatilbooleanYalnız 2022–2028
eksikBilgilendirmedeSonGunstring (date)m.10: sonGun + 1 yıl
istisnaobject
istisna.bentstring
istisna.aciklamastring
istisna.kosulstring
sureBaslangicistring
mevzuatobject
mevzuat.adstring
mevzuat.resmiGazetestring
mevzuat.maddelerstring[]
mevzuat.kaynakstring
yururlukNotustring
uyaristring

GET/v1/ticaret/fatura-suresi

ücretsiz (anahtarla)

Fatura düzenleme süresinin son günü (ücretsiz)

Anahtar gerekli

VUK m.231/5: malın teslimi ya da hizmetin yapıldığı tarihten itibaren azami 7 gün (teslim günü sayılmaz); süresinde düzenlenmeyen fatura hiç düzenlenmemiş sayılır. Son gün tatile rastlarsa VUK m.18 gereği izleyen ilk iş günü (sonGunIsGunu, 2022–2028). Hukuki tavsiye değildir (uyari).

Parametreler
AdYerTipAçıklama
teslimTarihizorunlusorgustring (date)

Örnek istek

curl "$KILAVUZ/v1/ticaret/fatura-suresi?teslimTarihi=2026-09-18" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400teslimTarihi hatalıHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
teslimTarihistring
sureobject
sonGunstring (date)
sonGunIsGunustring (date)VUK m.18; yalnız 2022–2028
ayDegisiyorbooleanSon gün teslim ayından sonraki aya taşıyor (KDV dönemi teslim ayı)
sonucstring
mevzuatobject
mevzuat.adstring
mevzuat.maddelerstring[]
mevzuat.kaynakstring
yururlukNotustring
uyaristring

Müşteri tekilleştirme

1 kredi

Aynı GSM, aynı e-posta, aynı ad ve sabit hat ya da aynı ad ve bina aynı kişi sayılır; yalnız aynı adres ya da yalnız aynı ad bağlamaz. Liste saklanmaz, loglanmaz.

POST/v1/musteri/tekillestir

1 kredi

Müşteri listesinde aynı kişileri kümele

Anahtar gerekli

Dolu kayıt başına 1 kredi; bakiye işten önce denetlenir, kredi iş bitince düşer. Bağlar: aynı GSM (E.164), aynı e-posta (Gmail nokta/+etiket yok sayılır), aynı ad + sabit hat, aynı ad + bina (adres çözümlenir; daire çelişmiyorsa). Yalnız aynı adres ya da yalnız aynı ad bağlamaz. JSON gövde JSON, CSV gövde (ilk satır başlık) CSV döner: sona ak_kume, ak_kume_boyut, ak_ilk, ak_neden, ak_ad, ak_telefon, ak_eposta. En çok 10.000 kayıt, 2,5 MB, 20 sn. Girdi saklanmaz.

Parametreler
AdYerTipAçıklama
adsorgustringCSV: sütun adı ya da 1'den sıra (verilmezse başlıktan bulunur)
soyadsorgustringCSV: sütun adı ya da 1'den sıra (verilmezse başlıktan bulunur)
telefonsorgustringCSV: sütun adı ya da 1'den sıra (verilmezse başlıktan bulunur)
epostasorgustringCSV: sütun adı ya da 1'den sıra (verilmezse başlıktan bulunur)
adressorgustringCSV: sütun adı ya da 1'den sıra (verilmezse başlıktan bulunur)
İstek gövdesi
AlanTipAçıklama
kayitlarzorunluobject[]en fazla 10000
kayitlar[].adstring
kayitlar[].telefonstring
kayitlar[].epostastring
kayitlar[].adresstring

Örnek istek

curl -X POST "$KILAVUZ/v1/musteri/tekillestir" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR" \
  -H "content-type: application/json" \
  -d '{}' \
  -H "content-type: text/csv" \
  --data-binary @siparisler.csv \
  -o siparisler-temiz.csv

Yanıtlar

  • 200Kümeler
  • 400girdi hatalı ya da sütun bulunamadı (yanıtta basliklar)Hata
  • 401Anahtar yok ya da geçersizHata
  • 413liste çok büyükHata
  • 415gövde JSON ya da CSV değilHata
  • 429Kredi limiti aşıldıHata
  • 503süre aşıldı, kredi düşülmediHata
Yanıt alanları
toplaminteger
tekilKisiinteger
tekrarinteger
kumelerobject[]
kumeler[].kumeinteger
kumeler[].sirainteger[]
kumeler[].nedenler"telefon" | "eposta" | "ad+telefon" | "ad+adres"[]
kayitlarobject[]
kayitlar[].sirainteger
kayitlar[].kumeinteger
kayitlar[].ilkboolean
notstring

Takvim

Resmî tatil listesi ve tatilleri bilen iş günü hesabı, namaz vakitleri ve hicri takvim.

Tatil, iş günü, namaz, hicri

ücretsiz (anahtarla)

Resmî tatiller 2022–2028, arife yarım günleri dahil; bayram tarihleri Diyanet’ten, 2027–2028 Diyanet’in ileri tarihli takvimi. Köprü günleri (idari izin) tatil sayılmaz. İş gününde hafta sonu ve resmî tatiller sayılmaz. Namaz vakitleri astronomik hesap (Diyanet açıları, temkin 0); Diyanet takvimiyle birkaç dakika fark olabilir. Hicri tarih tablosal hesap; gözleme dayanan Diyanet takviminden 1 gün farklı olabilir.

GET/v1/takvim/is-gunu-ekle

ücretsiz (anahtarla)

Tarihe iş günü ekle/çıkar (ücretsiz)

Anahtar gerekli

Başlangıç günü sayılmaz: Cuma + 1 = Pazartesi. Negatif gün geri gider. Resmî tatiller 2429 sayılı Kanun, dini bayramlar Diyanet takvimi; kapsam 2022–2028. Köprü günleri (idari izin) dahil değil.

Parametreler
AdYerTipAçıklama
tarihzorunlusorgustring (date)Başlangıç
gunzorunlusorguinteger
yarimGunsorgu"is" | "tatil"Arife gibi yarım günler iş günü sayılsın mı

Örnek istek

curl "$KILAVUZ/v1/takvim/is-gunu-ekle?tarih=2026-09-18&gun=…&yarimGun=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400Parametre hatalıHata
  • 401Anahtar yok ya da geçersizHata
  • 422Yıl kapsam dışında (2022–2028)Hata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
baslangicstring
guninteger
sonucstring
yarimGunIsGunuboolean
kapsamobject
kapsam.ilkinteger
kapsam.soninteger
kaynakstring
guncellemestring

GET/v1/takvim/tatiller

ücretsiz (anahtarla)

Resmî tatil listesi (ücretsiz)

Anahtar gerekli

Millî bayramlar, dini bayramlar (Diyanet takvimi) ve 13.00'te başlayan yarım günler. Kapsam 2022–2028 (2027–2028 Diyanet'in ileri tarihli takvimi). Köprü günleri (idari izin) dahil değil.

Parametreler
AdYerTipAçıklama
yilsorguintegerVarsayılan: içinde bulunulan yıl

Örnek istek

curl "$KILAVUZ/v1/takvim/tatiller?yil=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400yil biçimi hatalıHata
  • 401Anahtar geçersizHata
  • 422Yıl kapsam dışında (2022–2028)Hata
Yanıt alanları
kaynakstring
guncellemestring
yilinteger
kapsamobject
tatillerTatil[]

GET/v1/takvim/gun

ücretsiz (anahtarla)

Gün bilgisi: iş günü mü, tatil mi (ücretsiz)

Anahtar gerekli

Parametreler
AdYerTipAçıklama
tarihzorunlusorgustring (date)YYYY-AA-GG

Örnek istek

curl "$KILAVUZ/v1/takvim/gun?tarih=2026-09-18" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400tarih hatalıHata
  • 401Anahtar yok ya da geçersizHata
  • 422Yıl kapsam dışında (2022–2028)Hata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
kaynakstring
guncellemestring
tarihstring
haftaninGunuinteger1=Pazartesi … 7=Pazar
haftaSonuboolean
tatillerTatil[]
tatilboolean
yarimGunboolean
isGunuboolean

GET/v1/takvim/is-gunu/say

ücretsiz (anahtarla)

İki tarih arası iş günü sayısı, ikisi dahil (ücretsiz)

Anahtar gerekli

Parametreler
AdYerTipAçıklama
baslangiczorunlusorgustring (date)Dahil
bitiszorunlusorgustring (date)Dahil
yarimGunsorgu"is" | "tatil"Yarım günler (arife) iş günü sayılsın mı

Örnek istek

curl "$KILAVUZ/v1/takvim/is-gunu/say?baslangic=2026-09-18&bitis=2026-09-18&yarimGun=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400Parametre hatalıHata
  • 401Anahtar yok ya da geçersizHata
  • 422Yıl kapsam dışında (2022–2028)Hata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
kaynakstring
guncellemestring
baslangicstring
bitisstring
isGunuinteger
yarimGunIsGunuboolean

GET/v1/takvim/namaz

ücretsiz (anahtarla)

Namaz vakitleri (ücretsiz)

Anahtar gerekli

Güneşin konumundan hesaplanan vakitler; kazıma ya da dış istek yok. Diyanet açıları: imsak 18°, yatsı 17°, güneş/akşam ufkun 0,833° altı, ikindi gölge katsayısı 1 (Şafii, asr=standart) ya da 2 (asr=hanefi). Konum il verilirse il merkezi koordinatı (Overture POI medyanı), yoksa lat/lon. Saat dilimi sabit UTC+03:00; kapsam 2017–2050 (öncesinde yaz saati vardı). Temkin (ihtiyat) dakikası eklenmez, yanıtta söylenir. İbadet için resmî Diyanet takvimi esastır.

Parametreler
AdYerTipAçıklama
ilsorgustringAd ya da plaka; lat/lon ile birlikte verilmez
latsorgunumber
lonsorgunumber
tarihsorgustring (date)Varsayılan bugün (Türkiye saati)
asrsorgu"standart" | "hanefi"İkindi gölge katsayısı

Örnek istek

curl "$KILAVUZ/v1/takvim/namaz?il=İstanbul&lat=41.0082&lon=28.9784&tarih=2026-09-18&asr=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400il ile lat/lon birlikte, ikisi de eksik, ya da tarih/asr hatalıHata
  • 401Anahtar geçersizHata
  • 422il bulunamadı ya da yıl kapsam dışında (2017–2050)Hata
Yanıt alanları
tarihstring
ilstring | null
plakainteger | null
konumobject
konum.latnumber
konum.lonnumber
konum.kaynakstring
saatDilimistring
yontemobject
yontem.adstring
yontem.imsakAcisinumber
yontem.yatsiAcisinumber
yontem.ufukAcisinumber
yontem.ikindi"standart" | "hanefi"
yontem.ikindiGolgeKatsayisiinteger
vakitlerobjectSS:DD, Türkiye saati. Vakit oluşmuyorsa null (Türkiye'de olmaz).
vakitler.imsakstring | null
vakitler.gunesstring | null
vakitler.oglestring | null
vakitler.ikindistring | null
vakitler.aksamstring | null
vakitler.yatsistring | null
temkinobject
temkin.dakikainteger
temkin.notstring
kapsamobject
kapsam.ilkinteger
kapsam.soninteger
notstring

GET/v1/takvim/hicri

ücretsiz (anahtarla)

Hicri ↔ miladi tarih (ücretsiz)

Anahtar gerekli

tarih verilirse miladiden hicriye, hicri verilirse hicriden miladiye; ikisi de yoksa bugün (Türkiye saati). Yöntem tablosal (aritmetik) hicri takvim — 30 yıllık devrede 11 artık yıl. Diyanet takvimi hilalin gözlenmesine dayandığı için 1 gün farklı olabilir; yanıttaki not bunu söyler.

Parametreler
AdYerTipAçıklama
tarihsorgustring (date)Miladi; hicri ile birlikte verilmez
hicrisorgustring

Örnek istek

curl "$KILAVUZ/v1/takvim/hicri?tarih=2026-09-22&hicri=1448-03-01" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400tarih ile hicri birlikte ya da biçim hatalıHata
  • 401Anahtar geçersizHata
  • 422Yıl kapsam dışında ya da o ayda olmayan günHata
Yanıt alanları
miladistring
hicriobject
hicri.yilinteger
hicri.ayinteger
hicri.guninteger
hicri.ayAdistring
hicri.metinstring"10 Rebiülevvel 1448"
hicri.isostring
hicri.artikYilboolean
hicri.ayGunSayisiinteger
yontemstring
kapsamobject
kapsam.miladiobject
kapsam.hicriobject
notstring

Metin

Türkçe metin için yazım araçları: çekim eki, doğal dil tarihi, Türkçe harfleri geri koyma; serbest metinden alan çıkarma ve kişisel veri maskeleme.

KVKK maskeleme

1 kredi

Kural tabanlı; yüzde yüz değildir, ad ve adres aranmaz. Metin saklanmaz, ham değer yanıtta dönmez.

POST/v1/kvkk/maskele

1 kredi

Metinde kişisel veri bul ve maskele

Anahtar gerekli

TCKN, IBAN, telefon, e-posta, kredi kartı ve plakayı bulur, harf/rakamları * yapar (uzunluk korunur). TCKN/IBAN/kredi kartı/telefon sağlamalı, e-posta ve plaka biçimsel. Ad-soyad ve adres aranmaz. Yanıt ham değeri değil yalnız yerini verir; metin saklanmaz. En fazla 100.000 karakter; kredi metin başına.

İstek gövdesi
AlanTipAçıklama
metinzorunlustringen fazla 100000 karakter
turler"tckn" | "iban" | "telefon" | "eposta" | "kredi_karti" | "plaka"[]Verilmezse hepsi

Örnek istek

curl -X POST "$KILAVUZ/v1/kvkk/maskele" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR" \
  -H "content-type: application/json" \
  -d '{"metin":"Müşteri 0532 123 45 67 aradı, IBAN TR33 0006 1005 1978 6457 8413 26"}'

Yanıtlar

  • 200Başarılı
  • 400metin eksik ya da turler geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 413100.000 karakterden uzunHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
metinstringMaskelenmiş metin, girdiyle aynı uzunlukta
bulgularobject[]
bulgular[].tur"tckn" | "iban" | "telefon" | "eposta" | "kredi_karti" | "plaka"
bulgular[].baslangicintegerJS dizi konumu, dahil
bulgular[].bitisintegerHariç
sayimobject
notstring

GET/v1/kvkk/ihlaller

1 kredi

KVKK veri ihlali bildirimleri

Anahtar gerekli

KVKK Kurulu'nun kamuoyuna ilan ettiği veri ihlali bildirimleri (kvkk.gov.tr), en yeni önce. Duyuru metni değil, yapılandırılmış özet: neden türleri, tespit ve ihlal tarihleri, etkilenen kişi sayısı ve niteleyicisi, kişi grupları, veri kategorileri ve etiketleri, Kurul kararı. Günde iki kez çekilir, istek anında kaynağa gidilmez. Veri sorumlusu şahıs şirketiyse (unvanda tüzel kişilik işareti yok) adı, duyuru bağlantısı ve neden cümlesi verilmez (sahisSirketi: true). ara sözcükleri unvan, kategori, kişi grubu ve neden türünde aranır (hepsi geçmeli, Türkçe karaktersiz de olur). Liste boşsa kredi düşmez.

Parametreler
AdYerTipAçıklama
arasorgustring
baslangicsorgustring (date)Yayım tarihi, dahil
bitissorgustring (date)Yayım tarihi, dahil
limitsorguinteger

Örnek istek

curl "$KILAVUZ/v1/kvkk/ihlaller?ara=fidye&baslangic=2026-09-18&bitis=2026-09-18&limit=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400ara çok uzun, tarih ya da limit geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
arastring | null
baslangicstring | null
bitisstring | null
toplaminteger
ihlallerobject[]
ihlaller[].idintegerkvkk.gov.tr içerik numarası
ihlaller[].yayinTarihistring (date)
ihlaller[].veriSorumlusustring | nullŞahıs şirketinde null
ihlaller[].sahisSirketiboolean
ihlaller[].urlstringDuyuru; şahıs şirketinde liste sayfası
ihlaller[].ayrintiAlindibooleanfalse ise yalnız tarih ve unvan dolu
ihlaller[].nedenstring | nullNedeni anlatan madde, en çok 300 karakter; şahıs şirketinde null
ihlaller[].nedenTurleri"fidye" | "kimlik-avi" | "siber-saldiri" | "yetkisiz-erisim" | "zafiyet" | "veri-isleyen" | "yanlis-gonderim" | "kayip-calinti" | "calisan"[]
ihlaller[].tespitTarihistring | null (date)
ihlaller[].ihlalBaslangicstring | null (date)
ihlaller[].ihlalBitisstring | null (date)
ihlaller[].kisiSayisiinteger | null
ihlaller[].kisiSayisiNiteleyici"kesin" | "yaklasik" | "en_fazla" | "belirlenemedi" | null
ihlaller[].kisiGruplaristring[]
ihlaller[].veriKategorileristring[]Duyurudaki yazımıyla
ihlaller[].veriEtiketleristring[]ad-soyad, kimlik, iletisim, e-posta, telefon, adres, dogum-tarihi, sifre, kullanici-adi, finans, saglik, konum, pasaport, gorsel, ozluk, musteri-islem
ihlaller[].kurulKarariobject | null
kaynakstring
kaynakUrlstring
lisansstring
guncellemestring | nullSon başarılı çekim (ISO 8601); hiç yoksa null
bayatboolean
notstring

Metin araçları

0–1 kredi

Adres kısaltmada "İst." bilerek açılmaz (adreste çoğunlukla İstanbul, yol adında İstiklal); gerçek sözcük olan kısaltmalar (bul, koy, kat) yalnız noktalıysa açılır. Türkçeleştirme sözlükte olmayan sözcüğe dokunmaz, iki okunuşlu sözcüğü (diş/dış) belirsiz bırakır. Tarih çözümleme her sonuca güven puanı verir. Alan çıkarmada TCKN yalnız maskeli döner; metin saklanmaz.

POST/v1/metin/yaziyla

ücretsiz (anahtarla)

Tutarı yazıyla yaz (ücretsiz)

Anahtar gerekli

12.345,50 → "on iki bin üç yüz kırk beş TL elli kuruş". Metin girdide Türkçe yazım (nokta binlik, virgül ondalık); sayı girdide kuruş yuvarlanır. En fazla 15 hane. bitisik çek/senet yazımı, buyukHarf Türkçe büyük harf.

İstek gövdesi
AlanTipAçıklama
tutarzorunlunumber ya da string
paraBirimi"TRY" | "USD" | "EUR" | "GBP" | "yok"`yok`: "… virgül elli". varsayılan "TRY"

Örnek istek

curl -X POST "$KILAVUZ/v1/metin/yaziyla" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR" \
  -H "content-type: application/json" \
  -d '{"tutar":"12.345,50"}'

Yanıtlar

  • 200Başarılı
  • 400tutar eksik/biçimsiz ya da paraBirimi bilinmiyorHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
tutarstringTürkçe biçim "12.345,50"
paraBirimistring
yazistring
buyukHarfstring
bitisikstring

POST/v1/metin/slug

ücretsiz (anahtarla)

URL dostu slug (ücretsiz)

Anahtar gerekli

Türkçe harfler ASCII'ye iner (ç→c, ı/İ→i, ş→s…), harf-rakam dışı her şey ayırıcı. En fazla 1000 karakter.

İstek gövdesi
AlanTipAçıklama
metinzorunlustringen fazla 1000 karakter
ayirici"-" | "_"varsayılan "-"

Örnek istek

curl -X POST "$KILAVUZ/v1/metin/slug" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR" \
  -H "content-type: application/json" \
  -d '{"metin":"Çankaya'da Yeni Dükkân!"}'

Yanıtlar

  • 200Başarılı
  • 400metin eksik ya da ayirici geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 4131000 karakterden uzunHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
slugstring

POST/v1/metin/sirala

ücretsiz (anahtarla)

Türkçe alfabe sırasıyla sırala (ücretsiz)

Anahtar gerekli

ICU Türkçe sıralama (a b c ç … ı i … o ö … s ş … u ü …); büyük/küçük harf duyarsız, sayılar sayı olarak ("Sokak 2" < "Sokak 10"). En fazla 10.000 eleman.

İstek gövdesi
AlanTipAçıklama
listezorunlustring[]en fazla 10000
yon"artan" | "azalan"varsayılan "artan"

Örnek istek

curl -X POST "$KILAVUZ/v1/metin/sirala" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR" \
  -H "content-type: application/json" \
  -d '{"liste":["şeker","çay","ırmak","iğne","ada"]}'

Yanıtlar

  • 200Başarılı
  • 400liste boş, metin olmayan eleman ya da yon geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 41310.000'den fazla elemanHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
listestring[]
yonstring

POST/v1/metin/ad-normalize

ücretsiz (anahtarla)

Ad-soyad yazımını düzelt (ücretsiz)

Anahtar gerekli

"MEHMET ALİ yılmaz" → "Mehmet Ali Yılmaz": Türkçe büyük/küçük harf (İ/ı), fazla boşluk, tire ve kesme. Ad/soyad ayırmaz, cinsiyet tahmini yapmaz. En fazla 200 karakter; girdi saklanmaz.

İstek gövdesi
AlanTipAçıklama
adzorunlustringen fazla 200 karakter

Örnek istek

curl -X POST "$KILAVUZ/v1/metin/ad-normalize" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR" \
  -H "content-type: application/json" \
  -d '{"ad":"MEHMET ALİ  yılmaz"}'

Yanıtlar

  • 200Başarılı
  • 400ad eksikHata
  • 401Anahtar yok ya da geçersizHata
  • 413200 karakterden uzunHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
adstring

POST/v1/metin/kisaltma

ücretsiz (anahtarla)

Adres kısaltmalarını aç ya da kısalt (ücretsiz)

Anahtar gerekli

yon: "ac" (varsayılan): "Cad." → Caddesi, "Mah." → Mahallesi, "Sk." → Sokak, "Şht." → Şehit, "K:3" → Kat:3. yon: "kisalt": etiket uzunluğu için ters yön (Caddesi → Cad., Organize Sanayi Bölgesi → OSB). Gerçek sözcük de olan kısaltmalar ("Bul", "Sit") yalnız noktalıysa açılır; "K", "D" yalnız ardından sayı gelirse. Metnin geri kalanına dokunulmaz, sicille eşleştirmez (bunun için /v1/address/parse). En fazla 2.000 karakter; girdi saklanmaz.

İstek gövdesi
AlanTipAçıklama
metinzorunlustringen fazla 2000 karakter
yon"ac" | "kisalt"varsayılan "ac"

Örnek istek

curl -X POST "$KILAVUZ/v1/metin/kisaltma" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR" \
  -H "content-type: application/json" \
  -d '{"metin":"Atatürk Cad. Şht. Ali Sk. No:5 D:3","yon":"ac"}'

Yanıtlar

  • 200Başarılı
  • 400metin eksik ya da yon geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 4132.000 karakterden uzunHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
metinstring
yonstring
degisikliklerobject[]
degisiklikler[].oncestring
degisiklikler[].sonrastring

POST/v1/metin/ek

ücretsiz (anahtarla)

Türkçe çekim eki üret (ücretsiz)

Anahtar gerekli

"Ankara" + yonelme → "Ankara'ya", "kitap" + belirtme → "kitabı", "2026" + bulunma → "2026'da". Ünlü uyumu, ünsüz sertleşmesi ("40'ta"), ünsüz yumuşaması ("kitap → kitabı", "renk → rengi") ve kaynaştırma harfi (araba+yı, araba+nın, araba+sı). ozelIsim verilmezse baş harfi büyük yazılanlar özel isim sayılır: kesme işareti konur ve yumuşama yazıya geçmez (TDK). Sayı okunuşuna göre çekilir ve hep kesme alır; soru eki ayrı sözcüktür ("Volkan mı"). kelimeler ile en fazla 1.000 sözcük tek çağrıda. İkizleşme ("hak → hakkı") ve ünlü düşmesi kapsam dışı; girdi saklanmaz.

İstek gövdesi
AlanTipAçıklama
kelimestringen fazla 100 karakter
kelimelerstring[]`kelime` yerine; toplu üretim. en fazla 1000
ekzorunlu"yonelme" | "bulunma" | "ayrilma" | "belirtme" | "ilgi" | "iyelik" | "ile" | "mi"
ozelIsimbooleanVerilmezse baş harfe bakılır

Örnek istek

curl -X POST "$KILAVUZ/v1/metin/ek" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR" \
  -H "content-type: application/json" \
  -d '{"kelime":"Ankara","ek":"yonelme"}'

Yanıtlar

  • 200Başarılı
  • 400kelime/ek eksik ya da geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 413100 karakterden uzun ya da 1.000'den fazla sözcükHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
kelimestring
ekstring
sonucstring"Ankara'ya"
eklenenstringYalnız ek: "'ya"
ozelIsimboolean
kesmeboolean
okunusstringYalnız sayıda: "iki bin yirmi altı"
uyaristring
notstring
sonuclarobject[]Yalnız `kelimeler` verildiğinde

POST/v1/metin/tarih

ücretsiz (anahtarla)

Doğal dil tarihini çözümle (ücretsiz)

Anahtar gerekli

"3 Ekim 2026", "03.10.2026", "3/10/26", "yarın", "önümüzdeki salı", "3 gün sonra", "haftaya", "ayın 15'i", "gelecek ay", "saat 14:30" → ISO tarih. Türkiye yazımı esas: gün önce, ay sonra (Date.parse "3.10.2026"yı 10 Mart okur). Takvim Europe/Istanbul; simdi ile göreli ifadelerin dayanağı verilebilir (testte ve geçmiş bir mesajı işlerken). guven 1'e yakınsa tarih metinde açıkça yazılı, düştükçe yorum payı artar; eslesmeler hangi parçanın hangi kurala takıldığını söyler. Tarih bulunamazsa hata değil, bulundu: false. Tarih aralığı ("3–5 Ekim"), tekrar eden ifade ("her salı") ve saat dilimi seçimi kapsam dışı. En fazla 500 karakter; girdi saklanmaz.

İstek gövdesi
AlanTipAçıklama
metinzorunlustringen fazla 500 karakter
simdistringISO 8601; verilmezse şimdiki an

Örnek istek

curl -X POST "$KILAVUZ/v1/metin/tarih" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR" \
  -H "content-type: application/json" \
  -d '{"metin":"önümüzdeki salı saat 14:30 teslim","simdi":"2026-09-22T09:00:00+03:00"}'

Yanıtlar

  • 200Başarılı
  • 400metin eksik ya da simdi geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 413500 karakterden uzunHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
bulunduboolean
tarihstring (date)
saatstringSS:DD
isostring"2026-10-03" ya da "2026-10-03T14:30"
guvennumber0–1
eslesmelerobject[]
eslesmeler[].tur"tarih" | "saat"
eslesmeler[].metinstring
eslesmeler[].baslangicinteger
eslesmeler[].bitisinteger
eslesmeler[].kuralstringiso, gun_ay_yil, gorece_gun, hafta_gunu…
simdistring
notstring

POST/v1/metin/turkcelestir

ücretsiz (anahtarla)

ASCII metne Türkçe harfleri geri koy (ücretsiz)

Anahtar gerekli

"Istanbul Sisli Cumhuriyet Cad" → "İstanbul Şişli Cumhuriyet Cad". Sözlük eşleşmesiyle çalışır: koda gömülü sık sözcükler ve 81 il + paketlenmiş sicildeki il/ilçe/mahalle adları. Sözlükte olmayan sözcüğe dokunmaz, uydurmaz. İki Türkçe okunuşu olan sözcüğü (diş/dış, kar/kâr, sık/sik) değiştirmez, belirsiz listesine yazar. Büyük harfle başlayan sözcükte yer adı öncelikli ("Sisli" → "Şişli"); cümle başındaki sözcük de büyük yazıldığı için bu kural yanılabilir. Büyük/küçük harf düzeni korunur; yazım denetimi değildir. En fazla 5.000 karakter; girdi saklanmaz.

İstek gövdesi
AlanTipAçıklama
metinzorunlustringen fazla 5000 karakter

Örnek istek

curl -X POST "$KILAVUZ/v1/metin/turkcelestir" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR" \
  -H "content-type: application/json" \
  -d '{"metin":"Istanbul Sisli Cumhuriyet Cad"}'

Yanıtlar

  • 200Başarılı
  • 400metin eksikHata
  • 401Anahtar yok ya da geçersizHata
  • 4135.000 karakterden uzunHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
metinstringTürkçeleştirilmiş metin
degisikliklerobject[]
degisiklikler[].oncestring
degisiklikler[].sonrastring
degisiklikler[].kaynak"ad" | "sozcuk"
belirsizobject[]Dokunulmayan çok okunuşlu sözcükler
belirsiz[].sozcukstring
belirsiz[].adaylarstring[]
notstring

POST/v1/metin/ayikla

1 kredi

Serbest metinden alan çıkar (telefon, IBAN, tutar, tarih, adres)

Anahtar gerekli

E-posta gövdesi, WhatsApp siparişi ya da destek kaydından yapılandırılmış alanlar. Model çağrılmaz: telefon BTK planıyla, IBAN mod-97 ile, TCKN ve VKN kontrol haneleriyle doğrulanır, e-posta biçimle bulunur; aynı girdi hep aynı çıktıyı verir. Tarih /v1/metin/tarih kurallarıyla ("yarın", "3 Ekim 2026", "saat 14:30") — simdi verilerek sabitlenebilir. Adres adayı il ya da ilçe adı geçen parçadır; il/ilçe resmî sicilden, mahalle/yol/bina ayrıştırıcıdan gelir, kesin çözüm için /v1/address/resolve. **TCKN ham döndürülmez** (ilk 3 + son 2 hane maskeli); 10 haneli VKN tüzel kişi bilgisi olduğu için açık döner. Ad-soyad çıkarılmaz. En fazla 5.000 karakter; metin saklanmaz. Metnin uzunluğundan bağımsız 1 kredi.

İstek gövdesi
AlanTipAçıklama
metinzorunlustringen fazla 5000 karakter
simdistringGöreli tarihlerin başlangıç anı (ISO 8601); yoksa şimdi

Örnek istek

curl -X POST "$KILAVUZ/v1/metin/ayikla" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR" \
  -H "content-type: application/json" \
  -d '{"metin":"Sipariş: Moda Cad. No:14 Kadıköy İstanbul, 0532 123 45 67, 1.250,50 TL, yarın teslim"}'

Yanıtlar

  • 200Başarılı
  • 400metin eksik ya da simdi geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 4135.000 karakterden uzunHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
telefonlarobject[]
telefonlar[].e164string | null444 numaralarında null
telefonlar[].ulusalstring
telefonlar[].turstring
telefonlar[].metinstring
telefonlar[].baslangicinteger
telefonlar[].bitisinteger
epostalarobject[]
epostalar[].epostastring
epostalar[].baslangicinteger
epostalar[].bitisinteger
ibanlarobject[]
ibanlar[].ibanstring
ibanlar[].bicimlistring
ibanlar[].bankastring
ibanlar[].metinstring
ibanlar[].baslangicinteger
ibanlar[].bitisinteger
tcknlerobject[]Ham numara dönmez
tcknler[].maskelistringİlk 3 + son 2 hane: 100******46
tcknler[].gecerliboolean
tcknler[].baslangicinteger
tcknler[].bitisinteger
vknlerobject[]
vknler[].vknstring
vknler[].gecerliboolean
vknler[].baslangicinteger
vknler[].bitisinteger
tutarlarobject[]
tutarlar[].tutarstringMakine biçimi: "1250.50"
tutarlar[].bicimlistringTürkçe biçim: "1.250,50"
tutarlar[].paraBirimi"TRY" | "USD" | "EUR" | "GBP"
tutarlar[].metinstring
tutarlar[].baslangicinteger
tutarlar[].bitisinteger
tarihobject
tarih.bulunduboolean
tarih.tarihstring | null
tarih.saatstring | null
tarih.isostring | null
tarih.guvennumber
tarih.eslesmelerobject[]
adresAdaylariobject[]Puana göre; sicil bağlı değilse boş
adresAdaylari[].metinstring
adresAdaylari[].ilstring
adresAdaylari[].ilcestring
adresAdaylari[].mahallestring
adresAdaylari[].yolstring
adresAdaylari[].binaNostring
adresAdaylari[].dairestring
adresAdaylari[].katstring
adresAdaylari[].puanintegeril/ilçe 2, mahalle/yol 1 puan
notstring

Spor

Türkiye futbol ligleri (TFF: Süper Lig’den Bölgesel Amatör Lig’e, kadın ligleri ve U19) ile beş büyük Avrupa ligi ve Rusya (Understat): puan durumu, fikstür, sonuçlar, gol krallığı, maç ayrıntısı, form, karşılaşma geçmişi, sezon sonu olasılıkları ve xG. Kaynak ve kaldırma politikası: /kaynaklar.

Futbol

0–1 kredi

TFF lig sayfaları ve Understat, günde iki tur; yanıtta `lisans`, `guncelleme` ve `bayat`. Oyuncu adı yalnız profesyonel liglerde ve Kadın Futbol Süper Ligi’nde; U19, Bölgesel Amatör Lig ve kadın alt liglerinde hiç alınmaz, bu liglerde gol krallığı 422 döner. Hakem ve görevli adı hiçbir ligde tutulmaz. xG yalnız Understat liglerinde. Olasılıklar Monte Carlo tahminidir.

GET/v1/futbol/ligler

ücretsiz (anahtarla)

Futbol ligleri ve tabloda bulunan sezonlar

Anahtar gerekli

Kapsanan ligler: TFF (Süper Lig, 1. Lig, 2. Lig, 3. Lig, BAL, Kadın Süper Lig, Kadın 1./2./3. Lig, U19 PAF) ve Understat (Premier League, La Liga, Bundesliga, Serie A, Ligue 1, RFPL; xG). oyuncuAdi: false liglerde (U19, BAL, kadın alt ligleri) yalnız takım düzeyi veri tutulur. kural: Monte Carlo için varsayılan statü.

Örnek istek

curl "$KILAVUZ/v1/futbol/ligler" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
liglerobject[]
ligler[].kodstring
ligler[].adstring
ligler[].kaynak"tff" | "understat"
ligler[].ulkestring
ligler[].kademe"profesyonel" | "amator" | "genc" | "kadin"
ligler[].oyuncuAdiboolean
ligler[].xgboolean
ligler[].golKralligiboolean
ligler[].kuralobject
ligler[].sezonlarstring[]
ligler[].kaynakAdistring
ligler[].lisansstring
notstring

GET/v1/futbol/takimlar

ücretsiz (anahtarla)

Ligin takımları ve kimlikleri

Anahtar gerekli

Form, H2H ve takim süzgeci için takım kimlikleri (tff-3604, us-83). ara Türkçe karakter duyarsız.

Parametreler
AdYerTipAçıklama
ligzorunlusorgustring
sezonsorgustring"2026-2027" ya da "2026"; yoksa tablodaki en yeni sezon
arasorgustring

Örnek istek

curl "$KILAVUZ/v1/futbol/takimlar?lig=super-lig&sezon=2026-2027&ara=galatasaray" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400lig ya da sezon geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
ligstring
sezonstring
takimlarobject[]
takimlar[].takim_idstring
takimlar[].takimstring
takimlar[].grupstring
kaynakstring | null
kaynakUrlstring | null
lisansstring | nullKaynağın şartı ve kaldırma politikası
guncellemestring | nullSon başarılı çekim (ISO 8601); hiç yoksa null
bayatboolean
notstring

GET/v1/futbol/puan-durumu

1 kredi

Puan durumu

Anahtar gerekli

TFF liglerinde kaynağın puan cetveli (puan silme cezaları dahil); Understat liglerinde sonuçlardan hesaplanır (puan > averaj > atılan gol). Gruplu liglerde (2. Lig, 3. Lig, BAL, kadın alt ligleri) grup grup. Boşsa kredi düşmez.

Parametreler
AdYerTipAçıklama
ligzorunlusorgustring
sezonsorgustring"2026-2027" ya da "2026"; yoksa tablodaki en yeni sezon
grupsorgustringGruplu ligde grup adı ("Kırmızı", "Beyaz", "1"…)

Örnek istek

curl "$KILAVUZ/v1/futbol/puan-durumu?lig=super-lig&sezon=2026-2027&grup=Kırmızı" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400lig ya da sezon geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
ligstring
ligAdistring
sezonstring
gruplarobject[]
gruplar[].grupstring
gruplar[].takimlarobject[]
kaynakstring | null
kaynakUrlstring | null
lisansstring | nullKaynağın şartı ve kaldırma politikası
guncellemestring | nullSon başarılı çekim (ISO 8601); hiç yoksa null
bayatboolean
notstring

GET/v1/futbol/fikstur

1 kredi

Oynanmamış maçlar

Anahtar gerekli

Sezonun oynanmamış maçları, en yakından. TFF sezon listesi tarih vermiyor: tarih ve saat yalnız seçili hafta ile detayı çekilmiş maçlarda dolu, ötekinde hafta var. Boşsa kredi düşmez.

Parametreler
AdYerTipAçıklama
ligzorunlusorgustring
sezonsorgustring"2026-2027" ya da "2026"; yoksa tablodaki en yeni sezon
grupsorgustringGruplu ligde grup adı ("Kırmızı", "Beyaz", "1"…)
haftasorguinteger
takimsorgustringTakım kimliği (bkz. /v1/futbol/takimlar)
limitsorguinteger

Örnek istek

curl "$KILAVUZ/v1/futbol/fikstur?lig=super-lig&sezon=2026-2027&grup=Kırmızı&hafta=…&takim=tff-3604&limit=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400parametre geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
ligstring
ligAdistring
sezonstring
maclarobject[]
maclar[].idstring
maclar[].grupstring | null
maclar[].haftainteger | null
maclar[].tarihstring | null (date)Türkiye günü
maclar[].saatstring | nullTürkiye saati
maclar[].evobject
maclar[].depobject
maclar[].skorobject | null
maclar[].xgobjectYalnız Understat liglerinde
maclar[].stadstring | null
maclar[].ligstring
maclar[].sezonstring
kaynakstring | null
kaynakUrlstring | null
lisansstring | nullKaynağın şartı ve kaldırma politikası
guncellemestring | nullSon başarılı çekim (ISO 8601); hiç yoksa null
bayatboolean
notstring

GET/v1/futbol/sonuclar

1 kredi

Oynanmış maçlar ve skorlar

Anahtar gerekli

Sezonun sonuçları, en yeniden. Understat liglerinde maç xG değeri de gelir. Boşsa kredi düşmez.

Parametreler
AdYerTipAçıklama
ligzorunlusorgustring
sezonsorgustring"2026-2027" ya da "2026"; yoksa tablodaki en yeni sezon
grupsorgustringGruplu ligde grup adı ("Kırmızı", "Beyaz", "1"…)
haftasorguinteger
takimsorgustringTakım kimliği (bkz. /v1/futbol/takimlar)
limitsorguinteger

Örnek istek

curl "$KILAVUZ/v1/futbol/sonuclar?lig=super-lig&sezon=2026-2027&grup=Kırmızı&hafta=…&takim=tff-3604&limit=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400parametre geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
ligstring
ligAdistring
sezonstring
maclarobject[]
maclar[].idstring
maclar[].grupstring | null
maclar[].haftainteger | null
maclar[].tarihstring | null (date)Türkiye günü
maclar[].saatstring | nullTürkiye saati
maclar[].evobject
maclar[].depobject
maclar[].skorobject | null
maclar[].xgobjectYalnız Understat liglerinde
maclar[].stadstring | null
maclar[].ligstring
maclar[].sezonstring
kaynakstring | null
kaynakUrlstring | null
lisansstring | nullKaynağın şartı ve kaldırma politikası
guncellemestring | nullSon başarılı çekim (ISO 8601); hiç yoksa null
bayatboolean
notstring

GET/v1/futbol/gol-kralligi

1 kredi

Gol krallığı

Anahtar gerekli

Yalnız oyuncu adı tutulan liglerde (profesyonel erkek ligleri, Kadın Süper Lig, Understat ligleri); U19, BAL ve kadın alt liglerinde 422. Understat liglerinde oyuncu toplamlarından (xG ile). Boşsa kredi düşmez.

Parametreler
AdYerTipAçıklama
ligzorunlusorgustring
sezonsorgustring"2026-2027" ya da "2026"; yoksa tablodaki en yeni sezon
limitsorguinteger

Örnek istek

curl "$KILAVUZ/v1/futbol/gol-kralligi?lig=super-lig&sezon=2026-2027&limit=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400lig ya da sezon geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 422Bu ligde oyuncu adı tutulmuyorHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
ligstring
ligAdistring
sezonstring
oyuncularobject[]
oyuncular[].sirainteger
oyuncular[].oyuncustring
oyuncular[].takimstring
oyuncular[].golinteger
oyuncular[].xgnumber | null
kaynakstring | null
kaynakUrlstring | null
lisansstring | nullKaynağın şartı ve kaldırma politikası
guncellemestring | nullSon başarılı çekim (ISO 8601); hiç yoksa null
bayatboolean
notstring

GET/v1/futbol/mac/{id}

1 kredi

Maç detayı

Anahtar gerekli

Skor, goller (dakika, tür), kartlar, oyuncu değişiklikleri; profesyonel liglerde ilk 11 ve yedekler, Understat liglerinde şut haritası (x, y, xG) ve oyuncu xG/xA. U19, BAL ve kadın alt liglerinde olaylar yalnız taraf ve dakikayla, ad yok. Hakem ve gözlemci hiç yok. Bulunamazsa 404, kredi düşmez.

Parametreler
AdYerTipAçıklama
idzorunluyolstring

Örnek istek

curl "$KILAVUZ/v1/futbol/mac/<id>" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400Kimlik biçimi geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 404Maç bulunamadıHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
macobject
mac.idstring
mac.grupstring | null
mac.haftainteger | null
mac.tarihstring | null (date)Türkiye günü
mac.saatstring | nullTürkiye saati
mac.evobject
mac.depobject
mac.skorobject | null
mac.xgobjectYalnız Understat liglerinde
mac.stadstring | null
mac.ligstring
mac.sezonstring
detayobject | nullgoller, kartlar, degisiklikler, kadro?, sutlar?, xgKadro?
detayYokstring
kaynakstring | null
kaynakUrlstring | null
lisansstring | nullKaynağın şartı ve kaldırma politikası
guncellemestring | nullSon başarılı çekim (ISO 8601); hiç yoksa null
bayatboolean
notstring

GET/v1/futbol/takim/{id}/form

1 kredi

Takımın son maçları (form)

Anahtar gerekli

Son n oynanmış maç (varsayılan 5); dizi en yeni sağda (G galibiyet, B beraberlik, M mağlubiyet). Boşsa kredi düşmez.

Parametreler
AdYerTipAçıklama
idzorunluyolstring
nsorguinteger
ligsorgustring
sezonsorgustring"2026-2027" ya da "2026"; yoksa tablodaki en yeni sezon

Örnek istek

curl "$KILAVUZ/v1/futbol/takim/<id>/form?n=…&lig=super-lig&sezon=2026-2027" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400parametre geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
takim_idstring
takimstring | null
dizistring
macinteger
puaninteger
atilaninteger
yenileninteger
ligstring | null
maclarobject[]
kaynakstring | null
kaynakUrlstring | null
lisansstring | nullKaynağın şartı ve kaldırma politikası
guncellemestring | nullSon başarılı çekim (ISO 8601); hiç yoksa null
bayatboolean
notstring

GET/v1/futbol/h2h

1 kredi

İki takımın birbiriyle maçları

Anahtar gerekli

Tablodaki bütün sezonlar (lig maçları; geri doldurma en az son 5 sezon), en yeniden. Boşsa kredi düşmez.

Parametreler
AdYerTipAçıklama
azorunlusorgustring
bzorunlusorgustring
limitsorguinteger

Örnek istek

curl "$KILAVUZ/v1/futbol/h2h?a=tff-3604&b=tff-3589&limit=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400a/b geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
aobject
a.idstring
a.adstring | null
a.galibiyetinteger
a.golinteger
bobject
b.idstring
b.adstring | null
b.galibiyetinteger
b.golinteger
macinteger
beraberlikinteger
maclarobject[]
maclar[].idstring
maclar[].grupstring | null
maclar[].haftainteger | null
maclar[].tarihstring | null (date)Türkiye günü
maclar[].saatstring | nullTürkiye saati
maclar[].evobject
maclar[].depobject
maclar[].skorobject | null
maclar[].xgobjectYalnız Understat liglerinde
maclar[].stadstring | null
maclar[].ligstring
maclar[].sezonstring
kapsamstring
kaynakstring | null
kaynakUrlstring | null
lisansstring | nullKaynağın şartı ve kaldırma politikası
guncellemestring | nullSon başarılı çekim (ISO 8601); hiç yoksa null
bayatboolean
notstring

GET/v1/futbol/olasilik

1 kredi

Şampiyonluk, yükselme, play-off ve düşme olasılıkları

Anahtar gerekli

Poisson Monte Carlo (yöntem yanıtta, yontemAciklama): takım güçleri bu sezonun gollerinden, kalan maçlar simüle edilir, başlangıç kaynağın puan tablosu. Statü varsayılanı lig kataloğundan; yukselme, playoff, dusme ile ezilir (0 kapatır). Tohumlu: aynı girdi aynı sonuç. Tahmindir, bahis tavsiyesi değildir. Boşsa kredi düşmez.

Parametreler
AdYerTipAçıklama
ligzorunlusorgustring
sezonsorgustring"2026-2027" ya da "2026"; yoksa tablodaki en yeni sezon
grupsorgustringGruplu ligde grup adı ("Kırmızı", "Beyaz", "1"…)
simulasyonsorguinteger
tohumsorguinteger
yukselmesorguintegerDoğrudan çıkan takım sayısı
playoffsorgustringPlay-off sıraları
dusmesorguintegerDoğrudan düşen takım sayısı

Örnek istek

curl "$KILAVUZ/v1/futbol/olasilik?lig=super-lig&sezon=2026-2027&grup=Kırmızı&simulasyon=…&tohum=…&yukselme=…&playoff=3-6&dusme=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400parametre geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
ligstring
ligAdistring
sezonstring
yontem"poisson-monte-carlo"
yontemAciklamastring
simulasyoninteger
tohuminteger
kuralobject
kural.yukselmeinteger
kural.dusmeinteger
kural.playoffinteger[]en fazla 2
gruplarobject[]
gruplar[].grupstring
gruplar[].kalanMacinteger
gruplar[].uyaristring
gruplar[].takimlarobject[]
gruplar[].gucobject
kaynakstring | null
kaynakUrlstring | null
lisansstring | nullKaynağın şartı ve kaldırma politikası
guncellemestring | nullSon başarılı çekim (ISO 8601); hiç yoksa null
bayatboolean
notstring

GET/v1/futbol/xg

1 kredi

xG: takım, oyuncu ya da beklenen puan tablosu

Anahtar gerekli

Yalnız Understat ligleri (xG değerleri Understat'ın modeli). kapsam=takim: sezon toplamları (xG, xGA, npxG, xPts, PPDA); oyuncu: oyuncu xG, xA, şut, kilit pas; xpts: maç xG'lerinden Poisson ile beklenen puan tablosu ve gerçek puanla farkı. TFF liglerinde 422. Boşsa kredi düşmez.

Parametreler
AdYerTipAçıklama
ligzorunlusorgustring
sezonsorgustring"2026-2027" ya da "2026"; yoksa tablodaki en yeni sezon
kapsamsorgu"takim" | "oyuncu" | "xpts"
limitsorguinteger

Örnek istek

curl "$KILAVUZ/v1/futbol/xg?lig=super-lig&sezon=2026-2027&kapsam=…&limit=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400parametre geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 422Bu ligde xG yokHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
ligstring
ligAdistring
sezonstring
kapsamstring
takimlarobject[]
oyuncularobject[]
yontemstring
yontemAciklamastring
kaynakstring | null
kaynakUrlstring | null
lisansstring | nullKaynağın şartı ve kaldırma politikası
guncellemestring | nullSon başarılı çekim (ISO 8601); hiç yoksa null
bayatboolean
notstring

Araçlar

Sahte ama sağlamalı test verisi, uzak MCP ucu ve anahtarsız deneme.

Test verisi

ilk 100 kayıt ücretsiz

Sahte ama sağlamalı TCKN, VKN, IBAN ve GSM; e-posta example.com; adres sicilden gerçek sokak, kapı ve daire rastgele. Kayıtlar gerçek kişiye ait değildir. 100 kayda kadar ücretsiz, sonra her başlanan 100 kayıt 1 kredi. Aynı tohumla aynı liste yeniden üretilir.

POST/v1/test-verisi/uret

ilk 100 kayıt ücretsiz

Sentetik (sahte) test kaydı üret

Anahtar gerekli

Gerçekçi ama uydurma Türk kişi/şirket kayıtları: ad-soyad, TCKN, VKN (+ticaret unvanı), IBAN, GSM, e-posta (example.com), adres (gerçek sicilden il/ilçe/mahalle/sokak + rastgele kapı/daire), doğum tarihi, plaka. Numaralar kendi sağlamalarından geçer (TCKN/VKN kontrol hanesi, IBAN mod-97, BTK numara planı) ama hiçbiri gerçek bir kişiye, şirkete ya da hesaba ait değildir. tohum verilirse aynı liste tekrar üretilir (yanıt tohumu her zaman döner). Kredi: 100 kayda kadar 0, üstü her başlanan 100 kayıt için 1 (500 kayıt = 5 kredi).

İstek gövdesi
AlanTipAçıklama
adetinteger1–1000, varsayılan 10
alanlar"ad" | "soyad" | "tckn" | "vkn" | "iban" | "gsm" | "eposta" | "adres" | "dogumTarihi" | "plaka"[]Verilmezse hepsi
tohumstringTekrarlanabilirlik için. en fazla 64 karakter

Örnek istek

curl -X POST "$KILAVUZ/v1/test-verisi/uret" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR" \
  -H "content-type: application/json" \
  -d '{"adet":5,"alanlar":["ad","soyad","tckn","gsm","adres"],"tohum":"demo-1"}'

Yanıtlar

  • 200Başarılı
  • 400adet, alanlar ya da tohum geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 413adet 1000'den büyükHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
adetinteger
tohumstring
alanlarstring[]
kayitlarSentetikKayit[]
notstringVerinin sentetik olduğu uyarısı; kullanıcıya iletin

MCP

keşif anahtarsız

POST/mcp

keşif anahtarsız

Uzak MCP (Streamable HTTP, stateless)

Anahtar yalnız araç çağrısında

Model Context Protocol JSON-RPC ucu. Anahtar yalnız tools/call için gerekli; initialize, tools/list ve ping anahtarsız ve ücretsiz. Anahtarsız tek tools/call 401 anlamında isError döner; içinde tools/call olan anahtarsız toplu istek 401. Kredi, çağrılan aracın REST ucu kadar düşer. Yanıt JSON, SSE yok. Accept: application/json, text/event-stream gerekli. Giriş açıkken (OAuth) ak_live_… anahtarının yanında OAuth erişim belirteci (ak_oat_…) de kabul edilir; kimliksiz tools/call HTTP 401 ve WWW-Authenticate: Bearer resource_metadata="…" döner, geçersiz ya da süresi dolmuş belirteç 401 error="invalid_token".

Gövde: JSON-RPC 2.0 mesajı.

Örnek istek

curl -X POST "$KILAVUZ/mcp" \
  -H "accept: application/json, text/event-stream" \
  -H "content-type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Yanıtlar

  • 200Başarılı
  • 400Geçersiz JSON (JSON-RPC -32700)
  • 401Anahtarsız toplu istekte tools/call

Demo

anahtarsız

POST/v1/demo/adres

anahtarsız

Anahtarsız adres çözümleme (tanıtım)

Anahtarsız

Tanıtım sayfasındaki canlı kutu için. Anahtar istemez, kredi düşmez. Yalnız tek adres, en fazla 200 karakter. IP başına 10 dakikada 20 istek; aşılınca 429 ve Retry-After.

İstek gövdesi
AlanTipAçıklama
qzorunlustringen fazla 200 karakter

Örnek istek

curl -X POST "$KILAVUZ/v1/demo/adres" \
  -H "content-type: application/json" \
  -d '{"q":"kadikoy moda cad 14"}'

Yanıtlar

POST/v1/demo/iban

anahtarsız

Anahtarsız IBAN doğrulama (tanıtım)

Anahtarsız

Tek IBAN; hesap numarası yanıtta yok. Anahtar istemez, kredi düşmez; yanıt kırpılmış. Bütün veri demoları IP başına 10 dakikada 20 isteği paylaşır; aşılınca 429 ve Retry-After. Tamamı için ücretsiz anahtarla gerçek uç.

İstek gövdesi
AlanTipAçıklama
ibanzorunlustringen fazla 64 karakter

Örnek istek

curl -X POST "$KILAVUZ/v1/demo/iban" \
  -H "content-type: application/json" \
  -d '{"iban":"TR33 0006 1005 1978 6457 8413 26"}'

Yanıtlar

  • 200Başarılı
  • 400iban eksik ya da çok uzunHata
  • 429Demo sınırı dolduHata
Yanıt alanları
gecerliboolean
bicimlistring | null
bankaobject | null
hatastring | null
aciklamastring | null
kaynakstring
guncellemestring | null
notstring

GET/v1/demo/eczane

anahtarsız

Anahtarsız nöbetçi eczane (tanıtım, ilk 5)

Anahtarsız

İl ve ilçe zorunlu; en çok 5 eczane, koordinat yok (toplam bütün listenin sayısı). Anahtar istemez, kredi düşmez; yanıt kırpılmış. Bütün veri demoları IP başına 10 dakikada 20 isteği paylaşır; aşılınca 429 ve Retry-After. Tamamı için ücretsiz anahtarla gerçek uç.

Parametreler
AdYerTipAçıklama
ilzorunlusorgustring
ilcezorunlusorgustring

Örnek istek

curl "$KILAVUZ/v1/demo/eczane?il=İzmir&ilce=Bornova"

Yanıtlar

  • 200Başarılı
  • 400il ya da ilce eksikHata
  • 422Kapsam dışı ilHata
  • 429Demo sınırı dolduHata
Yanıt alanları
ilstring | null
ilcestring | null
nobetTarihistring | null
toplaminteger
eczanelerobject[]en fazla 5
eczaneler[].adstring
eczaneler[].mahallestring | null
eczaneler[].adresstring
eczaneler[].telefonstring | null
kaynakUrlstring
lisansstring
bayatboolean
kaynakstring
guncellemestring | null
notstring

GET/v1/demo/akaryakit

anahtarsız

Anahtarsız akaryakıt fiyatı (tanıtım)

Anahtarsız

İlin ürün özeti (en düşük/ortalama/en yüksek); urun verilirse en ucuz 5 marka. Anahtar istemez, kredi düşmez; yanıt kırpılmış. Bütün veri demoları IP başına 10 dakikada 20 isteği paylaşır; aşılınca 429 ve Retry-After. Tamamı için ücretsiz anahtarla gerçek uç.

Parametreler
AdYerTipAçıklama
ilzorunlusorgustring
urunsorgustring

Örnek istek

curl "$KILAVUZ/v1/demo/akaryakit?il=Ankara&urun=motorin"

Yanıtlar

  • 200Başarılı
  • 400il eksikHata
  • 422İl bulunamadıHata
  • 429Demo sınırı dolduHata
Yanıt alanları
ilstring
ozetobject[]
enUcuzobject[]en fazla 5
enUcuz[].markastring
enUcuz[].urunstring
enUcuz[].fiyatnumber
enUcuz[].tarihstring
kaynakUrlstring
lisansstring
bayatboolean
kaynakstring
guncellemestring | null
notstring

GET/v1/demo/deprem

anahtarsız

Anahtarsız son 5 deprem (tanıtım)

Anahtarsız

AFAD'ın son 5 olayı; parametre yok. Anahtar istemez, kredi düşmez; yanıt kırpılmış. Bütün veri demoları IP başına 10 dakikada 20 isteği paylaşır; aşılınca 429 ve Retry-After. Tamamı için ücretsiz anahtarla gerçek uç.

Örnek istek

curl "$KILAVUZ/v1/demo/deprem"

Yanıtlar

  • 200Başarılı
  • 429Demo sınırı dolduHata
  • 503AFAD yanıt vermiyorHata
Yanıt alanları
depremlerobject[]en fazla 5
depremler[].zamanTrstring
depremler[].buyukluknumber
depremler[].turstring
depremler[].derinlikKmnumber
depremler[].yerstring
depremler[].ilstring | null
kaynakUrlstring
lisansstring
bayatboolean
kaynakstring
guncellemestring | null
notstring

GET/v1/demo/futbol

anahtarsız

Anahtarsız Süper Lig puan durumu, ilk 5 (tanıtım)

Anahtarsız

Güncel sezonun ilk 5 takımı; parametre yok. Anahtar istemez, kredi düşmez; yanıt kırpılmış. Bütün veri demoları IP başına 10 dakikada 20 isteği paylaşır; aşılınca 429 ve Retry-After. Tamamı için ücretsiz anahtarla gerçek uç.

Örnek istek

curl "$KILAVUZ/v1/demo/futbol"

Yanıtlar

  • 200Başarılı
  • 429Demo sınırı dolduHata
Yanıt alanları
ligstring
ligAdistring
sezonstring
takimlarobject[]en fazla 5
takimlar[].sirainteger
takimlar[].takimstring
takimlar[].ointeger
takimlar[].avinteger
takimlar[].pinteger
kaynakUrlstring
lisansstring
bayatboolean
kaynakstring
guncellemestring | null
notstring

GET/v1/demo/tazelik

anahtarsız

Kaynak başına son başarılı çekim (tanıtım şeridi)

Anahtarsız

Toplayıcının çektiği her kaynağın son başarılı çekimi ve alan özeti (eczane, akaryakıt, hal, Resmî Gazete, futbol). İstek anında çağrılan kaynaklar (AFAD, TCMB, İBB…) listede yok. Yanıt örnek başına 60 sn önbellekte; IP başına 10 dakikada 30 istek.

Örnek istek

curl "$KILAVUZ/v1/demo/tazelik"

Yanıtlar

  • 200Başarılı
  • 429Demo sınırı dolduHata
Yanıt alanları
alanlarobject[]
alanlar[].alanstring
alanlar[].adstring
alanlar[].kaynakSayisiinteger
alanlar[].tazeKaynakSayisiinteger
alanlar[].sonCekimstring | null
kaynaklarobject[]
kaynaklar[].adstring
kaynaklar[].alanstring | null
kaynaklar[].sonCekimstring | null
kaynaklar[].bayatboolean
kaynakstring
guncellemestring

Hesap

Kayıt, anahtar, kullanım, e-posta ve ödeme.

Hesap ve anahtar

ücretsiz

POST/v1/kayit

anahtarsız

Hesap aç, ilk anahtarı al

Anahtarsız

IP başına saatte 5 kayıt. Anahtar yanıtta bir kez döner, bir daha gösterilmez.

İstek gövdesi
AlanTipAçıklama
emailzorunlustring (email)
adstring
kaynakstringNereden geldiniz (ör. "hn"); isteğe bağlı

Örnek istek

curl -X POST "$KILAVUZ/v1/kayit" \
  -H "content-type: application/json" \
  -d '{}'

Yanıtlar

  • 201Hesap açıldı
  • 400Geçersiz e-posta ya da kaynakHata
  • 409E-posta zaten kayıtlıHata
  • 429Kayıt hız sınırıHata
Yanıt alanları
hesapIdstring
emailstring
planstring
anahtarstring
uyaristring
dogrulama"gonderildi" | "dogrulanmis" | "hiz_siniri" | "gonderilemedi"Doğrulama e-postasının durumu (e-posta doğrulaması açıksa)
baslangicobject
baslangic.ornekstring

POST/v1/anahtar

ücretsiz (anahtarla)

Yeni anahtar üret

Anahtar gerekli

En fazla 10 aktif anahtar. Eski anahtar iptal edilmez. Panel oturumuyla da çağrılabilir.

İstek gövdesi
AlanTipAçıklama
adstring

Örnek istek

curl -X POST "$KILAVUZ/v1/anahtar" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR" \
  -H "content-type: application/json" \
  -d '{}'

Yanıtlar

  • 201Üretildi
  • 401Anahtar yok ya da geçersizHata
  • 409Anahtar sınırıHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
anahtarstring
onekstring
uyaristring

GET/v1/anahtar

ücretsiz (anahtarla)

Anahtarları listele (yalnız önekler)

Anahtar gerekli

Örnek istek

curl "$KILAVUZ/v1/anahtar" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
anahtarlarobject[]
anahtarlar[].idstring
anahtarlar[].onekstring
anahtarlar[].adstring | null
anahtarlar[].aktifboolean
anahtarlar[].son_kullanimstring | null
anahtarlar[].olusturmastring

DELETE/v1/anahtar/{id}

ücretsiz (anahtarla)

Anahtarı iptal et

Anahtar gerekli

Parametreler
AdYerTipAçıklama
idzorunluyolstring (uuid)

Örnek istek

curl -X DELETE "$KILAVUZ/v1/anahtar/<id>" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400Geçersiz idHata
  • 401Anahtar yok ya da geçersizHata
  • 404Anahtar bulunamadıHata
  • 409Son aktif anahtar iptal edilemez (API anahtarıyla çağrıldığında; panel oturumunda sınır yok)Hata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
iptalboolean
idstring

GET/v1/kullanim

ücretsiz (anahtarla)

Kalan kredi

Anahtar gerekli

API anahtarıyla ya da panel oturumuyla. Panel oturumu kullanım kaydına yazılmaz. Aylık plan açıkken (plan, paket, sinirlar, askida alanları) aylik plan kotası + ücretsiz kotadır (kaynak: "plan+ucretsiz"; parçalar plan ve aylik.ucretsiz), plan yoksa yalnız ücretsiz takvim ayı kotası. Harcama sırası: plan kotası → ücretsiz kota → paket kredisi (ekKredi, süresi dolmamış).

Örnek istek

curl "$KILAVUZ/v1/kullanim" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 401Anahtar geçersizHata
  • 403Hesap askıya alınmışHata
  • 404Hesap bulunamadıHata
Yanıt alanları
aylikobject
aylik.kaynak"plan+ucretsiz" | "ucretsiz"
aylik.limitinteger
aylik.harcananinteger
aylik.kalaninteger
aylik.notstring
aylik.ucretsizobject
planobject | null
plan.kodstring
plan.adstring
plan.limitinteger
plan.harcananinteger
plan.kalaninteger
plan.donemBitisstring (date-time)
plan.iptalIstendistring | null (date-time)
ekKrediinteger
paketobject
paket.kalaninteger
paket.sonrakiBitisstring | null (date-time)
paket.sonrakiBitisteKalaninteger | null
toplamKalaninteger
sinirlarobject
sinirlar.dakikainteger
sinirlar.gunlukTavaninteger | null
sinirlar.notstring
askidaboolean

GET/v1/bildirim/kredi-esik

ücretsiz (anahtarla)

Kredi eşik uyarısı ayarı

Anahtar gerekli

Örnek istek

curl "$KILAVUZ/v1/bildirim/kredi-esik" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
ayarobject | null
ayar.esikinteger
ayar.urlstringMaskeli (Slack adresi sırdır)
ayar.epostaboolean
ayar.sonGonderimstring | null (date-time)
ayar.sonKalaninteger | null
ayar.sonHatastring | null

POST/v1/bildirim/kredi-esik

ücretsiz (anahtarla)

Kredi eşik uyarısını kur ya da değiştir

Anahtar gerekli

Kalan kredi esikin altına inince en çok 24 saatte bir haber verir. url: HTTPS webhook (Slack hooks.slack.com ve Discord gelen webhook'u metin olarak, diğerleri imzalı JSON: {"olay":"kredi.esik","kalan":812,"esik":1000,"zaman":"…"}, başlık x-adreskit-imza: t=<unix>,v1=<hex HMAC-SHA256(imzaSirri, "<t>.<gövde>")>). Adres herkese açık bir IP'ye çözülmeli, yönlendirme izlenmez, 3 sn zaman aşımı. eposta: true: hesabın doğrulanmış e-postasına. İmza sırrı yalnız ilk kurulumda ve sirYenile: true ile döner. Ayar değişince 24 saat sayacı sıfırlanır.

İstek gövdesi
AlanTipAçıklama
esikzorunluinteger
urlstring | null (uri)
epostaboolean
sirYenileboolean

Örnek istek

curl -X POST "$KILAVUZ/v1/bildirim/kredi-esik" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR" \
  -H "content-type: application/json" \
  -d '{"esik":1000,"url":"https://hooks.slack.com/services/T000/B000/XXXX","eposta":true}'

Yanıtlar

  • 200Güncellendi
  • 201Kuruldu
  • 400Geçersiz eşik ya da adresHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
ayarobject
ayar.esikinteger
ayar.urlstringMaskeli (Slack adresi sırdır)
ayar.epostaboolean
ayar.sonGonderimstring | null (date-time)
ayar.sonKalaninteger | null
ayar.sonHatastring | null
imzaSirristring
imzaNotustring
uyarilarstring[]
Yanıt alanları
ayarobject
ayar.esikinteger
ayar.urlstringMaskeli (Slack adresi sırdır)
ayar.epostaboolean
ayar.sonGonderimstring | null (date-time)
ayar.sonKalaninteger | null
ayar.sonHatastring | null
imzaSirristring
imzaNotustring
uyarilarstring[]

DELETE/v1/bildirim/kredi-esik

ücretsiz (anahtarla)

Kredi eşik uyarısını kapat

Anahtar gerekli

Örnek istek

curl -X DELETE "$KILAVUZ/v1/bildirim/kredi-esik" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 401Anahtar yok ya da geçersizHata
  • 404Kurulu uyarı yokHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
kapatildiboolean

POST/v1/bildirim/kredi-esik/dene

ücretsiz (anahtarla)

Deneme uyarısı gönder

Anahtar gerekli

Olay kredi.esik.deneme; hesap başına dakikada bir.

Örnek istek

curl -X POST "$KILAVUZ/v1/bildirim/kredi-esik/dene" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 401Anahtar yok ya da geçersizHata
  • 404Kurulu uyarı yokHata
  • 429Dakikada bir denemeHata
Yanıt alanları
webhookstring | null`gonderildi` ya da `hata: …`
eposta"gonderildi" | "kapali" | "dogrulanmamis" | "hata" | null

E-posta doğrulama ve kurtarma

ücretsiz

GET/v1/eposta/dogrula

anahtarsız

E-posta adresini doğrula (e-postadaki bağlantı)

Anahtarsız

Parametreler
AdYerTipAçıklama
kodzorunlusorgustring

Örnek istek

curl "$KILAVUZ/v1/eposta/dogrula?kod=…"

Yanıtlar

  • 200Başarılı
  • 400Kod geçersiz ya da süresi dolmuşHata
Yanıt alanları
dogrulandiboolean

POST/v1/eposta/dogrulama-gonder

ücretsiz (anahtarla)

Doğrulama e-postasını yeniden gönder

Anahtar gerekli

Saatte en fazla 3. Bağlantı 24 saat geçerli; yeni bağlantı eskisini geçersiz kılar.

Örnek istek

curl -X POST "$KILAVUZ/v1/eposta/dogrulama-gonder" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
  • 503E-posta gönderilemiyorHata
Yanıt alanları
dogrulama"gonderildi" | "dogrulanmis"

POST/v1/kurtar

anahtarsız

Anahtar kurtarma kodu iste

Anahtarsız

Hesap olsun olmasın aynı yanıt döner. Kod e-postayla gelir, 30 dakika geçerli. IP başına saatte 5, hesap başına saatte 3 istek.

İstek gövdesi
AlanTipAçıklama
emailzorunlustring (email)

Örnek istek

curl -X POST "$KILAVUZ/v1/kurtar" \
  -H "content-type: application/json" \
  -d '{}'

Yanıtlar

  • 202İstek alındı
  • 400Geçersiz e-postaHata
  • 429Hız sınırıHata
  • 503E-posta gönderilemiyorHata
Yanıt alanları
mesajstring

POST/v1/kurtar/onay

anahtarsız

Kurtarma koduyla yeni anahtar al

Anahtarsız

eskileriIptal: true önceki bütün anahtarları kapatır. Kod tek kullanımlık; anahtar yanıtta bir kez döner.

İstek gövdesi
AlanTipAçıklama
kodzorunlustring
eskileriIptalbooleanvarsayılan false

Örnek istek

curl -X POST "$KILAVUZ/v1/kurtar/onay" \
  -H "content-type: application/json" \
  -d '{}'

Yanıtlar

  • 201Anahtar üretildi
  • 400Kod geçersiz ya da süresi dolmuşHata
  • 409Anahtar sınırı (kod harcanmadı)Hata
Yanıt alanları
anahtarstring
onekstring
iptalEdileninteger
uyaristring

Giriş

anahtarsız

Parolasız giriş: Google, Apple ya da e-postaya gelen 6 haneli kod. Hesap ilk girişte açılır.

GET/v1/giris/yontemler

anahtarsız

Açık giriş yöntemleri

Anahtarsız

Örnek istek

curl "$KILAVUZ/v1/giris/yontemler"

Yanıtlar

  • 200Başarılı
Yanıt alanları
googleboolean
appleboolean
epostaboolean

POST/v1/giris/eposta

anahtarsız

E-postaya giriş kodu gönder

Anahtarsız

6 haneli kod ve tek tıklık bağlantı, 15 dakika, tek kullanımlık. Hesap yoksa ilk girişte açılır. IP başına saatte 10, e-posta başına saatte 3. Gönderici yoksa 503.

İstek gövdesi
AlanTipAçıklama
emailzorunlustring (email)

Örnek istek

curl -X POST "$KILAVUZ/v1/giris/eposta" \
  -H "content-type: application/json" \
  -d '{}'

Yanıtlar

  • 202Kod gönderildi
  • 400Geçersiz e-postaHata
  • 429Hız sınırıHata
  • 503E-posta gönderilemiyorHata
Yanıt alanları
istekstring`gi_…`; kodla birlikte gönderilir
gecerlilikDakikainteger
mesajstring

POST/v1/giris/eposta/dogrula

anahtarsız

Kodla ya da bağlantıyla giriş, panel oturumu al

Anahtarsız

{istek, kod} ya da {baglanti}. 5 yanlış denemede kod yanar. Yanıtta panel belirteci; ayrıca API alanında httpOnly çerez.

İstek gövdesi
AlanTipAçıklama
istekstring
kodstring
baglantistring`gk_…`

Örnek istek

curl -X POST "$KILAVUZ/v1/giris/eposta/dogrula" \
  -H "content-type: application/json" \
  -d '{}'

Yanıtlar

  • 200Başarılı
  • 400Kod geçersiz, yanlış ya da süresi dolmuşHata
  • 429Hız sınırıHata
Yanıt alanları
oturumstring`ak_ses_…` panel belirteci; `Authorization: Bearer` ile gönderilir
turobject
sonstring (date-time)
yeniHesapbooleanBu girişte hesap açıldı mı

GET/v1/giris/google

anahtarsız

Google ile giriş (tarayıcı yönlendirmesi)

Anahtarsız

OIDC yetki kodu + PKCE. sonra=panel (varsayılan) girişten sonra PANEL_URL/giris/tamam#devir=… adresine döner.

Parametreler
AdYerTipAçıklama
sonrasorgustring

Örnek istek

curl "$KILAVUZ/v1/giris/google?sonra=…"

Yanıtlar

  • 302Google'a yönlendirme
  • 429Hız sınırıHata
  • 503Google girişi kapalıHata

GET/v1/giris/apple

anahtarsız

Apple ile giriş (tarayıcı yönlendirmesi)

Anahtarsız

Parametreler
AdYerTipAçıklama
sonrasorgustring

Örnek istek

curl "$KILAVUZ/v1/giris/apple?sonra=…"

Yanıtlar

  • 302Apple'a yönlendirme
  • 429Hız sınırıHata
  • 503Apple girişi kapalıHata

Panel oturumu

anahtarsız

Panel `authorization: Bearer ak_ses_…` belirteciyle çalışır; belirteç 12 saat geçerlidir. Anahtar, kullanım ve ödeme uçları bu belirteci de kabul eder.

POST/v1/oturum/devir

anahtarsız

Devir kodunu panel oturumuna çevir

Anahtarsız

Tarayıcı girişinden sonra panel #devir=ak_dvr_… alır (2 dakika, tek kullanımlık) ve bununla belirteç ister.

İstek gövdesi
AlanTipAçıklama
devirzorunlustring

Örnek istek

curl -X POST "$KILAVUZ/v1/oturum/devir" \
  -H "content-type: application/json" \
  -d '{}'

Yanıtlar

  • 200Başarılı
  • 400Devir kodu geçersiz, kullanılmış ya da süresi dolmuşHata
Yanıt alanları
oturumstring`ak_ses_…` panel belirteci; `Authorization: Bearer` ile gönderilir
turobject
sonstring (date-time)
yeniHesapbooleanBu girişte hesap açıldı mı

POST/v1/oturum/cikis

anahtarsız

Çıkış

Anahtarsız

Panel belirtecini, bağlı çerez oturumunu ve o çerezden doğan bütün belirteçleri kapatır.

Örnek istek

curl -X POST "$KILAVUZ/v1/oturum/cikis"

Yanıtlar

  • 200Başarılı
  • 401Oturum yok ya da süresi dolmuşHata
Yanıt alanları
cikisboolean

GET/v1/ben

anahtarsız

Hesap bilgisi

Anahtarsız

Örnek istek

curl "$KILAVUZ/v1/ben"

Yanıtlar

  • 200Başarılı
  • 401Oturum yok ya da süresi dolmuşHata
Yanıt alanları
hesapIdstring
emailstring
dogrulandiboolean
planstring
olusturmastring
aylikKrediinteger
ekKrediinteger
girisYontemleri"eposta" | "google" | "apple"[]
askidabooleanAylık plan açıkken
aylikPlanobject | nullAylık plan açıkken; etkin plan
aylikPlan.kodstring
aylikPlan.saglayicistring
aylikPlan.donemBitisstring
aylikPlan.iptalIstendistring | null

GET/v1/baglantilar

anahtarsız

OAuth bağlantıları (Claude vb.)

Anahtarsız

Örnek istek

curl "$KILAVUZ/v1/baglantilar"

Yanıtlar

  • 200Başarılı
  • 401Oturum yok ya da süresi dolmuşHata
Yanıt alanları
baglantilarobject[]
baglantilar[].idstring
baglantilar[].adstring | null
baglantilar[].istemciIdstring
baglantilar[].olusturmastring
baglantilar[].sonKullanimstring | null

DELETE/v1/baglantilar/{id}

anahtarsız

OAuth bağlantısını kapat

Anahtarsız

Parametreler
AdYerTipAçıklama
idzorunluyolstring (uuid)

Örnek istek

curl -X DELETE "$KILAVUZ/v1/baglantilar/<id>"

Yanıtlar

  • 200Başarılı
  • 400Geçersiz idHata
  • 401Oturum yok ya da süresi dolmuşHata
  • 404Bağlantı bulunamadıHata
Yanıt alanları
iptalboolean
idstring

DELETE/v1/hesap

anahtarsız

Hesabı sil (KVKK)

Anahtarsız

Gövdede onay hesabın e-postası olmalı. Ödemesi olmayan hesap silinir, ödemesi olan anonimleşir (e-posta, anahtarlar, oturumlar, bağlantılar silinir; ödeme kaydı kimliksiz kalır).

İstek gövdesi
AlanTipAçıklama
onayzorunlustring (email)

Örnek istek

curl -X DELETE "$KILAVUZ/v1/hesap" \
  -H "content-type: application/json" \
  -d '{}'

Yanıtlar

  • 200Başarılı
  • 400Onay e-postası eşleşmediHata
  • 401Oturum yok ya da süresi dolmuşHata
  • 409Yenilenen aylık plan var; önce DELETE /v1/abonelikHata
  • 501Hesap silme bu sunucuda kapalıHata
Yanıt alanları
sonuc"silindi" | "anonimlestirildi"

OAuth (MCP bağlayıcıları)

anahtarsız

Claude gibi MCP istemcilerinin anahtarsız bağlanması için. Bağlantılar panelden kesilir.

GET/.well-known/oauth-protected-resource

anahtarsız

Korunan kaynak meta verisi (RFC 9728)

Anahtarsız

Örnek istek

curl "$KILAVUZ/.well-known/oauth-protected-resource"

Yanıtlar

  • 200Başarılı
Yanıt alanları
resourcestring
authorization_serversstring[]
scopes_supportedstring[]

GET/.well-known/oauth-protected-resource/mcp

anahtarsız

`/mcp` için korunan kaynak meta verisi (RFC 9728)

Anahtarsız

Örnek istek

curl "$KILAVUZ/.well-known/oauth-protected-resource/mcp"

Yanıtlar

  • 200Başarılı
Yanıt alanları
resourcestring
authorization_serversstring[]

GET/.well-known/oauth-authorization-server

anahtarsız

Yetkilendirme sunucusu meta verisi (RFC 8414)

Anahtarsız

Örnek istek

curl "$KILAVUZ/.well-known/oauth-authorization-server"

Yanıtlar

  • 200Başarılı

POST/oauth/register

anahtarsız

Dinamik istemci kaydı (RFC 7591)

Anahtarsız

Yalnız açık istemci (token_endpoint_auth_method: none). Geri dönüş adresleri: Claude (https://claude.ai/api/mcp/auth_callback, https://claude.com/api/mcp/auth_callback), http://localhost ve 127.0.0.1 (port serbest) ve sunucuda tanımlı ekler. IP başına saatte 20.

İstek gövdesi
AlanTipAçıklama
redirect_uriszorunlustring[]
client_namestring
grant_typesstring[]
response_typesstring[]

Örnek istek

curl -X POST "$KILAVUZ/oauth/register" \
  -H "content-type: application/json" \
  -d '{}'

Yanıtlar

  • 201Kaydedildi
  • 400invalid_redirect_uri ya da invalid_client_metadata
  • 429Hız sınırı
Yanıt alanları
client_idstring
client_id_issued_atinteger
redirect_urisstring[]

GET/oauth/authorize

anahtarsız

Yetkilendirme (tarayıcı)

Anahtarsız

response_type=code, code_challenge_method=S256 ve state zorunlu. Giriş yoksa giriş sayfasına, sonra onay ekranına gider.

Parametreler
AdYerTipAçıklama
response_typesorgustring
client_idsorgustring
redirect_urisorgustring
statesorgustring
code_challengesorgustring
code_challenge_methodsorgustring
scopesorgustring
resourcesorgustring

Örnek istek

curl "$KILAVUZ/oauth/authorize?response_type=…&client_id=…&redirect_uri=…&state=…&code_challenge=…&code_challenge_method=…&scope=…&resource=…"

Yanıtlar

  • 302Onay ekranına ya da hatayla istemciye yönlendirme
  • 400Bilinmeyen istemci ya da geri dönüş adresi (HTML, yönlendirme yok)

POST/oauth/token

anahtarsız

Belirteç (authorization_code + PKCE, refresh_token)

Anahtarsız

Erişim belirteci 1 saat, yenileme belirteci 30 gün ve her kullanımda döner; eski yenileme belirteci yeniden kullanılırsa bağlantı kapatılır.

İstek gövdesi
AlanTipAçıklama
grant_typezorunlu"authorization_code" | "refresh_token"
client_idzorunlustring
codestring
redirect_uristring
code_verifierstring
refresh_tokenstring
resourcestring

Örnek istek

curl -X POST "$KILAVUZ/oauth/token" \
  -H "content-type: application/json" \
  -d '{}'

Yanıtlar

  • 200Başarılı
  • 400invalid_grant, invalid_target, unsupported_grant_type
  • 401invalid_client
  • 429Hız sınırı
Yanıt alanları
access_tokenstring
token_typeobject
expires_ininteger
refresh_tokenstring
scopestring

POST/oauth/revoke

anahtarsız

Belirteç iptali (RFC 7009)

Anahtarsız

İstek gövdesi
AlanTipAçıklama
tokenzorunlustring
token_type_hintstring

Örnek istek

curl -X POST "$KILAVUZ/oauth/revoke" \
  -H "content-type: application/json" \
  -d '{}'

Yanıtlar

  • 200İptal edildi (tanınmayan belirteçte de 200)
  • 429Hız sınırı

Ödeme

ücretsiz

Kredi paketleri yakında. Ödeme sağlayıcıları açılana kadar ödeme başlatma ucu 503 döner.

GET/v1/paketler

anahtarsız

Kredi paketleri ve fiyatlar

Anahtarsız

Örnek istek

curl "$KILAVUZ/v1/paketler"

Yanıtlar

  • 200Başarılı
Yanıt alanları
paketlerobject[]
paketler[].kodstring
paketler[].adstring
paketler[].krediinteger
paketler[].fiyatobject
gecerlilikAyintegerPaket kredisi satın alındığı günden bu kadar ay geçerli
sinirlarobjectPlansız, paket bakiyeli hesabın hesap başına sınırları
sinirlar.dakikainteger
sinirlar.gunlukTavaninteger
notstring

GET/v1/planlar

anahtarsız

Aylık planlar ve fiyatlar

Anahtarsız

Plan kotası dönem başında yenilenir, devretmez; ücretsiz aylık kota plana eklenir. Fiyatlar KDV dahil. Satın alma POST /v1/abonelik (açıldığında).

Örnek istek

curl "$KILAVUZ/v1/planlar"

Yanıtlar

  • 200Başarılı
Yanıt alanları
planlarobject[]
planlar[].kodstring
planlar[].adstring
planlar[].aylikKrediinteger
planlar[].fiyatobject
planlar[].sinirlarobject
notstring

POST/v1/odeme

ücretsiz (anahtarla)

Ödeme başlat

Anahtar gerekli

TRY → PayTR, USD → Polar. Sağlayıcı yapılandırılmamışsa 503. Paket kredisi 12 ay geçerli. faturaUlke (ISO 3166-1 alfa-2) ilk ödemede hesaba yazılır; Türkiye'ye faturalı hesap yalnız TRY öder (400 TR_YALNIZ_TRY).

İstek gövdesi
AlanTipAçıklama
paketzorunlustring
paraBirimi"TRY" | "USD"
faturaUlkestring

Örnek istek

curl -X POST "$KILAVUZ/v1/odeme" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR" \
  -H "content-type: application/json" \
  -d '{"paket":"kucuk","paraBirimi":"TRY","faturaUlke":"TR"}'

Yanıtlar

  • 201Ödeme sayfası hazır
  • 400Geçersiz paket, para birimi ya da ülkeHata
  • 401Anahtar yok ya da geçersizHata
  • 403Hesap askıya alınmışHata
  • 404Hesap bulunamadıHata
  • 429Kredi limiti aşıldıHata
  • 502Sağlayıcı hatasıHata
  • 503Bu para birimiyle ödeme kapalıHata
Yanıt alanları
odemeIdstring
paketstring
krediinteger
odemeUrlstring

GET/v1/odeme

ücretsiz (anahtarla)

Ödeme geçmişi

Anahtar gerekli

Örnek istek

curl "$KILAVUZ/v1/odeme" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
odemelerobject[]

GET/v1/abonelik

ücretsiz (anahtarla)

Etkin plan ve plan geçmişi

Anahtar gerekli

Örnek istek

curl "$KILAVUZ/v1/abonelik" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
etkinobject | null
etkin.idstring
etkin.planstring
etkin.saglayici"paytr" | "polar"
etkin.durumstring
etkin.fiyatobject
etkin.donemBaslangicstring (date-time)
etkin.donemBitisstring (date-time)
etkin.iptalIstendistring | null (date-time)
etkin.aylikKrediinteger
etkin.harcananinteger
etkin.kalaninteger
etkin.yenilenirboolean
gecmisobject[]

POST/v1/abonelik

ücretsiz (anahtarla)

Aylık plan başlat

Anahtar gerekli

USD → Polar abonelik (her ay otomatik çekim). TRY → PayTR tek ödeme, bir aylık dönem; otomatik çekim yok, bitişe 3 gün kala aynı plan yeniden alınabilir. Etkin plan varken 409. Türkiye'ye faturalı hesap yalnız TRY. Sağlayıcı yapılandırılmamışsa 503.

İstek gövdesi
AlanTipAçıklama
planzorunlustring
paraBirimi"TRY" | "USD"
faturaUlkestring

Örnek istek

curl -X POST "$KILAVUZ/v1/abonelik" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR" \
  -H "content-type: application/json" \
  -d '{"plan":"gelistirici","paraBirimi":"TRY","faturaUlke":"TR"}'

Yanıtlar

  • 201Ödeme sayfası hazır
  • 400Geçersiz plan, para birimi ya da ülkeHata
  • 401Anahtar yok ya da geçersizHata
  • 403Hesap askıya alınmışHata
  • 404Hesap bulunamadıHata
  • 409Etkin plan varHata
  • 429Kredi limiti aşıldıHata
  • 502Sağlayıcı hatasıHata
  • 503Bu para birimiyle plan kapalıHata
Yanıt alanları
abonelikIdstring
planstring
aylikKrediinteger
paraBirimistring
odemeUrlstring

DELETE/v1/abonelik

ücretsiz (anahtarla)

Planı dönem sonunda bitir

Anahtar gerekli

Yenileme durur; dönem sonuna kadar kota kullanılır, iade yok.

Örnek istek

curl -X DELETE "$KILAVUZ/v1/abonelik" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 401Anahtar yok ya da geçersizHata
  • 404İptal edilecek etkin plan yokHata
  • 409Abonelik sağlayıcıda henüz eşleşmediHata
  • 429Kredi limiti aşıldıHata
  • 502Sağlayıcı hatasıHata
  • 503USD ile plan kapalıHata
Yanıt alanları
iptalboolean
abonelikIdstring
donemBitisstring (date-time)

Sistem

ücretsiz

GET/health

anahtarsız

Canlılık

Anahtarsız

Örnek istek

curl "$KILAVUZ/health"

Yanıtlar

  • 200Başarılı
Yanıt alanları
okboolean

GET/openapi.json

anahtarsız

Bu şema

Anahtarsız

Örnek istek

curl "$KILAVUZ/openapi.json"

Yanıtlar

  • 200Başarılı

POST/v1/toplu

ücretsiz (anahtarla)

Genel toplu istek (en çok 50 alt istek)

Anahtar gerekli

Birden çok /v1/* çağrısını tek HTTP isteğinde yapar (5 eş zamanlı). Her alt istek aynı anahtarla, kendi fiyatıyla kredi düşer ve dakika sınırına ayrı sayılır; toplu ucun kendisi 0 kredi. Alt isteğin hatası yalnız kendi durumunda görünür, bütün yanıt 200 döner. Hesap, anahtar, ödeme, giriş, bildirim ve demo uçları alt istek olamaz. X-Kalan-Kredi alt isteklerden sonraki değerdir. Adres, IBAN, TCKN/VKN/telefon uçlarının kendi dizi girdisi (1.000'e kadar) bu uçtan daha verimlidir.

İstek gövdesi
AlanTipAçıklama
isteklerzorunluobject[]en fazla 50
istekler[].yolzorunlustring`/v1/` ile başlar; sorgu dizgesi içerebilir
istekler[].yontem"GET" | "POST"Yoksa: govde varsa POST, yoksa GET
istekler[].govdeobjectPOST gövdesi (JSON)
istekler[].sorguobject
istekler[].kimlikstringSonuçta aynen döner. en fazla 100 karakter

Örnek istek

curl -X POST "$KILAVUZ/v1/toplu" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR" \
  -H "content-type: application/json" \
  -d '{"istekler":[{"yol":"/v1/il/34"},{"yol":"/v1/iban/dogrula","govde":{"iban":"TR330006100519786457841326"},"kimlik":"musteri-7"}]}'

Yanıtlar

  • 200Başarılı
  • 400Geçersiz alt istek (sıra numarasıyla)Hata
  • 401Anahtar yok ya da geçersizHata
  • 41350'den fazla alt istekHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
sonuclarobject[]Girdi sırasıyla
sonuclar[].kimlikstring
sonuclar[].duruminteger
sonuclar[].govdeobjectAlt uç yanıtı (JSON ya da metin)
ozetobject
ozet.toplaminteger
ozet.basariliinteger
ozet.hataliinteger
ozet.kalanKrediinteger

Diğer

Henüz bir gruba yerleştirilmemiş uçlar.

borsa

1 kredi

GET/v1/borsa/fiyat

1 kredi

Ticaret borsası fiyatları (TOBB)

Anahtar gerekli

Ticaret borsalarında tescil edilen işlemlerin fiyatları: hububat, bakliyat, yağlı tohum, kuru meyve, pamuk, canlı hayvan… En az, en çok ve ortalama fiyat (TL / birim), miktar, işlem adedi ve tutarı. Kaynak TOBB Borsa Fiyat portalı; günde iki kez çekilir, istek anında kaynağa gidilmez. Her (borsa, ürün) için aralıktaki **son işlem günü** döner; tarih verilirse yalnız o gün işlem görenler. Kapsam: portalda o ay fiyat giren borsalar. Liste boşsa kredi düşmez.

Parametreler
AdYerTipAçıklama
urunsorgustringÜrün adında geçen metin (Türkçe karaktersiz de olur)
borsasorgustringBorsa adında geçen metin ya da TOBB borsa kodu
grupsorgustringAna ürün grubu (HUBUBAT, BAKLİYAT VE MAMÜLLERİ, KURU MEYVELER, TEKSTİL HAMMADDELERİ…)
tarihsorgustring (date)Tek işlem günü (YYYY-AA-GG); gun ile birlikte verilmez
gunsorguintegerBugünden geriye kaç gün

Örnek istek

curl "$KILAVUZ/v1/borsa/fiyat?urun=buğday&borsa=Konya&grup=hububat&tarih=2026-09-18&gun=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400tarih ya da gun geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 422bilinmeyen ürün grubuHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
aralikobject
aralik.baslangicstring
aralik.bitisstring
fiyatlarobject[]
fiyatlar[].borsastring
fiyatlar[].borsaKodstring
fiyatlar[].urunstring
fiyatlar[].urunKodstringTOBB ürün kodu, ana-alt
fiyatlar[].grupstring
fiyatlar[].birimstringKG, TON, ADET…
fiyatlar[].islemTarihistring (date)
fiyatlar[].islemZamanistringSon işlem, Türkiye saati (ISO 8601)
fiyatlar[].enAznumber
fiyatlar[].enCoknumber
fiyatlar[].ortalamanumberAğırlıklı ortalama, TL / birim
fiyatlar[].miktarnumber
fiyatlar[].adetinteger
fiyatlar[].tutarnumberTL
kaynakstring
kaynakUrlstring
lisansstring
guncellemestring | nullSon başarılı çekim (ISO 8601); hiç yoksa null
bayatboolean
notstring

GET/v1/borsa/tmo

1 kredi

TMO piyasa bülteni: yurt içi hububat ve bakliyat fiyatları

Anahtar gerekli

TMO Günlük Piyasa ve Borsa Fiyatları Bülteni'nin yurt içi bölümü: buğday çeşitleri, arpa, mısır, yulaf, soya, ayçiçeği, kepekler, mercimek, nohut, fasulye, pirinç. Her ürün için TMO'nun piyasa fiyatı (tur=piyasa), seçili ticaret borsalarının fiyatı ve miktarı (borsa, yer = borsa) ve sektör fiyatları (sektor, cesit). TL/ton ve $/ton; geçen yılın aynı günü ve yıllık değişim yalnız bültenin güncel gününde. Bülten PDF'i iş günleri yayımlanır; TMO sitesi yurt dışı IP'ye kapalı olduğundan Türkiye'deki bir makineden gündüz (08:30–20:30) iki saatte bir çekilir, o makine kapalıysa bayat (guncelleme son başarılı çekim). Bakliyat ve pirinç haftalık. Her kalem için aralıktaki **son gün** döner. TMO'nun kendi alım/satış fiyatları ve uluslararası fiyatlar bu uçta yok. Liste boşsa kredi düşmez.

Parametreler
AdYerTipAçıklama
urunsorgustringÜrün ya da çeşit adında geçen metin (Türkçe karaktersiz de olur)
yersorgustringBorsa adında geçen metin
tursorgu"piyasa" | "borsa" | "sektor"
tarihsorgustring (date)Tek gün (YYYY-AA-GG); gun ile birlikte verilmez
gunsorguintegerBugünden geriye kaç gün

Örnek istek

curl "$KILAVUZ/v1/borsa/tmo?urun=buğday&yer=Konya&tur=…&tarih=2026-09-18&gun=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400tarih, gun ya da tur geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
aralikobject
aralik.baslangicstring
aralik.bitisstring
fiyatlarobject[]
fiyatlar[].urunstringBültendeki grup başlığı, örn. MAKARNALIK BUĞDAY
fiyatlar[].cesitstring | nullSektör ve kepek satırlarında alt kalem
fiyatlar[].yerstring | nullBorsa satırında borsa
fiyatlar[].tur"piyasa" | "borsa" | "sektor"
fiyatlar[].tarihstring (date)
fiyatlar[].miktarTonnumber | null
fiyatlar[].tlTonnumber
fiyatlar[].usdTonnumber | null
fiyatlar[].gecenYilTlTonnumber | nullGeçen yılın aynı günü
fiyatlar[].yillikDegisimnumber | nullYüzde
fiyatlar[].bultenTarihistring (date)
kaynakstring
kaynakUrlstring
lisansstring
guncellemestring | nullSon başarılı çekim (ISO 8601); hiç yoksa null
bayatboolean
notstring

kesinti

1 kredi

GET/v1/kesinti

1 kredi

Planlı ve anlık elektrik/su kesintileri

Anahtar gerekli

İlin (isteğe bağlı ilçenin) süren ve gelecek kesintileri: dağıtım şirketlerinin ve su idarelerinin duyuruları. Veri günde iki kez çekilir, istek anında kaynağa gidilmez; kaynaklardan birinin son başarılı çekimi tazelik süresinden eskiyse bayat: true. Yalnız il, ilçe ve mahalle (sokak yok); açıklamalardan telefon, e-posta ve kişi adı izleri atılır. Elektrik: Samsun, Ordu, Çorum, Amasya, Sinop (YEDAŞ), Kayseri ve Sivas-Gemerek (KCETAŞ), Bursa, Balıkesir, Çanakkale, Yalova (UEDAŞ), İstanbul Avrupa yakası (BEDAŞ), Antalya, Burdur, Isparta (AEDAŞ). Su: İzmir, Ankara, Bursa. YEDAŞ ve BUSKİ yurt dışı IP'ye kapalı olduğu için Türkiye'deki bir makineden gündüz iki saatte bir çekilir; o makine kapalıysa veri eskir, bayat ve kaynağın guncellemesi bunu gösterir. Liste boşsa kredi düşmez. Kapsam dışı il 422, kapsam ve gerekçeli kapsamDisi listesi.

Parametreler
AdYerTipAçıklama
ilzorunlusorgustringİl adı ya da plaka
ilcesorgustring
tursorgu"elektrik" | "su"Yoksa ikisi

Örnek istek

curl "$KILAVUZ/v1/kesinti?il=Bursa&ilce=Nilüfer&tur=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400il eksik / tur geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 422Bu il için kaynak yok
  • 429Kredi limiti aşıldıHata
Yanıt alanları
ilstring
ilcestring | null
turstring | null
kesintilerobject[]
kesintiler[].tur"elektrik" | "su"
kesintiler[].ilcestring | null
kesintiler[].mahallelerstring[]
kesintiler[].baslangicstring | nullISO 8601 (+03:00)
kesintiler[].bitisstring | null
kesintiler[].planlibooleanBildirimli/planlı (true) ya da arıza (false)
kesintiler[].nedenstring | null
kesintiler[].aciklamastring | null
kesintiler[].kaynakstring
kapsamNotustring | nullKısmi kapsam notu (ör. İstanbul yalnız Avrupa yakası)
kaynaklarobject[]
kaynaklar[].adstring
kaynaklar[].aciklamastring
kaynaklar[].turstring
kaynaklar[].urlstring
kaynaklar[].lisansstring
kaynaklar[].anlikboolean
kaynaklar[].guncellemestring | null
kaynaklar[].bayatboolean
kaynakstring
guncellemestring | nullİlgili kaynakların en eski son başarılı çekimi (ISO 8601); biri hiç çekilmediyse null
bayatboolean
notstring

ilan

1 kredi

GET/v1/ilan/ara

1 kredi

ilan.gov.tr resmî ilanlarında arama

Anahtar gerekli

İhale, icra/mahkeme satışı (taşınmaz ve taşınır), kamu personel ve diğer resmî ilanların künyesi: başlık, kurum, il/ilçe, yayın ve satış/ihale tarihi, muhammen bedel, ilanın bağlantısı. Tebligat ve iflas ilanları alınmaz; icra ilanlarının metni ve dosya numarası saklanmaz. Veri günde iki kez çekilir, 180 gün tutulur. Yeniden eskiye; sonuç boşsa kredi düşmez.

Parametreler
AdYerTipAçıklama
qsorgustringBaşlıkta geçen metin
ilsorgustringİl adı ya da plaka
ilcesorgustring
kategorisorgu"ihale" | "emlak" | "vasita" | "personel" | "endustriyel" | "elektronik" | "muhtelif" | "hayvan"`emlak` icra/mahkeme taşınmaz satışları; `icra`, `tasinmaz` da kabul
baslangicsorgustring (date)En eski yayın günü
bitissorgustring (date)En yeni yayın günü
limitsorguinteger
sayfasorguinteger

Örnek istek

curl "$KILAVUZ/v1/ilan/ara?q=arsa&il=Çanakkale&ilce=…&kategori=…&baslangic=2026-09-18&bitis=2026-09-18&limit=…&sayfa=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400q en az 3 karakter / il, kategori, tarih, limit ya da sayfa geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
qstring | null
ilstring | null
kategoristring | null
sayfainteger
sonuclarobject[]
sonuclar[].ilanNostring
sonuclar[].kategoristring
sonuclar[].ilanTurustring | null
sonuclar[].baslikstring
sonuclar[].kurumstring | null
sonuclar[].ilstring | null
sonuclar[].ilcestring | null
sonuclar[].yayinTarihistring (date)
sonuclar[].islemTarihistring | nullBirinci satış günü ya da ihale tarihi
sonuclar[].muhammenBedelnumber | null
sonuclar[].ozelliklerobject
sonuclar[].urlstring
sonuclar[].kisiselbooleanBaşlıkta kişi adı izi vardı; başlık kategori adına indirgendi
kaynakstring
kaynakUrlstring
lisansstring
guncellemestring | nullSon başarılı çekim (ISO 8601); hiç yoksa null
bayatboolean
notstring

gtip

ücretsiz (anahtarla)

GET/v1/gtip/fasillar

ücretsiz (anahtarla)

GTİP bölüm ve fasılları (ücretsiz)

Anahtar gerekli

İstatistik Pozisyonlarına Bölünmüş Türk Gümrük Tarife Cetveli 2026 (Karar 10781): 21 bölüm, 98 fasıl; fasıl başına pozisyon ve 12 haneli tarife satırı sayısı.

Örnek istek

curl "$KILAVUZ/v1/gtip/fasillar" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
bolumlerobject[]
bolumler[].kodstring
bolumler[].tanimstring
bolumler[].fasillarobject[]
kaynakstring
kaynakUrlstring
lisansstring
kararstring
resmiGazetestring
guncellemestring (date)
uyaristring

GET/v1/gtip/ara

ücretsiz (anahtarla)

GTİP metin ya da kod başıyla ara (ücretsiz)

Anahtar gerekli

Tarife satırlarında (12 hane) Türkçe sözcük araması: çekim ekleri ve bitişik yazım ("zeytin yağı") tolere edilir, cetvelde geçmeyen yaygın adlar ("cep telefonu", "laptop") cetvel diline çevrilir (yorum). Önce bütün sözcükleri tutan satırlar; sıra pozisyon başlığının ve satırın kendi tanımının puanıyla. pozisyonlar eşleşmelerin toplandığı 4 haneli başlıklardır. Rakamla aranırsa (q=6109) o kod başındaki satırlar döner. Sözcük eşleşmesidir, sınıflandırma kuralı uygulamaz.

Parametreler
AdYerTipAçıklama
qzorunlusorgustring
fasilsorgustringYalnız bu fasıl
limitsorguinteger
sayfasorguinteger

Örnek istek

curl "$KILAVUZ/v1/gtip/ara?q=pamuklu tişört&fasil=61&limit=…&sayfa=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400q yok ya da parametre geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
sorgustring
yorumstring | null
sayfainteger
limitinteger
toplaminteger
tambooleanBütün sorgu sözcüklerini tutan satır var mı; yoksa kısmi eşleşmeler döner
satirlarobject[]
satirlar[].kodstring
satirlar[].kodNoktalistring
satirlar[].tanimstring
satirlar[].tamTanimstringPozisyondan satıra tanımlar, " › " ile
satirlar[].fasilstring
satirlar[].pozisyonstring
satirlar[].olcuBirimistring | null
satirlar[].kanuniVergiHaddinumber | null474 sayılı Kanun'daki had (%); uygulanan vergi değil
satirlar[].puannumber
pozisyonlarobject[]
pozisyonlar[].kodstring
pozisyonlar[].kodNoktalistring
pozisyonlar[].tanimstring
pozisyonlar[].esleseninteger
pozisyonlar[].puannumber
kaynakstring
kaynakUrlstring
lisansstring
kararstring
resmiGazetestring
guncellemestring (date)
uyaristring

GET/v1/gtip/{kod}

ücretsiz (anahtarla)

GTİP kodla getir: fasıl, pozisyon, alt pozisyon, tarife satırı (ücretsiz)

Anahtar gerekli

2 hane: fasıl ve pozisyonları (tur: fasil). Cetvelde satırı olan kod (4, 6, 8, 10, 12 hane): tanımı, pozisyondan kendisine yol, altındaki agac ve 12 hanede ölçü birimi ile 474 sayılı Kanun'daki vergi haddi (tur: dugum). Satırı olmayan ara kod: altındaki tarife satırları (tur: onek). Nokta ve boşluk olabilir: 0901.21, 8517.13.00.00.19.

Parametreler
AdYerTipAçıklama
kodzorunluyolstring

Örnek istek

curl "$KILAVUZ/v1/gtip/<kod>" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400kod biçimi geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 404kod 2026 cetvelinde yokHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
tur"fasil" | "dugum" | "onek"
kodstring
kodNoktalistring
tanimstring
duzey"pozisyon" | "alt_pozisyon" | "kombine_nomanklatur" | "milli_alt_acilim" | "gtip"
bolumobject
bolum.kodstring
bolum.tanimstring
fasilobject
fasil.kodstring
fasil.tanimstring
yolobject[]
yol[].kodstring | null
yol[].kodNoktalistring | null
yol[].duzeystring | null
yol[].tanimstring
olcuBirimistring | null
kanuniVergiHaddinumber | null
tarifeSatiriSayisiinteger
agacobject[]
pozisyonlarobject[]
pozisyonlar[].kodstring
pozisyonlar[].kodNoktalistring
pozisyonlar[].tanimstring
pozisyonlar[].tarifeSatiriSayisiinteger
satirlarobject[]
satirlar[].kodstring
satirlar[].kodNoktalistring
satirlar[].tanimstring
satirlar[].tamTanimstringPozisyondan satıra tanımlar, " › " ile
satirlar[].fasilstring
satirlar[].pozisyonstring
satirlar[].olcuBirimistring | null
satirlar[].kanuniVergiHaddinumber | null474 sayılı Kanun'daki had (%); uygulanan vergi değil
kaynakstring
kaynakUrlstring
lisansstring
kararstring
resmiGazetestring
guncellemestring (date)
uyaristring

nace

ücretsiz (anahtarla)

GET/v1/nace/kisimlar

ücretsiz (anahtarla)

NACE kısımları ve bölümleri (ücretsiz)

Anahtar gerekli

GİB faaliyet kodu listesi (2026, NACE Rev. 2.1 düzeni): 22 kısım (A–V) ve Türkiye'ye özgü Y; her kısmın bölümleri ve faaliyet sayısı.

Örnek istek

curl "$KILAVUZ/v1/nace/kisimlar" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
kisimlarobject[]
kisimlar[].kodstring
kisimlar[].tanimstring
kisimlar[].bolumlerobject[]
kisimlar[].faaliyetSayisiinteger
kaynakstring
kaynakUrlstring
lisansstring
guncellemestring (date)
uyaristring

GET/v1/nace/ara

ücretsiz (anahtarla)

NACE faaliyet kodu ara (ücretsiz)

Anahtar gerekli

Altı haneli faaliyet tanımlarında Türkçe sözcük araması (çekim ekleri tolere edilir; "yazılım", "kafe", "emlakçı" gibi listede geçmeyen adlar liste diline çevrilir, yorum). Rakamla aranırsa (q=6210) o kod başındaki faaliyetler. siniflar eşleşmelerin toplandığı 4 haneli NACE sınıflarıdır.

Parametreler
AdYerTipAçıklama
qzorunlusorgustring
kisimsorgustringYalnız bu kısım (A–V, Y)
limitsorguinteger
sayfasorguinteger

Örnek istek

curl "$KILAVUZ/v1/nace/ara?q=yazılım&kisim=K&limit=…&sayfa=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400q yok ya da parametre geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
sorgustring
yorumstring | null
sayfainteger
limitinteger
toplaminteger
tamboolean
faaliyetlerobject[]
faaliyetler[].kodstring
faaliyetler[].kodNoktalistring
faaliyetler[].tanimstring
faaliyetler[].kisimstring | null
faaliyetler[].sinifstring | null
faaliyetler[].yolobject[]
faaliyetler[].puannumber
faaliyetler[].tehlikeSinifiobject | nullİSG tehlike sınıfı (İşyeri Tehlike Sınıfları Tebliği Ek-1); kod tebliğde yoksa null. Ayrıntı /v1/isg/tehlike-sinifi/{kod}
siniflarobject[]
siniflar[].kodstring
siniflar[].kodNoktalistring
siniflar[].duzey"kisim" | "bolum" | "grup" | "sinif" | "faaliyet"
siniflar[].tanimstring
siniflar[].esleseninteger
kaynakstring
kaynakUrlstring
lisansstring
guncellemestring (date)
uyaristring

GET/v1/nace/{kod}

ücretsiz (anahtarla)

NACE kodla getir: kısım, bölüm, grup, sınıf, faaliyet (ücretsiz)

Anahtar gerekli

Kısım harfi (J), bölüm (62), grup (62.1), sınıf (62.10) ya da faaliyet (62.10.00); "0111xx" yazımı da olur. Üst düzeyler yolda, bir alt düzey altta.

Parametreler
AdYerTipAçıklama
kodzorunluyolstring

Örnek istek

curl "$KILAVUZ/v1/nace/<kod>" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400kod biçimi geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 404kod GİB listesinde yokHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
kodstring
kodNoktalistring
duzey"kisim" | "bolum" | "grup" | "sinif" | "faaliyet"
tanimstring
yolobject[]
yol[].kodstring
yol[].kodNoktalistring
yol[].duzey"kisim" | "bolum" | "grup" | "sinif" | "faaliyet"
yol[].tanimstring
altobject[]
alt[].kodstring
alt[].kodNoktalistring
alt[].duzey"kisim" | "bolum" | "grup" | "sinif" | "faaliyet"
alt[].tanimstring
faaliyetSayisiinteger
tehlikeSinifiobject | nullYalnız altı haneli faaliyette. İSG tehlike sınıfı (İşyeri Tehlike Sınıfları Tebliği Ek-1); kod tebliğde yoksa null. Ayrıntı /v1/isg/tehlike-sinifi/{kod}
tehlikeSinifi.sinif"az_tehlikeli" | "tehlikeli" | "cok_tehlikeli"
tehlikeSinifi.adstring
kaynakstring
kaynakUrlstring
lisansstring
guncellemestring (date)
uyaristring

isg

ücretsiz (anahtarla)

GET/v1/isg/tehlike-sinifi

ücretsiz (anahtarla)

İSG tehlike sınıfı listesi ve arama (ücretsiz)

Anahtar gerekli

İş Sağlığı ve Güvenliğine İlişkin İşyeri Tehlike Sınıfları Tebliği (RG 26.12.2012/28509) Ek-1, değişiklikleri işlenmiş (son: RG 1.4.2026/33211; Ek-1 13.3.2025'ten beri NACE Rev.2.1 kodlarıyla). ara faaliyet adı (Türkçe sözcük araması, "yazılım", "kafe" gibi gündelik adlar çevrilir) ya da kod başı ("62", "43.12"); boşsa bütün liste. sinif verilirse o sınıfa bağlı yükümlülükler de döner. dagilim süzgeçten sonraki bütün eşleşmelerin sınıf sayıları, kapsam GİB NACE listesiyle eşleşme.

Parametreler
AdYerTipAçıklama
arasorgustring
sinifsorgu"az_tehlikeli" | "tehlikeli" | "cok_tehlikeli"`az`, `cok` kısaltmaları da olur
limitsorguinteger
sayfasorguinteger

Örnek istek

curl "$KILAVUZ/v1/isg/tehlike-sinifi?ara=kuaför&sinif=…&limit=…&sayfa=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400parametre geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
sorgustring | null
yorumstring | null
sinif"az_tehlikeli" | "tehlikeli" | "cok_tehlikeli"
sayfainteger
limitinteger
toplaminteger
tamboolean
dagilimobject
dagilim.az_tehlikeliinteger
dagilim.tehlikeliinteger
dagilim.cok_tehlikeliinteger
faaliyetlerobject[]
faaliyetler[].kodstring
faaliyetler[].kodNoktalistring
faaliyetler[].tanimstring
faaliyetler[].tehlikeSinifi"az_tehlikeli" | "tehlikeli" | "cok_tehlikeli"
faaliyetler[].tehlikeSinifiAdistring
faaliyetler[].dipnotstringSınıfın yanındaki "*" dipnotu (asbest yasağı)
faaliyetler[].degisiklikobject13.3.2025'teki yeni Ek-1'den sonra satırı değiştiren tebliğ
faaliyetler[].eslesme"tam" | "yalniz_kod" | "yok"GİB NACE listesiyle (/v1/nace): tam = kod ve tanım aynı, yalniz_kod = kod aynı, tanım yazımı farklı, yok = kod GİB listesinde yok
yukumluluklerobject[]Yalnız `sinif` verilince
yukumlulukler[].kodstring
yukumlulukler[].baslikstring
yukumlulukler[].degernumber | string
yukumlulukler[].birimstring
yukumlulukler[].aciklamastring
yukumlulukler[].mevzuatobject
yukumlulukler[].ayrintiobject
kapsamobject
kapsam.tebligFaaliyetinteger
kapsam.gibFaaliyetinteger
kapsam.ortakKodinteger
kapsam.ayniTaniminteger
kapsam.yalnizTebligstring[]
kapsam.yalnizGibstring[]
kaynakstring
kaynakUrlstring
lisansstring
guncellemestring (date)
uyaristringHukuki tavsiye değildir; kesin sınıf SGK tescilindeki asıl işe bağlıdır (Tebliğ m.2)
tebligobject
teblig.adstring
teblig.resmiGazeteobject
teblig.ekstring
teblig.naceSurumustring
teblig.sonDegisiklikobject
teblig.degisiklikSayisiinteger

GET/v1/isg/tehlike-sinifi/{naceKodu}

ücretsiz (anahtarla)

NACE koduna göre İSG tehlike sınıfı ve yükümlülükler (ücretsiz)

Anahtar gerekli

Altı haneli NACE faaliyet kodu (62.10.00, 621000) → az tehlikeli / tehlikeli / çok tehlikeli ve sınıfa bağlı yükümlülükler: iş güvenliği uzmanı belge sınıfı ve çalışma süresi, işyeri hekimi çalışma süresi, periyodik muayene, risk değerlendirmesi ve acil durum planı yenileme, acil durum destek elemanı; her biri yönetmelik maddesi ve RG künyesiyle. Kod ekten kaldırılmışsa 404 + mulga; GİB listesinde olup tebliğde olmayan kod 404 + gibTanim.

Parametreler
AdYerTipAçıklama
naceKoduzorunluyolstring

Örnek istek

curl "$KILAVUZ/v1/isg/tehlike-sinifi/<naceKodu>" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400altı haneli kod değilHata
  • 401Anahtar yok ya da geçersizHata
  • 404kod tebliğ ekinde yok (mülga, yalnız GİB listesinde ya da hiç yok)Hata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
kodstring
kodNoktalistring
tanimstring
tehlikeSinifi"az_tehlikeli" | "tehlikeli" | "cok_tehlikeli"
tehlikeSinifiAdistring
dipnotstringSınıfın yanındaki "*" dipnotu (asbest yasağı)
degisiklikobject13.3.2025'teki yeni Ek-1'den sonra satırı değiştiren tebliğ
degisiklik.tur"degisik_satir" | "degisik_ibare" | "ek_satir"
degisiklik.aciklamastring
degisiklik.resmiGazeteobject
eslesme"tam" | "yalniz_kod" | "yok"GİB NACE listesiyle (/v1/nace): tam = kod ve tanım aynı, yalniz_kod = kod aynı, tanım yazımı farklı, yok = kod GİB listesinde yok
yukumluluklerobject[]
yukumlulukler[].kodstring
yukumlulukler[].baslikstring
yukumlulukler[].degernumber | string
yukumlulukler[].birimstring
yukumlulukler[].aciklamastring
yukumlulukler[].mevzuatobject
yukumlulukler[].ayrintiobject
kaynakstring
kaynakUrlstring
lisansstring
guncellemestring (date)
uyaristringHukuki tavsiye değildir; kesin sınıf SGK tescilindeki asıl işe bağlıdır (Tebliğ m.2)
tebligobject
teblig.adstring
teblig.resmiGazeteobject
teblig.ekstring
teblig.naceSurumustring
teblig.sonDegisiklikobject
teblig.degisiklikSayisiinteger

arac

0–1 kredi

GET/v1/arac/kasko-deger

1 kredi

TSB kasko değer listesi: marka/model/yıl

Anahtar gerekli

Türkiye Sigorta Birliği'nin aylık kasko değer listesi (~28.000 tip, son 15 model yılı), koda gömülü. marka, ara ya da markaKodu zorunlu; tip ve ara sözcük sözcük eşleşir (ör. marka=alfa romeo&tip=giulietta 1.4). yil verilirse yalnız o model yılı için değeri olan tipler, degerler o yıla daralır. Değer TL; ilan/piyasa fiyatı değil, kasko priminde ve hasarda esas alınan referans. Sonuç yoksa 0 kredi. Vergi için /v1/arac/otv ve /v1/vergi/mtv.

Parametreler
AdYerTipAçıklama
markasorgustringMarka adı (tam eşleşme önce, yoksa içeren)
tipsorgustringTip adındaki sözcükler
arasorgustringMarka + tip adında serbest arama
markaKodusorgustringTSB marka kodu
tipKodusorgustringTSB tip kodu (markaKodu ile)
yilsorguintegerModel yılı
limitsorguinteger
sayfasorguinteger

Örnek istek

curl "$KILAVUZ/v1/arac/kasko-deger?marka=alfa romeo&tip=giulietta 1.4&ara=…&markaKodu=…&tipKodu=…&yil=2016&limit=…&sayfa=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400marka/ara/markaKodu yok ya da parametre geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
toplaminteger
sayfainteger
limitinteger
araclarobject[]
araclar[].markaKodustring
araclar[].markastring
araclar[].tipKodustring
araclar[].tipstring
araclar[].degerlerobject[]
aystringListe ayı, YYYY-AA
listeAdistring
kaynakstring
kaynakUrlstring
sayfaUrlstring
lisansstring
guncellemestring (date)
bayatbooleanGömülü liste bu aydan eski
uyaristring

GET/v1/arac/kasko-deger/markalar

ücretsiz (anahtarla)

Kasko listesindeki markalar (ücretsiz)

Anahtar gerekli

Örnek istek

curl "$KILAVUZ/v1/arac/kasko-deger/markalar" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 401Anahtar yok ya da geçersizHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
toplaminteger
markalarobject[]
markalar[].kodstring
markalar[].adstring
markalar[].tipSayisiinteger
aystring
yillarinteger[]
kaynakstring
kaynakUrlstring
sayfastring
lisansstring
guncellemestring (date)

GET/v1/arac/trafik-azami-prim

1 kredi

Zorunlu trafik sigortası azami primi

Anahtar gerekli

SBM'nin yayımladığı azami (tavan) brüt prim tablosu, son üç ay: il × araç grubu × basamak (0 en pahalı … 8 en ucuz, ilk poliçe 4) × özel/tüzel × yakıt (elektrik/diğer) × engelli indirimi. il ya da (grup + basamak) zorunlu; bütün filtreler verilip tek satır kalırsa azamiPrim üst düzeyde döner. Sigortacı bu tutarı aşamaz, altında fiyat verebilir. Sonuç yoksa 0 kredi.

Parametreler
AdYerTipAçıklama
ilsorgustringPlaka kodu ya da il adı
grupsorgustringAraç grubu kodu (01–15) ya da adı; liste yanıtın hata gövdesinde
basamaksorguinteger
ozelTuzelsorgu"ozel" | "tuzel"
yakitsorgu"diger" | "elektrik"
engellisorgubooleanEngelli indirimli tavan (yalnız basamak 2–8, bazı gruplarda yok)
aysorgustringYYYY-AA; tablodaki son üç aydan biri, verilmezse en yenisi

Örnek istek

curl "$KILAVUZ/v1/arac/trafik-azami-prim?il=34&grup=otomobil&basamak=4&ozelTuzel=…&yakit=…&engelli=…&ay=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400il ya da grup+basamak yok, il/grup bulunamadı ya da parametre geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 422ay tabloda yok (aylar)Hata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
aystring
aylarstring[]
azamiPrimnumberTek satır kaldığında, TL
toplaminteger
satirlarobject[]
satirlar[].ilstring | null
satirlar[].plakainteger
satirlar[].grupKodustring
satirlar[].grupstring
satirlar[].basamakinteger
satirlar[].ozelTuzel"ozel" | "tuzel"
satirlar[].yakit"diger" | "elektrik"
satirlar[].engelliIndirimiboolean
satirlar[].azamiPrimnumber
birimstring
kaynakstring
kaynakUrlstring
lisansstring
guncellemestring (date)
bayatboolean
uyaristring

GET/v1/arac/otv

ücretsiz (anahtarla)

Binek otomobil ÖTV hesabı (ücretsiz)

Anahtar gerekli

ÖTV (II) sayılı liste 87.03 binek otomobil oranları, Cumhurbaşkanı Kararı 10115 (RG 24.07.2025) ve 31.07.2026'dan itibaren 100.000 TL asgari maktu vergi; ÖTV + %20 KDV. matrah (vergisiz fiyat) verilirse ileri, fiyat (vergiler dahil) verilirse matrah geriye çözülür. Dilimler kademeli değildir: bütün matrah dilimin oranıyla vergilenir. Engelli/taksi istisnaları ve ticari araçlar kapsam dışı. Yıllık vergi için /v1/vergi/mtv.

Parametreler
AdYerTipAçıklama
motorsorgu"icten" | "hibrit" | "sarjli_hibrit" | "elektrik"
motorHacmisorgunumbercm³ (elektrik dışında zorunlu)
elektrikGucusorgunumberkW: elektrikte motor gücü, hibritte elektrik motoru gücü
co2sorgunumberŞarjlı hibrit: CO₂ g/km
menzilsorgunumberŞarjlı hibrit: elektrikli menzil km
matrahsorgunumberÖTV matrahı TL (fiyat ile birlikte verilmez)
fiyatsorgunumberÖTV ve KDV dahil satış fiyatı TL
tarihsorgustring (date)Verilmezse bugün (2025-07-24 … 2026-12-31)

Örnek istek

curl "$KILAVUZ/v1/arac/otv?motor=…&motorHacmi=1499&elektrikGucu=…&co2=…&menzil=…&matrah=800000&fiyat=…&tarih=2026-09-18" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400motor/motorHacmi/matrah/fiyat eksik ya da geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 422tarih kapsam dışı ya da fiyata karşılık matrah yokHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
satirstring
tanimstring
dilimstring
matrahnumber
otvOraninumber%
nispiOtvnumber
otvnumber
asgariMaktuUygulandiboolean
kdvMatrahinumber
kdvnumber
vergiliFiyatnumber
vergiPayinumber%
digerCozumlerobject[]Fiyattan çözümde aynı fiyatı veren başka matrahlar
belirsizboolean
belirsizlikstring
asgariMaktuobject
asgariMaktu.tutarnumber
asgariMaktu.baslangicstring
asgariMaktu.notstring
tarihstring
ilgiliobject
kaynakobject
kaynak.belgestring
kaynak.rgstring
kaynak.urlstring
guncellemestring (date)
uyaristring

sigorta

ücretsiz (anahtarla)

GET/v1/sigorta/dask

ücretsiz (anahtarla)

DASK (zorunlu deprem sigortası) primi (ücretsiz)

Anahtar gerekli

Sigorta bedeli = brüt m² × yapı tarzının o ayki birim maliyeti (azami teminatla sınırlı); prim = bedel × risk grubunun binde oranı. **Risk grubu il/ilçeden çıkmaz** (DASK adres koduna, deprem tehlike haritasına ve zemine göre belirler, eşleme yayımlanmıyor): riskGrubu verin, verilmezse yedi grubun primi döner. Birim maliyetler aylık (poliçe başlangıç ayı). Trafik sigortası için /v1/arac/trafik-azami-prim.

Parametreler
AdYerTipAçıklama
m2zorunlusorgunumberBrüt yüzölçümü
yapiTarzisorgu"betonarme" | "diger"
riskGrubusorgustring1–7 ya da I–VII
tarihsorgustring (date)Poliçe başlangıcı; verilmezse bugün

Örnek istek

curl "$KILAVUZ/v1/sigorta/dask?m2=100&yapiTarzi=…&riskGrubu=3&tarih=2026-09-18" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR"

Yanıtlar

  • 200Başarılı
  • 400m2, yapiTarzi, riskGrubu ya da tarih geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 422poliçe ayının birim maliyeti gömülü değil (aylar)Hata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
m2number
yapiTarzistring
yapiTanimistring
tarihstring
aystring
birimMaliyetnumber
hesaplananBedelnumber
azamiTeminatnumber
sigortaBedelinumber
azamiTeminataTakildiboolean
primlerobject[]
primler[].riskGrubuinteger
primler[].grupstring
primler[].oranBindenumber
primler[].primnumber
primnumberriskGrubu verildiyse
oranlarBindenumber[]
riskGrubuNotustring
ilgiliobject
kaynakstring
kaynakUrlstring
tarifeUrlstring
lisansstring
guncellemestring (date)
uyaristring

fatura

1 kredi

POST/v1/fatura/dogrula

1 kredi

e-Fatura / e-Arşiv UBL-TR belge doğrulama: XSD + GİB şematronu

Anahtar gerekli

Gövde ham XML (Content-Type: application/xml) ya da JSON {"xml": "...", "tur": "efatura|earsiv"}, en çok 3 MB. Sırayla: iyi biçimli XML; UBL 2.1 XSD (GİB UBL-TR 1.2.1 paketi; Invoice, CreditNote, DespatchAdvice, ReceiptAdvice, ApplicationResponse); GİB e-Fatura paketindeki UBL-TR şematronunun bütün kuralları (zarf dahil). tur verilmezse ProfileID EARSIVFATURA ise e-Arşiv (GİB type=earchive parametresi) sayılır. İmza (XAdES), mükellef/etiket sorgusu ve tekillik denetlenmez; kapsam yanıtta kapsam alanında. Belge saklanmaz, günlüğe yazılmaz. Biçim, şema ya da şematron hatası olan belge de 200 döner (gecerli: false) ve 1 kredi düşer.

Parametreler
AdYerTipAçıklama
tursorgu"efatura" | "earsiv"
İstek gövdesi
AlanTipAçıklama
xmlzorunlustring
tur"efatura" | "earsiv"

Örnek istek

curl -X POST "$KILAVUZ/v1/fatura/dogrula?tur=…" \
  -H "authorization: Bearer $KILAVUZ_ANAHTAR" \
  -H "content-type: application/json" \
  -d '{}'

Yanıtlar

  • 200Başarılı
  • 400XML gövdesi yok ya da tur geçersizHata
  • 401Anahtar yok ya da geçersizHata
  • 413belge 3 MB'tan büyükHata
  • 422DOCTYPE içeren belgeHata
  • 429Kredi limiti aşıldıHata
Yanıt alanları
gecerliboolean
bicimobject
bicim.gecerliboolean
bicim.hatastring
belgeobject
belge.kokstring
belge.zarfboolean
belge.profilstring | null
belge.faturaTipistring | null
belge.sematronTuru"efatura" | "earchive"
semaobject
sema.durum"gecerli" | "gecersiz" | "uygulanmadi" | "calismadi"
sema.hatalarobject[]
sema.toplamHatainteger
sema.nedenstring
sematronobject
sematron.durum"gecerli" | "gecersiz" | "yarida"
sematron.hatalarobject[]
sematron.toplamHatainteger
sematron.denetleneninteger
sematron.yaridaboolean
sematron.degerlendirilemeyenobject[]
kapsamstring
paketobject
kaynakstring
guncellemestring | null
notstring

Şemalar

Hata

hataher zamanstring

Tatil

tarihher zamanstring (date)
adher zamanstring
turher zaman"resmi" | "dini"
yarimGunher zamanbooleanArifeler ve 28 Ekim: 13.00'te başlar
baslangicSaatiobject

PiyasaFiyati

kodher zamanstringdoviz.com kodu: gram-altin, ceyrek-altin, ons, USD…
adher zamanstring
alisher zamannumber
satisher zamannumber
degisimYuzdenumber | null
saatstring | nullKaynağın son fiyat saati, Türkiye saati SS:DD (tarih yok)
birimher zaman"TRY" | "USD"

HavaSaati

zamanstringAdımın başlangıcı, UTC
sicaklikCnumber | null
nemYuzdenumber | null
ruzgarHizMsnumber | null
ruzgarYonDerecenumber | null
basincHpanumber | null
bulutYuzdenumber | null
yagisMmnumber | null
yagisSaat1 | 6 | nullyagisMm kaç saatlik
durumstring | nullTürkçe gökyüzü durumu
durumKodstring | nullMET sembol kodu

MesafeUcu

girdistring
tur"il" | "koordinat"
ilstring | null
plakainteger | null
latnumber
lonnumber

IlKarti

plakaher zamaninteger1–81
adher zamanstring
bolgeher zaman"Marmara" | "Ege" | "Akdeniz" | "İç Anadolu" | "Karadeniz" | "Doğu Anadolu" | "Güneydoğu Anadolu"Coğrafi bölge (idari birim değil)
ibbsher zamanobjectİstatistiki Bölge Birimleri Sınıflaması (NUTS) kodları
ibbs.duzey1string
ibbs.duzey2string
ibbs.duzey3string
alanKodlariher zamanobject[]
alanKodlari[].kodstring
alanKodlari[].bolumstringYalnız İstanbul: "Avrupa Yakası"/"Anadolu Yakası"
buyuksehirher zamanboolean6360 sayılı Kanun
komsularher zamanstring[]Kara sınırı paylaşan iller
ilceSayisiher zamaninteger
postaKoduAraligiobjectİle ayrılan blok; hepsi kullanımda değil
postaKoduAraligi.basstring
postaKoduAraligi.sonstring
nufusher zamanobject
nufus.yilinteger
nufus.toplaminteger
nufus.ilIlceMerkeziinteger
nufus.beldeKoyintegerBüyükşehirde 0
nufus.yillikArtisHizinumber | nullBinde
nufus.yogunluknumberKişi/km²
yuzolcumunumberkm², göl ve baraj yüzeyleri hariç (TÜİK yoğunluğundan türetildi)
rakiminteger | nullİl merkezi rakımı, metre (Copernicus DEM GLO-90, yaklaşık; MGM istasyon rakımı değil)
merkezobject | nullŞehir merkezi POI'lerinin medyanı (Overture), yaklaşık
merkez.latnumber
merkez.lonnumber

IlceNufusu

adher zamanstring
nufusher zamaninteger
yillikArtisHizinumber | nullBinde
merkezobject | null
merkez.latnumber
merkez.lonnumber

NufusYili

yilher zamaninteger
nufusher zamaninteger

IbbsBirimi

kodher zamanstring
adher zamanstring
uststringBir üst düzeyin kodu; Düzey 1'de yok
plakaintegerYalnız Düzey 3

VergiDairesi

kodstring | null5 haneli muhasebe birim kodu; şubede null
adstring
tur"mudurluk" | "sube" | "defterdarlik"
ilKodustringPlaka kodu, "01"
ilstring
ilcestringİl merkezindekiler "Merkez"

TrafikCezasi

maddestringKTK madde/fıkra/bent
baslikstring
tutarnumber | nullTL; aralıklı cezada null
altnumber
ustnumber
ehliyetGunintegerSürücü belgesi geri alma, gün
belgeIptalboolean
aracMenGuninteger
cezaPuani5 | 10 | 15 | 20EGM 2026 rehberi (KTY Ek-35)
yururlukstring (date)
dayanakstring
kaynak"resmi" | "rehber" | "hesap" | "ikincil"resmi: 7574 RG metni; rehber: EGM 2026 ceza rehberi
notstring
belirsizboolean
etiketlerstring[]

HarcKalemi

adstring
tutarnumber | nullMaktu tutar, TL; oransal kalemde null
bindenumber
altSinirnumber
ustSinirnumber
cins"harc" | "degerli-kagit" | "ucret" | "pay"
sure"6ay" | "1yil" | "2yil" | "3yil" | "10yil" | "suresiz"
dayanakstringTarifedeki yeri
notstring
belirsizboolean

Gecerlilik

baslangicher zamanstring (date)
bitisher zamanstring | null (date)null: yenisi çıkana kadar

ResmiKaynak

belgeher zamanstring
rgher zamanstring | nullResmî Gazete tarihi / sayısı
urlher zamanstring

OranDonemi

baslangicher zamanstring (date)
bitisher zamanstring | null (date)null: güncel dönem
oranher zamannumberYüzde (gecikme zammında aylık, tecil faizinde yıllık)
dayanakher zamanstring

OranParcasi

baslangicstring (date)
bitisstring (date)
orannumber
dayanakstring
ayintegerYalnız gecikme zammında: tam ay
guninteger
tutarnumber

Dilim

ustnumber | nullDilim üst sınırı (TL); son dilimde null
orannumberYüzde

Ayrisma

mahallestring
koystring
yolAdistring
yolTipistring
binaNostring
dairestring
katstring
blokstring
binastring
sitestring
postaKodustring
serbeststring[]Çapaya bağlanamayan kelimeler
duzeltmelerstring[]

AdresSonucu

ilstring
ilcestring
mahallestring
yolstring
binaNostring
dairestring
katstring
latnumber
lonnumber
hassasiyether zaman"sokak" | "mahalle" | "ilce" | "il" | "yok"Koordinatın ayrıntı düzeyi (bileşenin bulunup bulunmadığı değil). `mahalle` şimdilik üretilmiyor
dogrulananher zamanobjectHangi bileşenin resmî sicilde bulunduğu; koordinattan bağımsız
dogrulanan.ilboolean
dogrulanan.ilceboolean
dogrulanan.mahalleboolean
dogrulanan.yolboolean
guvenher zamannumber0–1
duzeltmelerher zamanstring[]Yapılan düzeltmelerin okunur dökümü
ayrismaher zamanAyrisma

IbanSonucu

gecerliher zamanboolean
ibanstring
bicimlistring
ulkestring
bankaKodustring
hesapNostring
bankaobject
hata"bos" | "gecersiz_karakter" | "bilinmeyen_ulke" | "uzunluk" | "kontrol_basamagi" | "tr_ayrilmis_hane"
aciklamastring

Kur

kodstring
adstring
adEnstring
birimintegerTCMB kote birimi (JPY 100); kurlar 1 birime indirgenmiş
alisnumber | null
satisnumber | null
efektifAlisnumber | null
efektifSatisnumber | null

KimlikSonucu

gecerliher zamanboolean
tur"vkn" | "tckn"Yalnız VKN ucunda
vknstringYalnız geçerli 10 haneli VKN
hata"bos" | "gecersiz_karakter" | "uzunluk" | "ilk_hane_sifir" | "kontrol_10" | "kontrol_11" | "kontrol_basamagi"
aciklamastring
nother zamanstring

TelefonSonucu

gecerliher zamanboolean
e164string | null+905321234567; 444 numaralarında null
ulusalstring0532 123 45 67
tur"gsm" | "m2m" | "sabit" | "ucretsiz_800" | "katma_degerli_900" | "ulusal_850" | "kurumsal_444"
ilstringYalnız sabit hatlarda
hata"bos" | "gecersiz_karakter" | "yabanci_ulke" | "uzunluk" | "tanimsiz_onek"
aciklamastring

TeslimTahmini

gonderimTarihiher zamanstring (date)
kabulTarihiher zamanstring (date)Gönderinin işleme alındığı ilk iş günü
gonderenher zamanobject
gonderen.ilstring
gonderen.bolgestring
aliciher zamanobject
alici.ilstring
alici.bolgestring
tasiyicistring
isGunuher zamaninteger
tahminiTeslimher zamanstring (date)
enGecher zamanstring (date)Tahminin bir iş günü sonrası
nother zamanstringTahmin, taahhüt değil

SentetikKayit

adstring
soyadstring
unvanstringYalnız vkn istendiğinde: ticaret unvanı
tcknstringKontrol haneleri tutar, kayıtlı kişi değildir
vknstring
ibanstringTR, mod-97 geçerli; banka kodu TCMB listesinden
gsmstringBTK planındaki gerçek 5xx öneki + rastgele abone
epostastringHer zaman example.com (RFC 2606)
adresobjectİl/ilçe/mahalle/sokak sicilden gerçek; kapı ve daire rastgele
adres.ilstring
adres.ilcestring
adres.mahallestring
adres.yolstring
adres.binaNostring
adres.dairestring
adres.tekSatirstring
dogumTarihistring (date)
plakastring

EtiketTarafGirdisi

adresher zamanstringen fazla 1000 karakter
adstringKişi ya da firma adı; yalnız etikete geçirilir. en fazla 100 karakter

EtiketTaraf

adstringGirdiden aynen geçirilir; çözümlenmez, saklanmaz
ilstring | null
ilcestring | null
mahallestring | null
yolstring | null
binaNostring | null
dairestring | null
katstring | null
sitestring | null
blokstring | null
satirlarher zamanstring[]Etikete basılacak satırlar; her biri en çok 35 karakter
dogrulananher zamanobject
dogrulanan.ilboolean
dogrulanan.ilceboolean
dogrulanan.mahalleboolean
dogrulanan.yolboolean
guvenher zamannumber0–1
eksiklerher zamanstring[]Etiket için kritik olup çözülemeyenler (il, ilce, yol, binaNo)

KargoKonum

ilstring | null
ilcestring | null
ulkestring | null

KargoSonucu

tasiyiciher zamanstring
takipNoher zamanstring
bulunduher zamanboolean
mesajstringYalnız bulundu=false
durum"hazirlaniyor" | "yolda" | "dagitimda" | "teslim_edildi" | "iade" | "bilinmiyor"
durumMetnistring | null
teslimEdildiboolean
gonderiTarihistring | null
tahminiTeslimstring | null
cikisKargoKonum
varisKargoKonum
teslimBirimiobject | null
teslimBirimi.adstring | null
teslimBirimi.telefonstring | null
hareketlerobject[]
hareketler[].tarihstring | null
hareketler[].yerstring | null
hareketler[].aciklamastring | null

Şema derleme anında https://api.kilavuzapi.com/openapi.json ucundan alındı.