{"openapi":"3.1.0","info":{"title":"Adreskit API","version":"0.1.0","description":"Türkiye verisi için tek anahtar, tek kredi havuzu: adres çözümleme ve doğrulama, IBAN, TCKN/VKN/telefon algoritmik doğrulama (`/v1/dogrula/*`), TCMB ve ECB kurları, kargo takibi. Aynı araçlar MCP olarak da sunulur (`POST /mcp`). Anahtar almak için `POST /v1/kayit`. Hatalar her zaman `{\"hata\": \"…\"}` biçimindedir. Sınırlar: anahtar başına dakikalık istek sınırı (bütün `/v1` ve `/mcp`, ücretsiz uçlar dahil; `X-RateLimit-Limit`, `X-RateLimit-Remaining`, `X-RateLimit-Reset` başlıkları, aşımda 429 + `Retry-After`) ve 0 kredili uçlarda anahtar başına günlük tavan (İstanbul saatiyle gece yarısı sıfırlanır). Kalan kredi `X-Kalan-Kredi` başlığında."},"servers":[{"url":"https://xacw6yute6famacx6a7tjafkfq0hqmug.lambda-url.eu-central-1.on.aws"}],"tags":[{"name":"adres"},{"name":"iban"},{"name":"kur"},{"name":"kargo"},{"name":"dogrulama"},{"name":"eczane"},{"name":"takvim"},{"name":"kvkk"},{"name":"ticaret"},{"name":"hukuk"},{"name":"metin"},{"name":"akaryakit"},{"name":"hal"},{"name":"deprem"},{"name":"ibb"},{"name":"altin"},{"name":"su"},{"name":"hava"},{"name":"resmi-gazete"},{"name":"vergi-dairesi"},{"name":"vergi"},{"name":"ceza"},{"name":"harc"},{"name":"ekonomi"},{"name":"musteri"},{"name":"enerji"},{"name":"egitim"},{"name":"test-verisi"},{"name":"urun"},{"name":"bordro"},{"name":"hesap"},{"name":"odeme"},{"name":"mcp"},{"name":"demo"},{"name":"sistem"},{"name":"ulasim"},{"name":"ilac"},{"name":"il"},{"name":"nufus"},{"name":"telefon"},{"name":"eposta"}],"components":{"securitySchemes":{"anahtar":{"type":"http","scheme":"bearer","description":"`ak_live_…` biçiminde API anahtarı"}},"schemas":{"Hata":{"type":"object","required":["hata"],"properties":{"hata":{"type":"string"}}},"Tatil":{"type":"object","required":["tarih","ad","tur","yarimGun"],"properties":{"tarih":{"type":"string","format":"date"},"ad":{"type":"string"},"tur":{"enum":["resmi","dini"]},"yarimGun":{"type":"boolean","description":"Arifeler ve 28 Ekim: 13.00'te başlar"},"baslangicSaati":{"const":"13:00"}}},"PiyasaFiyati":{"type":"object","required":["kod","ad","alis","satis","birim"],"properties":{"kod":{"type":"string","description":"doviz.com kodu: gram-altin, ceyrek-altin, ons, USD…"},"ad":{"type":"string"},"alis":{"type":"number"},"satis":{"type":"number"},"degisimYuzde":{"type":["number","null"]},"saat":{"type":["string","null"],"description":"Kaynağın son fiyat saati, Türkiye saati SS:DD (tarih yok)"},"birim":{"type":"string","enum":["TRY","USD"]}}},"HavaSaati":{"type":"object","properties":{"zaman":{"type":"string","description":"Adımın başlangıcı, UTC"},"sicaklikC":{"type":["number","null"]},"nemYuzde":{"type":["number","null"]},"ruzgarHizMs":{"type":["number","null"]},"ruzgarYonDerece":{"type":["number","null"]},"basincHpa":{"type":["number","null"]},"bulutYuzde":{"type":["number","null"]},"yagisMm":{"type":["number","null"]},"yagisSaat":{"type":["integer","null"],"enum":[1,6,null],"description":"yagisMm kaç saatlik"},"durum":{"type":["string","null"],"description":"Türkçe gökyüzü durumu"},"durumKod":{"type":["string","null"],"description":"MET sembol kodu"}}},"MesafeUcu":{"type":"object","properties":{"girdi":{"type":"string"},"tur":{"type":"string","enum":["il","koordinat"]},"il":{"type":["string","null"]},"plaka":{"type":["integer","null"]},"lat":{"type":"number"},"lon":{"type":"number"}}},"IlKarti":{"type":"object","required":["plaka","ad","bolge","ibbs","alanKodlari","buyuksehir","komsular","ilceSayisi","nufus"],"properties":{"plaka":{"type":"integer","minimum":1,"maximum":81},"ad":{"type":"string"},"bolge":{"type":"string","enum":["Marmara","Ege","Akdeniz","İç Anadolu","Karadeniz","Doğu Anadolu","Güneydoğu Anadolu"],"description":"Coğrafi bölge (idari birim değil)"},"ibbs":{"type":"object","description":"İstatistiki Bölge Birimleri Sınıflaması (NUTS) kodları","properties":{"duzey1":{"type":"string","example":"TR6"},"duzey2":{"type":"string","example":"TR62"},"duzey3":{"type":"string","example":"TR621"}}},"alanKodlari":{"type":"array","items":{"type":"object","properties":{"kod":{"type":"string","example":"0322"},"bolum":{"type":"string","description":"Yalnız İstanbul: \"Avrupa Yakası\"/\"Anadolu Yakası\""}}}},"buyuksehir":{"type":"boolean","description":"6360 sayılı Kanun"},"komsular":{"type":"array","items":{"type":"string"},"description":"Kara sınırı paylaşan iller"},"ilceSayisi":{"type":"integer"},"postaKoduAraligi":{"type":"object","properties":{"bas":{"type":"string","example":"01000"},"son":{"type":"string","example":"01999"}},"description":"İle ayrılan blok; hepsi kullanımda değil"},"nufus":{"type":"object","properties":{"yil":{"type":"integer"},"toplam":{"type":"integer"},"ilIlceMerkezi":{"type":"integer"},"beldeKoy":{"type":"integer","description":"Büyükşehirde 0"},"yillikArtisHizi":{"type":["number","null"],"description":"Binde"},"yogunluk":{"type":"number","description":"Kişi/km²"}}},"yuzolcumu":{"type":"number","description":"km², göl ve baraj yüzeyleri hariç (TÜİK yoğunluğundan türetildi)"},"rakim":{"type":["integer","null"],"description":"İl merkezi rakımı, metre (Copernicus DEM GLO-90, yaklaşık; MGM istasyon rakımı değil)"},"merkez":{"type":["object","null"],"properties":{"lat":{"type":"number"},"lon":{"type":"number"}},"description":"Şehir merkezi POI'lerinin medyanı (Overture), yaklaşık"}}},"IlceNufusu":{"type":"object","required":["ad","nufus"],"properties":{"ad":{"type":"string"},"nufus":{"type":"integer"},"yillikArtisHizi":{"type":["number","null"],"description":"Binde"},"merkez":{"type":["object","null"],"properties":{"lat":{"type":"number"},"lon":{"type":"number"}}}}},"NufusYili":{"type":"object","required":["yil","nufus"],"properties":{"yil":{"type":"integer"},"nufus":{"type":"integer"}}},"IbbsBirimi":{"type":"object","required":["kod","ad"],"properties":{"kod":{"type":"string"},"ad":{"type":"string"},"ust":{"type":"string","description":"Bir üst düzeyin kodu; Düzey 1'de yok"},"plaka":{"type":"integer","description":"Yalnız Düzey 3"}}},"VergiDairesi":{"type":"object","properties":{"kod":{"type":["string","null"],"description":"5 haneli muhasebe birim kodu; şubede null"},"ad":{"type":"string"},"tur":{"type":"string","enum":["mudurluk","sube","defterdarlik"]},"ilKodu":{"type":"string","description":"Plaka kodu, \"01\""},"il":{"type":"string"},"ilce":{"type":"string","description":"İl merkezindekiler \"Merkez\""}}},"TrafikCezasi":{"type":"object","properties":{"madde":{"type":"string","description":"KTK madde/fıkra/bent"},"baslik":{"type":"string"},"tutar":{"type":["number","null"],"description":"TL; aralıklı cezada null"},"alt":{"type":"number"},"ust":{"type":"number"},"ehliyetGun":{"type":"integer","description":"Sürücü belgesi geri alma, gün"},"belgeIptal":{"type":"boolean"},"aracMenGun":{"type":"integer"},"cezaPuani":{"type":"integer","enum":[5,10,15,20],"description":"EGM 2026 rehberi (KTY Ek-35)"},"yururluk":{"type":"string","format":"date"},"dayanak":{"type":"string"},"kaynak":{"type":"string","enum":["resmi","rehber","hesap","ikincil"],"description":"resmi: 7574 RG metni; rehber: EGM 2026 ceza rehberi"},"not":{"type":"string"},"belirsiz":{"type":"boolean"},"etiketler":{"type":"array","items":{"type":"string"}}}},"HarcKalemi":{"type":"object","properties":{"ad":{"type":"string"},"tutar":{"type":["number","null"],"description":"Maktu tutar, TL; oransal kalemde null"},"binde":{"type":"number"},"altSinir":{"type":"number"},"ustSinir":{"type":"number"},"cins":{"type":"string","enum":["harc","degerli-kagit","ucret","pay"]},"sure":{"type":"string","enum":["6ay","1yil","2yil","3yil","10yil","suresiz"]},"dayanak":{"type":"string","description":"Tarifedeki yeri"},"not":{"type":"string"},"belirsiz":{"type":"boolean"}}},"Gecerlilik":{"type":"object","required":["baslangic","bitis"],"properties":{"baslangic":{"type":"string","format":"date"},"bitis":{"type":["string","null"],"format":"date","description":"null: yenisi çıkana kadar"}}},"ResmiKaynak":{"type":"object","required":["belge","rg","url"],"properties":{"belge":{"type":"string"},"rg":{"type":["string","null"],"description":"Resmî Gazete tarihi / sayısı"},"url":{"type":"string"}}},"Dilim":{"type":"object","properties":{"ust":{"type":["number","null"],"description":"Dilim üst sınırı (TL); son dilimde null"},"oran":{"type":"number","description":"Yüzde"}}},"Ayrisma":{"type":"object","properties":{"mahalle":{"type":"string"},"koy":{"type":"string"},"yolAdi":{"type":"string"},"yolTipi":{"type":"string"},"binaNo":{"type":"string"},"daire":{"type":"string"},"kat":{"type":"string"},"blok":{"type":"string"},"bina":{"type":"string"},"site":{"type":"string"},"postaKodu":{"type":"string"},"serbest":{"type":"array","items":{"type":"string"},"description":"Çapaya bağlanamayan kelimeler"},"duzeltmeler":{"type":"array","items":{"type":"string"}}}},"AdresSonucu":{"type":"object","required":["hassasiyet","dogrulanan","guven","duzeltmeler","ayrisma"],"properties":{"il":{"type":"string"},"ilce":{"type":"string"},"mahalle":{"type":"string"},"yol":{"type":"string"},"binaNo":{"type":"string"},"daire":{"type":"string"},"kat":{"type":"string"},"lat":{"type":"number"},"lon":{"type":"number"},"hassasiyet":{"enum":["sokak","mahalle","ilce","il","yok"],"description":"Koordinatın ayrıntı düzeyi (bileşenin bulunup bulunmadığı değil). `mahalle` şimdilik üretilmiyor"},"dogrulanan":{"type":"object","description":"Hangi bileşenin resmî sicilde bulunduğu; koordinattan bağımsız","properties":{"il":{"type":"boolean"},"ilce":{"type":"boolean"},"mahalle":{"type":"boolean"},"yol":{"type":"boolean"}}},"guven":{"type":"number","minimum":0,"maximum":1},"duzeltmeler":{"type":"array","items":{"type":"string"},"description":"Yapılan düzeltmelerin okunur dökümü"},"ayrisma":{"$ref":"#/components/schemas/Ayrisma"}}},"IbanSonucu":{"type":"object","required":["gecerli"],"properties":{"gecerli":{"type":"boolean"},"iban":{"type":"string"},"bicimli":{"type":"string"},"ulke":{"type":"string"},"bankaKodu":{"type":"string"},"hesapNo":{"type":"string"},"banka":{"type":"object","additionalProperties":true},"hata":{"enum":["bos","gecersiz_karakter","bilinmeyen_ulke","uzunluk","kontrol_basamagi","tr_ayrilmis_hane"]},"aciklama":{"type":"string"}}},"Kur":{"type":"object","properties":{"kod":{"type":"string"},"ad":{"type":"string"},"adEn":{"type":"string"},"birim":{"type":"integer","description":"TCMB kote birimi (JPY 100); kurlar 1 birime indirgenmiş"},"alis":{"type":["number","null"]},"satis":{"type":["number","null"]},"efektifAlis":{"type":["number","null"]},"efektifSatis":{"type":["number","null"]}}},"KimlikSonucu":{"type":"object","required":["gecerli","not"],"description":"TCKN hiçbir zaman geri dönmez (KVKK). Yalnız algoritmik doğrulama.","properties":{"gecerli":{"type":"boolean"},"tur":{"enum":["vkn","tckn"],"description":"Yalnız VKN ucunda"},"vkn":{"type":"string","description":"Yalnız geçerli 10 haneli VKN"},"hata":{"enum":["bos","gecersiz_karakter","uzunluk","ilk_hane_sifir","kontrol_10","kontrol_11","kontrol_basamagi"]},"aciklama":{"type":"string"},"not":{"type":"string"}}},"TelefonSonucu":{"type":"object","required":["gecerli"],"properties":{"gecerli":{"type":"boolean"},"e164":{"type":["string","null"],"description":"+905321234567; 444 numaralarında null"},"ulusal":{"type":"string","description":"0532 123 45 67"},"tur":{"enum":["gsm","m2m","sabit","ucretsiz_800","katma_degerli_900","ulusal_850","kurumsal_444"]},"il":{"type":"string","description":"Yalnız sabit hatlarda"},"hata":{"enum":["bos","gecersiz_karakter","yabanci_ulke","uzunluk","tanimsiz_onek"]},"aciklama":{"type":"string"}}},"TeslimTahmini":{"type":"object","required":["gonderimTarihi","kabulTarihi","gonderen","alici","isGunu","tahminiTeslim","enGec","not"],"properties":{"gonderimTarihi":{"type":"string","format":"date"},"kabulTarihi":{"type":"string","format":"date","description":"Gönderinin işleme alındığı ilk iş günü"},"gonderen":{"type":"object","properties":{"il":{"type":"string"},"bolge":{"type":"string"}}},"alici":{"type":"object","properties":{"il":{"type":"string"},"bolge":{"type":"string"}}},"tasiyici":{"type":"string"},"isGunu":{"type":"integer"},"tahminiTeslim":{"type":"string","format":"date"},"enGec":{"type":"string","format":"date","description":"Tahminin bir iş günü sonrası"},"not":{"type":"string","description":"Tahmin, taahhüt değil"}}},"SentetikKayit":{"type":"object","description":"Sentetik kayıt: gerçek bir kişiye/şirkete ait değildir. Alanlar `alanlar` isteğine göre gelir.","properties":{"ad":{"type":"string"},"soyad":{"type":"string"},"unvan":{"type":"string","description":"Yalnız vkn istendiğinde: ticaret unvanı"},"tckn":{"type":"string","description":"Kontrol haneleri tutar, kayıtlı kişi değildir"},"vkn":{"type":"string"},"iban":{"type":"string","description":"TR, mod-97 geçerli; banka kodu TCMB listesinden"},"gsm":{"type":"string","description":"BTK planındaki gerçek 5xx öneki + rastgele abone"},"eposta":{"type":"string","description":"Her zaman example.com (RFC 2606)"},"adres":{"type":"object","description":"İl/ilçe/mahalle/sokak sicilden gerçek; kapı ve daire rastgele","properties":{"il":{"type":"string"},"ilce":{"type":"string"},"mahalle":{"type":"string"},"yol":{"type":"string"},"binaNo":{"type":"string"},"daire":{"type":"string"},"tekSatir":{"type":"string"}}},"dogumTarihi":{"type":"string","format":"date"},"plaka":{"type":"string"}}},"EtiketTarafGirdisi":{"type":"object","required":["adres"],"properties":{"adres":{"type":"string","maxLength":1000},"ad":{"type":"string","maxLength":100,"description":"Kişi ya da firma adı; yalnız etikete geçirilir"}}},"EtiketTaraf":{"type":"object","required":["satirlar","dogrulanan","guven","eksikler"],"properties":{"ad":{"type":"string","description":"Girdiden aynen geçirilir; çözümlenmez, saklanmaz"},"il":{"type":["string","null"]},"ilce":{"type":["string","null"]},"mahalle":{"type":["string","null"]},"yol":{"type":["string","null"]},"binaNo":{"type":["string","null"]},"daire":{"type":["string","null"]},"kat":{"type":["string","null"]},"site":{"type":["string","null"]},"blok":{"type":["string","null"]},"satirlar":{"type":"array","items":{"type":"string"},"description":"Etikete basılacak satırlar; her biri en çok 35 karakter"},"dogrulanan":{"type":"object","properties":{"il":{"type":"boolean"},"ilce":{"type":"boolean"},"mahalle":{"type":"boolean"},"yol":{"type":"boolean"}}},"guven":{"type":"number","minimum":0,"maximum":1},"eksikler":{"type":"array","items":{"type":"string"},"description":"Etiket için kritik olup çözülemeyenler (il, ilce, yol, binaNo)"}}},"KargoKonum":{"type":"object","properties":{"il":{"type":["string","null"]},"ilce":{"type":["string","null"]},"ulke":{"type":["string","null"]}}},"KargoSonucu":{"type":"object","required":["tasiyici","takipNo","bulundu"],"properties":{"tasiyici":{"type":"string"},"takipNo":{"type":"string"},"bulundu":{"type":"boolean"},"mesaj":{"type":"string","description":"Yalnız bulundu=false"},"durum":{"enum":["hazirlaniyor","yolda","dagitimda","teslim_edildi","iade","bilinmiyor"]},"durumMetni":{"type":["string","null"]},"teslimEdildi":{"type":"boolean"},"gonderiTarihi":{"type":["string","null"]},"tahminiTeslim":{"type":["string","null"]},"cikis":{"$ref":"#/components/schemas/KargoKonum"},"varis":{"$ref":"#/components/schemas/KargoKonum"},"teslimBirimi":{"type":["object","null"],"properties":{"ad":{"type":["string","null"]},"telefon":{"type":["string","null"]}}},"hareketler":{"type":"array","items":{"type":"object","properties":{"tarih":{"type":["string","null"]},"yer":{"type":["string","null"]},"aciklama":{"type":["string","null"]}}}}}}}},"paths":{"/health":{"get":{"tags":["sistem"],"summary":"Canlılık","responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"}}}}}}}}},"/openapi.json":{"get":{"tags":["sistem"],"summary":"Bu şema","responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/address/resolve":{"post":{"tags":["adres"],"summary":"Adres çözümle ve doğrula","security":[{"anahtar":[]}],"x-kredi":1,"description":"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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"q":{"type":"string"},"adresler":{"type":"array","items":{"type":"string"},"maxItems":1000}}},"example":{"q":"kadikoy istanbul moda cad 14"}}}},"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/AdresSonucu"},{"type":"object","properties":{"sonuclar":{"type":"array","items":{"$ref":"#/components/schemas/AdresSonucu"}}}}]}}}},"400":{"description":"q ya da adresler eksik, boş ya da metin olmayan eleman","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"413":{"description":"1000'den fazla adres","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/address/parse":{"post":{"tags":["adres"],"summary":"Yalnız ayrıştır (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"Sicile bakmaz, koordinat vermez. Anahtar ister ama kredi düşmez.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["q"],"properties":{"q":{"type":"string"}}},"example":{"q":"ataturk bulv no:12/5 cankaya"}}}},"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ayrisma"}}}},"400":{"description":"q eksik","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/address/posta-kodu/{kod}":{"get":{"tags":["adres"],"summary":"Posta kodundan ilçe (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"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.","parameters":[{"name":"kod","in":"path","required":true,"schema":{"type":"string","pattern":"^[0-9]{5}$"},"example":"34710"}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"kod":{"type":"string"},"ilceler":{"type":"array","items":{"type":"object","properties":{"il":{"type":"string"},"ilce":{"type":"string"},"poiSayisi":{"type":"integer","description":"Kodu bu ilçede yazan işletme sayısı"}}}},"kaynak":{"type":"string"},"kapsam":{"type":"string"}}}}}},"400":{"description":"Kod 5 haneli değil","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"404":{"description":"Kod kaynakta gözlenmedi (kaynak ve kapsam notuyla)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/address/plaka/{kod}":{"get":{"tags":["adres"],"summary":"Plaka kodundan il (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"İ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.","parameters":[{"name":"kod","in":"path","required":true,"schema":{"type":"string","pattern":"^[0-9]{1,2}$"},"example":"34"}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"plaka":{"type":"integer","description":"Sayı olarak kod (34)"},"kod":{"type":"string","description":"İki haneli yazım (\"06\")"},"il":{"type":"string"},"kaynak":{"type":"string"},"lisans":{"type":"string"}}}}}},"400":{"description":"Kod 1–2 haneli sayı değil","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"422":{"description":"Koda karşılık il yok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/address/iller":{"get":{"tags":["adres"],"summary":"81 il (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"toplam":{"type":"integer"},"iller":{"type":"array","items":{"type":"object","properties":{"plaka":{"type":"integer"},"ad":{"type":"string"}}}},"kaynak":{"type":"string"},"lisans":{"type":"string"}}}}}},"401":{"description":"Anahtar geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/address/ilceler":{"get":{"tags":["adres"],"summary":"İlin ilçeleri (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"parameters":[{"name":"il","in":"query","required":true,"schema":{"type":"string"},"example":"İzmir","description":"Ad ya da plaka"}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"il":{"type":"string"},"plaka":{"type":"integer"},"toplam":{"type":"integer"},"ilceler":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"ad":{"type":"string"}}}},"kaynak":{"type":"string"},"lisans":{"type":"string"}}}}}},"400":{"description":"il eksik","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"422":{"description":"il bulunamadı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/address/mahalleler":{"get":{"tags":["adres"],"summary":"İlçenin mahalle ve köyleri (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"parameters":[{"name":"il","in":"query","required":true,"schema":{"type":"string"},"example":"İstanbul","description":"Ad ya da plaka"},{"name":"ilce","in":"query","required":true,"schema":{"type":"string"},"example":"Kadıköy"}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"il":{"type":"string"},"ilce":{"type":"string"},"toplam":{"type":"integer"},"mahalleler":{"type":"array","items":{"type":"object","properties":{"ad":{"type":"string"},"tip":{"type":"string","enum":["mahalle","koy"]}}}},"kaynak":{"type":"string"},"lisans":{"type":"string"}}}}}},"400":{"description":"il ya da ilce eksik","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"422":{"description":"il ya da ilçe bulunamadı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/address/sokak-tamamla":{"get":{"tags":["adres"],"summary":"Sokak adı tamamlama","security":[{"anahtar":[]}],"x-kredi":1,"description":"İ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.","parameters":[{"name":"il","in":"query","required":true,"schema":{"type":"string"},"example":"İstanbul"},{"name":"ilce","in":"query","required":true,"schema":{"type":"string"},"example":"Kadıköy"},{"name":"q","in":"query","required":true,"schema":{"type":"string"},"example":"bagd"},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":50,"default":10}}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"il":{"type":"string"},"ilce":{"type":"string"},"q":{"type":"string"},"sokaklar":{"type":"array","items":{"type":"object","properties":{"ad":{"type":"string"},"tipler":{"type":"array","items":{"type":"string"}},"yollar":{"type":"array","items":{"type":"string"}}}}},"kaynak":{"type":"string"},"lisans":{"type":"string"}}}}}},"400":{"description":"q, il ya da ilce eksik; limit aralık dışı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"422":{"description":"il ya da ilçe bulunamadı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/address/ters":{"get":{"tags":["adres"],"summary":"Ters geokod: koordinattan en yakın sokak","security":[{"anahtar":[]}],"x-kredi":1,"description":"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.","parameters":[{"name":"lat","in":"query","required":true,"schema":{"type":"number"},"example":40.9812},{"name":"lon","in":"query","required":true,"schema":{"type":"number"},"example":29.0257}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"konum":{"type":"object","properties":{"lat":{"type":"number"},"lon":{"type":"number"}}},"aramaYaricapiKm":{"type":"number"},"sokak":{"type":["object","null"],"properties":{"ad":{"type":"string"},"tipler":{"type":"array","items":{"type":"string"}},"yollar":{"type":"array","items":{"type":"string"}},"lat":{"type":"number"},"lon":{"type":"number"},"poiSayisi":{"type":"integer","description":"Koordinatın kaç işletmeden türediği"}}},"il":{"type":["string","null"]},"plaka":{"type":["integer","null"]},"ilce":{"type":["string","null"]},"mahalle":{"type":"null","description":"Sicilde sokak-mahalle bağı yok; her zaman null"},"uzaklikM":{"type":["integer","null"]},"kaynak":{"type":"string"},"lisans":{"type":"string"},"not":{"type":"string"}}}}}},"400":{"description":"lat ya da lon eksik veya aralık dışı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"422":{"description":"Koordinat Türkiye dışında","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/address/mesafe":{"get":{"tags":["adres"],"summary":"İki nokta arası mesafe (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"`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.","parameters":[{"name":"a","in":"query","required":true,"schema":{"type":"string"},"example":"İstanbul"},{"name":"b","in":"query","required":true,"schema":{"type":"string"},"example":"35"}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"a":{"$ref":"#/components/schemas/MesafeUcu"},"b":{"$ref":"#/components/schemas/MesafeUcu"},"kusUcusuKm":{"type":"number"},"karayoluTahminiKm":{"type":"number"},"katsayi":{"type":"number"},"kaynak":{"type":"string"},"not":{"type":"string"}}}}}},"400":{"description":"a ya da b eksik veya koordinat biçimi hatalı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"422":{"description":"il bulunamadı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/address/ayni-mi":{"post":{"tags":["adres"],"summary":"İki adres aynı yer mi","security":[{"anahtar":[]}],"x-kredi":1,"description":"İ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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["a","b"],"properties":{"a":{"type":"string","maxLength":1000},"b":{"type":"string","maxLength":1000}}}}}},"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"karar":{"type":"string","enum":["ayni_adres","ayni_bina","ayni_sokak","farkli","belirsiz"]},"benzerlik":{"type":"number"},"bilesenler":{"type":"object","description":"ayni; farkli; eksik (yalnız birinde var); yok (ikisinde de yok)","properties":{"il":{"type":"string","enum":["ayni","farkli","eksik","yok"]},"ilce":{"type":"string","enum":["ayni","farkli","eksik","yok"]},"mahalle":{"type":"string","enum":["ayni","farkli","eksik","yok"]},"yol":{"type":"string","enum":["ayni","farkli","eksik","yok"]},"binaNo":{"type":"string","enum":["ayni","farkli","eksik","yok"]},"daire":{"type":"string","enum":["ayni","farkli","eksik","yok"]}}},"farklar":{"type":"array","items":{"type":"string"}},"a":{"type":"object"},"b":{"type":"object"}}}}}},"400":{"description":"a ya da b eksik","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"413":{"description":"adres 1000 karakteri aşıyor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/musteri/tekillestir":{"post":{"tags":["musteri"],"summary":"Müşteri listesinde aynı kişileri kümele","security":[{"anahtar":[]}],"x-kredi":1,"description":"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.","parameters":[{"name":"ad","in":"query","schema":{"type":"string"},"description":"CSV: sütun adı ya da 1'den sıra (verilmezse başlıktan bulunur)"},{"name":"soyad","in":"query","schema":{"type":"string"},"description":"CSV: sütun adı ya da 1'den sıra (verilmezse başlıktan bulunur)"},{"name":"telefon","in":"query","schema":{"type":"string"},"description":"CSV: sütun adı ya da 1'den sıra (verilmezse başlıktan bulunur)"},{"name":"eposta","in":"query","schema":{"type":"string"},"description":"CSV: sütun adı ya da 1'den sıra (verilmezse başlıktan bulunur)"},{"name":"adres","in":"query","schema":{"type":"string"},"description":"CSV: sütun adı ya da 1'den sıra (verilmezse başlıktan bulunur)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["kayitlar"],"properties":{"kayitlar":{"type":"array","maxItems":10000,"items":{"type":"object","properties":{"ad":{"type":"string"},"telefon":{"type":"string"},"eposta":{"type":"string"},"adres":{"type":"string"}}}}}}},"text/csv":{"schema":{"type":"string"}}}},"responses":{"200":{"description":"Kümeler","content":{"application/json":{"schema":{"type":"object","properties":{"toplam":{"type":"integer"},"tekilKisi":{"type":"integer"},"tekrar":{"type":"integer"},"kumeler":{"type":"array","items":{"type":"object","properties":{"kume":{"type":"integer"},"sira":{"type":"array","items":{"type":"integer"}},"nedenler":{"type":"array","items":{"type":"string","enum":["telefon","eposta","ad+telefon","ad+adres"]}}}}},"kayitlar":{"type":"array","items":{"type":"object","properties":{"sira":{"type":"integer"},"kume":{"type":"integer"},"ilk":{"type":"boolean"}}}},"not":{"type":"string"}}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"description":"girdi hatalı ya da sütun bulunamadı (yanıtta basliklar)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"413":{"description":"liste çok büyük","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"415":{"description":"gövde JSON ya da CSV değil","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"503":{"description":"süre aşıldı, kredi düşülmedi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/address/temizle":{"post":{"tags":["adres"],"summary":"Toplu adres temizleme (CSV → CSV)","security":[{"anahtar":[]}],"x-kredi":1,"description":"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.","parameters":[{"name":"sutun","in":"query","schema":{"type":"string"},"description":"Adres sütununun başlık adı ya da 1'den başlayan sırası. Verilmezse `adres`, `address`, `açık adres`, `teslimat adresi`… aranır."},{"name":"ayirici","in":"query","schema":{"type":"string","enum":["auto",",",";","tab"],"default":"auto"}},{"name":"baslik","in":"query","schema":{"type":"string","enum":["1","0"],"default":"1"},"description":"0: ilk satır veri; `sutun` sıra numarası olmalı"},{"name":"kodlama","in":"query","schema":{"type":"string","enum":["auto","utf-8","windows-1254"],"default":"auto"},"description":"TR Excel \"CSV\" kaydı windows-1254; auto ikisini de tanır. Çıktı her zaman UTF-8 (BOM ile)."}],"requestBody":{"required":true,"content":{"text/csv":{"schema":{"type":"string"},"example":"siparis;adres\r\n1001;moda cad 14 kadikoy istanbul\r\n"}}},"responses":{"200":{"description":"Temizlenmiş CSV","headers":{"x-adreskit-satir":{"schema":{"type":"integer"},"description":"Dolu adresli satır"},"x-adreskit-kredi":{"schema":{"type":"integer"},"description":"Düşülen kredi (tekil adres)"},"x-adreskit-kodlama":{"schema":{"type":"string"},"description":"Girdinin okunduğu kodlama"}},"content":{"text/csv":{"schema":{"type":"string"}}}},"400":{"description":"CSV bozuk (satır numarasıyla) ya da adres sütunu bulunamadı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"413":{"description":"2,5 MB ya da 10.000 satır aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"415":{"description":"Gövde CSV değil","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"503":{"description":"Süre sınırı aşıldı; kredi düşülmedi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/iban/dogrula":{"post":{"tags":["iban"],"summary":"IBAN doğrula, bankayı çöz","security":[{"anahtar":[]}],"x-kredi":1,"description":"ISO 13616 mod-97. `ibanlar[]` ile toplu (en fazla 1000, IBAN başına 1 kredi).","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"iban":{"type":"string"},"ibanlar":{"type":"array","items":{"type":"string"},"maxItems":1000}}},"example":{"iban":"TR33 0006 1005 1978 6457 8413 26"}}}},"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/IbanSonucu"},{"type":"object","properties":{"sonuclar":{"type":"array","items":{"$ref":"#/components/schemas/IbanSonucu"}},"ozet":{"type":"object","properties":{"toplam":{"type":"integer"},"gecerli":{"type":"integer"}}}}}]}}}},"400":{"description":"iban ya da ibanlar eksik, boş ya da metin olmayan eleman","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"413":{"description":"1000'den fazla IBAN","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/iban/bankalar":{"get":{"tags":["iban"],"summary":"TCMB banka kodu listesi (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Anahtar geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/kur":{"get":{"tags":["kur"],"summary":"TCMB döviz kurları (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"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.","parameters":[{"name":"tarih","in":"query","schema":{"type":"string","format":"date"},"description":"YYYY-AA-GG"}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"kaynak":{"const":"TCMB"},"veriKaynagi":{"type":"string","deprecated":true,"description":"`kaynak` ile aynı"},"not":{"type":"string"},"tarih":{"type":"string"},"istenenTarih":{"type":"string"},"geriyeDusuldu":{"type":"boolean"},"bultenNo":{"type":["string","null"]},"kurlar":{"type":"array","items":{"$ref":"#/components/schemas/Kur"}}}}}}},"400":{"description":"tarih biçimi hatalı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"404":{"description":"Yayın bulunamadı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/kur/cevir":{"post":{"tags":["kur"],"summary":"Para birimi çevir (TCMB kuru, ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"Yanıttaki `kaynak` kaynak para birimidir; veri kaynağı `veriKaynagi` (TCMB).","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["tutar","kaynak","hedef"],"properties":{"tutar":{"type":"number"},"kaynak":{"type":"string"},"hedef":{"type":"string"},"kurTipi":{"enum":["alis","satis","efektifAlis","efektifSatis"],"default":"satis"},"tarih":{"type":"string","format":"date"}}},"example":{"tutar":100,"kaynak":"USD","hedef":"TRY"}}}},"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"veriKaynagi":{"const":"TCMB"},"not":{"type":"string"},"tutar":{"type":"number"},"kaynak":{"type":"string"},"hedef":{"type":"string"},"sonuc":{"type":"number"},"kurTipi":{"type":"string"},"tarih":{"type":"string"},"geriyeDusuldu":{"type":"boolean"},"kullanilanKur":{"type":"object","properties":{"kaynak":{"type":"number"},"hedef":{"type":"number"}}}}}}}},"400":{"description":"Eksik alan, bilinmeyen para birimi ya da yayımlanmamış kur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"404":{"description":"Yayın bulunamadı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/kur/ecb":{"get":{"tags":["kur"],"summary":"ECB euro referans kurları (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"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.","parameters":[{"name":"baz","in":"query","schema":{"type":"string","default":"EUR"},"description":"Üç harfli kod, örn. TRY"}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","required":["kaynak","not","tarih","baz","kurlar"],"properties":{"kaynak":{"type":"string"},"not":{"type":"string"},"hesaplamaNotu":{"type":"string","description":"Yalnız EUR dışı bazda"},"tarih":{"type":"string"},"baz":{"type":"string"},"kurlar":{"type":"array","items":{"type":"object","properties":{"kod":{"type":"string"},"oran":{"type":"number","description":"1 baz = oran kod"},"hesaplanan":{"type":"boolean"}}}}}}}}},"400":{"description":"baz geçersiz ya da ECB listesinde yok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"503":{"description":"ECB yayını alınamıyor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/dogrula/tckn":{"post":{"tags":["dogrulama"],"summary":"TCKN doğrula","security":[{"anahtar":[]}],"x-kredi":1,"description":"11 hane, ilk hane ≠ 0, iki kontrol hanesi. Numara yanıtta dönmez. `tcknler[]` ile toplu (en fazla 1000, öğe başına 1 kredi).","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"tckn":{"type":"string"},"tcknler":{"type":"array","items":{"type":"string"},"maxItems":1000}}},"example":{"tckn":"10000000146"}}}},"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/KimlikSonucu"},{"type":"object","properties":{"sonuclar":{"type":"array","items":{"$ref":"#/components/schemas/KimlikSonucu"},"description":"Girdi sırasıyla"},"ozet":{"type":"object","properties":{"toplam":{"type":"integer"},"gecerli":{"type":"integer"}}}}}]}}}},"400":{"description":"tckn ya da tcknler eksik","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"413":{"description":"1000'den fazla eleman","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/dogrula/vkn":{"post":{"tags":["dogrulama"],"summary":"VKN doğrula","security":[{"anahtar":[]}],"x-kredi":1,"description":"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).","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"vkn":{"type":"string"},"vknler":{"type":"array","items":{"type":"string"},"maxItems":1000}}},"example":{"vkn":"1234567890"}}}},"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/KimlikSonucu"},{"type":"object","properties":{"sonuclar":{"type":"array","items":{"$ref":"#/components/schemas/KimlikSonucu"},"description":"Girdi sırasıyla"},"ozet":{"type":"object","properties":{"toplam":{"type":"integer"},"gecerli":{"type":"integer"}}}}}]}}}},"400":{"description":"vkn ya da vknler eksik","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"413":{"description":"1000'den fazla eleman","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/dogrula/telefon":{"post":{"tags":["dogrulama"],"summary":"Telefon doğrula ve biçimle","security":[{"anahtar":[]}],"x-kredi":1,"description":"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).","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"telefon":{"type":"string"},"telefonlar":{"type":"array","items":{"type":"string"},"maxItems":1000}}},"example":{"telefon":"0532 123 45 67"}}}},"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/TelefonSonucu"},{"type":"object","properties":{"sonuclar":{"type":"array","items":{"$ref":"#/components/schemas/TelefonSonucu"},"description":"Girdi sırasıyla"},"ozet":{"type":"object","properties":{"toplam":{"type":"integer"},"gecerli":{"type":"integer"}}}}}]}}}},"400":{"description":"telefon ya da telefonlar eksik","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"413":{"description":"1000'den fazla eleman","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/kargo/takip":{"get":{"tags":["kargo"],"summary":"Kargo takip","security":[{"anahtar":[]}],"x-kredi":1,"description":"Şu an yalnız Yurtiçi. Gönderici/alıcı adı döndürülmez. 5 dakika önbellek.","parameters":[{"name":"tasiyici","in":"query","required":true,"schema":{"enum":["yurtici"]}},{"name":"no","in":"query","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9]{6,30}$"}}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KargoSonucu"}}}},"400":{"description":"Eksik ya da hatalı parametre","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"422":{"description":"Taşıyıcı desteklenmiyor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"502":{"description":"Taşıyıcıya ulaşılamıyor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/kargo/tasiyicilar":{"get":{"tags":["kargo"],"summary":"Taşıyıcılar ve destek durumu","x-kredi":0,"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"tasiyicilar":{"type":"array","items":{"type":"object","additionalProperties":true}}}}}}}}}},"/v1/kargo/desi":{"post":{"tags":["kargo"],"summary":"Desi ve ücretlendirilen ağırlık (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["en","boy","yukseklik","agirlik"],"properties":{"en":{"type":"number","description":"cm"},"boy":{"type":"number","description":"cm"},"yukseklik":{"type":"number","description":"cm"},"agirlik":{"type":"number","description":"kg"},"bolen":{"enum":[3000,4000,5000,6000],"default":3000}}},"example":{"en":40,"boy":30,"yukseklik":25,"agirlik":3.5}}}},"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"en":{"type":"number"},"boy":{"type":"number"},"yukseklik":{"type":"number"},"agirlik":{"type":"number"},"bolen":{"type":"integer"},"hacimCm3":{"type":"number"},"desi":{"type":"number"},"ucretlendirilenAgirlik":{"type":"number"},"esas":{"enum":["desi","agirlik"]}}}}}},"400":{"description":"Ölçü eksik, pozitif değil ya da bölen geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/kargo/etiket":{"post":{"tags":["kargo"],"summary":"Kargo etiketi için adres bloğu","security":[{"anahtar":[]}],"x-kredi":1,"description":"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).","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["alici","gonderen"],"properties":{"alici":{"$ref":"#/components/schemas/EtiketTarafGirdisi"},"gonderen":{"$ref":"#/components/schemas/EtiketTarafGirdisi"},"desi":{"type":"object","required":["en","boy","yukseklik","agirlik"],"properties":{"en":{"type":"number"},"boy":{"type":"number"},"yukseklik":{"type":"number"},"agirlik":{"type":"number"},"bolen":{"enum":[3000,4000,5000,6000],"default":3000}}},"tasiyici":{"type":"string","maxLength":40,"description":"Yalnız yanıta aktarılır"}}},"example":{"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}}}}},"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"gonderen":{"$ref":"#/components/schemas/EtiketTaraf"},"alici":{"$ref":"#/components/schemas/EtiketTaraf"},"tasiyici":{"type":"string"},"desi":{"type":"object","additionalProperties":true},"satirUzunlugu":{"type":"integer"},"uyarilar":{"type":"array","items":{"type":"string"}},"not":{"type":"string"}}}}}},"400":{"description":"alici/gonderen eksik ya da desi ölçüsü geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"413":{"description":"adres 1000, ad 100 karakteri aşıyor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/kargo/takip-tani":{"post":{"tags":["kargo"],"summary":"Takip numarasından olası taşıyıcı (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"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. Kredi harcamaz.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["numara"],"properties":{"numara":{"type":"string","maxLength":60}}},"example":{"numara":"1Z999AA10123456784"}}}},"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"numara":{"type":"string","description":"Normalize hâli (büyük harf, ayraçsız)"},"bicim":{"enum":["rakam","upu","ups","alfanumerik"]},"uzunluk":{"type":"integer"},"adaylar":{"type":"array","description":"Güvene göre azalan; boş olabilir","items":{"type":"object","properties":{"kod":{"type":"string"},"ad":{"type":"string"},"guven":{"type":"number","minimum":0,"maximum":1,"description":"Sıralama ölçüsü, olasılık değil"},"gerekce":{"type":"string"},"takipDestegi":{"type":"boolean"}}}},"not":{"type":"string"}}}}}},"400":{"description":"numara eksik ya da 6–35 karakter harf/rakam değil","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/kargo/teslim-tahmini":{"post":{"tags":["kargo"],"summary":"Teslim tarihi tahmini (il→il iş günü)","security":[{"anahtar":[]}],"x-kredi":1,"description":"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).","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["gonderimTarihi","gonderenIl","aliciIl"],"properties":{"gonderimTarihi":{"type":"string","format":"date"},"gonderenIl":{"type":"string"},"aliciIl":{"type":"string"},"tasiyici":{"type":"string","maxLength":40,"description":"Yalnız yanıta aktarılır; hesabı değiştirmez"}}},"example":{"gonderimTarihi":"2026-05-22","gonderenIl":"İstanbul","aliciIl":"Van"}}}},"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeslimTahmini"}}}},"400":{"description":"Tarih biçimi hatalı ya da il tanınmadı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"422":{"description":"Yıl kapsam dışında (2022–2028)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/takvim/is-gunu-ekle":{"get":{"tags":["takvim"],"summary":"Tarihe iş günü ekle/çıkar (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"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.","parameters":[{"name":"tarih","in":"query","required":true,"schema":{"type":"string","format":"date"},"description":"Başlangıç"},{"name":"gun","in":"query","required":true,"schema":{"type":"integer","minimum":-1000,"maximum":1000}},{"name":"yarimGun","in":"query","schema":{"enum":["is","tatil"],"default":"is"},"description":"Arife gibi yarım günler iş günü sayılsın mı"}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"baslangic":{"type":"string"},"gun":{"type":"integer"},"sonuc":{"type":"string"},"yarimGunIsGunu":{"type":"boolean"},"kapsam":{"type":"object","properties":{"ilk":{"type":"integer"},"son":{"type":"integer"}}},"kaynak":{"type":"string"},"guncelleme":{"type":"string"}}}}}},"400":{"description":"Parametre hatalı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"422":{"description":"Yıl kapsam dışında (2022–2028)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/takvim/tatiller":{"get":{"tags":["takvim"],"summary":"Resmî tatil listesi (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"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.","parameters":[{"name":"yil","in":"query","schema":{"type":"integer"},"description":"Varsayılan: içinde bulunulan yıl"}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"kaynak":{"type":"string"},"guncelleme":{"type":"string"},"yil":{"type":"integer"},"kapsam":{"type":"object"},"tatiller":{"type":"array","items":{"$ref":"#/components/schemas/Tatil"}}}}}}},"400":{"description":"yil biçimi hatalı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"422":{"description":"Yıl kapsam dışında (2022–2028)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/takvim/gun":{"get":{"tags":["takvim"],"summary":"Gün bilgisi: iş günü mü, tatil mi (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"parameters":[{"name":"tarih","in":"query","required":true,"schema":{"type":"string","format":"date"},"description":"YYYY-AA-GG"}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"kaynak":{"type":"string"},"guncelleme":{"type":"string"},"tarih":{"type":"string"},"haftaninGunu":{"type":"integer","description":"1=Pazartesi … 7=Pazar"},"haftaSonu":{"type":"boolean"},"tatiller":{"type":"array","items":{"$ref":"#/components/schemas/Tatil"}},"tatil":{"type":"boolean"},"yarimGun":{"type":"boolean"},"isGunu":{"type":"boolean"}}}}}},"400":{"description":"tarih hatalı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"422":{"description":"Yıl kapsam dışında (2022–2028)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/takvim/is-gunu/say":{"get":{"tags":["takvim"],"summary":"İki tarih arası iş günü sayısı, ikisi dahil (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"parameters":[{"name":"baslangic","in":"query","required":true,"schema":{"type":"string","format":"date"},"description":"Dahil"},{"name":"bitis","in":"query","required":true,"schema":{"type":"string","format":"date"},"description":"Dahil"},{"name":"yarimGun","in":"query","schema":{"enum":["is","tatil"],"default":"is"},"description":"Yarım günler (arife) iş günü sayılsın mı"}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"kaynak":{"type":"string"},"guncelleme":{"type":"string"},"baslangic":{"type":"string"},"bitis":{"type":"string"},"isGunu":{"type":"integer"},"yarimGunIsGunu":{"type":"boolean"}}}}}},"400":{"description":"Parametre hatalı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"422":{"description":"Yıl kapsam dışında (2022–2028)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/takvim/namaz":{"get":{"tags":["takvim"],"summary":"Namaz vakitleri (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"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.","parameters":[{"name":"il","in":"query","schema":{"type":"string"},"example":"İstanbul","description":"Ad ya da plaka; lat/lon ile birlikte verilmez"},{"name":"lat","in":"query","schema":{"type":"number"},"example":41.0082},{"name":"lon","in":"query","schema":{"type":"number"},"example":28.9784},{"name":"tarih","in":"query","schema":{"type":"string","format":"date"},"description":"Varsayılan bugün (Türkiye saati)"},{"name":"asr","in":"query","schema":{"enum":["standart","hanefi"],"default":"standart"},"description":"İkindi gölge katsayısı"}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"tarih":{"type":"string"},"il":{"type":["string","null"]},"plaka":{"type":["integer","null"]},"konum":{"type":"object","properties":{"lat":{"type":"number"},"lon":{"type":"number"},"kaynak":{"type":"string"}}},"saatDilimi":{"type":"string"},"yontem":{"type":"object","properties":{"ad":{"type":"string"},"imsakAcisi":{"type":"number"},"yatsiAcisi":{"type":"number"},"ufukAcisi":{"type":"number"},"ikindi":{"type":"string","enum":["standart","hanefi"]},"ikindiGolgeKatsayisi":{"type":"integer"}}},"vakitler":{"type":"object","description":"SS:DD, Türkiye saati. Vakit oluşmuyorsa null (Türkiye'de olmaz).","properties":{"imsak":{"type":["string","null"]},"gunes":{"type":["string","null"]},"ogle":{"type":["string","null"]},"ikindi":{"type":["string","null"]},"aksam":{"type":["string","null"]},"yatsi":{"type":["string","null"]}}},"temkin":{"type":"object","properties":{"dakika":{"type":"integer"},"not":{"type":"string"}}},"kapsam":{"type":"object","properties":{"ilk":{"type":"integer"},"son":{"type":"integer"}}},"not":{"type":"string"}}}}}},"400":{"description":"il ile lat/lon birlikte, ikisi de eksik, ya da tarih/asr hatalı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"422":{"description":"il bulunamadı ya da yıl kapsam dışında (2017–2050)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/takvim/hicri":{"get":{"tags":["takvim"],"summary":"Hicri ↔ miladi tarih (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"`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.","parameters":[{"name":"tarih","in":"query","schema":{"type":"string","format":"date"},"example":"2026-09-22","description":"Miladi; hicri ile birlikte verilmez"},{"name":"hicri","in":"query","schema":{"type":"string","pattern":"^\\d{3,4}-\\d{1,2}-\\d{1,2}$"},"example":"1448-03-01"}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"miladi":{"type":"string"},"hicri":{"type":"object","properties":{"yil":{"type":"integer"},"ay":{"type":"integer"},"gun":{"type":"integer"},"ayAdi":{"type":"string"},"metin":{"type":"string","description":"\"10 Rebiülevvel 1448\""},"iso":{"type":"string"},"artikYil":{"type":"boolean"},"ayGunSayisi":{"type":"integer"}}},"yontem":{"type":"string"},"kapsam":{"type":"object","properties":{"miladi":{"type":"object","properties":{"ilk":{"type":"integer"},"son":{"type":"integer"}}},"hicri":{"type":"object","properties":{"ilk":{"type":"integer"},"son":{"type":"integer"}}}}},"not":{"type":"string"}}}}}},"400":{"description":"tarih ile hicri birlikte ya da biçim hatalı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"422":{"description":"Yıl kapsam dışında ya da o ayda olmayan gün","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/kvkk/maskele":{"post":{"tags":["kvkk"],"summary":"Metinde kişisel veri bul ve maskele","security":[{"anahtar":[]}],"x-kredi":1,"description":"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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["metin"],"properties":{"metin":{"type":"string","maxLength":100000},"turler":{"type":"array","items":{"enum":["tckn","iban","telefon","eposta","kredi_karti","plaka"]},"description":"Verilmezse hepsi"}}},"example":{"metin":"Müşteri 0532 123 45 67 aradı, IBAN TR33 0006 1005 1978 6457 8413 26"}}}},"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","required":["metin","bulgular","sayim","not"],"properties":{"metin":{"type":"string","description":"Maskelenmiş metin, girdiyle aynı uzunlukta"},"bulgular":{"type":"array","items":{"type":"object","properties":{"tur":{"enum":["tckn","iban","telefon","eposta","kredi_karti","plaka"]},"baslangic":{"type":"integer","description":"JS dizi konumu, dahil"},"bitis":{"type":"integer","description":"Hariç"}}}},"sayim":{"type":"object","additionalProperties":{"type":"integer"}},"not":{"type":"string"}}}}}},"400":{"description":"metin eksik ya da turler geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"413":{"description":"100.000 karakterden uzun","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/ticaret/cayma":{"get":{"tags":["ticaret"],"summary":"Cayma hakkı süresi ve istisnaları (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"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`).","parameters":[{"name":"teslimTarihi","in":"query","required":true,"schema":{"type":"string","format":"date"},"description":"Mal: teslim günü; hizmet: sözleşme günü"},{"name":"urunTuru","in":"query","schema":{"enum":["standart","hizmet","finansal_dalgalanma","kisiye_ozel","cabuk_bozulan","muhurlu_hijyen","karisan_mal","muhru_acilmis_medya","sureli_yayin","tarihli_hizmet","anlik_dijital","onayla_baslanan_hizmet"],"default":"standart"}}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","required":["teslimTarihi","urunTuru","caymaHakkiVar","sure","sonGun","eksikBilgilendirmedeSonGun","mevzuat","yururlukNotu","uyari"],"properties":{"teslimTarihi":{"type":"string"},"urunTuru":{"type":"string"},"caymaHakkiVar":{"type":"boolean"},"sure":{"const":14},"sonGun":{"type":"string","format":"date"},"sonGunTatil":{"type":"boolean","description":"Yalnız 2022–2028"},"eksikBilgilendirmedeSonGun":{"type":"string","format":"date","description":"m.10: sonGun + 1 yıl"},"istisna":{"type":"object","properties":{"bent":{"type":"string"},"aciklama":{"type":"string"},"kosul":{"type":"string"}}},"sureBaslangici":{"type":"string"},"mevzuat":{"type":"object","properties":{"ad":{"type":"string"},"resmiGazete":{"type":"string"},"maddeler":{"type":"array","items":{"type":"string"}},"kaynak":{"type":"string"}}},"yururlukNotu":{"type":"string"},"uyari":{"type":"string"}}}}}},"400":{"description":"teslimTarihi hatalı ya da urunTuru bilinmiyor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/ticaret/fatura-suresi":{"get":{"tags":["ticaret"],"summary":"Fatura düzenleme süresinin son günü (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"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`).","parameters":[{"name":"teslimTarihi","in":"query","required":true,"schema":{"type":"string","format":"date"}}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","required":["teslimTarihi","sure","sonGun","ayDegisiyor","sonuc","mevzuat","yururlukNotu","uyari"],"properties":{"teslimTarihi":{"type":"string"},"sure":{"const":7},"sonGun":{"type":"string","format":"date"},"sonGunIsGunu":{"type":"string","format":"date","description":"VUK m.18; yalnız 2022–2028"},"ayDegisiyor":{"type":"boolean","description":"Son gün teslim ayından sonraki aya taşıyor (KDV dönemi teslim ayı)"},"sonuc":{"type":"string"},"mevzuat":{"type":"object","properties":{"ad":{"type":"string"},"maddeler":{"type":"array","items":{"type":"string"}},"kaynak":{"type":"string"}}},"yururlukNotu":{"type":"string"},"uyari":{"type":"string"}}}}}},"400":{"description":"teslimTarihi hatalı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/metin/yaziyla":{"post":{"tags":["metin"],"summary":"Tutarı yazıyla yaz (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["tutar"],"properties":{"tutar":{"oneOf":[{"type":"number"},{"type":"string"}]},"paraBirimi":{"enum":["TRY","USD","EUR","GBP","yok"],"default":"TRY","description":"`yok`: \"… virgül elli\""}}},"example":{"tutar":"12.345,50"}}}},"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"tutar":{"type":"string","description":"Türkçe biçim \"12.345,50\""},"paraBirimi":{"type":"string"},"yazi":{"type":"string"},"buyukHarf":{"type":"string"},"bitisik":{"type":"string"}}}}}},"400":{"description":"tutar eksik/biçimsiz ya da paraBirimi bilinmiyor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/metin/slug":{"post":{"tags":["metin"],"summary":"URL dostu slug (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"Türkçe harfler ASCII'ye iner (ç→c, ı/İ→i, ş→s…), harf-rakam dışı her şey ayırıcı. En fazla 1000 karakter.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["metin"],"properties":{"metin":{"type":"string","maxLength":1000},"ayirici":{"enum":["-","_"],"default":"-"}}},"example":{"metin":"Çankaya'da Yeni Dükkân!"}}}},"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"slug":{"type":"string"}}}}}},"400":{"description":"metin eksik ya da ayirici geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"413":{"description":"1000 karakterden uzun","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/metin/sirala":{"post":{"tags":["metin"],"summary":"Türkçe alfabe sırasıyla sırala (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["liste"],"properties":{"liste":{"type":"array","items":{"type":"string"},"maxItems":10000},"yon":{"enum":["artan","azalan"],"default":"artan"}}},"example":{"liste":["şeker","çay","ırmak","iğne","ada"]}}}},"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"liste":{"type":"array","items":{"type":"string"}},"yon":{"type":"string"}}}}}},"400":{"description":"liste boş, metin olmayan eleman ya da yon geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"413":{"description":"10.000'den fazla eleman","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/metin/ad-normalize":{"post":{"tags":["metin"],"summary":"Ad-soyad yazımını düzelt (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"\"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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["ad"],"properties":{"ad":{"type":"string","maxLength":200}}},"example":{"ad":"MEHMET ALİ  yılmaz"}}}},"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"ad":{"type":"string"}}}}}},"400":{"description":"ad eksik","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"413":{"description":"200 karakterden uzun","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/metin/kisaltma":{"post":{"tags":["metin"],"summary":"Adres kısaltmalarını aç ya da kısalt (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"`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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["metin"],"properties":{"metin":{"type":"string","maxLength":2000},"yon":{"enum":["ac","kisalt"],"default":"ac"}}},"example":{"metin":"Atatürk Cad. Şht. Ali Sk. No:5 D:3","yon":"ac"}}}},"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"metin":{"type":"string"},"yon":{"type":"string"},"degisiklikler":{"type":"array","items":{"type":"object","properties":{"once":{"type":"string"},"sonra":{"type":"string"}}}}}}}}},"400":{"description":"metin eksik ya da yon geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"413":{"description":"2.000 karakterden uzun","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/metin/ek":{"post":{"tags":["metin"],"summary":"Türkçe çekim eki üret (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"\"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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["ek"],"properties":{"kelime":{"type":"string","maxLength":100},"kelimeler":{"type":"array","items":{"type":"string"},"maxItems":1000,"description":"`kelime` yerine; toplu üretim"},"ek":{"enum":["yonelme","bulunma","ayrilma","belirtme","ilgi","iyelik","ile","mi"]},"ozelIsim":{"type":"boolean","description":"Verilmezse baş harfe bakılır"}}},"example":{"kelime":"Ankara","ek":"yonelme"}}}},"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"kelime":{"type":"string"},"ek":{"type":"string"},"sonuc":{"type":"string","description":"\"Ankara'ya\""},"eklenen":{"type":"string","description":"Yalnız ek: \"'ya\""},"ozelIsim":{"type":"boolean"},"kesme":{"type":"boolean"},"okunus":{"type":"string","description":"Yalnız sayıda: \"iki bin yirmi altı\""},"uyari":{"type":"string"},"not":{"type":"string"},"sonuclar":{"type":"array","items":{"type":"object"},"description":"Yalnız `kelimeler` verildiğinde"}}}}}},"400":{"description":"kelime/ek eksik ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"413":{"description":"100 karakterden uzun ya da 1.000'den fazla sözcük","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/metin/tarih":{"post":{"tags":["metin"],"summary":"Doğal dil tarihini çözümle (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"\"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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["metin"],"properties":{"metin":{"type":"string","maxLength":500},"simdi":{"type":"string","description":"ISO 8601; verilmezse şimdiki an"}}},"example":{"metin":"önümüzdeki salı saat 14:30 teslim","simdi":"2026-09-22T09:00:00+03:00"}}}},"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","required":["bulundu","guven","eslesmeler","simdi","not"],"properties":{"bulundu":{"type":"boolean"},"tarih":{"type":"string","format":"date"},"saat":{"type":"string","description":"SS:DD"},"iso":{"type":"string","description":"\"2026-10-03\" ya da \"2026-10-03T14:30\""},"guven":{"type":"number","description":"0–1"},"eslesmeler":{"type":"array","items":{"type":"object","properties":{"tur":{"enum":["tarih","saat"]},"metin":{"type":"string"},"baslangic":{"type":"integer"},"bitis":{"type":"integer"},"kural":{"type":"string","description":"iso, gun_ay_yil, gorece_gun, hafta_gunu…"}}}},"simdi":{"type":"string"},"not":{"type":"string"}}}}}},"400":{"description":"metin eksik ya da simdi geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"413":{"description":"500 karakterden uzun","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/metin/turkcelestir":{"post":{"tags":["metin"],"summary":"ASCII metne Türkçe harfleri geri koy (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"\"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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["metin"],"properties":{"metin":{"type":"string","maxLength":5000}}},"example":{"metin":"Istanbul Sisli Cumhuriyet Cad"}}}},"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","required":["metin","degisiklikler","belirsiz","not"],"properties":{"metin":{"type":"string","description":"Türkçeleştirilmiş metin"},"degisiklikler":{"type":"array","items":{"type":"object","properties":{"once":{"type":"string"},"sonra":{"type":"string"},"kaynak":{"enum":["ad","sozcuk"]}}}},"belirsiz":{"type":"array","description":"Dokunulmayan çok okunuşlu sözcükler","items":{"type":"object","properties":{"sozcuk":{"type":"string"},"adaylar":{"type":"array","items":{"type":"string"}}}}},"not":{"type":"string"}}}}}},"400":{"description":"metin eksik","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"413":{"description":"5.000 karakterden uzun","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/metin/ayikla":{"post":{"tags":["metin"],"summary":"Serbest metinden alan çıkar (telefon, IBAN, tutar, tarih, adres)","security":[{"anahtar":[]}],"x-kredi":1,"description":"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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["metin"],"properties":{"metin":{"type":"string","maxLength":5000},"simdi":{"type":"string","description":"Göreli tarihlerin başlangıç anı (ISO 8601); yoksa şimdi"}}},"example":{"metin":"Sipariş: Moda Cad. No:14 Kadıköy İstanbul, 0532 123 45 67, 1.250,50 TL, yarın teslim"}}}},"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","required":["telefonlar","epostalar","ibanlar","tcknler","vknler","tutarlar","tarih","adresAdaylari","not"],"properties":{"telefonlar":{"type":"array","items":{"type":"object","properties":{"e164":{"type":["string","null"],"description":"444 numaralarında null"},"ulusal":{"type":"string"},"tur":{"type":"string"},"metin":{"type":"string"},"baslangic":{"type":"integer"},"bitis":{"type":"integer"}}}},"epostalar":{"type":"array","items":{"type":"object","properties":{"eposta":{"type":"string"},"baslangic":{"type":"integer"},"bitis":{"type":"integer"}}}},"ibanlar":{"type":"array","items":{"type":"object","properties":{"iban":{"type":"string"},"bicimli":{"type":"string"},"banka":{"type":"string"},"metin":{"type":"string"},"baslangic":{"type":"integer"},"bitis":{"type":"integer"}}}},"tcknler":{"type":"array","description":"Ham numara dönmez","items":{"type":"object","properties":{"maskeli":{"type":"string","description":"İlk 3 + son 2 hane: 100******46"},"gecerli":{"type":"boolean"},"baslangic":{"type":"integer"},"bitis":{"type":"integer"}}}},"vknler":{"type":"array","items":{"type":"object","properties":{"vkn":{"type":"string"},"gecerli":{"type":"boolean"},"baslangic":{"type":"integer"},"bitis":{"type":"integer"}}}},"tutarlar":{"type":"array","items":{"type":"object","properties":{"tutar":{"type":"string","description":"Makine biçimi: \"1250.50\""},"bicimli":{"type":"string","description":"Türkçe biçim: \"1.250,50\""},"paraBirimi":{"enum":["TRY","USD","EUR","GBP"]},"metin":{"type":"string"},"baslangic":{"type":"integer"},"bitis":{"type":"integer"}}}},"tarih":{"type":"object","properties":{"bulundu":{"type":"boolean"},"tarih":{"type":["string","null"]},"saat":{"type":["string","null"]},"iso":{"type":["string","null"]},"guven":{"type":"number"},"eslesmeler":{"type":"array","items":{"type":"object","properties":{"tur":{"enum":["tarih","saat"]},"metin":{"type":"string"},"kural":{"type":"string"},"baslangic":{"type":"integer"},"bitis":{"type":"integer"}}}}}},"adresAdaylari":{"type":"array","description":"Puana göre; sicil bağlı değilse boş","items":{"type":"object","properties":{"metin":{"type":"string"},"il":{"type":"string"},"ilce":{"type":"string"},"mahalle":{"type":"string"},"yol":{"type":"string"},"binaNo":{"type":"string"},"daire":{"type":"string"},"kat":{"type":"string"},"puan":{"type":"integer","description":"il/ilçe 2, mahalle/yol 1 puan"}}}},"not":{"type":"string"}}}}}},"400":{"description":"metin eksik ya da simdi geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"413":{"description":"5.000 karakterden uzun","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/test-verisi/uret":{"post":{"tags":["test-verisi"],"summary":"Sentetik (sahte) test kaydı üret","security":[{"anahtar":[]}],"x-kredi":0,"description":"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).","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"adet":{"type":"integer","minimum":1,"maximum":1000,"default":10},"alanlar":{"type":"array","minItems":1,"items":{"enum":["ad","soyad","tckn","vkn","iban","gsm","eposta","adres","dogumTarihi","plaka"]},"description":"Verilmezse hepsi"},"tohum":{"type":"string","maxLength":64,"description":"Tekrarlanabilirlik için"}}},"example":{"adet":5,"alanlar":["ad","soyad","tckn","gsm","adres"],"tohum":"demo-1"}}}},"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"adet":{"type":"integer"},"tohum":{"type":"string"},"alanlar":{"type":"array","items":{"type":"string"}},"kayitlar":{"type":"array","items":{"$ref":"#/components/schemas/SentetikKayit"}},"not":{"type":"string","description":"Verinin sentetik olduğu uyarısı; kullanıcıya iletin"}}}}}},"400":{"description":"adet, alanlar ya da tohum geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"413":{"description":"adet 1000'den büyük","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/urun/barkod/{ean}":{"get":{"tags":["urun"],"summary":"Barkod sağlaması ve GS1 öneki (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"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ü.","parameters":[{"name":"ean","in":"path","required":true,"schema":{"type":"string","pattern":"^[0-9 -]{8,40}$"},"example":"8690504010012"}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","required":["gecerli","not"],"properties":{"gecerli":{"type":"boolean"},"barkod":{"type":"string"},"tur":{"enum":["ean13","ean8","upca"]},"ean13":{"type":"string"},"onek":{"type":["string","null"],"description":"İlk üç hane (EAN-8'de yok)"},"ulke":{"type":["string","null"],"description":"Öneki tahsis eden GS1 üye kuruluşu"},"turkiye":{"type":"boolean"},"kontrolHanesi":{"type":"object","properties":{"verilen":{"type":"string"},"beklenen":{"type":"string"}}},"hata":{"type":["string","null"],"description":"Yalnız gecerli=false iken: kontrol_basamagi"},"aciklama":{"type":["string","null"]},"not":{"type":"string","description":"Önek yorumunun sınırı; kullanıcıya iletin"}}}}}},"400":{"description":"Barkod rakam dışı karakter içeriyor ya da uzunluk 8/12/13 değil","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/eczane/nobetci":{"get":{"tags":["eczane"],"summary":"Nöbetçi eczaneler","security":[{"anahtar":[]}],"x-kredi":1,"description":"İ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: İstanbul, Ankara, İzmir, Bursa, Antalya. Liste boşsa kredi düşmez. Kapsam dışı il 422 ve `kapsam` listesi.","parameters":[{"name":"il","in":"query","required":true,"schema":{"type":"string"},"example":"İzmir"},{"name":"ilce","in":"query","schema":{"type":"string"},"example":"Bornova"}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","required":["eczaneler","kaynak","guncelleme","bayat"],"properties":{"il":{"type":["string","null"]},"ilce":{"type":["string","null"]},"nobetTarihi":{"type":["string","null"]},"eczaneler":{"type":"array","items":{"type":"object","properties":{"ad":{"type":"string"},"ilce":{"type":["string","null"]},"mahalle":{"type":["string","null"]},"adres":{"type":"string"},"telefon":{"type":["string","null"]},"lat":{"type":["number","null"]},"lon":{"type":["number","null"]},"nobetTuru":{"type":["string","null"]},"nobetBaslangic":{"type":["string","null"],"description":"ISO 8601; kaynak saat vermiyorsa null"},"nobetBitis":{"type":["string","null"]}}}},"kaynak":{"type":"string"},"kaynakUrl":{"type":"string"},"lisans":{"type":"string"},"guncelleme":{"type":["string","null"],"description":"Son başarılı çekim (ISO 8601); hiç yoksa null"},"bayat":{"type":"boolean"},"not":{"type":"string"}}}}}},"400":{"description":"il eksik","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"422":{"description":"Bu il için kaynak yok","content":{"application/json":{"schema":{"type":"object","properties":{"hata":{"type":"string"},"kapsam":{"type":"array","items":{"type":"string"}}}}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/akaryakit/fiyat":{"get":{"tags":["akaryakit"],"summary":"Akaryakıt bayi fiyatları (EPDK)","security":[{"anahtar":[]}],"x-kredi":1,"description":"İ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 `tarih`i son bildirildiği gün. İstanbul Anadolu ve Avrupa diye iki bölge (`bolge`). 81 il. Liste boşsa kredi düşmez.","parameters":[{"name":"il","in":"query","required":true,"schema":{"type":"string"},"example":"Ankara"},{"name":"urun","in":"query","schema":{"type":"string"},"example":"motorin","description":"Ürün adında geçen metin (Türkçe karaktersiz de olur)"},{"name":"marka","in":"query","schema":{"type":"string"},"example":"opet"},{"name":"bolge","in":"query","schema":{"type":"string","enum":["anadolu","avrupa"]},"description":"Yalnız İstanbul"}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","required":["fiyatlar","kaynak","guncelleme","bayat"],"properties":{"il":{"type":"string"},"fiyatlar":{"type":"array","items":{"type":"object","properties":{"bolge":{"type":["string","null"]},"marka":{"type":"string"},"urun":{"type":"string"},"fiyat":{"type":"number"},"tarih":{"type":"string","description":"Fiyatın son bildirildiği gün (YYYY-AA-GG)"},"supheli":{"type":"boolean","description":"İl/ürün ortancasından %25'ten fazla sapıyor (kaynaktaki olası hatalı bildirim); özete katılmaz"}}}},"ozet":{"type":"array","items":{"type":"object","properties":{"urun":{"type":"string"},"enDusuk":{"type":"number"},"ortalama":{"type":"number"},"enYuksek":{"type":"number"},"markaSayisi":{"type":"integer"},"supheliSayisi":{"type":"integer"}}}},"kaynak":{"type":"string"},"kaynakUrl":{"type":"string"},"lisans":{"type":"string"},"guncelleme":{"type":["string","null"],"description":"Son başarılı çekim (ISO 8601); hiç yoksa null"},"bayat":{"type":"boolean"},"not":{"type":"string"}}}}}},"400":{"description":"il eksik","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"422":{"description":"il bulunamadı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/hal/fiyat":{"get":{"tags":["hal"],"summary":"Toptancı hal fiyat bülteni (Hal Kayıt Sistemi)","security":[{"anahtar":[]}],"x-kredi":1,"description":"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.","parameters":[{"name":"urun","in":"query","schema":{"type":"string"},"example":"domates","description":"Ürün ya da cins adında geçen metin (Türkçe karaktersiz de olur)"},{"name":"tur","in":"query","schema":{"type":"string","enum":["konvansiyonel","iyi-tarim","organik"]}},{"name":"tarih","in":"query","schema":{"type":"string","format":"date"},"description":"Bülten günü (YYYY-AA-GG)"}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","required":["urunler","kaynak","guncelleme","bayat"],"properties":{"bultenTarihi":{"type":["string","null"],"description":"Bülten günü"},"veriTarihi":{"type":["string","null"],"description":"Bültenin kullandığı verinin günü (çoğunlukla önceki iş günü)"},"urunler":{"type":"array","items":{"type":"object","properties":{"urun":{"type":"string"},"cins":{"type":"string"},"tur":{"type":"string"},"fiyat":{"type":"number","description":"Ortalama fiyat, TL / birim"},"hacim":{"type":"number","description":"İşlem hacmi, birim cinsinden"},"birim":{"type":"string","description":"Kg, Adet, Bağ"}}}},"kaynak":{"type":"string"},"kaynakUrl":{"type":"string"},"lisans":{"type":"string"},"guncelleme":{"type":["string","null"],"description":"Son başarılı çekim (ISO 8601); hiç yoksa null"},"bayat":{"type":"boolean"},"not":{"type":"string"}}}}}},"400":{"description":"tur ya da tarih geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/deprem/son":{"get":{"tags":["deprem"],"summary":"Son depremler (AFAD)","security":[{"anahtar":[]}],"x-kredi":1,"description":"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.","parameters":[{"name":"saat","in":"query","schema":{"type":"integer","minimum":1,"maximum":168,"default":24}},{"name":"minBuyukluk","in":"query","schema":{"type":"number","minimum":0,"maximum":10,"default":0},"example":3},{"name":"il","in":"query","schema":{"type":"string"},"example":"İzmir","description":"AFAD'ın olaya yazdığı il (denizdeki olayda en yakın il)"},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":1000,"default":100}}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","required":["depremler","kaynak","guncelleme","bayat"],"properties":{"il":{"type":["string","null"]},"toplam":{"type":"integer","description":"Süzgece uyan olay sayısı (limit öncesi)"},"depremler":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"zaman":{"type":"string","description":"UTC, ISO 8601"},"zamanTr":{"type":"string","description":"Türkiye saati (+03:00)"},"buyukluk":{"type":"number"},"tur":{"type":"string","description":"ML, MW…"},"derinlikKm":{"type":"number"},"lat":{"type":"number"},"lon":{"type":"number"},"yer":{"type":"string"},"ulke":{"type":["string","null"]},"il":{"type":["string","null"]},"ilce":{"type":["string","null"]},"mahalle":{"type":["string","null"]},"guncellendi":{"type":["string","null"],"description":"AFAD olayı düzelttiyse güncelleme zamanı (UTC)"}}}},"kaynak":{"type":"string"},"kaynakUrl":{"type":"string"},"lisans":{"type":"string"},"guncelleme":{"type":"string","description":"AFAD'dan son alınma (ISO 8601)"},"bayat":{"type":"boolean"},"not":{"type":"string"}}}}}},"400":{"description":"parametre aralık dışında","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"422":{"description":"il bulunamadı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"503":{"description":"AFAD yanıt vermiyor ve önbellek yok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/altin/fiyat":{"get":{"tags":["altin"],"summary":"Altın ve serbest piyasa döviz fiyatı","security":[{"anahtar":[]}],"x-kredi":1,"description":"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.","parameters":[{"name":"urun","in":"query","schema":{"type":"string"},"example":"gram,ceyrek,cumhuriyet","description":"Virgüllü ürün kodu ya da kısa ad (gram, has, ceyrek, yarim, tam, cumhuriyet, ata, ons, bilezik); boşsa hepsi"},{"name":"doviz","in":"query","schema":{"type":"string"},"example":"USD,EUR","description":"Virgüllü döviz kodu, \"hepsi\" ya da \"yok\"; varsayılan USD,EUR,GBP,CHF"}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","required":["altin","doviz","kaynak","guncelleme","bayat"],"properties":{"altin":{"type":"array","items":{"$ref":"#/components/schemas/PiyasaFiyati"}},"doviz":{"type":"array","items":{"$ref":"#/components/schemas/PiyasaFiyati"}},"kaynak":{"type":"string"},"kaynakUrl":{"type":"array","items":{"type":"string"}},"lisans":{"type":"string"},"guncelleme":{"type":"string","description":"Kaynaktan son alınma (ISO 8601)"},"bayat":{"type":"boolean"},"not":{"type":"string"}}}}}},"400":{"description":"doviz listesi geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"422":{"description":"ürün bulunamadı (geçerli kodlar yanıtta)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"503":{"description":"kaynak yanıt vermiyor ve önbellek yok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/su/baraj-doluluk":{"get":{"tags":["su"],"summary":"Baraj doluluk oranları","security":[{"anahtar":[]}],"x-kredi":1,"description":"İ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 `eksik`te. İstanbul ve Bursa kapsam dışı (gerekçe kaynak notunda).","parameters":[{"name":"il","in":"query","schema":{"type":"string"},"example":"İzmir","description":"İl adı ya da \"Türkiye\"; boşsa hepsi"}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","required":["sonuclar","kaynak","guncelleme","bayat"],"properties":{"il":{"type":["string","null"]},"sonuclar":{"type":"array","items":{"type":"object","properties":{"il":{"type":"string"},"tarih":{"type":["string","null"],"description":"Verinin günü (kaynağın yazdığı); yoksa null"},"toplamDolulukYuzde":{"type":["number","null"]},"aktifDolulukYuzde":{"type":["number","null"]},"gecenYil":{"type":["object","null"],"properties":{"tarih":{"type":["string","null"]},"toplamDolulukYuzde":{"type":["number","null"]},"aktifDolulukYuzde":{"type":["number","null"]}}},"barajlar":{"type":"array","items":{"type":"object","properties":{"ad":{"type":"string"},"dolulukYuzde":{"type":"number"},"suHacmiM3":{"type":["number","null"]},"maksHacimM3":{"type":["number","null"]},"kullanilabilirSuM3":{"type":["number","null"]},"lat":{"type":["number","null"]},"lon":{"type":["number","null"]}}}},"amaclar":{"type":"array","items":{"type":"object","properties":{"amac":{"type":"string"},"dolulukYuzde":{"type":"number"}}}},"aciklama":{"type":"string"},"kaynak":{"type":"string"},"kaynakUrl":{"type":"string"},"lisans":{"type":"string"},"guncelleme":{"type":"string","description":"Bu kaynaktan son alınma (ISO 8601)"},"bayat":{"type":"boolean"}}}},"eksik":{"type":"array","items":{"type":"object","properties":{"il":{"type":"string"},"neden":{"type":"string"}}}},"kapsam":{"type":"array","items":{"type":"string"}},"kaynak":{"type":"string"},"guncelleme":{"type":"string","description":"Sonuçlardaki en eski alma zamanı (ISO 8601)"},"bayat":{"type":"boolean"},"not":{"type":"string"}}}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"422":{"description":"il bulunamadı ya da kapsam dışı (kapsam yanıtta)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"503":{"description":"kaynaklar yanıt vermiyor ve önbellek yok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/hava/durum":{"get":{"tags":["hava"],"summary":"Hava durumu tahmini (MET Norway)","security":[{"anahtar":[]}],"x-kredi":1,"description":"İ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.","parameters":[{"name":"il","in":"query","schema":{"type":"string"},"example":"Ankara","description":"İl adı ya da plaka; lat/lon ile birlikte verilmez"},{"name":"lat","in":"query","schema":{"type":"number","minimum":34,"maximum":43}},{"name":"lon","in":"query","schema":{"type":"number","minimum":25,"maximum":46}}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","required":["konum","saatlik","gunluk","kaynak","guncelleme","bayat"],"properties":{"il":{"type":["string","null"]},"plaka":{"type":["integer","null"]},"konum":{"type":"object","properties":{"lat":{"type":"number"},"lon":{"type":"number"},"rakimM":{"type":["number","null"]},"kaynak":{"type":"string"}}},"anlik":{"oneOf":[{"$ref":"#/components/schemas/HavaSaati"},{"type":"null"}]},"saatlik":{"type":"array","items":{"$ref":"#/components/schemas/HavaSaati"}},"gunluk":{"type":"array","items":{"type":"object","properties":{"tarih":{"type":"string"},"enDusukC":{"type":["number","null"]},"enYuksekC":{"type":["number","null"]},"yagisMm":{"type":"number"},"durum":{"type":["string","null"]},"durumKod":{"type":["string","null"]}}}},"modelGuncelleme":{"type":["string","null"]},"kaynak":{"type":"string"},"kaynakUrl":{"type":"string"},"lisans":{"type":"string"},"guncelleme":{"type":"string","description":"MET'ten son alınma (ISO 8601)"},"bayat":{"type":"boolean"},"not":{"type":"string"}}}}}},"400":{"description":"il ya da lat/lon eksik ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"422":{"description":"il bulunamadı ya da koordinat kapsam dışı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"503":{"description":"kaynak yanıt vermiyor ve önbellek yok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/ibb/trafik":{"get":{"tags":["ibb"],"summary":"İstanbul anlık trafik indeksi (İBB)","security":[{"anahtar":[]}],"x-kredi":1,"description":"İ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).","parameters":[{"name":"gecmis","in":"query","schema":{"type":"integer","minimum":0,"maximum":24,"default":0},"description":"Kaç saatlik geçmiş"}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","required":["indeks","kaynak","guncelleme","atif"],"properties":{"indeks":{"type":"number"},"anadolu":{"type":["number","null"]},"avrupa":{"type":["number","null"]},"gecmis":{"type":"array","items":{"type":"object","properties":{"zaman":{"type":"string","description":"Türkiye saati (+03:00)"},"indeks":{"type":"number"}}}},"kaynak":{"type":"string"},"kaynakUrl":{"type":"string"},"lisans":{"type":"string"},"lisansUrl":{"type":"string"},"atif":{"type":"string","description":"İBB Açık Veri Lisansı gereği gösterilmesi gereken atıf metni"},"guncelleme":{"type":"string","description":"İBB'den son alınma (ISO 8601)"},"bayat":{"type":"boolean"},"not":{"type":"string"}}}}}},"400":{"description":"gecmis 0–24 olmalı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"503":{"description":"İBB yanıt vermiyor ve önbellek yok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/ibb/otopark":{"get":{"tags":["ibb"],"summary":"İSPARK otopark doluluğu","security":[{"anahtar":[]}],"x-kredi":1,"description":"İ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.","parameters":[{"name":"lat","in":"query","schema":{"type":"number"},"example":40.9903},{"name":"lon","in":"query","schema":{"type":"number"},"example":29.029},{"name":"yaricap","in":"query","schema":{"type":"integer","minimum":50,"maximum":20000,"default":1000},"description":"Metre"},{"name":"ilce","in":"query","schema":{"type":"string"},"example":"Kadıköy"},{"name":"ara","in":"query","schema":{"type":"string"},"description":"Otopark adındaki sözcükler"},{"name":"tur","in":"query","schema":{"type":"string","enum":["acik","kapali","yol_ustu"]}},{"name":"bos","in":"query","schema":{"type":"boolean"},"description":"true: yalnız boş yeri olanlar"},{"name":"acik","in":"query","schema":{"type":"boolean"},"description":"true: yalnız şu an işletmede olanlar"},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":500,"default":50}}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","required":["otoparklar","kaynak","guncelleme","atif"],"properties":{"toplam":{"type":"integer"},"ozet":{"type":"object","properties":{"kapasite":{"type":"integer"},"bos":{"type":"integer"}}},"otoparklar":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"ad":{"type":"string"},"tur":{"type":"string","enum":["acik","kapali","yol_ustu","diger"]},"turAdi":{"type":["string","null"]},"ilce":{"type":["string","null"]},"lat":{"type":"number"},"lon":{"type":"number"},"kapasite":{"type":"integer"},"bos":{"type":"integer"},"doluluk":{"type":["number","null"],"description":"Yüzde"},"acik":{"type":"boolean"},"calismaSaatleri":{"type":["string","null"]},"ucretsizDakika":{"type":["number","null"]},"mesafeM":{"type":"integer"}}}},"kaynak":{"type":"string"},"kaynakUrl":{"type":"string"},"lisans":{"type":"string"},"lisansUrl":{"type":"string"},"atif":{"type":"string","description":"İBB Açık Veri Lisansı gereği gösterilmesi gereken atıf metni"},"guncelleme":{"type":"string","description":"İBB'den son alınma (ISO 8601)"},"bayat":{"type":"boolean"},"not":{"type":"string"}}}}}},"400":{"description":"parametre geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"422":{"description":"İstanbul ilçesi bulunamadı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"503":{"description":"İBB yanıt vermiyor ve önbellek yok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/ibb/otopark/{id}":{"get":{"tags":["ibb"],"summary":"İSPARK otopark ayrıntısı (tarife)","security":[{"anahtar":[]}],"x-kredi":1,"description":"Tek İSPARK otoparkının doluluğu, adresi, saatlik tarifesi ve aylık abonelik ücreti. Bilinmeyen numara 404, kredisiz.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"},"example":3068}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"otopark":{"type":"object","properties":{"id":{"type":"integer"},"ad":{"type":"string"},"tur":{"type":"string","enum":["acik","kapali","yol_ustu","diger"]},"turAdi":{"type":["string","null"]},"ilce":{"type":["string","null"]},"lat":{"type":"number"},"lon":{"type":"number"},"kapasite":{"type":"integer"},"bos":{"type":"integer"},"doluluk":{"type":["number","null"],"description":"Yüzde"},"acik":{"type":"boolean"},"calismaSaatleri":{"type":["string","null"]},"ucretsizDakika":{"type":["number","null"]},"mesafeM":{"type":"integer"},"adres":{"type":["string","null"]},"aylikAbonelik":{"type":["number","null"]},"olcumZamani":{"type":["string","null"]},"tarife":{"type":"array","items":{"type":"object","properties":{"sure":{"type":"string"},"ucret":{"type":"number"}}}}}},"kaynak":{"type":"string"},"kaynakUrl":{"type":"string"},"lisans":{"type":"string"},"lisansUrl":{"type":"string"},"atif":{"type":"string","description":"İBB Açık Veri Lisansı gereği gösterilmesi gereken atıf metni"},"guncelleme":{"type":"string","description":"İBB'den son alınma (ISO 8601)"},"bayat":{"type":"boolean"},"not":{"type":"string"}}}}}},"400":{"description":"id sayı olmalı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"404":{"description":"bu numarada İSPARK otoparkı yok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"503":{"description":"İBB yanıt vermiyor ve önbellek yok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/ibb/hava/istasyonlar":{"get":{"tags":["ibb"],"summary":"İBB hava kalitesi istasyonları (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"İBB hava kalitesi izleme istasyonları: id, ad, ilçe, konum. 24 saat önbellek.","responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"toplam":{"type":"integer"},"istasyonlar":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"ad":{"type":"string"},"ilce":{"type":["string","null"]},"lat":{"type":"number"},"lon":{"type":"number"}}}},"kaynak":{"type":"string"},"kaynakUrl":{"type":"string"},"lisans":{"type":"string"},"lisansUrl":{"type":"string"},"atif":{"type":"string","description":"İBB Açık Veri Lisansı gereği gösterilmesi gereken atıf metni"},"guncelleme":{"type":"string","description":"İBB'den son alınma (ISO 8601)"},"bayat":{"type":"boolean"}}}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"503":{"description":"İBB yanıt vermiyor ve önbellek yok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/ibb/hava":{"get":{"tags":["ibb"],"summary":"İstanbul hava kalitesi ölçümleri","security":[{"anahtar":[]}],"x-kredi":1,"description":"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.","parameters":[{"name":"istasyon","in":"query","schema":{"type":"string"},"example":"Kadıköy"},{"name":"lat","in":"query","schema":{"type":"number"}},{"name":"lon","in":"query","schema":{"type":"number"}},{"name":"yaricap","in":"query","schema":{"type":"integer","minimum":50,"maximum":100000,"default":50000},"description":"En yakın istasyon en çok bu kadar uzakta (metre)"},{"name":"saat","in":"query","schema":{"type":"integer","minimum":1,"maximum":48,"default":24}}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","required":["istasyon","olcumler","kaynak","guncelleme","atif"],"properties":{"istasyon":{"type":"object","properties":{"id":{"type":"string"},"ad":{"type":"string"},"ilce":{"type":["string","null"]},"lat":{"type":"number"},"lon":{"type":"number"}}},"mesafeM":{"type":"integer"},"son":{"type":["object","null"],"properties":{"zaman":{"type":"string","description":"Türkiye saati (+03:00)"},"aqi":{"type":"number"},"baskinKirletici":{"type":["string","null"]},"durum":{"type":["string","null"]},"renk":{"type":["string","null"]},"konsantrasyon":{"type":"object","additionalProperties":{"type":["number","null"]}},"altIndeks":{"type":"object","additionalProperties":{"type":["number","null"]}}}},"olcumler":{"type":"array","items":{"type":"object","properties":{"zaman":{"type":"string","description":"Türkiye saati (+03:00)"},"aqi":{"type":"number"},"baskinKirletici":{"type":["string","null"]},"durum":{"type":["string","null"]},"renk":{"type":["string","null"]},"konsantrasyon":{"type":"object","additionalProperties":{"type":["number","null"]}},"altIndeks":{"type":"object","additionalProperties":{"type":["number","null"]}}}}},"kaynak":{"type":"string"},"kaynakUrl":{"type":"string"},"lisans":{"type":"string"},"lisansUrl":{"type":"string"},"atif":{"type":"string","description":"İBB Açık Veri Lisansı gereği gösterilmesi gereken atıf metni"},"guncelleme":{"type":"string","description":"İBB'den son alınma (ISO 8601)"},"bayat":{"type":"boolean"},"not":{"type":"string"}}}}}},"400":{"description":"istasyon ya da lat/lon yok, parametre geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"422":{"description":"istasyon bulunamadı ya da yarıçapta istasyon yok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"503":{"description":"İBB yanıt vermiyor ve önbellek yok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/ibb/metro/durum":{"get":{"tags":["ibb"],"summary":"Metro İstanbul hat aksaklıkları","security":[{"anahtar":[]}],"x-kredi":1,"description":"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.","parameters":[{"name":"hat","in":"query","schema":{"type":"string"},"example":"M7"}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"normal":{"type":"boolean"},"duyurular":{"type":"array","items":{"type":"object","properties":{"hat":{"type":"string"},"hatId":{"type":["integer","null"]},"aciklama":{"type":"string"},"guncellendi":{"type":["string","null"]}}}},"kaynak":{"type":"string"},"kaynakUrl":{"type":"string"},"lisans":{"type":"string"},"lisansUrl":{"type":"string"},"atif":{"type":"string","description":"İBB Açık Veri Lisansı gereği gösterilmesi gereken atıf metni"},"guncelleme":{"type":"string","description":"İBB'den son alınma (ISO 8601)"},"bayat":{"type":"boolean"},"not":{"type":"string"}}}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"503":{"description":"İBB yanıt vermiyor ve önbellek yok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/ibb/nokta":{"get":{"tags":["ibb"],"summary":"İstanbul nokta verisi (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"İ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).","parameters":[{"name":"tur","in":"query","required":true,"schema":{"type":"string","enum":["rayli","wifi","istanbulkart","itfaiye","sarj"]}},{"name":"lat","in":"query","schema":{"type":"number"},"example":41.0369},{"name":"lon","in":"query","schema":{"type":"number"},"example":28.985},{"name":"yaricap","in":"query","schema":{"type":"integer","minimum":50,"maximum":50000,"default":1000},"description":"Metre"},{"name":"ilce","in":"query","schema":{"type":"string"}},{"name":"ara","in":"query","schema":{"type":"string"},"description":"Ad, hat/marka ve adresteki sözcükler (hepsi)"},{"name":"altTur","in":"query","schema":{"type":"string"},"description":"Metro, Tramvay, Banliyö…; halka_acik|ozel; itfaiye statüsü"},{"name":"insaat","in":"query","schema":{"type":"boolean"},"description":"rayli: inşaattaki istasyonlar da"},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":500,"default":50}},{"name":"sayfa","in":"query","schema":{"type":"integer","minimum":1,"default":1}}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"tur":{"type":"string"},"toplam":{"type":"integer"},"sayfa":{"type":"integer"},"noktalar":{"type":"array","items":{"type":"object","properties":{"id":{"type":["string","null"]},"ad":{"type":"string"},"altTur":{"type":["string","null"]},"ilce":{"type":["string","null"]},"adres":{"type":["string","null"]},"ek":{"type":["string","null"],"description":"Hat adı (rayli) ya da marka (sarj)"},"insaat":{"type":"boolean"},"lat":{"type":"number"},"lon":{"type":"number"},"mesafeM":{"type":"integer"}}}},"kaynak":{"type":"string"},"kaynakUrl":{"type":"string"},"lisans":{"type":"string"},"lisansUrl":{"type":"string"},"atif":{"type":"string","description":"İBB Açık Veri Lisansı gereği gösterilmesi gereken atıf metni"},"guncelleme":{"type":"string","format":"date"},"kaynakGuncelleme":{"type":["string","null"]},"not":{"type":"string"}}}}}},"400":{"description":"tur yok ya da parametre geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"422":{"description":"İstanbul ilçesi bulunamadı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/resmi-gazete/bugun":{"get":{"tags":["resmi-gazete"],"summary":"En yeni Resmî Gazete fihristi","security":[{"anahtar":[]}],"x-kredi":0,"description":"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.","responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","required":["tarih","sayilar","kaynak","guncelleme","bayat"],"properties":{"tarih":{"type":["string","null"],"format":"date","description":"Yayım günü; kayıt yoksa null"},"sayilar":{"type":"array","description":"Gün içindeki sayılar: asıl sayı ve varsa mükerrerler","items":{"type":"object","properties":{"tarih":{"type":"string","format":"date"},"sayi":{"type":"integer","description":"Gazete sayısı, örn. 33378"},"mukerrer":{"type":"integer","description":"0 asıl sayı, 1 birinci mükerrer…"},"url":{"type":"string","description":"Fihrist sayfasının adresi"},"basliklar":{"type":"array","items":{"type":"object","properties":{"bolum":{"type":"string","description":"Yasama, Yürütme ve İdare, Yargı ya da İlan"},"kategori":{"type":"string","description":"Alt başlık: YÖNETMELİKLER, TEBLİĞLER, ATAMA KARARLARI…"},"baslik":{"type":"string","description":"`kisisel` ise başlık yerine kategorisi"},"url":{"type":"string","description":"resmigazete.gov.tr'deki belge bağlantısı"},"kisisel":{"type":"boolean","description":"Başlıkta kişi adı geçiyordu; ad saklanmadı"}}}}}}},"kaynak":{"type":"string"},"kaynakUrl":{"type":"string"},"lisans":{"type":"string"},"guncelleme":{"type":["string","null"],"description":"Son başarılı çekim (ISO 8601); hiç yoksa null"},"bayat":{"type":"boolean"},"not":{"type":"string"}}}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/resmi-gazete":{"get":{"tags":["resmi-gazete"],"summary":"Bir günün ya da sayının fihristi","security":[{"anahtar":[]}],"x-kredi":1,"description":"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.","parameters":[{"name":"tarih","in":"query","schema":{"type":"string","format":"date"},"example":"2026-09-22","description":"Yayım günü (YYYY-AA-GG)"},{"name":"sayi","in":"query","schema":{"type":"integer","minimum":1},"example":33378,"description":"Gazete sayısı; mükerrerler de gelir"}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","required":["tarih","sayilar","kaynak","guncelleme","bayat"],"properties":{"tarih":{"type":["string","null"],"format":"date","description":"Yayım günü; kayıt yoksa null"},"sayilar":{"type":"array","description":"Gün içindeki sayılar: asıl sayı ve varsa mükerrerler","items":{"type":"object","properties":{"tarih":{"type":"string","format":"date"},"sayi":{"type":"integer","description":"Gazete sayısı, örn. 33378"},"mukerrer":{"type":"integer","description":"0 asıl sayı, 1 birinci mükerrer…"},"url":{"type":"string","description":"Fihrist sayfasının adresi"},"basliklar":{"type":"array","items":{"type":"object","properties":{"bolum":{"type":"string","description":"Yasama, Yürütme ve İdare, Yargı ya da İlan"},"kategori":{"type":"string","description":"Alt başlık: YÖNETMELİKLER, TEBLİĞLER, ATAMA KARARLARI…"},"baslik":{"type":"string","description":"`kisisel` ise başlık yerine kategorisi"},"url":{"type":"string","description":"resmigazete.gov.tr'deki belge bağlantısı"},"kisisel":{"type":"boolean","description":"Başlıkta kişi adı geçiyordu; ad saklanmadı"}}}}}}},"kaynak":{"type":"string"},"kaynakUrl":{"type":"string"},"lisans":{"type":"string"},"guncelleme":{"type":["string","null"],"description":"Son başarılı çekim (ISO 8601); hiç yoksa null"},"bayat":{"type":"boolean"},"not":{"type":"string"}}}}}},"400":{"description":"tarih ya da sayi gerekli / geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/resmi-gazete/ara":{"get":{"tags":["resmi-gazete"],"summary":"Fihrist başlıklarında arama","security":[{"anahtar":[]}],"x-kredi":1,"description":"Başlıkta geçen metne göre arar (Türkçe karakter ve büyük/küçük harf ayrımı yok). Yeniden eskiye, en çok 50 sonuç. `kisisel: true` satırların başlığı kategorisine indirgenmiştir: kişi adıyla aranamaz. Sonuç boşsa kredi düşmez.","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":3},"example":"tıbbi cihaz"},{"name":"baslangic","in":"query","schema":{"type":"string","format":"date"},"description":"En eski gün"},{"name":"bitis","in":"query","schema":{"type":"string","format":"date"},"description":"En yeni gün"},{"name":"bolum","in":"query","schema":{"type":"string","enum":["yasama","yurutme","yargi","ilan"]}}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","required":["sonuclar","kaynak","guncelleme","bayat"],"properties":{"q":{"type":"string"},"sonuclar":{"type":"array","items":{"type":"object","properties":{"tarih":{"type":"string","format":"date"},"sayi":{"type":"integer"},"mukerrer":{"type":"integer","description":"0 asıl sayı, 1 birinci mükerrer…"},"bolum":{"type":"string","description":"Yasama, Yürütme ve İdare, Yargı ya da İlan"},"kategori":{"type":"string","description":"Alt başlık: YÖNETMELİKLER, TEBLİĞLER, ATAMA KARARLARI…"},"baslik":{"type":"string","description":"`kisisel` ise başlık yerine kategorisi"},"url":{"type":"string","description":"resmigazete.gov.tr'deki belge bağlantısı"},"kisisel":{"type":"boolean","description":"Başlıkta kişi adı geçiyordu; ad saklanmadı"}}}},"kaynak":{"type":"string"},"kaynakUrl":{"type":"string"},"lisans":{"type":"string"},"guncelleme":{"type":["string","null"],"description":"Son başarılı çekim (ISO 8601); hiç yoksa null"},"bayat":{"type":"boolean"},"not":{"type":"string"}}}}}},"400":{"description":"q en az 3 karakter / tarih ya da bolum geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/vergi-dairesi":{"get":{"tags":["vergi-dairesi"],"summary":"Vergi daireleri listesi (GİB)","security":[{"anahtar":[]}],"x-kredi":0,"description":"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.","parameters":[{"name":"il","in":"query","schema":{"type":"string"},"example":"İstanbul"},{"name":"ilce","in":"query","schema":{"type":"string"},"example":"Silivri","description":"Kaynaktaki ilçe. İl merkezindeki (büyükşehirde merkez ilçelerdeki) daireler \"Merkez\"; hangi merkez ilçede oldukları listede yok"},{"name":"ara","in":"query","schema":{"type":"string"},"example":"kadikoy","description":"Ad ya da ilçede sözcük başından, Türkçe karaktersiz"},{"name":"tur","in":"query","schema":{"type":"string","enum":["mudurluk","sube","defterdarlik"]}}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","required":["vergiDaireleri","kaynak","guncelleme","bayat"],"properties":{"il":{"type":["string","null"]},"toplam":{"type":"integer"},"vergiDaireleri":{"type":"array","items":{"$ref":"#/components/schemas/VergiDairesi"}},"kaynak":{"type":"string"},"kaynakUrl":{"type":"string"},"lisans":{"type":"string"},"guncelleme":{"type":"string","description":"Kaynak listenin tarihi (YYYY-AA-GG)"},"bayat":{"type":"boolean","description":"Liste 1 yıldan eski"},"not":{"type":"string"}}}}}},"400":{"description":"tur geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"422":{"description":"il bulunamadı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/vergi-dairesi/{kod}":{"get":{"tags":["vergi-dairesi"],"summary":"Muhasebe birim kodundan vergi dairesi","security":[{"anahtar":[]}],"x-kredi":0,"parameters":[{"name":"kod","in":"path","required":true,"schema":{"type":"string","pattern":"^\\d{5}$"},"example":"34246"}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"vergiDairesi":{"$ref":"#/components/schemas/VergiDairesi"},"kaynak":{"type":"string"},"kaynakUrl":{"type":"string"},"lisans":{"type":"string"},"guncelleme":{"type":"string"},"bayat":{"type":"boolean"},"not":{"type":"string"}}}}}},"400":{"description":"kod 5 haneli değil","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"404":{"description":"kod listede yok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/ekonomi/tufe":{"get":{"tags":["ekonomi"],"summary":"TÜFE: aylık, yıllık, 12 aylık ortalama (TÜİK, ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"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 `seri`de. 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.","parameters":[{"name":"ay","in":"query","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}$"},"example":"2026-08"},{"name":"son","in":"query","schema":{"type":"integer","minimum":1,"maximum":120},"description":"Seri uzunluğu (ay sayısı)"}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","required":["ay","yillik","oniKiAylikOrtalama","kaynak","guncelleme","bayat"],"properties":{"ay":{"type":"string","description":"YYYY-AA"},"endeks":{"type":"number"},"aylik":{"type":"number","description":"Önceki aya göre, %"},"aralikaGore":{"type":"number","description":"Önceki yılın Aralık ayına göre, %"},"yillik":{"type":"number","description":"Önceki yılın aynı ayına göre, %"},"oniKiAylikOrtalama":{"type":"number","description":"12 aylık ortalamalara göre, %"},"baz":{"type":"string","description":"\"2025=100\""},"seri":{"type":"array","items":{"type":"object","properties":{"ay":{"type":"string","description":"YYYY-AA"},"endeks":{"type":"number"},"aylik":{"type":"number","description":"Önceki aya göre, %"},"aralikaGore":{"type":"number","description":"Önceki yılın Aralık ayına göre, %"},"yillik":{"type":"number","description":"Önceki yılın aynı ayına göre, %"},"oniKiAylikOrtalama":{"type":"number","description":"12 aylık ortalamalara göre, %"}}}},"kaynak":{"type":"string"},"kaynakUrl":{"type":"string"},"lisans":{"type":"string"},"guncelleme":{"type":"string","description":"TÜİK bülteninin yayım anı"},"bayat":{"type":"boolean","description":"Açıklanmış olması gereken son ay eksik (TÜİK'e ulaşılamadı)"},"not":{"type":"string"}}}}}},"400":{"description":"ay ya da son geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"422":{"description":"ay henüz açıklanmadı (`sonAy`) ya da seriden eski","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/ekonomi/kira-artis":{"get":{"tags":["ekonomi"],"summary":"Yasal kira artış üst sınırı (TBK m.344, ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"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.","parameters":[{"name":"yenileme","in":"query","schema":{"type":"string","format":"date"},"example":"2026-09-15"},{"name":"ay","in":"query","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}$"},"description":"TÜFE ayı"},{"name":"tur","in":"query","schema":{"type":"string","enum":["konut","isyeri"]},"description":"Varsayılan konut"},{"name":"kira","in":"query","schema":{"type":"number","exclusiveMinimum":0},"example":20000,"description":"Mevcut aylık kira, TL"}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","required":["tufeAyi","azamiOran","dayanak","kaynak","guncelleme","uyari"],"properties":{"tufeAyi":{"type":"string"},"oniKiAylikOrtalama":{"type":"number"},"tur":{"type":"string"},"yenileme":{"type":"string"},"azamiOran":{"type":"number","description":"Yüzde"},"konutTavani":{"type":["object","null"],"properties":{"oran":{"type":"number"},"uygulanir":{"type":["boolean","null"],"description":"null: yenileme gününe bağlı"}}},"kira":{"type":["number","null"]},"yeniAzamiKira":{"type":["number","null"]},"dayanak":{"type":"object","properties":{"ustSinir":{"type":"string"},"konutTavani":{"type":"string"}}},"kaynak":{"type":"string"},"kaynakUrl":{"type":"string"},"lisans":{"type":"string"},"guncelleme":{"type":"string"},"bayat":{"type":"boolean"},"not":{"type":"string"},"uyari":{"type":"string"}}}}}},"400":{"description":"parametre geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"422":{"description":"TÜFE ayı henüz açıklanmadı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/enerji/tarife":{"get":{"tags":["enerji"],"summary":"Elektrik ve doğal gaz tarifesi (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"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ü.","parameters":[{"name":"tur","in":"query","schema":{"type":"string","enum":["elektrik","dogalgaz"]},"description":"Verilmezse ikisi"},{"name":"grup","in":"query","schema":{"type":"string"},"example":"mesken","description":"Elektrik abone grubu (içerir)"},{"name":"sinif","in":"query","schema":{"type":"string"},"example":"AG","description":"Elektrik tarife sınıfı (başlar)"},{"name":"il","in":"query","schema":{"type":"string"},"example":"Ankara","description":"Doğal gaz konut kademe limiti"},{"name":"ay","in":"query","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}$"},"description":"Kademe limitinin ayı; varsayılan bu ay"}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","required":["lisans","uyari"],"properties":{"elektrik":{"type":"object","properties":{"gecerlilik":{"type":"object","properties":{"baslangic":{"type":"string","format":"date"}}},"baslik":{"type":"string"},"birim":{"type":"object"},"satirlar":{"type":"array","items":{"type":"object","properties":{"sinif":{"type":"string"},"grup":{"type":"string"},"kademe":{"type":["string","null"]},"enerji":{"type":"object","properties":{"tekZamanli":{"type":["number","null"]},"gunduz":{"type":["number","null"]},"puant":{"type":["number","null"]},"gece":{"type":["number","null"]}}},"dagitim":{"type":["number","null"]},"guc":{"type":["number","null"]},"reaktif":{"type":["number","null"]},"perakendeTekZamanli":{"type":["number","null"]}}}},"notlar":{"type":"array","items":{"type":"string"}},"kaynak":{"type":"string"},"kaynakUrl":{"type":"string"},"not":{"type":"string"}}},"dogalgaz":{"type":"object","properties":{"gecerlilik":{"type":"object","properties":{"baslangic":{"type":"string","format":"date"}}},"baslik":{"type":"string"},"birim":{"type":"string"},"fiyatlar":{"type":"array","items":{"type":"object","properties":{"alici":{"type":"string"},"grup":{"type":"string"},"tlSm3":{"type":"number"},"tlKwh":{"type":["number","null"]}}}},"kademe":{"type":"object","description":"il verilirse: aylar (12 ay, aylikSm3) ve secilenAy (aylikSm3, gunlukSm3)"},"notlar":{"type":"array","items":{"type":"string"}},"kaynak":{"type":"string"},"kaynakUrl":{"type":"string"},"not":{"type":"string"}}},"lisans":{"type":"string"},"uyari":{"type":"string"}}}}}},"400":{"description":"parametre geçersiz ya da il bulunamadı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"404":{"description":"eşleşen elektrik tarifesi yok (yanıtta gruplar ve siniflar)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/egitim/universiteler":{"get":{"tags":["egitim"],"summary":"Üniversiteler (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"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.","parameters":[{"name":"ara","in":"query","schema":{"type":"string"},"example":"teknik","description":"Ad içinde geçen"},{"name":"il","in":"query","schema":{"type":"string"},"example":"Ankara"},{"name":"tur","in":"query","schema":{"type":"string","enum":["devlet","vakif","vakif_myo","kktc","yurtdisi"]}}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"toplam":{"type":"integer"},"universiteler":{"type":"array","items":{"type":"object","properties":{"id":{"type":["integer","null"],"description":"YÖK birim numarası"},"ad":{"type":"string"},"il":{"type":["string","null"]},"tur":{"type":"string","enum":["devlet","vakif","vakif_myo","kktc","yurtdisi"]},"kurulus":{"type":["string","null"],"format":"date"},"web":{"type":["string","null"]},"adres":{"type":["string","null"]},"programSayisi":{"type":"object","properties":{"lisans":{"type":"integer"},"onlisans":{"type":"integer"}}}}}},"kaynak":{"type":"string"},"kaynakUrl":{"type":"array","items":{"type":"string"}},"lisans":{"type":"string"},"guncelleme":{"type":"string","format":"date"},"kilavuzYili":{"type":["integer","null"]}}}}}},"400":{"description":"tur geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/egitim/universiteler/{id}":{"get":{"tags":["egitim"],"summary":"Üniversite ve programları (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"},"example":173499,"description":"YÖK birim numarası"},{"name":"duzey","in":"query","schema":{"type":"string","enum":["lisans","onlisans"]}},{"name":"puanTuru","in":"query","schema":{"type":"string","enum":["SAY","EA","SÖZ","DİL","TYT"]}}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"universite":{"type":"object","properties":{"id":{"type":["integer","null"],"description":"YÖK birim numarası"},"ad":{"type":"string"},"il":{"type":["string","null"]},"tur":{"type":"string","enum":["devlet","vakif","vakif_myo","kktc","yurtdisi"]},"kurulus":{"type":["string","null"],"format":"date"},"web":{"type":["string","null"]},"adres":{"type":["string","null"]},"programSayisi":{"type":"object","properties":{"lisans":{"type":"integer"},"onlisans":{"type":"integer"}}}}},"programSayisi":{"type":"integer"},"programlar":{"type":"array","items":{"type":"object","properties":{"kod":{"type":"integer","description":"ÖSYM kılavuz kodu"},"universiteId":{"type":"integer"},"fakulte":{"type":["string","null"]},"ad":{"type":"string"},"grup":{"type":["string","null"]},"duzey":{"type":"string","enum":["lisans","onlisans"]},"ogretimTuru":{"type":["string","null"]},"sureYil":{"type":["number","null"]},"puanTuru":{"type":["string","null"]},"dil":{"type":["string","null"]},"burs":{"type":["string","null"]},"kontenjan":{"type":["number","null"]},"tabanPuan":{"type":["number","null"]},"tabanBasariSirasi":{"type":["number","null"]},"ucretTl":{"type":["number","null"]},"il":{"type":["string","null"]},"ilce":{"type":["string","null"]}}}},"kaynak":{"type":"string"},"kaynakUrl":{"type":"array","items":{"type":"string"}},"lisans":{"type":"string"},"guncelleme":{"type":"string","format":"date"},"kilavuzYili":{"type":["integer","null"]},"uyari":{"type":"string"}}}}}},"400":{"description":"id ya da duzey geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"404":{"description":"bu numarada üniversite yok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/egitim/okullar":{"get":{"tags":["egitim"],"summary":"MEB okul ve kurumları (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"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ı.","parameters":[{"name":"il","in":"query","schema":{"type":"string"},"example":"Ankara","description":"İl adı ya da plaka"},{"name":"ilce","in":"query","schema":{"type":"string"},"example":"Çankaya"},{"name":"tur","in":"query","schema":{"type":"string","enum":["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"]}},{"name":"ara","in":"query","schema":{"type":"string"},"example":"fen lisesi","description":"Addaki sözcükler (hepsi)"},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},{"name":"sayfa","in":"query","schema":{"type":"integer","minimum":1,"default":1}}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"toplam":{"type":"integer"},"sayfa":{"type":"integer"},"limit":{"type":"integer"},"okullar":{"type":"array","items":{"type":"object","properties":{"kurumKodu":{"type":"integer"},"ad":{"type":"string"},"tur":{"type":"string"},"il":{"type":"string"},"ilce":{"type":"string"},"ilKodu":{"type":"integer"},"web":{"type":["string","null"]}}}},"kaynak":{"type":"string"},"kaynakUrl":{"type":"string"},"lisans":{"type":"string"},"guncelleme":{"type":"string","format":"date"},"uyari":{"type":"string"}}}}}},"400":{"description":"parametre geçersiz ya da il/ara yok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/egitim/sinav-takvimi":{"get":{"tags":["egitim"],"summary":"ÖSYM sınav takvimi (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"Ö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.","parameters":[{"name":"yil","in":"query","schema":{"type":"string","pattern":"^\\d{4}$"},"example":"2026","description":"Varsayılan bu yıl"},{"name":"ara","in":"query","schema":{"type":"string"},"example":"KPSS","description":"Sınav adı ya da kısaltması"}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"yil":{"type":"integer"},"toplam":{"type":"integer"},"yayimlanmadi":{"type":"string"},"sinavlar":{"type":"array","items":{"type":"object","properties":{"ad":{"type":"string"},"kod":{"type":"string"},"uzunAd":{"type":"string"},"basvuruBaslangic":{"type":["string","null"]},"basvuruBitis":{"type":["string","null"]},"gecBasvuru":{"type":"object","properties":{"baslangic":{"type":"string"},"bitis":{"type":"string"}}},"sinavTarihleri":{"type":"array","items":{"type":"string","format":"date"}},"sinavSaati":{"type":"string"},"sonucTarihi":{"type":["string","null"]},"aciklama":{"type":"string"},"durum":{"type":"string","enum":["basvuru_bekleniyor","basvuru_acik","sinav_bekleniyor","sonuc_bekleniyor","tamamlandi"]},"oturumlar":{"type":"array","items":{"type":"object"}},"belirsiz":{"type":"boolean"},"not":{"type":"string"}}}},"bilinenYillar":{"type":"array","items":{"type":"integer"}},"kaynak":{"type":"string"},"kaynakUrl":{"type":"string"},"guncelleme":{"type":"string","format":"date"},"uyari":{"type":"string"}}}}}},"400":{"description":"yil ya da ara geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/egitim/programlar":{"get":{"tags":["egitim"],"summary":"Program / bölüm ara (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"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 `il`den en az biri gerekli. Taban puan bu yılın değil, son yerleştirmenindir.","parameters":[{"name":"ara","in":"query","schema":{"type":"string"},"example":"bilgisayar mühendisliği","description":"Program ya da program grubu adındaki sözcükler (hepsi)"},{"name":"universite","in":"query","schema":{"type":"string"},"description":"Üniversite adı ya da YÖK birim numarası"},{"name":"il","in":"query","schema":{"type":"string"}},{"name":"puanTuru","in":"query","schema":{"type":"string","enum":["SAY","EA","SÖZ","DİL","TYT"]}},{"name":"duzey","in":"query","schema":{"type":"string","enum":["lisans","onlisans"]}},{"name":"burs","in":"query","schema":{"type":"string"},"example":"Burslu","description":"\"Burslu\", \"%50\", \"Ücretli\" (içerir)"},{"name":"dil","in":"query","schema":{"type":"string"},"example":"İngilizce"},{"name":"universiteTuru","in":"query","schema":{"type":"string","enum":["devlet","vakif","vakif_myo","kktc","yurtdisi"]}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},{"name":"sayfa","in":"query","schema":{"type":"integer","minimum":1,"default":1}}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"toplam":{"type":"integer"},"sayfa":{"type":"integer"},"limit":{"type":"integer"},"programlar":{"type":"array","items":{"type":"object","properties":{"kod":{"type":"integer","description":"ÖSYM kılavuz kodu"},"universiteId":{"type":"integer"},"fakulte":{"type":["string","null"]},"ad":{"type":"string"},"grup":{"type":["string","null"]},"duzey":{"type":"string","enum":["lisans","onlisans"]},"ogretimTuru":{"type":["string","null"]},"sureYil":{"type":["number","null"]},"puanTuru":{"type":["string","null"]},"dil":{"type":["string","null"]},"burs":{"type":["string","null"]},"kontenjan":{"type":["number","null"]},"tabanPuan":{"type":["number","null"]},"tabanBasariSirasi":{"type":["number","null"]},"ucretTl":{"type":["number","null"]},"il":{"type":["string","null"]},"ilce":{"type":["string","null"]},"universite":{"type":"string"},"universiteTuru":{"type":"string"}}}},"kaynak":{"type":"string"},"kaynakUrl":{"type":"array","items":{"type":"string"}},"lisans":{"type":"string"},"guncelleme":{"type":"string","format":"date"},"kilavuzYili":{"type":["integer","null"]},"uyari":{"type":"string"}}}}}},"400":{"description":"parametre geçersiz ya da arama ölçütü yok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"404":{"description":"üniversite bulunamadı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/ilac/ara":{"get":{"tags":["ilac"],"summary":"İlaç ara: barkod, ad, ATC (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"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`.","parameters":[{"name":"ara","in":"query","schema":{"type":"string"},"example":"parol","description":"Ürün adı ya da etkin maddedeki sözcükler (hepsi)"},{"name":"barkod","in":"query","schema":{"type":"string","pattern":"^\\d{8,14}$"},"example":"8699578095307"},{"name":"atc","in":"query","schema":{"type":"string"},"example":"N02BE01","description":"ATC kodu ya da başı (N02)"},{"name":"durum","in":"query","schema":{"type":"string","enum":["aktif","pasif","hepsi"]}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},{"name":"sayfa","in":"query","schema":{"type":"integer","minimum":1,"default":1}}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"toplam":{"type":"integer"},"sayfa":{"type":"integer"},"limit":{"type":"integer"},"ilaclar":{"type":"array","items":{"type":"object","properties":{"ad":{"type":"string"},"barkod":{"type":"string"},"atcKodu":{"type":["string","null"]},"atcAdi":{"type":["string","null"]},"firma":{"type":["string","null"]},"receteTuru":{"type":["string","null"],"enum":["Normal","Kırmızı","Turuncu","Mor","Yeşil",null]},"durum":{"type":"string","enum":["aktif","pasif"]},"temelIlac":{"type":["object","null"],"properties":{"genel":{"type":["number","null"]},"cocuk":{"type":["number","null"]},"yenidogan":{"type":["number","null"]}}},"listeTarihi":{"type":["string","null"],"format":"date"},"gkfEuro":{"type":["number","null"]}}}},"kaynak":{"type":"string"},"kaynakUrl":{"type":"array","items":{"type":"string"}},"lisans":{"type":"string"},"guncelleme":{"type":"string","format":"date"},"skrsDonemi":{"type":["string","null"]},"gkfTarihi":{"type":["string","null"],"format":"date"},"uyari":{"type":"string"}}}}}},"400":{"description":"parametre geçersiz ya da arama ölçütü yok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"404":{"description":"barkod listede yok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/ulasim/gecis-ucretleri":{"get":{"tags":["ulasim"],"summary":"Otoyol ve köprü geçiş ücretleri (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"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.","parameters":[{"name":"yol","in":"query","schema":{"type":"string"},"example":"izmir çeşme","description":"Tarife numarası ya da adındaki sözcükler"},{"name":"giris","in":"query","schema":{"type":"string"},"example":"urla","description":"Giriş istasyonu (cikis ile birlikte)"},{"name":"cikis","in":"query","schema":{"type":"string"},"example":"çeşme"},{"name":"sinif","in":"query","schema":{"type":"integer","minimum":1,"maximum":6},"description":"1 otomobil … 5 altı+ akslı, 6 motosiklet"}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"toplam":{"type":"integer"},"siniflar":{"type":"array","items":{"type":"object","properties":{"sinif":{"type":"integer"},"tanim":{"type":"string"}}}},"tarifeler":{"type":"array","items":{"type":"object","properties":{"no":{"type":"integer"},"ad":{"type":"string"},"tur":{"type":"string","enum":["kopru","otoyol"]},"gecerlilik":{"type":["string","null"],"format":"date"},"kdvDahil":{"type":"boolean"},"kaynakUrl":{"type":"string"},"ucretler":{"type":"array","items":{"type":["number","null"]}},"kesimler":{"type":"array","items":{"type":"object","properties":{"yonlu":{"type":"boolean"},"istasyonlar":{"type":"array","items":{"type":"string"}}}}}}}},"sonuclar":{"type":"array","description":"giris+cikis ile","items":{"type":"object","properties":{"yol":{"type":"object"},"kesim":{"type":"integer"},"giris":{"type":"string"},"cikis":{"type":"string"},"yonlu":{"type":"boolean"},"ucretler":{"type":"array","items":{"type":["number","null"]}}}}},"kaynak":{"type":"string"},"kaynakUrl":{"type":"string"},"lisans":{"type":"string"},"guncelleme":{"type":"string","format":"date"},"uyari":{"type":"string"}}}}}},"400":{"description":"parametre geçersiz ya da istasyon adı birden çok istasyona uyuyor (adaylar)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"404":{"description":"tarife ya da giriş-çıkış çifti bulunamadı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/il/bolgeler":{"get":{"tags":["il"],"summary":"Yedi coğrafi bölge ve illeri (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"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`.","responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","required":["bolgeler","kaynak","guncelleme"],"properties":{"toplam":{"type":"integer"},"bolgeler":{"type":"array","items":{"type":"object","properties":{"ad":{"type":"string"},"ilSayisi":{"type":"integer"},"nufus":{"type":"integer"},"iller":{"type":"array","items":{"type":"object","properties":{"plaka":{"type":"integer"},"ad":{"type":"string"}}}}}}},"kaynak":{"type":"string"},"guncelleme":{"type":"string"},"not":{"type":"string"}}}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/il/ibbs":{"get":{"tags":["il"],"summary":"İBBS/NUTS bölge birimleri (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"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.","parameters":[{"name":"duzey","in":"query","schema":{"type":"string","enum":["1","2","3"]},"description":"Varsayılan 3 (il)"}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","required":["duzey","birimler","kaynak","guncelleme"],"properties":{"duzey":{"type":"integer"},"toplam":{"type":"integer"},"birimler":{"type":"array","items":{"$ref":"#/components/schemas/IbbsBirimi"}},"kaynak":{"type":"string"},"guncelleme":{"type":"string"},"lisans":{"type":"string"},"not":{"type":"string"}}}}}},"400":{"description":"duzey geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/il/{il}/ilceler":{"get":{"tags":["il"],"summary":"İlin ilçeleri, nüfusu ve koordinatı (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"İ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`.","parameters":[{"name":"il","in":"path","required":true,"schema":{"type":"string"},"example":"35","description":"Plaka ya da il adı"}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","required":["il","plaka","yil","ilceler","kaynak","guncelleme"],"properties":{"il":{"type":"string"},"plaka":{"type":"integer"},"yil":{"type":"integer"},"toplam":{"type":"integer"},"nufus":{"type":"integer"},"ilceler":{"type":"array","items":{"$ref":"#/components/schemas/IlceNufusu"}},"kaynak":{"type":"string"},"kaynakUrl":{"type":"string"},"guncelleme":{"type":"string"},"lisans":{"type":"string"},"not":{"type":"string"}}}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"404":{"description":"il bulunamadı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/il/{il}":{"get":{"tags":["il"],"summary":"İl bilgi kartı (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"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ığı.","parameters":[{"name":"il","in":"path","required":true,"schema":{"type":"string"},"example":"Konya","description":"Plaka (\"42\", \"06\") ya da il adı (\"Konya\", \"afyon\")"}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","required":["il","kaynak","guncelleme"],"properties":{"il":{"$ref":"#/components/schemas/IlKarti"},"kaynak":{"type":"string"},"kaynakUrl":{"type":"string"},"guncelleme":{"type":"string"},"lisans":{"type":"string"},"olguKaynak":{"type":"string"},"rakimKaynak":{"type":"object","properties":{"kaynak":{"type":"string"},"lisans":{"type":"string"},"yontem":{"type":"string"}}},"not":{"type":"string"}}}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"404":{"description":"il bulunamadı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/nufus":{"get":{"tags":["nufus"],"summary":"İl nüfusu, yıllara göre seri (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"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.","parameters":[{"name":"il","in":"query","required":true,"schema":{"type":"string"},"example":"Bursa","description":"Plaka ya da il adı"},{"name":"ilce","in":"query","schema":{"type":"string"},"example":"Nilüfer"},{"name":"yil","in":"query","schema":{"type":"integer"},"example":2015}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","required":["il","plaka","yil","nufus","seri","kaynak","guncelleme"],"properties":{"il":{"type":"string"},"plaka":{"type":"integer"},"ilce":{"type":"string"},"yil":{"type":"integer"},"nufus":{"type":"integer"},"yillikArtisHizi":{"type":["number","null"]},"yogunluk":{"type":"number"},"ilceSayisi":{"type":"integer"},"seri":{"type":"array","items":{"$ref":"#/components/schemas/NufusYili"}},"kaynak":{"type":"string"},"kaynakUrl":{"type":"string"},"guncelleme":{"type":"string"},"lisans":{"type":"string"},"not":{"type":"string"}}}}}},"400":{"description":"il gerekli ya da yil geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"422":{"description":"il ya da ilçe bulunamadı, ya da istenen yıl seride yok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/telefon/alan-kodu/{kod}":{"get":{"tags":["telefon"],"summary":"Alan kodundan il, GSM önekinden işletmeci (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"Üç 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.","parameters":[{"name":"kod","in":"path","required":true,"schema":{"type":"string"},"example":"0212"}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","required":["tur","kod","kaynak","guncelleme"],"properties":{"tur":{"type":"string","enum":["cografi","gsm"]},"kod":{"type":"string"},"bolum":{"type":"string","description":"Yalnız İstanbul"},"il":{"type":"object","properties":{"plaka":{"type":"integer"},"ad":{"type":"string"},"bolge":{"type":"string"}}},"alanKodlari":{"type":"array","items":{"type":"object","properties":{"kod":{"type":"string"},"bolum":{"type":"string"}}}},"operator":{"type":"string","description":"Yalnız GSM"},"kullanim":{"type":"string","enum":["mobil","m2m","yabanci"],"description":"Yalnız GSM"},"kaynak":{"type":"string"},"kaynakUrl":{"type":"string"},"guncelleme":{"type":"string"},"not":{"type":"string"}}}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"404":{"description":"alan kodu tanınmadı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/vergi/parametreler":{"get":{"tags":["vergi"],"summary":"Yıllık vergi ve SGK parametreleri (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"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.","parameters":[{"name":"yil","in":"query","schema":{"type":"integer"},"example":2026,"description":"Varsayılan içinde bulunulan yıl"}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","required":["yil","gelirVergisiTarifesi","asgariUcret","primeEsasKazanc","kdvOranlari","uyari"],"properties":{"yil":{"type":"integer"},"gelirVergisiTarifesi":{"type":"object","properties":{"gecerlilik":{"$ref":"#/components/schemas/Gecerlilik"},"kaynak":{"$ref":"#/components/schemas/ResmiKaynak"},"ucret":{"type":"array","items":{"$ref":"#/components/schemas/Dilim"}},"ucretDisi":{"type":"array","items":{"$ref":"#/components/schemas/Dilim"}}}},"asgariUcret":{"type":"array","items":{"type":"object","properties":{"gecerlilik":{"$ref":"#/components/schemas/Gecerlilik"},"kaynak":{"$ref":"#/components/schemas/ResmiKaynak"},"brutAylik":{"type":"number"},"brutGunluk":{"type":"number"},"netAylik":{"type":"number"},"isciSgkOrani":{"type":"number"},"isciIssizlikOrani":{"type":"number"},"isverenSgkOrani":{"type":"object","properties":{"indirimsiz":{"type":"number"},"ikiPuanIndirimli":{"type":"number"},"besPuanIndirimliImalat":{"type":"number"}}},"isverenIssizlikOrani":{"type":"number"}}}},"primeEsasKazanc":{"type":"object","properties":{"gecerlilik":{"$ref":"#/components/schemas/Gecerlilik"},"kaynak":{"$ref":"#/components/schemas/ResmiKaynak"},"gunlukAlt":{"type":"number"},"gunlukUst":{"type":"number"},"aylikAlt":{"type":"number"},"aylikUst":{"type":"number"}}},"kdvOranlari":{"type":"object","properties":{"gecerlilik":{"$ref":"#/components/schemas/Gecerlilik"},"kaynak":{"$ref":"#/components/schemas/ResmiKaynak"},"genel":{"type":"number"},"birSayiliListe":{"type":"number"},"ikiSayiliListe":{"type":"number"}}},"not":{"type":"string"},"uyari":{"type":"string"}}}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"422":{"description":"yıl için parametre yok (yanıtta `yillar`)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/vergi/gelir-vergisi":{"get":{"tags":["vergi"],"summary":"Yıllık matrahtan gelir vergisi (GVK m.103, ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"Tarifeyi yıllık matraha uygular, dilim dökümüyle. İstisna, indirim, kümülatif bordro hesabı yapmaz.","parameters":[{"name":"matrah","in":"query","required":true,"schema":{"type":"number","minimum":0},"example":500000,"description":"Yıllık, TL"},{"name":"tur","in":"query","schema":{"type":"string","enum":["ucret","ucret-disi"]},"description":"Varsayılan ucret-disi; ücrette 3. dilim geniş"},{"name":"yil","in":"query","schema":{"type":"integer"},"example":2026}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"yil":{"type":"integer"},"tur":{"type":"string"},"matrah":{"type":"number"},"vergi":{"type":"number"},"ortalamaOran":{"type":"number"},"marjinalOran":{"type":"number"},"dokum":{"type":"array","items":{"type":"object","properties":{"alt":{"type":"number"},"ust":{"type":["number","null"]},"oran":{"type":"number"},"matrah":{"type":"number"},"vergi":{"type":"number"}}}},"gecerlilik":{"$ref":"#/components/schemas/Gecerlilik"},"kaynak":{"$ref":"#/components/schemas/ResmiKaynak"},"not":{"type":"string"},"uyari":{"type":"string"}}}}}},"400":{"description":"matrah ya da tur geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"422":{"description":"yıl için parametre yok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/vergi/kdv":{"get":{"tags":["vergi"],"summary":"KDV ekle ya da ayır (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"Oran (I) ve (II) sayılı listelere göre kullanıcı seçer; uç hangi malın hangi orana tabi olduğunu söylemez.","parameters":[{"name":"tutar","in":"query","required":true,"schema":{"type":"number","minimum":0},"example":1200},{"name":"oran","in":"query","schema":{"type":"number","enum":[1,10,20]},"description":"Varsayılan genel oran"},{"name":"dahil","in":"query","schema":{"type":"string","enum":["true","false"]},"description":"true: tutar KDV dahil, ayrıştır"},{"name":"yil","in":"query","schema":{"type":"integer"}}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"oran":{"type":"number"},"kdvHaric":{"type":"number"},"kdv":{"type":"number"},"kdvDahil":{"type":"number"},"gecerlilik":{"$ref":"#/components/schemas/Gecerlilik"},"kaynak":{"$ref":"#/components/schemas/ResmiKaynak"},"not":{"type":"string"},"uyari":{"type":"string"}}}}}},"400":{"description":"tutar, oran ya da dahil geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"422":{"description":"yıl için parametre yok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/vergi/mtv":{"get":{"tags":["vergi"],"summary":"Motorlu taşıtlar vergisi (2026 tarifesi, ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"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.","parameters":[{"name":"tur","in":"query","schema":{"type":"string","enum":["otomobil","motosiklet","minibus","panelvan","otobus","kamyon"]},"description":"Varsayılan otomobil"},{"name":"modelYili","in":"query","required":true,"schema":{"type":"integer"},"example":2024},{"name":"motorHacmi","in":"query","schema":{"type":"number"},"example":1600,"description":"cm³; otomobil, motosiklet ve panelvanda zorunlu"},{"name":"deger","in":"query","schema":{"type":"number"},"description":"Taşıt değeri (TL); (I) sayılı tarifede bant seçer"},{"name":"koltuk","in":"query","schema":{"type":"integer"},"description":"Otobüste oturma yeri sayısı"},{"name":"agirlik","in":"query","schema":{"type":"number"},"description":"Kamyon/kamyonet/çekicide azami toplam ağırlık (kg)"},{"name":"tescilYili","in":"query","schema":{"type":"integer"},"description":"2018 öncesi tescilli otomobilde (I/A) tarifesi; verilmezse model yılı kullanılır"},{"name":"yil","in":"query","schema":{"type":"integer"},"example":2026,"description":"Varsayılan 2026; başka yıl 422"}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"tur":{"type":"string"},"yil":{"type":"integer"},"modelYili":{"type":"integer"},"yas":{"type":"integer"},"yasGrubu":{"type":"string"},"tarife":{"type":"string","enum":["I","I/A","II"]},"olcu":{"type":"object","properties":{"ad":{"type":"string"},"deger":{"type":"number"},"bant":{"type":"string"}}},"vergi":{"type":["number","null"],"description":"Yıllık TL; değer bandı seçilemediyse null"},"taksitler":{"type":["array","null"],"items":{"type":"object","properties":{"ay":{"type":"string"},"tutar":{"type":"number"}}}},"degerBandi":{"type":["string","null"]},"bantlar":{"type":["array","null"],"items":{"type":"object","properties":{"deger":{"type":"string"},"vergi":{"type":"number"}}}},"gecerlilik":{"$ref":"#/components/schemas/Gecerlilik"},"kaynak":{"$ref":"#/components/schemas/ResmiKaynak"},"not":{"type":"string"},"uyari":{"type":"string"}}}}}},"400":{"description":"tur, modelYili ya da ölçü geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"422":{"description":"yıl için tarife yok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/bordro/hesapla":{"post":{"tags":["bordro"],"summary":"Brütten nete / netten brüte ücret (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"brut":{"type":"number","minimum":0,"description":"Aylık brüt ücret; `net` ile birlikte verilemez"},"net":{"type":"number","minimum":0,"description":"Hedef net ücret; brüt aranır"},"ay":{"type":"integer","minimum":1,"maximum":12,"description":"Varsayılan 1"},"yil":{"type":"integer","example":2026},"kumulatifMatrah":{"type":"number","minimum":0,"description":"Önceki aylardan devreden gelir vergisi matrahı"},"engelIndirimi":{"type":"number","minimum":0,"description":"Aylık engellilik indirimi (TL)"},"engelDerecesi":{"type":"integer","enum":[1,2,3],"description":"GVK m.31 derecesi; tutar tebliğden okunur"},"sgkTuru":{"type":"string","enum":["4a","emekli"],"description":"\"emekli\": sosyal güvenlik destek primi"},"bes":{"type":"boolean","description":"Otomatik katılım çalışan katkı payı kesilsin mi"},"besPuanIndirimi":{"type":"boolean","description":"İşveren SGK payında 5 puanlık indirim (5510 m.81/ı)"},"aylik":{"type":"boolean","description":"12 aylık tablo"}}},"example":{"brut":75000,"ay":1,"yil":2026}}}},"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"yil":{"type":"integer"},"yon":{"type":"string","enum":["brutten-nete","netten-brute"]},"sgkTuru":{"type":"string"},"brut":{"type":"number"},"sgkMatrahi":{"type":"number"},"sgkIsci":{"type":"number"},"issizlikIsci":{"type":"number"},"gelirVergisiMatrahi":{"type":"number"},"kumulatifMatrah":{"type":"number"},"hesaplananGelirVergisi":{"type":"number"},"asgariUcretGelirVergisiIstisnasi":{"type":"number"},"gelirVergisi":{"type":"number"},"hesaplananDamgaVergisi":{"type":"number"},"asgariUcretDamgaIstisnasi":{"type":"number"},"damgaVergisi":{"type":"number"},"besKesintisi":{"type":"number"},"kesintiToplami":{"type":"number"},"net":{"type":"number"},"isverenSgk":{"type":"number"},"isverenIssizlik":{"type":"number"},"isvereneMaliyet":{"type":"number"},"aylik":{"type":"array","items":{"type":"object"},"description":"`aylik: true` verildiyse 12 aylık tablo"},"yillikToplam":{"type":"object"},"parametreler":{"type":"object"},"kaynak":{"type":"object"},"not":{"type":"string"}}}}}},"400":{"description":"girdi geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"422":{"description":"yıl için parametre yok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/bordro/tazminat":{"post":{"tags":["bordro"],"summary":"Kıdem, ihbar ve yıllık izin ücreti (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["iseGiris","isCikis","brutUcret"],"properties":{"iseGiris":{"type":"string","format":"date"},"isCikis":{"type":"string","format":"date"},"brutUcret":{"type":"number","minimum":0,"description":"Aylık çıplak brüt ücret"},"ekOdemeler":{"type":"number","minimum":0,"description":"Giydirilmiş ücrete eklenen aylık düzenli ödemeler"},"cikisNedeni":{"type":"string","enum":["isveren_fesih","isveren_hakli_fesih","isci_istifa","isci_hakli_fesih","emeklilik","askerlik","evlilik","olum","belirli_sure_bitimi"],"description":"Varsayılan isveren_fesih"},"kullanilmayanIzinGun":{"type":"integer","minimum":0,"maximum":1000},"kumulatifMatrah":{"type":"number","minimum":0},"tavanTutari":{"type":"number","minimum":0,"description":"Kıdem tavanı tabloda yoksa elle"}}},"example":{"iseGiris":"2015-03-01","isCikis":"2026-09-30","brutUcret":60000}}}},"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"yil":{"type":"integer"},"cikisNedeni":{"type":"string"},"kidemGun":{"type":"integer"},"kidemYili":{"type":"object","properties":{"yil":{"type":"integer"},"ay":{"type":"integer"},"gun":{"type":"integer"}}},"giydirilmisAylikUcret":{"type":"number"},"giydirilmisGunlukUcret":{"type":"number"},"kidemTavani":{"type":"object"},"hak":{"type":"object","properties":{"kidem":{"type":"boolean"},"ihbar":{"type":"boolean"},"aciklama":{"type":"string"}}},"kidem":{"type":["object","null"]},"ihbar":{"type":["object","null"]},"yillikIzin":{"type":["object","null"]},"toplamNet":{"type":"number"},"kaynak":{"type":"object"},"not":{"type":"string"}}}}}},"400":{"description":"tarih ya da tutar geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"422":{"description":"yıl için parametre ya da kıdem tavanı yok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/bordro/asgari-ucret":{"get":{"tags":["bordro"],"summary":"Asgari ücret tarihçesi (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"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.","parameters":[{"name":"yil","in":"query","schema":{"type":"integer"},"example":2026,"description":"Verilmezse tüm tarihçe"}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"yillar":{"type":"array","items":{"type":"integer"}},"donemler":{"type":"array","items":{"type":"object","properties":{"donem":{"type":"string"},"gecerlilik":{"$ref":"#/components/schemas/Gecerlilik"},"kaynak":{"$ref":"#/components/schemas/ResmiKaynak"},"brutAylik":{"type":"number"},"brutGunluk":{"type":"number"},"netAylik":{"type":"number"},"isciSgkOrani":{"type":"number"},"isciIssizlikOrani":{"type":"number"},"isverenSgkOrani":{"type":"object","properties":{"indirimsiz":{"type":"number"},"besPuanIndirimli":{"type":"number"}}},"isverenIssizlikOrani":{"type":"number"},"isvereneMaliyet":{"type":"object","properties":{"indirimsiz":{"type":"number"},"besPuanIndirimli":{"type":"number"}}}}}},"not":{"type":"string"},"aciklama":{"type":"string"}}}}}},"400":{"description":"yil geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"422":{"description":"yıl için asgari ücret kaydı yok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/ceza/trafik":{"get":{"tags":["ceza"],"summary":"2026 trafik cezası tutarları (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"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.","parameters":[{"name":"madde","in":"query","schema":{"type":"string"},"description":"KTK madde/fıkra ön eki","example":"47/1-b"},{"name":"ara","in":"query","schema":{"type":"string","minLength":2},"description":"Başlık, not ve etiketlerde serbest metin","example":"kirmizi isik"}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"adet":{"type":"integer"},"belirsizSayisi":{"type":"integer"},"cezalar":{"type":"array","items":{"$ref":"#/components/schemas/TrafikCezasi"}},"puanSistemi":{"type":"object","description":"KTK m.118 eşik ve kademeler"},"puanCetveli":{"type":"object","description":"KTY Ek-35 ceza puanı cetveli; madde/ara süzgeci burada da uygulanır","properties":{"adet":{"type":"integer"},"uyariSayisi":{"type":"integer"},"satirlar":{"type":"array","items":{"type":"object","properties":{"madde":{"type":"string"},"puan":{"type":"integer","enum":[5,10,15,20]},"ihlal":{"type":"string"},"degisiklik":{"type":"string"},"uyari":{"type":"string","description":"7574 sonrası atıf kanunla örtüşmüyor"}}}},"kaynak":{"$ref":"#/components/schemas/ResmiKaynak"}}},"indirim":{"type":"object","properties":{"oran":{"type":"number"},"sureGun":{"type":"integer"},"aciklama":{"type":"string"}}},"kaynak":{"type":"array","items":{"$ref":"#/components/schemas/ResmiKaynak"}},"guncelleme":{"type":"string","format":"date"},"not":{"type":"string"},"uyari":{"type":"string"}}}}}},"400":{"description":"ara en az 2 karakter olmalı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/ceza/trafik/indirim":{"post":{"tags":["ceza"],"summary":"Peşin ödeme indirimi ve gecikme faizi (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"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ı.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["tutar"],"properties":{"tutar":{"type":"number","exclusiveMinimum":0,"description":"Ceza aslı, TL"},"odemeGunu":{"type":"integer","minimum":0,"maximum":3650,"description":"Tebliğden itibaren geçen gün; varsayılan 0"}}},"example":{"tutar":5000,"odemeGunu":10}}}},"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"tutar":{"type":"number"},"odemeGunu":{"type":"integer"},"indirimli":{"type":"boolean"},"indirim":{"type":"number"},"gecikmeAy":{"type":"integer"},"faiz":{"type":"number"},"tavanUygulandi":{"type":"boolean"},"odenecek":{"type":"number"},"kural":{"type":"object","properties":{"indirimOrani":{"type":"number"},"odemeSuresiGun":{"type":"integer"},"aylikFaiz":{"type":"number"},"aciklama":{"type":"string"}}},"kaynak":{"type":"array","items":{"$ref":"#/components/schemas/ResmiKaynak"}},"guncelleme":{"type":"string","format":"date"},"not":{"type":"string"},"uyari":{"type":"string"}}}}}},"400":{"description":"tutar ya da odemeGunu geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/harc":{"get":{"tags":["harc"],"summary":"2026 harç ve değerli kâğıt tarifeleri (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"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.","parameters":[{"name":"tur","in":"query","schema":{"type":"string","enum":["pasaport","ehliyet","kimlik","noter","tapu","mahkeme","calisma-izni"]}},{"name":"sure","in":"query","schema":{"type":"string","enum":["6ay","1yil","2yil","3yil","10yil","suresiz"]},"description":"Pasaport ve çalışma izninde"}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"turler":{"type":"array","items":{"type":"string"}},"sureler":{"type":"array","items":{"type":"string"}},"adet":{"type":"integer"},"belirsizSayisi":{"type":"integer"},"gruplar":{"type":"array","items":{"type":"object","properties":{"tur":{"type":"string"},"baslik":{"type":"string"},"gecerlilik":{"$ref":"#/components/schemas/Gecerlilik"},"kaynak":{"type":"array","items":{"$ref":"#/components/schemas/ResmiKaynak"}},"kalemler":{"type":"array","items":{"$ref":"#/components/schemas/HarcKalemi"}},"not":{"type":"string"}}}},"kaynak":{"type":"array","items":{"$ref":"#/components/schemas/ResmiKaynak"},"description":"Döndürülen grupların kaynakları, tekil"},"guncelleme":{"type":"string","format":"date"},"not":{"type":"string"},"uyari":{"type":"string"}}}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"422":{"description":"tur ya da sure bilinmiyor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/vergi/tapu":{"post":{"tags":["vergi"],"summary":"Tapu harcı hesapla (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"Alıcı ve satıcıdan ayrı ayrı binde 20; matrah emlak vergisi değerinden az olamaz (Harçlar K. m.63).","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["satisBedeli"],"properties":{"satisBedeli":{"type":"number","exclusiveMinimum":0},"emlakVergisiDegeri":{"type":"number","minimum":0},"taraf":{"type":"string","enum":["alici","satici","ikisi"],"description":"Varsayılan \"ikisi\""},"indirimli":{"type":"boolean","description":"Oran indirimi varsayımı (binde 15); 2026 yılında yürürlükte indirim yok"}}},"example":{"satisBedeli":4500000,"taraf":"alici"}}}},"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"matrah":{"type":"number"},"matrahKaynagi":{"type":"string"},"binde":{"type":"number"},"taraf":{"type":"string"},"aliciHarci":{"type":"number"},"saticiHarci":{"type":"number"},"toplamHarc":{"type":"number"},"odenecek":{"type":"number"},"asgariUygulandi":{"type":"boolean"},"donerSermaye":{"type":"object","description":"Harç değil; yöresel katsayı yayımlanmadığı için tutar hesaplanmaz"},"gecerlilik":{"$ref":"#/components/schemas/Gecerlilik"},"kaynak":{"type":"array","items":{"$ref":"#/components/schemas/ResmiKaynak"}},"guncelleme":{"type":"string","format":"date"},"aciklama":{"type":"string"},"not":{"type":"string"},"uyari":{"type":"string"}}}}}},"400":{"description":"satisBedeli, taraf ya da indirimli geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/vergi/emlak":{"post":{"tags":["vergi"],"summary":"Emlak vergisi ve değerli konut vergisi (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"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).","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["rayicDeger","tur"],"properties":{"rayicDeger":{"type":"number","exclusiveMinimum":0,"description":"Belediyenin belirlediği vergi değeri, TL"},"tur":{"type":"string","enum":["konut","isyeri","arsa","arazi"]},"buyuksehir":{"type":"boolean"},"yil":{"type":"integer","description":"Şimdilik yalnız 2026"}}},"example":{"rayicDeger":3200000,"tur":"konut","buyuksehir":true}}}},"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"yil":{"type":"integer"},"tur":{"type":"string"},"turAdi":{"type":"string"},"rayicDeger":{"type":"number"},"buyuksehir":{"type":"boolean"},"binde":{"type":"number"},"vergi":{"type":"number"},"taksitler":{"type":"array","items":{"type":"object","properties":{"sira":{"type":"integer"},"tutar":{"type":"number"},"donem":{"type":"string"}}}},"degerliKonutVergisi":{"type":"object","properties":{"tabi":{"type":"boolean"},"esik":{"type":"number"},"matrah":{"type":"number"},"vergi":{"type":"number"},"binde":{"type":["number","null"]},"not":{"type":"string"}}},"gecerlilik":{"$ref":"#/components/schemas/Gecerlilik"},"kaynak":{"type":"array","items":{"$ref":"#/components/schemas/ResmiKaynak"}},"guncelleme":{"type":"string","format":"date"},"aciklama":{"type":"string"},"not":{"type":"string"},"uyari":{"type":"string"}}}}}},"400":{"description":"rayicDeger, tur ya da buyuksehir geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"422":{"description":"yıl için oran ve had yok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/vergi/damga":{"post":{"tags":["vergi"],"summary":"Damga vergisi hesapla (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"Konut kira sözleşmesi istisnadır (`tur: \"kira-konut\"`). 2026 azami tutar 29.115.961,10 TL (488 s.K. m.14).","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["tur","tutar"],"properties":{"tur":{"type":"string","enum":["sozlesme","kira","kira-konut","ihale","ihale-sozlesmesi","maas","kefalet","fesihname","ikinci-el-arac"]},"tutar":{"type":"number","minimum":0,"description":"Kirada sözleşme süresinin tamamına ait bedel"}}},"example":{"tur":"sozlesme","tutar":250000}}}},"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"tur":{"type":"string"},"ad":{"type":"string"},"matrah":{"type":"number"},"binde":{"type":"number"},"hamVergi":{"type":"number"},"azami":{"type":"number"},"azamiUygulandi":{"type":"boolean"},"vergi":{"type":"number"},"istisna":{"type":"boolean"},"dayanak":{"type":"string"},"turler":{"type":"array","items":{"type":"string"}},"azamiTutar":{"type":"number"},"maktuKalemler":{"type":"array","items":{"type":"object","properties":{"ad":{"type":"string"},"tutar":{"type":"number"},"dayanak":{"type":"string"}}}},"gecerlilik":{"$ref":"#/components/schemas/Gecerlilik"},"kaynak":{"type":"array","items":{"$ref":"#/components/schemas/ResmiKaynak"}},"guncelleme":{"type":"string","format":"date"},"aciklama":{"type":"string"},"not":{"type":"string"},"uyari":{"type":"string"}}}}}},"400":{"description":"tur ya da tutar geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/hukuk/avukatlik-ucreti":{"get":{"tags":["hukuk"],"summary":"Avukatlık Asgari Ücret Tarifesi kalemleri (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"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.","parameters":[{"name":"ara","in":"query","schema":{"type":"string"},"example":"tüketici","description":"Kalem adında arama (2–100 karakter)"}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"adet":{"type":"integer"},"kalemler":{"type":"array","items":{"type":"object","properties":{"kod":{"type":"string"},"bolum":{"type":"string"},"ad":{"type":"string"},"tutar":{"type":"number","nullable":true},"birim":{"type":"string"},"not":{"type":"string"}}}},"dilimler":{"type":"array","items":{"type":"object","properties":{"ustSinir":{"type":"number","nullable":true},"oran":{"type":"number"}}}},"kurallar":{"type":"array","items":{"type":"object","properties":{"madde":{"type":"string"},"metin":{"type":"string"}}}},"hesapTurleri":{"type":"array","items":{"type":"string"}},"sonrakiDonem":{"type":"string"},"belirsizSayisi":{"type":"integer"},"kaynak":{"type":"object"},"guncelleme":{"type":"string","format":"date"},"uyari":{"type":"string"}}}}}},"400":{"description":"ara geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}},"post":{"tags":["hukuk"],"summary":"Asgari avukatlık ücreti hesapla (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"`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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["deger"],"properties":{"deger":{"type":"number","exclusiveMinimum":0,"description":"Dava değeri / takip miktarı, TL"},"tur":{"type":"string","enum":["dava","icra","arabuluculuk"],"description":"Varsayılan \"dava\""},"mahkeme":{"type":"string","description":"İkinci kısım ikinci bölüm kodu; varsayılan \"2.2.10\" (asliye hukuk)"},"onIncelemedenOnce":{"type":"boolean"},"suresindeOdendi":{"type":"boolean"},"anlasma":{"type":"boolean"}}},"example":{"deger":1000000,"tur":"dava","mahkeme":"2.2.10"}}}},"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"tur":{"type":"string"},"deger":{"type":"number"},"nispi":{"type":"number"},"ucret":{"type":"number"},"dilimler":{"type":"array","items":{"type":"object"}},"maktu":{"type":"object","properties":{"kod":{"type":"string"},"ad":{"type":"string"},"tutar":{"type":"number"}}},"adimlar":{"type":"array","items":{"type":"string"}},"maddeler":{"type":"array","items":{"type":"string"}},"not":{"type":"string"},"belirsizSayisi":{"type":"integer"},"kaynak":{"type":"object"},"guncelleme":{"type":"string","format":"date"},"uyari":{"type":"string"}}}}}},"400":{"description":"deger, tur ya da mahkeme geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/hukuk/noter-ucreti":{"get":{"tags":["hukuk"],"summary":"Noterlik ücret tarifesi ve noter harçları (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"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.","parameters":[{"name":"ara","in":"query","schema":{"type":"string"},"example":"vekaletname","description":"Kalem adında arama (2–100 karakter)"}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"adet":{"type":"integer"},"kalemler":{"type":"array","items":{"type":"object","properties":{"kod":{"type":"string"},"bolum":{"type":"string"},"ad":{"type":"string"},"tutar":{"type":"number","nullable":true},"birim":{"type":"string"},"not":{"type":"string"},"belirsiz":{"type":"boolean"}}}},"yapi":{"type":"string"},"vergiNotu":{"type":"object"},"islemTurleri":{"type":"array","items":{"type":"string"}},"sonrakiDonem":{"type":"string"},"belirsizSayisi":{"type":"integer"},"kaynak":{"type":"object"},"guncelleme":{"type":"string","format":"date"},"uyari":{"type":"string"}}}}}},"400":{"description":"ara geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}},"post":{"tags":["hukuk"],"summary":"Noter harcı ve ücreti hesapla (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["islem"],"properties":{"islem":{"type":"string","enum":["degerli","degersiz","vekaletname","ihtarname","tasinmaz_satis","arac_satis"]},"deger":{"type":"number","exclusiveMinimum":0,"description":"degerli, tasinmaz_satis, arac_satis için TL"},"imza":{"type":"integer","minimum":1,"maximum":1000},"tebligNushasi":{"type":"integer","minimum":1,"maximum":1000},"sayfa":{"type":"integer","minimum":1,"maximum":1000},"kdv":{"type":"boolean","description":"Varsayılan true"}}},"example":{"islem":"degerli","deger":500000,"imza":2,"sayfa":9}}}},"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"islem":{"type":"string"},"harc":{"type":"object","properties":{"ad":{"type":"string"},"tutar":{"type":"number"},"hesap":{"type":"string"},"belirsiz":{"type":"boolean"},"not":{"type":"string"}}},"noterUcreti":{"type":"object"},"yaziUcreti":{"type":"object"},"kdv":{"type":"object","nullable":true},"toplam":{"type":"number"},"belirsiz":{"type":"boolean"},"belirsizSayisi":{"type":"integer"},"notlar":{"type":"array","items":{"type":"string"}},"kaynak":{"type":"object"},"guncelleme":{"type":"string","format":"date"},"uyari":{"type":"string"}}}}}},"400":{"description":"islem, deger ya da sayı alanları geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/vergi/veraset":{"post":{"tags":["vergi"],"summary":"Veraset ve intikal vergisi hesapla (ücretsiz)","security":[{"anahtar":[]}],"x-kredi":0,"description":"İstisnayı düşüp artan oranlı tarifeyi dilim dilim uygular (7338 s.K.). İstisna her mirasçının hissesine ayrı uygulanır.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["tutar"],"properties":{"tutar":{"type":"number","exclusiveMinimum":0,"description":"Mirasçıya isabet eden hisse, TL"},"tur":{"type":"string","enum":["veraset","ivazsiz"],"description":"Varsayılan \"veraset\""},"yakinlik":{"type":"string","enum":["furu","es-furu-var","es-furu-yok","diger"],"description":"Varsayılan \"diger\""}}},"example":{"tutar":6000000,"tur":"veraset","yakinlik":"furu"}}}},"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"tur":{"type":"string"},"yakinlik":{"type":["string","null"]},"tutar":{"type":"number"},"istisna":{"type":"number"},"istisnaAdi":{"type":"string"},"matrah":{"type":"number"},"dilimler":{"type":"array","items":{"type":"object","properties":{"dilim":{"type":"string"},"oran":{"type":"number"},"matrah":{"type":"number"},"vergi":{"type":"number"}}}},"vergi":{"type":"number"},"efektifOran":{"type":"number"},"taksit":{"type":"object","properties":{"sayi":{"type":"integer"},"tutar":{"type":"number"},"donem":{"type":"string"}}},"tarife":{"type":"array","items":{"type":"object"}},"istisnalar":{"type":"object"},"beyanSuresi":{"type":"string"},"gecerlilik":{"$ref":"#/components/schemas/Gecerlilik"},"kaynak":{"type":"array","items":{"$ref":"#/components/schemas/ResmiKaynak"}},"guncelleme":{"type":"string","format":"date"},"aciklama":{"type":"string"},"not":{"type":"string"},"uyari":{"type":"string"}}}}}},"400":{"description":"tutar, tur ya da yakinlik geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/kayit":{"post":{"tags":["hesap"],"summary":"Hesap aç, ilk anahtarı al","x-kredi":0,"description":"IP başına saatte 5 kayıt. Anahtar yanıtta bir kez döner, bir daha gösterilmez.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["email"],"properties":{"email":{"type":"string","format":"email"},"ad":{"type":"string"},"kaynak":{"type":"string","pattern":"^[a-z0-9._-]{1,40}$","description":"Nereden geldiniz (ör. \"hn\"); isteğe bağlı"}}}}}},"responses":{"201":{"description":"Hesap açıldı","content":{"application/json":{"schema":{"type":"object","properties":{"hesapId":{"type":"string"},"email":{"type":"string"},"plan":{"type":"string"},"anahtar":{"type":"string"},"uyari":{"type":"string"},"dogrulama":{"type":"string","enum":["gonderildi","dogrulanmis","hiz_siniri","gonderilemedi"],"description":"Doğrulama e-postasının durumu (e-posta doğrulaması açıksa)"},"baslangic":{"type":"object","properties":{"ornek":{"type":"string"}}}}}}}},"400":{"description":"Geçersiz e-posta ya da kaynak","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"409":{"description":"E-posta zaten kayıtlı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kayıt hız sınırı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/anahtar":{"post":{"tags":["hesap"],"summary":"Yeni anahtar üret","security":[{"anahtar":[]}],"x-kredi":0,"description":"En fazla 10 aktif anahtar. Eski anahtar iptal edilmez.","requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ad":{"type":"string"}}}}}},"responses":{"201":{"description":"Üretildi","content":{"application/json":{"schema":{"type":"object","properties":{"anahtar":{"type":"string"},"onek":{"type":"string"},"uyari":{"type":"string"}}}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"409":{"description":"Anahtar sınırı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}},"get":{"tags":["hesap"],"summary":"Anahtarları listele (yalnız önekler)","security":[{"anahtar":[]}],"x-kredi":0,"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"anahtarlar":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"onek":{"type":"string"},"ad":{"type":["string","null"]},"aktif":{"type":"boolean"},"son_kullanim":{"type":["string","null"]},"olusturma":{"type":"string"}}}}}}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/anahtar/{id}":{"delete":{"tags":["hesap"],"summary":"Anahtarı iptal et","security":[{"anahtar":[]}],"x-kredi":0,"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"iptal":{"type":"boolean"},"id":{"type":"string"}}}}}},"400":{"description":"Geçersiz id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"404":{"description":"Anahtar bulunamadı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"409":{"description":"Son aktif anahtar iptal edilemez","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/kullanim":{"get":{"tags":["hesap"],"summary":"Kalan kredi","security":[{"anahtar":[]}],"x-kredi":0,"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"aylik":{"type":"object","properties":{"limit":{"type":"integer"},"harcanan":{"type":"integer"},"kalan":{"type":"integer"}}},"ekKredi":{"type":"integer"},"toplamKalan":{"type":"integer"}}}}}},"401":{"description":"Anahtar geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"404":{"description":"Hesap bulunamadı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/paketler":{"get":{"tags":["odeme"],"summary":"Kredi paketleri ve fiyatlar","x-kredi":0,"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"paketler":{"type":"array","items":{"type":"object","properties":{"kod":{"type":"string"},"ad":{"type":"string"},"kredi":{"type":"integer"},"fiyat":{"type":"object","properties":{"TRY":{"type":"number"},"USD":{"type":"number"}}}}}},"not":{"type":"string"}}}}}}}}},"/v1/odeme":{"post":{"tags":["odeme"],"summary":"Ödeme başlat","security":[{"anahtar":[]}],"x-kredi":0,"description":"TRY → PayTR, USD → Polar. Sağlayıcı yapılandırılmamışsa 503.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["paket"],"properties":{"paket":{"type":"string"},"paraBirimi":{"enum":["TRY","USD"]}}},"example":{"paket":"baslangic","paraBirimi":"TRY"}}}},"responses":{"201":{"description":"Ödeme sayfası hazır","content":{"application/json":{"schema":{"type":"object","properties":{"odemeId":{"type":"string"},"paket":{"type":"string"},"kredi":{"type":"integer"},"odemeUrl":{"type":"string"}}}}}},"400":{"description":"Geçersiz paket ya da para birimi","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"404":{"description":"Hesap bulunamadı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"502":{"description":"Sağlayıcı hatası","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"503":{"description":"Bu para birimiyle ödeme kapalı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}},"get":{"tags":["odeme"],"summary":"Ödeme geçmişi","security":[{"anahtar":[]}],"x-kredi":0,"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"odemeler":{"type":"array","items":{"type":"object","additionalProperties":true}}}}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/mcp":{"post":{"tags":["mcp"],"summary":"Uzak MCP (Streamable HTTP, stateless)","security":[{},{"anahtar":[]}],"description":"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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"JSON-RPC 2.0 mesajı"},"example":{"jsonrpc":"2.0","id":1,"method":"tools/list"}}}},"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","description":"JSON-RPC 2.0 yanıtı"}}}},"400":{"description":"Geçersiz JSON (JSON-RPC -32700)","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Anahtarsız toplu istekte tools/call","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/demo/adres":{"post":{"tags":["demo"],"summary":"Anahtarsız adres çözümleme (tanıtım)","x-kredi":0,"description":"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`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["q"],"properties":{"q":{"type":"string","maxLength":200}}},"example":{"q":"kadikoy moda cad 14"}}}},"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdresSonucu"}}}},"400":{"description":"q eksik ya da çok uzun","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Demo sınırı doldu","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/eposta/dogrula":{"get":{"tags":["eposta"],"summary":"E-posta adresini doğrula (e-postadaki bağlantı)","parameters":[{"name":"kod","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"dogrulandi":{"type":"boolean"}}}}}},"400":{"description":"Kod geçersiz ya da süresi dolmuş","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/eposta/dogrulama-gonder":{"post":{"tags":["eposta"],"summary":"Doğrulama e-postasını yeniden gönder","security":[{"anahtar":[]}],"x-kredi":0,"description":"Saatte en fazla 3. Bağlantı 24 saat geçerli; yeni bağlantı eskisini geçersiz kılar.","responses":{"200":{"description":"Başarılı","content":{"application/json":{"schema":{"type":"object","properties":{"dogrulama":{"type":"string","enum":["gonderildi","dogrulanmis"]}}}}}},"401":{"description":"Anahtar yok ya da geçersiz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Kredi limiti aşıldı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"503":{"description":"E-posta gönderilemiyor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/kurtar":{"post":{"tags":["eposta"],"summary":"Anahtar kurtarma kodu iste","description":"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.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["email"],"properties":{"email":{"type":"string","format":"email"}}}}}},"responses":{"202":{"description":"İstek alındı","content":{"application/json":{"schema":{"type":"object","properties":{"mesaj":{"type":"string"}}}}}},"400":{"description":"Geçersiz e-posta","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"429":{"description":"Hız sınırı","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"503":{"description":"E-posta gönderilemiyor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}},"/v1/kurtar/onay":{"post":{"tags":["eposta"],"summary":"Kurtarma koduyla yeni anahtar al","description":"`eskileriIptal: true` önceki bütün anahtarları kapatır. Kod tek kullanımlık; anahtar yanıtta bir kez döner.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["kod"],"properties":{"kod":{"type":"string"},"eskileriIptal":{"type":"boolean","default":false}}}}}},"responses":{"201":{"description":"Anahtar üretildi","content":{"application/json":{"schema":{"type":"object","properties":{"anahtar":{"type":"string"},"onek":{"type":"string"},"iptalEdilen":{"type":"integer"},"uyari":{"type":"string"}}}}}},"400":{"description":"Kod geçersiz ya da süresi dolmuş","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}},"409":{"description":"Anahtar sınırı (kod harcanmadı)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hata"}}}}}}}}}