Tek anahtar.
Tüm uçlar.
Tek anahtar ve tek yanıt zarfı arkasında büyüyen, küçük ve kesin API’ler kataloğu. Bir kez entegre edin — her yeni yetenek yeni bir tedarikçi değil, bir yol daha.
Katalogda bugün: 2026 tavan ve asgari ücret tablosuyla kıdem, ihbar ve yıllık izin; KDV ve tevkifat; tarihli AB KDV oranları ve Birlik OSS eşiği; sağlama (BIC, VIN, TIN, ISIN, LEI, konteyner) ve GLEIF LEI sorgulama (kayıt susunca unknown); altı resmî listede yaptırım taraması; IBAN, e-posta, telefon, AB KDV numarası, TCKN/VKN; adres ve e-Fatura; iş günü hesabı; tarihli arşivler — kur, 2009'a uzanan akaryakıt, LLM fiyat ve yaşam döngüsü, günlük MCP araç yüzey endeksi.
- Bu sayfadaki her ucu hesap açmadan deneyebilirsiniz.
- Deterministik uçlar önbellekten tek haneli milisaniyede yanıtlar.
- Her yanıt bir fiş taşır: harcanan kredi, önbellek durumu, süre.
Bu sayfada ücretsiz dene → anahtar gerektiğinde Ödemeye geç · API erişimi.
/v1/tr/labor
{
"startDate": "2025-08-01",
"endDate": "2026-08-01",
"monthlyGross": 33030
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.Neden var
Düşman girdi için tasarlandı
Türkçe adres "Cd." de olur "Cad." da "Caddesi" de; daire numarası bina numarasına yapışık gelir. Genel ayrıştırıcılar yarısını sessizce düşürür. Bu, yerleştiremediğini size söyler.
Her sayı kaynağını taşır
Arşivlenen her nokta, geldiği sayfanın kaynak URL’i ve içerik özetiyle saklanır; arşiv Merkle köküyle Bitcoin’e çıpalanır. Her taahhüt — kesim anı, yaprak sayısı ve çıpalarıyla — /proof adresinde yayımlanır, yani sonuncusunun ne kadar güncel olduğunu kendiniz görebilirsiniz. Bültenlerin kendisi herkese açık, isteyen okur; bunun eklediği şey, alıntıladığınız sayının o tarihte elimizde olan sayı olduğunun ve sonradan değiştirilmediğinin gösterilebilmesi.
Yalnız yapılan işe ödersiniz
Tekrarlanan girdi önbellekten gelir, sıfır kredi yakar. Bir yanıt kendi şemasına uymazsa çağrı otomatik iade edilir.
Uç noktalarparametreleri görmek ve canlı çağırmak için satırı açın
Doğrulama18
/v1/finance/bic
SWIFT/BIC Doğrulama
deterministik
1 kredi
SWIFT/BIC kodunu ISO 9362 yapısına göre denetler (8 veya 11 karakter), banka/ülke/konum/şube ayırır, bilinen kurumları adlandırır.
Ödeme dosyası, BIC yanlış uzunluktaysa veya konum kodunda yasak karakter varsa bankaya bakmadan reddeder. ISO 9362 kalıbı, test BIC (konumda 0) ve XXX = genel müdürlük burada denetlenir. Bilinen 8 haneli banka kodları isme çözülür; diğerleri uydurulmaz, bankName null döner. SWIFT dizinine bakılmaz. Biçimce geçerli bir BIC hâlâ tahsis edilmemiş, kapanmış veya kalıba uyan tek harf hatası olabilir.
Parametreler
| bic* | string | SWIFT/BIC, 8 or 11 characters, with or without spaces. |
/v1/finance/bic
{
"bic": "DEUTDEFF"
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/shipping/container
ISO 6346 Konteyner Numarası
deterministik
1 kredi
ISO 6346 yük konteyneri numarasını doğrular: sahip kodu, kategori harfi, seri ve sağlama hanesi.
Konşimento ve saha okumalarında konteyner numarası sürekli yanlış yazılır; ISO 6346 sağlama hanesi gümrük beyanından önce hemen hepsini yakalar. Dördüncü harf kategoridir (U yük, J ekipman, Z şasi, R soğutmalı). Sahip kodu şirkete çözülmez — BIC sahip sicili ayrı, ücretli bir üründür. Geçerli numara aritmetik olarak tutarlıdır, kutunun var olduğunu kanıtlamaz.
Parametreler
| code* | string | ISO 6346 container number, e.g. CSQU3054383. |
/v1/shipping/container
{
"code": "CSQU3054383"
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/id/gtin
GTIN / EAN Sağlama
deterministik
1 kredi
Perakende barkodları için GTIN-8, UPC-A (12), EAN-13 ve GTIN-14 sağlama hanesini doğrular.
Perakende GTIN’leri uzunluğa göre (8 / 12 / 13 / 14) aynı GS1 sağlama algoritmasını paylaşır. Bu uç taşıyıcı barkod tahminine girmez; yalnız perakende kimliğinde kalır. 13 hanede ilk üç rakam GS1 önek ipucudur; 868/869 Türkiye’yi işaret eder. Sağlama tutması aritmetik tutarlılıktır, SKU’nun marka kataloğunda olduğunu kanıtlamaz.
Parametreler
| code* | string | GTIN-8, UPC-A (12), EAN-13 or GTIN-14. |
/v1/id/gtin
{
"code": "8690504015154"
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/email/verify
E-posta Doğrulama
1 kredi
Bir e-posta adresini denetler: sözdizimi, alan adı gerçekten posta alabiliyor mu, tek kullanımlık ve rol kutusu tespiti, yazım hatası düzeltmesi.
SMTP yoklaması YOK. Rakiplerin çoğu hedef sunucuya bağlanıp RCPT TO dener; kulağa titiz gelir ama güvenilmeyecek, kendinden emin görünen bir sayı üretir: sunucuların çoğu catch-all'dır, büyük sağlayıcılar anlamlı cevap vermez ve toplu deneme yoklayan IP'yi kara listeye düşürür. Biz yalnız kanıtlanabilir olanı söyleriz — alan adının posta sunucusu var mı, bilinen tek kullanımlık servis mi, kutu kişiye mi role mi ait, ve alan adı yaygın bir adın yazım hatası mı (gmial.com → gmail.com). Adresler ayrıca normalize edilir; Gmail noktaları ve +etiketleri mükerrer kayıt üretmez.
Parametreler
| email* | string | E-mail address to check. |
| rejectFreeProviders | boolean | varsayılan false |
| rejectRoleAccounts | boolean | varsayılan false |
/v1/email/verify
{
"email": "[email protected]"
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/eu/vat/rates
AB KDV Oranları
deterministik
1 kredi
Tarihli AB-27 KDV oranları (standart, indirimli, süper indirimli, parking) ve Birlik OSS eşiği. Mal sınıflandırması değil.
“Almanya %19” diye gömülü oran, üye devlet değiştirdiği gün kırılır; indirimli listeyi de hiç bilmez. Bu uç, AB KDV alanının yayımlanmış oranlarını ülke + asOf ile noktada verir. Oran tarifesidir; hangi malın hangi indirimli dilime girdiğini söylemez — HS/NACE eşlemesi yoktur. GB, XI, CH, NO ve TR tanınır, oranlar null döner. O tarih için satır yoksa oranlar null kalır; son satır giydirilmez.
Parametreler
| country* | string | ISO 3166-1 alpha-2 country (EL accepted as Greece). |
| asOf | string | ISO date YYYY-MM-DD. Defaults to today UTC. |
/v1/eu/vat/rates
{
"country": "DE",
"asOf": "2026-01-15"
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/eu/vat/validate
AB KDV Numarası Doğrulama
2 kredi
AB KDV numarasını resmî VIES kaydına karşı doğrular; ülke bazlı biçim denetimi yapar ve servis kesintilerini dürüstçe raporlar.
VIES ücretsizdir ama güvenilmezdir: üye devlet servisleri tek tek düşer ve başarısız bir sorgu kolayca ret gibi okunur. Kesintiyi "geçersiz" saymak, muaf olması gereken müşteriye KDV eklemek demektir — bedeli parayla ölçülen bir hata. Bu yüzden servis cevap veremediğinde ASLA `invalid` dönülmez; `unknown` dönülür, sebebi yazılır ve o ülkenin servisinin şu an ayakta olup olmadığı bildirilir. Biçim önce yerel denetlenir, böylece bariz yazım hatası yukarı akışa çağrı olmaz. Sonuçlar 24 saat önbelleklenir. Üye devletlerin çoğu firma adını paylaşmaz; paylaşanlarda ad ve adres döner.
Parametreler
| vatNumber* | string | VAT number with or without the country prefix, e.g. "DE811907980". |
| countryCode | string | Country code, when the number is given without a prefix. |
/v1/eu/vat/validate
{
"vatNumber": "DE811907980"
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/iban/validate
IBAN Doğrulama
deterministik
1 kredi
70+ ülkenin IBAN'ını doğrular: sağlama, ülke uzunluğu ve ülke içi hesap yapısı; banka ve şube kodlarını çözer.
Ücretsiz kütüphanelerin çoğu mod-97 sağlamasında durur. Bu yalnız hanelerin kendi içinde tutarlı olduğunu söyler; o ülkede böyle bir numaranın var olabileceğini değil. Burada ülkenin BBAN yapısı da denetlenir, böylece yanlış uzunlukta ya da yanlış biçimde bir hesap ödeme dosyanız bankaya ulaşmadan elenir. Yalnız iki sağlama hanesi hatalıysa doğrusu hesaplanıp önerilir — insanlar çoğunlukla o iki haneyi yanlış yazar. TR, NL ve BE IBAN'larında ulusal kod tablomuzdaysa banka adı da çözülür; değilse bankName null'dır. Bu bir SWIFT dizini değildir.
Parametreler
| iban* | string | IBAN, with or without spaces. |
| expectCountry | string | Expected country code (ISO 3166-1 alpha-2). |
/v1/iban/validate
{
"iban": "DE89 3704 0044 0532 0130 00"
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/id/mrz
MRZ Sağlama
deterministik
1 kredi
ICAO 9303 TD1/TD3 MRZ çözer ve sağlama hanelerini doğrular — kimlik kanıtı değil.
Pasaport ve kimlik kartındaki MRZ, ICAO 9303 sağlama haneleri taşır (ağırlık 7,3,1). TD3 (2×44, pasaport) ve TD1 (3×30, kimlik kartı) ayrıştırılır; her alan sağlama sonucu döner. Bozuk sağlama 400 değil, HTTP 200 ve valid:false — metin MRZ formundadır, tutarsızdır. Bu bir biçim kontrolüdür, kimlik kanıtı değil: belgenin basıldığını veya hamili doğrulamaz.
Parametreler
| mrz* | string | ICAO 9303 MRZ text: TD3 two lines of 44, or TD1 three lines of 30. |
/v1/id/mrz
{
"mrz": "P<UTODOE<<JANE<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\nL000000007UTO9001011F3001019AA0000000<<<<<02"
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/id/isbn
ISBN Doğrula & Dönüştür
deterministik
1 kredi
ISBN-10 ve ISBN-13 sağlama hanelerini doğrular; 978 öneki uygunsa aralarında dönüştürür.
Katalog ve perakende sistemleri hâlâ ISBN-10 ile ISBN-13’ü karıştırır. ISBN-10 ağırlıklı mod-11 (X serbest) ve ISBN-13 / EAN-13 1–3 sağlama hanesi denetlenir. Geçerli ISBN-10 için ISBN-13 (978 + gövde + yeni sağlama) üretilir. 978 ile başlayan ISBN-13 geri ISBN-10’a çevrilir; 979 öneklinin ISBN-10 karşılığı yoktur, isbn10 null kalır. Tire ve boşluk atılır. Geçerli sağlama, eserin ulusal bibliyografyada var olduğunu kanıtlamaz.
Parametreler
| isbn* | string | ISBN-10 or ISBN-13, with or without hyphens. |
/v1/id/isbn
{
"isbn": "978-0-306-40615-7"
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/finance/isin
ISIN Doğrulama
deterministik
1 kredi
ISIN (ISO 6166) doğrular: ülke kodu, ulusal tanıtıcı ve harf-duyarlı sağlama hanesi.
Portföy aktarımı ve kurumsal eylem dosyası tek yanlış ISIN'de düşer. Sağlama, harfleri iki haneye çeviren (A=10…Z=35) bir Luhn türevidir; yalnız rakam değil harf kayması da yakalanır. XS (uluslararası), EU ve diğer ayrılmış önekler ISO 3166 ülkesi olmasalar da kabul edilir. Geçerli ISIN kendi içinde tutarlıdır. Menkulün var olduğunu, kote olduğunu veya kastedilen kâğıt olduğunu kanıtlamaz.
Parametreler
| isin* | string | ISIN, 12 characters, e.g. US0378331005. |
/v1/finance/isin
{
"isin": "US0378331005"
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/id/lei/lookup
LEI Sorgulama
2 kredi
Legal Entity Identifier'ı GLEIF dizininde arar: yasal unvan, kayıt durumu, ülke ve BIC.
Sağlaması tutan LEI şu an kayıtlı demek değildir — LAPSED veya MERGED bir LEI yine ISO 7064'ten geçer. Bu uç sağlama hanesini önce yerelde kontrol eder (yazım hatası yukarı akışa çağrı olmaz), sonra GLEIF lei-records API'sine GET atar. Sonuçlar 24 saat önbelleklenir. GLEIF dakikada 60 istek kabul eder; üstünde veya zaman aşımı/5xx durumunda kayıt uydurulmaz, `unknown` dönülür. HTTP 404 servisin cevap verdiği ve LEI'nin dizinde olmadığı anlamına gelir (`invalid`). Toplu iş için GLEIF'in kendi API'sinin yerine geçmez. `status` registration.status'tur (ISSUED/LAPSED/MERGED/…), entity.status (ACTIVE) değil.
Parametreler
| lei* | string | Legal Entity Identifier, 20 characters. |
/v1/id/lei/lookup
{
"lei": "5493001KJTIIGC8Y1R00"
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/id/lei
LEI Doğrulama
deterministik
1 kredi
20 karakterlik Legal Entity Identifier'ı (ISO 17442) ISO 7064 mod-97 sağlama haneleriyle doğrular.
KYC ve MiFID bildirimi, kurumu araştırmadan önce sağlama hanesi tutmayan LEI'yi reddeder. Algoritma IBAN ile aynı aileden (ISO 7064 mod 97-10), 20 karakterin tamamı üzerinden; kalan 1 olmalı. İlk 4 karakter LOU öneki, sonraki 14 varlık, son 2 sağlama. GLEIF çağrılmaz. Sağlaması tutan LEI süresi dolmuş, birleşmiş veya hiç tahsis edilmemiş olabilir. "Şu an kayıtlı" için GLEIF'in ücretsiz API'si var.
Parametreler
| lei* | string | Legal Entity Identifier, 20 characters. |
/v1/id/lei
{
"lei": "5493001KJTIIGC8Y1R12"
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/phone/validate
Telefon Numarası Doğrulama
deterministik
1 kredi
Telefon numarasını doğrular, E.164 biçimine çevirir, hat tipini sınıflandırır ve Türk sabit hatlarında ili çözer.
Kayıt ve ödeme akışlarında tek kanonik biçimi saklamak ve yazım hatalarını erken elemek için. Türkiye numaraları derinlemesine işlenir: sabit hat alan kodu ili verir, mobil ve özel aralıklar (ücretsiz 0800, sabit tarifeli 0850, katma değerli 0900) sınıflandırılır, kabul edilen her girdi hem E.164 hem ulusal biçimde döner. Bu ucun bilerek İDDİA ETMEDİĞİ tek şey: mevcut mobil operatör. Türkiye'de 2008'den beri numara taşınıyor, yani 0532'li numara bugün başka şebekede olabilir. Rakip API'ler ön ek sahibini "operatör" diye sunar ve müşteri buna göre SMS yolu seçer. Biz bunu `originallyAllocatedTo` olarak, sınırı ekli biçimde döneriz — kendinden emin yanlış cevap, dürüst bir boşluktan pahalıdır.
Parametreler
| phone* | string | Phone number in any common format. |
| defaultCountry | string | ISO 3166-1 alpha-2 country to assume when the number has no international prefix. Defaults to TR. |
/v1/phone/validate
{
"phone": "0532 123 45 67"
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/id/tin
Vergi Kimliği Doğrulama
deterministik
1 kredi
25+ ülkenin vergi kimliğini doğrular: algoritması açıksa sağlama, değilse yalnız biçim. Ülke zorunludur.
Kayıt formu her ülkeden vergi no toplar ve yalnız uzunluğa bakınca çöp saklar. Yayımlanmış sağlama burada uygulanır (SIREN/SIRET Luhn, ABN, CPF/CNPJ, NIP, BSN, NIF/NIE, OIB, IČO, AFM, TCKN/VKN…). Ülke tahmin edilmez: aynı 9 hane birden fazla yerde düzgün görünen bir kimliktir. Sağlama yayımlanmamışsa (US EIN, UK UTR, DE Steuernummer, IN PAN) yanıt biçim + `checksum: not-verified` olur, sahte geçiş değil. Hiçbir vergi dairesine "bu numara tahsis edildi mi" diye sorulmaz.
Parametreler
| tin* | string | Tax identifier as written, with or without spaces and punctuation. |
| country* | string | ISO 3166-1 alpha-2 country that issued the identifier. Required. |
/v1/id/tin
{
"tin": "73282932000074",
"country": "FR"
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/tr/postal-code
Türkiye Posta Kodu
deterministik
1 kredi
5 haneli Türkiye posta kodunu doğrular; ilk iki haneden ili (plaka haritası) çözer.
PTT posta kodları beş hanedir; baştaki çift, 81 ilin plaka koduyla örtüşür. Bu uç biçimi denetler, 01–81’i il adına çevirir; önek aralık dışındaysa ili null ve confidence none bırakır — ilçe uydurmaz. İlçe çözümü tam PTT dizinini ister ve burada kapsam dışıdır.
Parametreler
| postalCode* | string | Turkish 5-digit postal code, with or without spaces. |
/v1/tr/postal-code
{
"postalCode": "34710"
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/tr/validate
Türkiye Kimlik & Numara Doğrulama
deterministik
1 kredi
TCKN, VKN, IBAN, plaka, IMEI, barkod, KEP, MERSİS, posta kodu ve ISBN — tek uç noktada, otomatik tip tespitiyle.
Yalnız "geçerli mi" demez: IBAN'da bankayı, plakada ili, barkodda GS1 ülke önekini de çözer. Tamamen yerel hesaplama — dış servis çağrılmaz, gecikme mikrosaniye seviyesindedir.
Parametreler
| value* | string | Value to validate. |
| type | "auto" | "tckn" | "vkn" | "iban" | "plate" | "imei" | "gtin" | "kep" | "mersis" | "postal" | "isbn" | Omitted → inferred from the format. varsayılan "auto" |
/v1/tr/validate
{
"value": "TR33 0006 1005 1978 6457 8413 26"
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/id/uuid
UUID Doğrulama
deterministik
1 kredi
UUID yapısını doğrular; sürüm (1–5, 7) ve RFC 4122 variant bitlerini raporlar. Deterministik.
Tireli veya 32 hex kompakt biçimi kabul eder. Sürüm nibble’ını, variant’ı (NCS / RFC 4122 / Microsoft / future) ve bilinen sürümlerle (v1–v5 ve Unix-epoch v7) uyumu raporlar. Geçerli yapı, belirli bir sistemin ürettiğini kanıtlamaz.
Parametreler
| uuid* | string | UUID string, with or without hyphens. |
/v1/id/uuid
{
"uuid": "550e8400-e29b-41d4-a716-446655440000"
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/id/vin
Şasi No (VIN) Doğrulama
deterministik
1 kredi
17 karakterlik VIN'i doğrular: yasak harfler, ISO 3779 sağlama, WMI bölge/üretici, model yılı ve fabrika.
VIN yazım hatalarının çoğu yasak harftir (I, O, Q — 1 ve 0'a benzer) veya kaymış karakter. Bunlar elenir; WMI/VDS/VIS ayrılır; üretici, muhafazakâr WMI tablosundaysa adlandırılır. 9. karakter sağlama hesaplanır ama eşleşmemesi VIN'i düşürmez: Kuzey Amerika'da FMVSS 115 zorunlu, Avrupa'da çoğu üretici kullanmaz. `checkDigitMatch` söyler; 17 karakter yasal ise `valid` true kalır. Motor/gövde çözmez, VIN'in tahsis edildiğini kanıtlamaz.
Parametreler
| vin* | string | Vehicle identification number, 17 characters. |
/v1/id/vin
{
"vin": "1M8GDM9AXKP042788"
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.Finans7
/v1/finance/creditor-ref
RF Alacaklı Referansı
deterministik
1 kredi
ISO 11649 RF alacaklı referansını doğrular veya üretir (mod-97 sağlama).
SEPA havalesinde RF alacaklı referansı ödeme zincirinde açıklamayı korur. Sağlama IBAN ile aynı ISO 7064 mod-97'dir: RF ve iki hane sona alınır, harfler 10–35 olur, kalan 1 olmalıdır. Girdi RF ve iki hane ile başlıyorsa doğrulanır; değilse 1–21 alfasayısal yük kodlanır. Bozuk sağlama 400 ile reddedilir — tutarsız referans ödeme dosyasına yazılmaz.
Parametreler
| reference* | string | ISO 11649 RF creditor reference, or a 1–21 character payload to encode. |
/v1/finance/creditor-ref
{
"reference": "RF18 5390 0754 7034"
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/pay/epc-qr
EPC QR Yükü
deterministik
1 kredi
EPC069-12 v3.1 V2 (002) SCT yükü üretir. Para göndermez; yalnız metin döner, PNG yok.
Avrupa ödemelerinde QR, EPC069-12 havale yükünü taşır. Bu uç metni sürüm 002 (V2) ile kurar: BCD, UTF-8, SCT, isteğe bağlı BIC, ad, elektronik IBAN, EUR tutar. Purpose ve yapılandırılmış açıklama boş bırakılır; serbest açıklama varsa kopyalanır. Satırlar LF'dir, CRLF değil. IBAN boşlukları atılır ve büyük harfe çevrilir; mod-97 bu uçta zorunlu değildir. TRY, USD ve EUR dışı birimler reddedilir. Para göndermez ve QR görüntüsü üretmez.
Parametreler
| name* | string | Beneficiary name (SCT Name). |
| iban* | string | Beneficiary IBAN, with or without spaces. |
| amountEur* | number | Transfer amount in EUR (positive). |
| remittance | string | Unstructured remittance (e.g. invoice number). |
| bic | string | Beneficiary BIC; optional in V2 (002). |
| currency | string | Must be EUR if provided. Other currencies are rejected. |
/v1/pay/epc-qr
{
"name": "Franz Mustermänn",
"iban": "DE71110220330123456789",
"amountEur": 12.3,
"remittance": "RF18539007547034"
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/tr/iban/build
TR IBAN Oluştur
deterministik
1 kredi
5 haneli banka kodu ve hesap numarasından TR IBAN oluşturur; ISO 7064 sağlama hanelerini hesaplar.
TR IBAN: TR + 2 sağlama + 5 haneli banka kodu + 1 rezerv hane + 16 karakter hesap. Hesap soldan doldurulur, rezerv varsayılan 0’dır, mod-97 sağlama hesaplanır; bilinen kodlarda banka adı IBAN doğrulama ile aynı ulusal tablodan gelir. Bilinmeyen kodda yapı geçerli IBAN üretilir, bankName null kalır — bankada varlık iddia edilmez.
Parametreler
| bankCode* | string | 5-digit Turkish national bank / EFT code (e.g. 00062). |
| accountNumber* | string | Account number, up to 16 alphanumeric characters (padded left with zeros). |
| reserved | string | Reserved BBAN digit after the bank code. Defaults to 0. |
/v1/tr/iban/build
{
"bankCode": "00062",
"accountNumber": "0000005197864578"
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/tr/invoice/build
e-Fatura Belgesi Üretici
3 kredi
Düz JSON’dan UBL-TR e-Fatura / e-Arşiv XML belgesi üretir; tüm toplamları kendisi hesaplar, tarafları doğrular.
Türkiye’ye fatura kesmek, öğe sırası şemayla sabitlenmiş ve toplamları kuruşu kuruşuna tutması gereken bir UBL-TR belgesi üretmek demek; tutmazsa entegratör geri çevirir. Bu uç faturayı sıradan JSON olarak alır, XML döndürür. Gönderdiğiniz toplamlara bilerek bakılmaz: kalem tutarları, orana göre KDV alt toplamları ve ödenecek tutar burada yeniden hesaplanır — bir kuruşluk yuvarlama farkı en sık ret sebebidir. VKN/TCKN sağlamaları doğrulanır, tutar faturaların istediği gibi Türkçe yazıyla yazılır. Belge İMZALANMAZ ve GİB’e GÖNDERİLMEZ: mali mühür sizin sertifikanızın, gönderim entegratörünüzün işidir. Dönen belge o adıma girmeye hazır hâldedir.
Parametreler
| profile | "TEMELFATURA" | "TICARIFATURA" | "EARSIVFATURA" | TEMELFATURA: no formal objection flow. TICARIFATURA: buyer may accept/reject. EARSIVFATURA: buyer is not an e-Invoice user. varsayılan "TEMELFATURA" |
| invoiceTypeCode | "SATIS" | "IADE" | varsayılan "SATIS" |
| id | string | Invoice number. Omit and supply `series` to have it built from the series and sequence. |
| series | string | Three-letter series code, used with `sequence`. |
| sequence | integer | Sequence number within the series and year. |
| uuid | string | Document UUID (ETTN). Generated when omitted. |
| issueDate* | string | |
| issueTime | string | |
| currency | string | ISO 4217. Anything other than TRY requires `exchangeRate`. varsayılan "TRY" |
| exchangeRate | number | Units of TRY per one unit of `currency`. |
| supplier* | object | |
| customer* | object | |
| lines* | object[] | |
| notes | string[] | varsayılan [] |
| amountInWords | boolean | Adds the payable amount written out in Turkish words as a note, the way invoices require. varsayılan true |
| despatchDocumentId | string | Delivery note number, if the goods shipped separately. |
| orderReferenceId | string |
/v1/tr/invoice/build
{
"series": "ABC",
"sequence": 123,
"issueDate": "2026-07-26",
"supplier": {
"name": "Örnek Yazılım A.Ş.",
"taxNumber": "4840847211",
"taxOffice": "Kadıköy",
"street": "Moda Cad.",
"buildingNumber": "12",
"district": "Kadıköy",
"city": "İstanbul"
},
"customer": {
"name": "Alıcı Ticaret Ltd. Şti.",
"taxNumber": "3250566341",
"taxOffice": "Beşiktaş",
"city": "İstanbul"
},
"lines": [
{
"name": "Yazılım geliştirme hizmeti",
"quantity": 10,
"unitCode": "HUR",
"unitPrice": 1500,
"vatRate": 20
}
]
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/tr/invoice/parse
e-Fatura (UBL-TR) Ayrıştırma
deterministik
3 kredi
UBL-TR e-Fatura/e-Arşiv XML belgesini kalem, taraf, vergi ve toplam bilgileriyle temiz JSON'a çevirir.
Ad alanı öneki (cbc:, cac:, ns0:) ne olursa olsun çalışır; tek kalemli belgelerde dizi normalleştirmesi yapar, tutar tutarsızlıklarını `warnings` ile bildirir. Muhasebe, ön muhasebe ve gider yönetimi yazılımlarının en çok vakit kaybettiği iş.
Parametreler
| xml* | string | UBL-TR e-Invoice / e-Archive (e-Arsiv) XML body. |
/v1/tr/invoice/parse
{
"xml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Invoice xmlns=\"urn:oasis:names:specification:ubl:schema:xsd:Invoice-2\"\n xmlns:cbc=\"urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2\"\n xmlns:cac=\"urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2\">\n <cbc:UBLVersionID>2.1</cbc:UBLVersionID>\n <cbc:ProfileID>TEMELFATURA</cbc:ProfileID>\n <cbc:ID>ABC2026000000123</cbc:ID>\n <cbc:UUID>3f2504e0-4f89-11d3-9a0c-0305e82c3301</cbc:UUID>\n <cbc:IssueDate>2026-07-20</cbc:IssueDate>\n <cbc:InvoiceTypeCode>SATIS</cbc:InvoiceTypeCode>\n <cbc:DocumentCurrencyCode>TRY</cbc:DocumentCurrencyCode>\n <cac:AccountingSupplierParty><cac:Party>\n <cac:PartyIdentification><cbc:ID schemeID=\"VKN\">1234567890</cbc:ID></cac:PartyIdentification>\n <cac:PartyName><cbc:Name>Örnek Yazılım A.Ş.</cbc:Name></cac:PartyName>\n <cac:PostalAddress><cbc:StreetName>Moda Cad.</cbc:StreetName><cbc:BuildingNumber>12</cbc:BuildingNumber>\n <cbc:CitySubdivisionName>Kadıköy</cbc:CitySubdivisionName><cbc:CityName>İstanbul</cbc:CityName></cac:PostalAddress>\n <cac:PartyTaxScheme><cac:TaxScheme><cbc:Name>Kadıköy</cbc:Name></cac:TaxScheme></cac:PartyTaxScheme>\n </cac:Party></cac:AccountingSupplierParty>\n <cac:AccountingCustomerParty><cac:Party>\n <cac:PartyIdentification><cbc:ID schemeID=\"VKN\">9876543210</cbc:ID></cac:PartyIdentification>\n <cac:PartyName><cbc:Name>Alıcı Ticaret Ltd. Şti.</cbc:Name></cac:PartyName>\n </cac:Party></cac:AccountingCustomerParty>\n <cac:TaxTotal><cbc:TaxAmount currencyID=\"TRY\">200.00</cbc:TaxAmount>\n <cac:TaxSubtotal><cbc:TaxableAmount currencyID=\"TRY\">1000.00</cbc:TaxableAmount>\n <cbc:TaxAmount currencyID=\"TRY\">200.00</cbc:TaxAmount><cbc:Percent>20</cbc:Percent>\n <cac:TaxCategory><cac:TaxScheme><cbc:Name>KDV</cbc:Name><cbc:TaxTypeCode>0015</cbc:TaxTypeCode></cac:TaxScheme></cac:TaxCategory>\n </cac:TaxSubtotal></cac:TaxTotal>\n <cac:LegalMonetaryTotal>\n <cbc:LineExtensionAmount currencyID=\"TRY\">1000.00</cbc:LineExtensionAmount>\n <cbc:TaxExclusiveAmount currencyID=\"TRY\">1000.00</cbc:TaxExclusiveAmount>\n <cbc:TaxInclusiveAmount currencyID=\"TRY\">1200.00</cbc:TaxInclusiveAmount>\n <cbc:PayableAmount currencyID=\"TRY\">1200.00</cbc:PayableAmount>\n </cac:LegalMonetaryTotal>\n <cac:InvoiceLine>\n <cbc:ID>1</cbc:ID>\n <cbc:InvoicedQuantity unitCode=\"C62\">10</cbc:InvoicedQuantity>\n <cbc:LineExtensionAmount currencyID=\"TRY\">1000.00</cbc:LineExtensionAmount>\n <cac:TaxTotal><cbc:TaxAmount currencyID=\"TRY\">200.00</cbc:TaxAmount>\n <cac:TaxSubtotal><cbc:TaxableAmount currencyID=\"TRY\">1000.00</cbc:TaxableAmount>\n <cbc:TaxAmount currencyID=\"TRY\">200.00</cbc:TaxAmount><cbc:Percent>20</cbc:Percent>\n <cac:TaxCategory><cac:TaxScheme><cbc:Name>KDV</cbc:Name><cbc:TaxTypeCode>0015</cbc:TaxTypeCode></cac:TaxScheme></cac:TaxCategory>\n </cac:TaxSubtotal></cac:TaxTotal>\n <cac:Item><cbc:Name>Yıllık Lisans</cbc:Name></cac:Item>\n <cac:Price><cbc:PriceAmount currencyID=\"TRY\">100.00</cbc:PriceAmount></cac:Price>\n </cac:InvoiceLine>\n</Invoice>"
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/tr/money/to-words
Tutarı Türkçe Yazıya Çevirme
deterministik
1 kredi
Para tutarını fatura/çek/senet metinlerinde kullanılan Türkçe yazıya çevirir.
Türkçeye özgü kuralları uygular: "bir bin" değil "bin"; kuruş kısmı ayrı okunur; "1.234,56" ile "1,234.56" yazımlarını otomatik ayırt eder. e-Fatura, çek ve senet üreten her sistemin zorunlu alanı — ve hazır bir API'si yok.
Parametreler
| amount* | string | number | Amount. Accepts both "1.234,56" and 1234.56. |
| currency | "TRY" | "USD" | "EUR" | "GBP" | varsayılan "TRY" |
| style | "lower" | "title" | "upper" | Output letter case. varsayılan "lower" |
| wrapHash | boolean | varsayılan false |
/v1/tr/money/to-words
{
"amount": "1.234,56"
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/tr/pay/qr
Türk FAST / TR Karekod Yükü
deterministik
1 kredi
IBAN, ad ve isteğe bağlı TRY tutardan kişiden kişiye TR Karekod (FAST) ödeme yükü üretir. Yalnız metin — PNG yok.
FAST ödemeleri, alıcı IBAN ve adını EMV tarzı TLV ile taşıyan TR Karekod ile başlayabilir. Bu uç kişiden kişiye düzeni (biçim göstergesi 750210) kurar: IBAN’lı uygulama şablonu, alıcı adı, isteğe bağlı 12 haneli kuruş tutarı, serbest açıklama ve CRC-16/CCITT-FALSE. TR IBAN normalize edilip ISO 7064 mod-97 ile denetlenir; TR dışı IBAN ve TRY dışı para birimi reddedilir. Para göndermez ve QR görüntüsü üretmez.
Parametreler
| iban* | string | Beneficiary Turkish IBAN (with or without spaces). |
| name* | string | Payee name shown to the payer (2–26 chars after trim). |
| amount | number | TRY amount; omitted → static QR (payer enters amount). |
| explanation | string | Optional remittance note (application free field 10). |
| currency | string | Must be TRY if provided. |
| generatorCode | string | QR generator / EFT code (4 digits). Defaults to last 4 of the IBAN bank code. |
/v1/tr/pay/qr
{
"iban": "TR33 0006 1005 1978 6457 8413 26",
"name": "Ali Yilmaz"
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.YZ Altyapısı3
/v1/mcp/index
MCP Araç Yüzey Endeksi
1 kredi
Her açık MCP sunucusunun gerçekte ne sunduğunun aranabilir ve tarihli arşivi — araç tanımları, günlük değişim akışı, "halı çekme" tespiti.
Resmî MCP kayıt defteri sunucunun adını ve adresini yayımlar, araç yüzeyini yayımlamaz; bir sunucunun ne sunduğunu öğrenmenin tek yolu ona bağlanıp `tools/list` çağırmaktır. Bu uç, bunu her gün tüm açık uzak sunucular için yapar ve sonucu saklar. Kaynakta cevabı olmayan üç soru cevaplanır hâle gelir: araç düzeyinde arama (kayıt defterinde yoktur), çalışma süresi ve — güvenlik açısından asıl olan — bir aracın açıklamasının DÜN ne dediği. MCP'de araç açıklaması modele verilen bağlamın parçasıdır, yani prompt metnidir; kullanıcı sunucuyu onayladıktan sonra değişmişse sunucu sessizce yeni talimat enjekte etmiştir. Endekslenen her araç ayrıca eşleşen KANITIYLA birlikte bir inceleme puanı taşır — iddiaya güvenmek yerine denetlenebilsin diye. Ölçüm sınırı: yalnız `initialize` ve `tools/list` çağrılır, `tools/call` asla.
Parametreler
| view | "search" | "changes" | "server" | "tool" | "stats" | `search`: search tool name/description · `changes`: change feed (the actual product) · `server`: per-day measurement history for one server · `tool`: definition history for one tool · `stats`: index-level totals. varsayılan "search" |
| q | string | Search term (only `search`), e.g. `invoice`, `calendar`, `sql`. |
| server | string | Registry server name, e.g. `com.temsor/api`. Required for `server`/`tool` views. |
| tool | string | Tool name (only `tool` view). |
| minRisk | integer | Only tools whose review score is at or above this (only `search`). |
| severity | "high" | "medium" | "low" | "info" | Only `changes`. |
| type | string | Event type filter (only `changes`), e.g. `tool_description_changed`. |
| days | integer | Window in days (`changes` and `server`). varsayılan 30 |
| limit | integer | varsayılan 50 |
/v1/mcp/index
{
"view": "search",
"q": "invoice"
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/model/archive
Model Fiyat ve Yaşam Döngüsü Arşivi
1 kredi
400+ model ve 50+ sağlayıcı için fiyatların, bağlam pencerelerinin, ilan edilmiş emeklilik tarihlerinin ve sessiz kaldırmaların tarihli arşivi.
Sağlayıcılar fiyat sayfalarının üzerine yazar ve modelleri neyin değiştiğini yayımlamadan katalogdan düşürür. Bu uç günlük kayıt tutar; böylece kaynakta cevabı olmayan üç soru cevaplanabilir hâle gelir: bir modelin belirli bir gündeki fiyatı (sözleşme ve bütçe sorusu), hangi modellerin sessizce kaldırıldığı (bağımlılık denetimi sorusu) ve bir emeklilik tarihinin ne zaman ilan edildiği ile sonradan değişip değişmediği (göç planı sorusu). Fiyat noktaları ortak zaman hendeğine yazılır; tam aralık sorgusu `series/history` üzerinden `model.price.<saglayici>/<model>.<input|output|cache_read>` kimliğiyle alınır. Arşiv yalnız ileriye doğru birikir — sonradan geri üretilemez.
Parametreler
| view | "catalog" | "expiring" | "delisted" | "events" | "stats" | `catalog`: tracked models · `expiring`: retirement announced · `delisted`: dropped from the catalogue · `events`: lifecycle events · `stats`: archive totals. varsayılan "catalog" |
| provider | string | Provider prefix, e.g. `anthropic`, `openai`, `google`. |
| slug | string | Full model id, e.g. `anthropic/claude-opus-5` (only `events`). |
| q | string | Search in model id/name (only `catalog`). |
| type | "listed" | "delisted" | "relisted" | "price_up" | "price_down" | "context_changed" | "expiration_announced" | "expiration_changed" | Event type (only `events`). |
| severity | "high" | "medium" | "low" | "info" | |
| withinDays | integer | `expiring`: retire within this many days. varsayılan 180 |
| days | integer | `events`: window in days. varsayılan 90 |
| includeDelisted | boolean | `catalog`: include delisted models. varsayılan false |
| limit | integer | varsayılan 100 |
/v1/model/archive
{
"view": "expiring",
"withinDays": 180
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/model/drift
Model Sapma Kaydı
1 kredi
Sağlayıcı ucunun arkasında ne değiştiğinin bağımsız günlük kaydı: hangi takma ad hangi modele çözülüyordu, davranış ne zaman kaydı.
Sağlayıcılar sabit uç adlarının arkasındaki modeli güncelliyor. Bu uç bağımsız ölçümü yayımlıyor: sabit bir sonda takımı her gün sıcaklık 0 ile, sonda başına üç tekrarla gönderiliyor; sağlayıcının kendi yanıtında ilan ettiği kimlik (`modelVersion`, `system_fingerprint`, bölge) da kaydediliyor. Değişim ancak tekrarlar birbirini tutuyor VE önceki koşudan farklıysa sapma sayılıyor — aynı gün içindeki çelişki gürültüdür, sapma değildir. `aliases` görünümü "o gün `gemini-flash-latest` gerçekte neydi" sorusunu cevaplar; geriye dönük üretilemeyen veri budur.
Parametreler
| view | "aliases" | "events" | "probes" | `aliases`: alias → the real model behind it · `events`: drift events · `probes`: probe status from the last run. varsayılan "aliases" |
| provider | string | Filter by provider (gemini, groq, cerebras, mistral). |
| severity | "high" | "medium" | "low" | "info" | Only for the `events` view. |
| days | integer | History window in days (only `events`). varsayılan 90 |
| limit | integer | varsayılan 100 |
/v1/model/drift
{
"view": "aliases"
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.Santral Arama31
/v1/pbx/audio/chunk
Santral Ses Parçası
1 kredi
Canlı veya arşiv çağrı için isteğe bağlı ses parçası / müşteri URI bildirimi (boşta $0).
Müşteri depolama URI tercih edilir. Temsor işaretçi tutar; STT yalnız çağrı varken.
Parametreler
| call_id* | string | |
| pbx_id | string | |
| uri | string | Customer-side media URI (preferred). |
| bytes_b64 | string | Optional small demo chunk; production prefers URI. |
| t_ms | integer |
/v1/pbx/audio/chunk
{
"call_id": "call_msp_001",
"pbx_id": "pbx_otel_msp_demo",
"uri": "https://customer.example/rec/call_msp_001.wav",
"t_ms": 12000
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/pbx/bridge/multi-agent
Santral Çok Ajanlı Köprü
1 kredi
Sanal çok ajanlı köprü niyeti + ortak bellek ipucu (açık vaatler). Boşta $0, canlı Asterisk yok.
POST /v1/pbx/bridge/multi-agent {call_id, agents:[{role,label}]}. Sanal RTP ajan köprü niyetini indekse yazar (canlı Asterisk/ExternalMedia yok). Çağrıdaki açık vaatleri bağlayan shared_memory döner. Telnyx/DID/LLM yok.
Parametreler
| call_id* | string | Call id to attach the multi-agent bridge intent to. |
| agents* | object[] | Virtual RTP agents to bridge (intent only — no live Asterisk). |
| pbx_id | string | Optional PBX scope; falls back to x-temsor-pbx-key or demo PBX. |
/v1/pbx/bridge/multi-agent
{
"call_id": "call_msp_001",
"agents": [
{
"role": "primary",
"label": "Ön büro Ayşe"
},
{
"role": "specialist",
"label": "Teknik 101"
}
]
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/pbx/calls
Santral Son Çağrılar
1 kredi
Son çağrıları aktarım yolu kırıntısıyla listele — site + müşteri arşiv tarayıcısı.
GET /v1/pbx/calls?limit=20. Anahtar varsa kendi santraline kapsamlanır. Boşta $0. Hat/DID satışı yok.
Parametreler
| limit | integer | Max recent calls to return (1–100). varsayılan 20 |
/v1/pbx/calls
{
"limit": 20
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/pbx/calls/get
Santral Çağrı Getir
1 kredi
call_id ile tek çağrı + aktarım grafı — müşteri detay çekmecesi.
GET /v1/pbx/calls/get?call_id=…. Anahtar kapsamı. Yoksa found=false. Boşta $0.
Parametreler
| call_id* | string | Call id (e.g. call_msp_002). |
/v1/pbx/calls/get
{
"call_id": "call_msp_002"
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/pbx/calls/graph
Santral Çağrı Grafı / Aktarımlar
1 kredi
Bir çağrının aktarım grafı + kenarları — kim→kime→vaat nerede kaldı (moat).
GET /v1/pbx/calls/graph?call_id=…&stuck_at=310. Yol, path_tr (düz Türkçe), kenarlar ve ham aktarımlar. Biriken varlık: Transfer kenarı, bot transcript değil. Boşta $0. Hat/DID satışı yok.
Parametreler
| call_id* | string | Call id whose transfer graph to return. |
| stuck_at | string | Optional override for where the promise stuck (extension). |
/v1/pbx/calls/graph
{
"call_id": "call_msp_002"
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/pbx/dictionary
Santral Alan Sözlüğü
1 kredi
Alan sözlüğü v1 (otel: oda tipi, klima, check-out; santral firması: tarife, IMEI, iade) — arama boost + Fact çıkarımı; pilot eşanlamlıları dahil.
GET /v1/pbx/dictionary?domain=otel|santral_firmasi|msp|all (msp = santral_firmasi için eski takma ad). Boşta $0, LLM yok. Eş anlamlılar arşiv arama (eşleşme kırıntıları) ve Fact çıkarımını besler. Yazma: POST /v1/pbx/dictionary/add.
Parametreler
| domain | "otel" | "santral_firmasi" | "msp" | "all" | Domain slice: otel | santral_firmasi (legacy alias: msp) | all varsayılan "all" |
/v1/pbx/dictionary
{
"domain": "otel"
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/pbx/dictionary/add
Santral Sözlüğe Eşanlamlı Ekle
1 kredi
Alan sözlüğüne eşanlamlı ekle (santral kapsamlı veya global demo) — arama boost + Fact çıkarımını bileşikleştirir. ≤60/saat/key → 429. Boşta $0.
POST /v1/pbx/dictionary/add {term, alias, domain:otel|santral_firmasi, scope?:pbx|global}. pbx-index’e yazar. Arama eşleşme kırıntısı döner. Boşta $0, LLM yok. Eski domain=msp → santral_firmasi.
Parametreler
| term* | string | Canonical term (e.g. AC, tariff). Plain Turkish preferred. |
| alias* | string | Synonym / alias to add (e.g. cooling, line package). |
| domain | "otel" | "santral_firmasi" | "msp" | Domain: otel | santral_firmasi (legacy msp accepted). varsayılan "otel" |
| kind | "imei" | "tarife" | "oda" | "oda_tipi" | "klima" | "check_out" | "iade" | "sku" | "other" | Fact kind; inferred from seed term when omitted. |
| boost | number | Search boost weight (default 2). |
| scope | "pbx" | "global" | pbx = scoped to x-temsor-pbx-key; global = demo-wide. Default: pbx if registered key, else global. |
| hint_tr | string | |
| hint_en | string |
/v1/pbx/dictionary/add
{
"term": "klima",
"alias": "cooling",
"domain": "otel",
"scope": "global"
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/pbx/events
Santral Olayları
1 kredi
Asterisk’in programlama arayüzü (ARI) / Stasis (çağrı uygulama kanalı) olaylarını yazar. Opsiyonel x-temsor-pbx-key veya HMAC-SHA256 istek imzası. Gövde ≤256 KiB → 429. Çağrı yokken idle $0.
Demo olayları bellek/dosyada tutar. Kimlik: yok, x-temsor-pbx-key veya x-temsor-signature = hex(HMAC-SHA256(api_key, gövde)); imza başlığı varken kötü imza reddedilir. BridgeEnter → aktarım. Utterance/text → sezgisel açık vaat (LLM yok).
Parametreler
| pbx_id | string | PBX id that emitted the ARI batch. |
| events* | object[] | ARI / Stasis event batch. Utterance/text fields trigger heuristic promise extract. |
/v1/pbx/events
{
"pbx_id": "pbx_otel_msp_demo",
"events": [
{
"type": "StasisStart",
"channel": "PJSIP/101-0001",
"application": "temsor"
}
]
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/pbx/facts
Santral Çıkarılan Bilgiler
1 kredi
Türetilmiş indeksten çıkarılan bilgiler (IMEI, oda, tarife…) — call_id, kind, domain, q filtre.
GET /v1/pbx/facts?call_id=&kind=&domain=otel|santral_firmasi|all&q=&limit=50. Olgular transcript extract + alan sözlüğünden; pbx-index ile kalıcı. Anahtar kapsamı. Boşta $0. Hat/DID satışı yok; Asterisk müşteride; KVKK unut hazır.
Parametreler
| call_id | string | Filter by call id (e.g. call_msp_001). |
| kind | string | Fact kind key (imei, oda, tarife, ...) or all. |
| domain | "otel" | "santral_firmasi" | "msp" | "all" | Domain slice: otel | santral_firmasi (legacy msp) | all. |
| q | string | Free-text filter over kind + value + call_id. |
| limit | integer | Max facts to return (1–200). varsayılan 50 |
/v1/pbx/facts
{
"limit": 20
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/pbx/facts/get
Santral Olgu Getir
1 kredi
id ile tek çıkarılan bilgi (olgu) — site + müşteri detay çekmecesi.
GET /v1/pbx/facts/get?id=…. Anahtar kapsamı. Yoksa found=false. Boşta $0. Hat/DID satışı yok.
Parametreler
| id* | string | Fact id (e.g. fact_001). |
/v1/pbx/facts/get
{
"id": "fact_001"
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/pbx/index/partial
Santral Canlı Kısmi İndeks Yaz
1 kredi
Çağrı içi kısmi indeks yaz (söz → olgu/vaat ipucu). ≤400ms fısıltı yolu; ≤600/saat/key → 429; boşta $0.
POST /v1/pbx/index/partial {call_id, text?, …}. Çağrı canlıyken kısmi metin → biriken olgu/vaat. Temsor STT/LLM yok — metni müşteri yollar. Asterisk müşteride; hat/DID satışı yok. Boşta $0.
Parametreler
| call_id* | string | Live call id to upsert partial index for. |
| text | string | Partial utterance / snippet (customer STT or demo). Empty = metadata-only. |
| speaker | string | null | |
| t_ms | integer | null | |
| is_final | boolean | Finalized utterance span (vs interim). |
| live | boolean | Default true while call is live. |
| end_call | boolean | Mark live=false; idle $0 for this call. |
| promote | boolean | Promote heuristic hints into durable Promise/Fact docs. |
| pbx_id | string |
/v1/pbx/index/partial
{
"call_id": "call_live_demo",
"text": "Temsilci: Oda 412 klimasını yarın onaracağız, söz veriyorum.",
"speaker": "temsilci",
"t_ms": 12000,
"is_final": true,
"live": true
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/pbx/index/partial/get
Santral Canlı Kısmi İndeks Oku
1 kredi
Çağrı içi kısmi indeksi oku — canlıyken biriken olgu/vaat/snippet.
GET /v1/pbx/index/partial/get?call_id=…. Canlı kısmi durum (fısıltı ≤400ms yolu). Canlı çağrı yoksa boşta $0. Asterisk müşteride; hat/DID satışı yok.
Parametreler
| call_id* | string | Call id whose live partial index to read. |
/v1/pbx/index/partial/get
{
"call_id": "call_live_demo"
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/pbx/ingest/transcript
Santral Transkript İçe Aktar
1 kredi
Transkript metninden sezgisel TR vaat çıkarıcı — açık Promise belgeleri (boşta $0, LLM yok).
Vaat cümlelerini yakalar (söz, vaat, edeceğiz, iade, iptal, yarın…). Yazmadan denemek için persist_promises=false. POST /v1/pbx/events içindeki utterance metninde de çalışır.
Parametreler
| transcript* | string | TR utterance / transcript text to scan for promises. |
| call_id | string | |
| pbx_id | string | |
| who | string | |
| ext | string | |
| persist_promises | boolean | When false, extract only (dry-run, no write). When true, create Promise docs status=open. varsayılan true |
/v1/pbx/ingest/transcript
{
"transcript": "Temsilci Ayşe: Oda 412 kliması yarın 10:00'da onarılacak, söz veriyorum.",
"persist_promises": true
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/pbx/night-twin/last
Santral Gece İkizi Son Rapor
1 kredi
Volume’daki son gece-ikizi raporunu getir (hiç çalışmadıysa null). Boşta $0.
GET /v1/pbx/night-twin/last — POST /v1/pbx/night-twin/run son raporu. LLM/Telnyx yok.
Parametreler
/v1/pbx/night-twin/last
{}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/pbx/night-twin/run
Santral Gece İkizi Çalıştır
1 kredi
Gece taraması: N saatten eski açık vaatleri tara → kapanmamış aday listesi (iptal/iade/söz). ≤20/saat/key → 429. Boşta $0, LLM yok.
POST /v1/pbx/night-twin/run {pbx_id?, older_than_hours?}. Gece ikizi sezgiseli — N saatten eski açık vaat + iptal/iade/söz anahtarları. Son rapor volume'da. Telnyx/LLM yok.
Parametreler
| pbx_id | string | Optional PBX scope; falls back to x-temsor-pbx-key scope. |
| older_than_hours | number | Scan open promises whose call is older than this many hours. varsayılan 24 |
/v1/pbx/night-twin/run
{
"older_than_hours": 24
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/pbx/orchestra/act
Santral ARI Orkestra Akt
1 kredi
Sorgu→akt: fısıltı / tut / aktar / PCI durdur / dinle. Niyet kaydı; isteğe bağlı müşteri Stasis webhook. ≤120/saat/key → 429. Hat satışı yok.
POST /v1/pbx/orchestra/act {call_id, action, params?, stasis_webhook_url?}. Arama/öneri sonucunu MÜŞTERİ Asterisk üzerinde ARI aksiyona çevirir (niyet + isteğe bağlı webhook). Temsor canlı RTP yok; Asterisk olmadan stub tamam. Boşta $0. Resepsiyonist bot değil.
Parametreler
| call_id* | string | Live or indexed call id to act on. |
| action* | "whisper" | "hold" | "transfer" | "pci_stop" | "snoop" | whisper | hold | transfer | pci_stop | snoop |
| params | object | Action params (to_ext required for transfer). |
| pbx_id | string | |
| stasis_webhook_url | string | Optional customer Stasis webhook — forge POSTs the act intent there. |
| skip_forward | boolean | Record only; do not POST webhook. |
/v1/pbx/orchestra/act
{
"call_id": "call_msp_001",
"action": "whisper",
"params": {
"text": "Açık klima vaadi — dün 412",
"agent_ext": "101",
"source_type": "promise"
}
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/pbx/persons
Santral Kişiler
1 kredi
Çağrı grafı / olgulardan hafif CRM — arayan telefon+ad ve aktarımlarda görülen dahili kimlikler.
GET /v1/pbx/persons?call_id=&kind=caller|extension|all&q=&limit=50. pbx-index Person satırları + Transfer / promise.ext’ten türetilmiş dahili kimlikler (ext_NNN). Anahtar kapsamı. Boşta $0. Hat/DID satışı yok; Asterisk müşteride; KVKK unut hazır.
Parametreler
| call_id | string | Filter persons seen on this call id. |
| kind | "caller" | "extension" | "all" | caller = durable Person; extension = derived from call-graph hops; all = both. |
| q | string | Free-text over names, phones, org, extensions, facts. |
| include_extensions | boolean | Include derived extension identities (default true). |
| limit | integer | Max persons to return (1–200). varsayılan 50 |
/v1/pbx/persons
{
"limit": 20
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/pbx/persons/get
Santral Kişi Getir
1 kredi
id ile tek hafif-CRM kimlik — arayan Person veya türetilmiş dahili.
GET /v1/pbx/persons/get?id=per_001|ext_101. Anahtar kapsamı. Yoksa found=false. Boşta $0. Hat/DID satışı yok.
Parametreler
| id* | string | Person id (e.g. per_001) or extension id (e.g. ext_101). |
/v1/pbx/persons/get
{
"id": "per_001"
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/pbx/promises
Santral Açık Vaatler
1 kredi
Çağrı grafından açık/kırık vaat listesi — otel / santral firmaları satış demosu.
GET /v1/pbx/promises?status=open → kapanmamış vaat + aktarım yolu. Anahtar varsa kendi santraline kapsamlanır.
Parametreler
| status | "open" | "kept" | "broken" | "unknown" | "all" | "closed" | Promise status filter; closed = kept|broken. Sales demo uses open. varsayılan "open" |
/v1/pbx/promises
{
"status": "open"
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/pbx/promises/close
Santral Vaat Kapat
1 kredi
Açık vaadi tutuldu veya tutulmadı olarak işaretle; isteğe bağlı KVKK-güvenli not — satış demosu salt okunur değil. ≤60/saat/key → 429.
POST /v1/pbx/promises/close {promise_id, status:kept|broken, note?}. Nottaki telefon/e-posta temizlenir. Anahtar varsa kendi santraline kapsamlanır. Boşta $0 — LLM/PSTN yok.
Parametreler
| promise_id* | string | Promise id (prm_*). Sales demo marks open promises kept|broken. |
| status* | "kept" | "broken" | Close outcome: kept (honoured) or broken (not kept). |
| note | string | Optional short operator note. Phones/emails stripped (KVKK-safe). |
/v1/pbx/promises/close
{
"promise_id": "prm_001",
"status": "kept",
"note": "Mühendis geldi, klima OK"
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/pbx/promises/export
Santral Vaat Dışa Aktarım
1 kredi
Açık/kırık vaatleri CSV|JSON dışa aktar — otel / santral firmaları «şu söz kapanmadı» satış listesi.
GET /v1/pbx/promises/export?status=open|closed&format=csv|json. CSV/JSON: closed_at, close_note, path kırıntıları. Anahtar varsa kendi santraline kapsamlanır. Boşta $0.
Parametreler
| status | "open" | "kept" | "broken" | "unknown" | "all" | "closed" | Promise status filter; closed = kept|broken. Sales demo uses open. varsayılan "open" |
| format | "csv" | "json" | Export format. varsayılan "csv" |
/v1/pbx/promises/export
{
"status": "open",
"format": "csv"
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/pbx/promises/reopen
Santral Vaat Geri Aç
1 kredi
Tutuldu/tutulmadı kapatmayı geri al — yanlış tıklamada vaadi yeniden açık yapar. ≤60/saat/key → 429.
POST /v1/pbx/promises/reopen {promise_id}. Yalnız kept|broken → open; closed_at/close_note temizlenir. Anahtar varsa kendi santraline kapsamlanır. Boşta $0.
Parametreler
| promise_id* | string | Promise id (prm_*). Undo a kept|broken close — restore open. |
/v1/pbx/promises/reopen
{
"promise_id": "prm_005"
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/pbx/redact
Santral Unut / KVKK Sil
1 kredi
Tek komut KVKK unut: türetilmiş indeksi (vaat/olgu/kısmi/ses işaretçisi) id veya telefonla temizle; kalıcı denetim (kim/ne/ne zaman + kapsam). ≤30/saat/key → 429. Ham ses URI müşteri santralinde kalır.
Sertleştirilmiş redaksiyon. mode=anonymize|delete. target_id veya phone ile. Hedef için Person/Promise/Fact/kısmi indeks + Temsor ses işaretçilerini temizler. Kalıcı denetim kaydı döner. Medya müşteride kalır. Liste: GET /v1/pbx/redact/audit.
Parametreler
| target_type | "promise" | "call" | "person" | "fact" | "utterance" | Index document type. Optional when `phone` is set. |
| target_id | string | Document id (prm_*, per_*, call_*, fact_*). |
| phone | string | Caller phone — finds Person phones (+ linked derived index). |
| reason | string | KVKK (personal-data) / forget reason. |
| mode | "anonymize" | "delete" | anonymize (default) scrubs fields; delete removes docs. |
| who | string | Actor label for durable audit (defaults to pbx scope / demo-operator). |
/v1/pbx/redact
{
"target_type": "promise",
"target_id": "prm_001",
"reason": "KVKK talep",
"mode": "anonymize"
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/pbx/redact/audit
Santral KVKK Unut Denetimi
1 kredi
Son KVKK unut işlemlerini listele — kim/ne/ne zaman + kapsam (call_id|pbx_id|promise_id). Ham ses müşteri santralinde kalır.
GET /v1/pbx/redact/audit?limit=20. POST /v1/pbx/redact denetim izi. Türetilmiş indeks temizlenir; ham ses URI Temsor tarafından silinmez. Hat satışı yok; Asterisk müşteride.
Parametreler
| limit | integer | Max recent forget actions to return (default 20). |
/v1/pbx/redact/audit
{
"limit": 20
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/pbx/register
Santral Kaydı
1 kredi
Pilot santral kaydı; pbx_id + API anahtarı bir kez (hash ile saklanır). ≤5/saat/IP → 429. Boşta $0.
Kontrol düzlemi kaydı. API anahtarı bir kez gösterilir; saklanırken hash’lenir. x-temsor-pbx-key ile GET /v1/pbx/promises bu pbx_id ile sınırlanır. Boştayken konuşma tanıma yok.
Parametreler
| pbx_id | string | Pilot PBX id; auto-minted if omitted. |
| label | string | Human label, e.g. hotel or PBX/IT provider site. |
| ari_webhook_secret | string | ARI webhook signing secret (stored as hint only). |
| name | string | Pilot contact name (waitlist / register). |
| string | Pilot contact email. | |
| webhook_url | string | Optional outbound webhook URL — Temsor POSTs promise/fact/orchestra/redact events. |
| webhook_secret | string | Optional HMAC secret for outbound webhook signatures (x-temsor-signature). |
| webhook_events | string[] | string | Event list or comma string: promise.opened|closed, fact.extracted, orchestra.act, redact, or *. |
/v1/pbx/register
{
"pbx_id": "pbx_otel_msp_demo",
"label": "Demo otel + santral firması"
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/pbx/search
Santral Arama
1 kredi
Çağrı vaatleri ve olgular üzerinde arşiv araması — santral için ses-Google; resepsiyonist bot değil.
Demo indeks + alan sözlüğü v0. Filtre: status, tarih, dahili, competitor, stuck_after (aktarım sonrası). Çağrı grafı yolu + aktarım kenarları.
Parametreler
| q | string | Full-text query over promises, facts, and call summaries. varsayılan "" |
| status | "open" | "kept" | "broken" | "unknown" | |
| ext | string | |
| competitor | string | |
| date_from | string | ISO date/time lower bound (promise.when_iso / call.started_at). |
| date_to | string | ISO date/time upper bound. |
| stuck_after | string | Filter: promise stuck after transfer to this extension (to_ext hop). |
/v1/pbx/search
{
"q": "klima",
"status": "open"
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/pbx/status
Santral Durumu
1 kredi
Kayıtlı santral kontrol-düzlemi durumu — sayılar + boşta. Hat/DID satışı yok.
GET /v1/pbx/status. Anahtar kapsamı. Asterisk müşteride; türetilmiş indeks Temsor’da. Boşta $0.
Parametreler
/v1/pbx/status
{}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/pbx/synthetic/run
Santral Sentetik Arayan Çalıştır
1 kredi
Yük demosu: örnek çağrı ifadeleri → vaat çıkarıcı → istatistik (calls, promises_open). ≤10/saat/key → 429. Boşta $0, LLM/PSTN yok.
POST /v1/pbx/synthetic/run {scenario:ivr_menu|promise_heavy, count:10..500}. Sahte ifadeler üretir, sezgisel ingest/transcript çıkarıcıyı çalıştırır, calls + promises_open döner. Telnyx/DID/LLM yok.
Parametreler
| scenario | "ivr_menu" | "promise_heavy" | ivr_menu = DTMF/menu stress; promise_heavy = dense commitment lexicon. varsayılan "promise_heavy" |
| count | integer | Fake call count, capped 10..500. varsayılan 50 |
| pbx_id | string | Optional PBX scope; falls back to x-temsor-pbx-key or demo PBX. |
/v1/pbx/synthetic/run
{
"scenario": "promise_heavy",
"count": 50
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/pbx/webhooks
Santral Giden Webhook
1 kredi
Giden webhook kaydet veya listele — müşteri URL vaat/olgu/orkestra/unut olaylarını alır (secret varsa HMAC). POST yazma ≤30/saat/key → 429.
POST /v1/pbx/webhooks {url, secret?, events?, ping?} kaydeder. GET listeler. ping:true test gönderir. Olaylar: promise.opened, promise.closed, fact.extracted, orchestra.act, redact. Secret varsa x-temsor-signature. Boşta $0. Hat satışı yok; Asterisk müşteride; KVKK.
Parametreler
| url | string | Outbound webhook URL (http/https). Present → register; omit on GET → list. |
| secret | string | Optional HMAC-SHA256 secret → x-temsor-signature: sha256=<hex>. |
| events | string[] | string | Events: promise.opened|closed, fact.extracted, orchestra.act, redact, or *. |
| ping | boolean | If true with url → register then ping; if true without url → ping existing. |
| webhook_id | string | For ping: target webhook id. |
| limit | integer | List limit (default 50). |
/v1/pbx/webhooks
{
"url": "https://example.com/temsor-hook",
"secret": "whsec_demo",
"events": [
"promise.closed",
"fact.extracted",
"orchestra.act",
"redact"
],
"ping": true
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/pbx/webhooks/deliveries
Santral Webhook Teslimatları
1 kredi
Son N giden webhook teslimatını listele (stub veya canlı) — vaat/olgu/orkestra/unut/ping.
GET /v1/pbx/webhooks/deliveries?limit=20&webhook_id=. Temsor→müşteri POST günlüğü. Secret varsa HMAC. Boşta $0. Hat satışı yok; Asterisk müşteride; KVKK.
Parametreler
| webhook_id | string | Filter by webhook id. |
| limit | integer | Max deliveries (default 20). |
/v1/pbx/webhooks/deliveries
{
"limit": 20
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/pbx/whisper/suggest
Santral Canlı Fısıltı Öneri
1 kredi
Demo: ≤3 bağlam kartı; canlı kısmi indeks varsa onu tercih eder — mock <400ms; boşta $0.
POST /v1/pbx/whisper/suggest {call_id, partial_text}. Açık vaat ve olguları fısıltı kartı olarak döner. Mock gecikme her zaman 400ms altı. Telnyx/DID yok, canlı sağlayıcı yok — yalnız API CTA.
Parametreler
| call_id* | string | Active call id for agent UI context. |
| partial_text | string | Partial transcript / utterance text (no live speech recognition). varsayılan "" |
/v1/pbx/whisper/suggest
{
"call_id": "call_msp_001",
"partial_text": "klima yarın"
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.Uyum1
/v1/sanctions/screen
Yaptırım Taraması
5 kredi
Bir ismi altı resmî yaptırım listesinde (ABD OFAC, BM, AB, İngiltere OFSI, İsviçre SECO, Kanada) harf çevrimine duyarlı bulanık eşleştirmeyle tarar.
Altı resmî liste tek şemaya indirilir: altı ayrı entegrasyon yerine tek çağrı. Kiril ve Arap harfli isimler Latin harfe çevrilir, unvan ve şirket ekleri ayıklanır, bilinen yazım aileleri birleştirilir — "Abd al-Rahman", "Abdul Rahman" ve "Abdulrahman" aynı kayda ulaşır. Her isabet kendini açıklar: hangi isim eşleşti, kaynak onu zayıf takma ad olarak mı işaretlemiş, doğum yılı ve ülke nasıl karşılaştırıldı. Elinizde varsa `birthYear` verin; yanlış eşleşmelerin çoğunu o eler. `asOf` listelerin geçmiş bir tarihteki hâline göre tarar — denetçinin asıl sorduğu sorudur; kapsam arşivimizin başladığı tarihle sınırlıdır ve `coverage` içinde bildirilir.
Parametreler
| name* | string | Name to screen — person or organisation. |
| type | "any" | "individual" | "entity" | "vessel" | "aircraft" | Restrict to one subject type. Narrowing this removes most false positives. varsayılan "any" |
| birthYear | integer | Known birth year. The single strongest false-positive filter available. |
| country | string | Known country or nationality. |
| sources | "OFAC_SDN" | "UN" | "EU"[] | Defaults to all lists. |
| minScore | number | Score floor. 0.92+ reads as a match, 0.80+ as possible. varsayılan 0.75 |
| limit | integer | varsayılan 10 |
| asOf | string | Screen against the lists as they stood on this date. Limited by when our archive begins. |
/v1/sanctions/screen
{
"name": "Saddam Hussein"
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.Zaman Serisi2
/v1/series/history
Zaman Serisi Tarihçesi
2 kredi
Biriktirilen kamu verisi serilerinin tarihçesini, değişim istatistikleriyle ve kaynak kanıtıyla döndürür.
Şu an beslenen seriler: TCMB günlük döviz kurları (`tcmb.usd`, `tcmb.eur`, …). Boş `seriesId` ile katalog listelenir. `fillGaps` hafta sonu/tatil boşluklarını son değerle doldurur; `includeEvidence` her nokta için kaynak URL ve içerik özetini ekler.
Parametreler
| seriesId | string | Series id, e.g. `tcmb.usd`. Omit to list the catalogue. |
| from | string | Start date (inclusive). |
| to | string | End date (inclusive). |
| limit | integer | varsayılan 365 |
| fillGaps | boolean | varsayılan false |
| includeEvidence | boolean | Include source URL and content excerpt for each point. varsayılan false |
/v1/series/history
{}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/tr/fuel/prices
Türkiye Akaryakıt Fiyatları
2 kredi
81 ilin benzin, motorin ve yakıt fiyatları — geçmiş bir tarihte yürürlükte olan fiyat dahil.
Dağıtıcı hem bugünün pompa fiyatını hem de ilçe ilçe, aralık aralık sorgulanan bir geçmiş sayfasını yayımlıyor. Bu uç asıl para eden soruyu TEK çağrıda yanıtlar: 12 Mart'ta Ankara'da motorin kaç liraydı? `asOf` ile o gün yürürlükte olan fiyat döner — o gün zam/indirim yoksa bir önceki fiyat taşınır, `effectiveFrom` başlangıcını söyler ve `carriedForward: true` işaretlenir. `from`/`to` ile aralıktaki değişimler yüzde farkıyla listelenir. Her değer, okunduğu sayfanın URL'i ve içerik özetiyle saklanır; yıllar sonra denetimde savunulabilir. `province` boş bırakılırsa kapsam listelenir.
Parametreler
| province | string | number | Province name or plate code — "Ankara", "istanbul" or 34. Leave empty to list covered provinces. |
| product | "benzin" | "motorin" | "motorin_ekstra" | "gazyagi" | "kalorifer" | "fueloil" | "fueloil_yk" | Fuel product. Omitted → every product available for that province. |
| asOf | string | Price in force on this date (YYYY-MM-DD). Omitted → latest known price. |
| from | string | With `to`: return the price changes in this window. |
| to | string | |
| includeDistricts | boolean | Adds districts whose pump price differs from the province reference price. varsayılan false |
/v1/tr/fuel/prices
{}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.Kargo1
/v1/shipping/identify
Takip Numarası Tanıma
deterministik
1 kredi
Takip numarasının hangi taşıyıcıya ait olduğunu tanır, sağlaması olan biçimlerde doğrular ve kanonik takip bağlantısını döndürür.
Farklı taşıyıcılardan numara alan ve müşteriyi doğru takip sayfasına yönlendirmesi gereken sipariş sistemleri için. Türk taşıyıcıların çoğu örtüşen düz sayısal aralıklar kullanır; tek bir kesin cevap çoğu zaman mümkün değildir. Kesinlik uydurmak yerine sıralı ADAY LİSTESİ döner — müşteriyi yanlış firmanın sayfasına yollamak, ona kargonun kaybolduğunu düşündürür. S10 (Dünya Posta Birliği) numaraları tam doğrulanır: mod-11 sağlaması hesaplanır, hizmet türü ve çıkış ülkesi çözülür. Sağlamasını standarda karşı doğrulamadığımız biçimlerde sonuç `not-verified` der, tahmin etmez — yanlış ret, dürüst bir bilinmezden kötüdür. Gönderi DURUMU bilerek kapsam dışı: Türk taşıyıcılar bunun için bayi kimliği ister, site kazımak ise kırılgan ve kullanım şartlarına aykırı olurdu.
Parametreler
| trackingNumber* | string | Tracking number, with or without spaces and dashes. |
| country | string | Destination or origin country hint, e.g. "TR". Narrows the candidates. |
/v1/shipping/identify
{
"trackingNumber": "RR123456785TR"
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.Adres1
/v1/tr/address/parse
Türkçe Adres Ayrıştırma
deterministik
1 kredi
Serbest metin Türkçe adresi mahalle, cadde/sokak, bina, kat, daire, ilçe, il ve posta koduna ayırır.
Kısaltma kaosunu (Mah./Mh., Cd./Cad., Sk./Sok., No:12/5, K:3 D:7) tek elden çözer; posta koduyla ili çapraz doğrular, ilçe yazım hatalarını sözlüğe göre düzeltir ve her alan için güven skoru üretir. Ayrıştırılamayan parçalar `unparsed` içinde açıkça bildirilir — sessizce veri kaybı yoktur.
Parametreler
| address* | string | Free-text address. |
| defaultProvince | string | Province to assume when the address has none. |
/v1/tr/address/parse
{
"address": "Caferağa Mah. Moda Cd. No:12/5 K:3 34710 Kadıköy/İstanbul"
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.Takvim1
/v1/tr/business-days
Türkiye İş Günü Hesabı
deterministik
1 kredi
Resmî ve dinî tatilleri (arife yarım günleri dahil) hesaba katarak iş günü ekler veya iki tarih arasını sayar.
Ramazan ve Kurban bayramları hicri takvime bağlı olduğu için ilan edilmiş tarih tablosundan okunur; henüz resmî ilanı yapılmamış yıllar `confirmed:false` ile tahmini olarak işaretlenir. Termin, SLA, vade ve kargo süresi hesaplayan her sistemin ihtiyacı.
Parametreler
| start* | string | Start date (YYYY-MM-DD). |
| addDays | integer | Add/subtract this many business days (not calendar days). |
| end | string | If set, count business days between start and this date. |
| countHalfDaysAsWork | boolean | Count Arife half-days as working days? varsayılan true |
/v1/tr/business-days
{
"start": "2026-03-16",
"addDays": 10
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.Türkiye3
/v1/tr/labor
Kıdem, İhbar ve Yıllık İzin
deterministik
1 kredi
Hizmet süreleri ve giydirilmiş brütten kıdem, ihbar ve yıllık izin hakkını hesaplar; o güne ait tavan ve asgari ücret tablosunu kullanır.
Bordro ve İK araçları her Ocak ve Temmuz'da kıdem tavanı, SGK tavanı, asgari ücret kovalıyor. Bu uç, yasal formülü (4857 md. 17 ve 53, mülga 1475 md. 14) o tablolara uygular. Tavan aylık ücrete uygulanır, toplama değil. Kıdemden yalnız damga (binde 7,59) kesilir; gelir vergisi yok. İhbar vergiye tabidir — brütü döneriz, kümülatif matrahı bilemediğimiz için kesintiyi uydurmayız. Söylemediği şey: bu işçinin kıdeme hak kazanıp kazanmadığı. O, feshin sebebine bağlı. Sayıyı "alacağı" diye yazmak, duruşmada kaybettirir.
Parametreler
| startDate* | string | Employment start date (YYYY-MM-DD). |
| endDate* | string | Termination date (YYYY-MM-DD). Inclusive of this day. |
| monthlyGross* | number | Gross monthly wage the severance is based on (giydirilmiş brüt). |
| asOf | string | Rate table date. Defaults to endDate. |
| age | integer | Employee age at termination — affects annual-leave entitlement (under 18 or 50+). |
| unusedLeaveDays | number | Unused annual-leave days, if you also want the unused-leave gross. |
/v1/tr/labor
{
"startDate": "2025-08-01",
"endDate": "2026-08-01",
"monthlyGross": 33030
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/tr/tebligat-clock
Tebligat Süre Hesabı
deterministik
1 kredi
Bir tebligatın hüküm (ulaşmış sayılma) tarihini ve HMK'ya göre tatil kayması uygulanmış son günü, olayın gerçekte olduğu tarihten hesaplar.
7201 sayılı Kanun, süre saatini "zarftaki tarih" değil ayrı bir olaya bağlar — elektronik tebligatta UETS gönderim, okunma VE ulaşma tarihlerinin üçünü de gösterir; saati yalnız ulaşma tarihi başlatır (md. 7/a: adrese ulaştıktan 5 takvim günü sonra tebliğ edilmiş sayılır, açılmış olsun olmasın). HMK bunun üstüne iki kural daha ekler: tebliğ günü sürenin kendisine dahil değildir (md. 92 — süre ertesi gün başlar) ve hesaplanan son gün hafta sonuna ya da tam gün resmî/dinî tatile denk gelirse ilk iş gününe kayar (md. 93); arife (yarım gün) kaydırmaz. Söylemediği şey: tebligatın kendisinin usulüne uygun olup olmadığı, ya da sizin dosyanızdaki `periodType`in (itiraz, temyiz, cevap…) kaç gün olduğu — bu sayı kanuna göre değişir, tahmin etmeyiz; `periodDays`i siz verirsiniz. Şimdilik yalnız "hmk" kanun ailesi kapsanıyor.
Parametreler
| type* | "electronic" | "physical" | "vekil" | "ilanen" | "last_known_address" | Notification method. Determines which event `basisDate` refers to and whether the deemed-received date is same-day or shifted. |
| lawFamily* | "hmk" | Body of procedural law the period is computed under. Only "hmk" (Code of Civil Procedure) is supported so far. |
| basisDate* | string | The date `basisLabel` describes for this type — for "electronic" this is the date UETS reports the message as reached, not sent or read. |
| periodDays* | integer | Length of the statutory or judicial period, in days, counted from `periodStart`. |
| periodType | string | Free-text label for the period (e.g. "itiraz", "temyiz"), echoed back only — not mapped to a day count. |
| ilanenDeemedDays | integer | Only valid with type "ilanen": number of days the competent authority set for the notice to become deemed received (TK 31), 7-15, default 7. Not the number of days for the underlying period. |
| hasAttorney | boolean | Whether the addressee has a registered attorney of record. When true and `type` is not "vekil", a TK 11 warning is added noting that service should have gone to the attorney. |
| subjectToJudicialRecess | boolean | Whether this matter is subject to the judicial recess (adli tatil, HMK 104) instead of being exempt. Only affects the result when `lawFamily` is "hmk" and the computed last day falls in the 20 July - 31 August window. |
/v1/tr/tebligat-clock
{
"type": "electronic",
"lawFamily": "hmk",
"basisDate": "2026-03-16",
"periodDays": 7,
"periodType": "itiraz"
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.
/v1/tr/vat
KDV ve Tevkifat
deterministik
1 kredi
Tutarı matrah, KDV ve isteğe bağlı tevkifata ayırır: satıcıya ödenecek, tevkif edilen KDV.
Fatura satırı ve ödeme ekranı için KDV dahil/hariç; tevkifat varsa alıcının satıcıya ödeyeceği ile vergi dairesine yatıracağı ayrılır. Oranlar %0, %1, %10, %20. Tevkifat KDV'nin kesri (2/10–10/10) veya GİB listesindeki bir kod. 2026 eşiği (KDV dahil 12.000 ₺) tutarla karşılaştırılır ama `applies` daima null: tevkifatın gerçekten doğması iki tarafın mükellefiyetine bağlı, o burada yok. Kesir vermek hukuki görüş değildir.
Parametreler
| amount* | number | The amount to tax. See amountIncludesVat. |
| amountIncludesVat | boolean | If true, `amount` is the gross (KDV dahil); if false, it is the net/matrah. varsayılan false |
| rate | number | number | number | number | VAT rate in percent. 0, 1, 10 or 20. varsayılan 20 |
| withholding | string | Withholding fraction such as "5/10", or a code from the list (reklam, tasima, hurda, isgucu…). |
/v1/tr/vat
{
"amount": 1000,
"rate": 20
}Çalıştır’a bas — ücretsiz dene, anahtar gerekmez.ÜrünlerPazar listesi ve kasa için paketlenmiş uç kümeleri.
Fiyatlandırmatek anahtar tüm uçları kapsar
Bu sayfada ücretsiz dene → anahtar gerektiğinde Ödemeye geç · API erişimi.
Kredi çağrı başına düşer, önbellekten gelen yanıt ücretsizdir. Anahtarsız istekler IP başına dar bir demo kotasıyla çalışır; kaydolmadan değerlendirebilirsiniz.
API anahtarı ödeme onaylanır onaylanmaz e-postayla gelir. Plan yükseltmede anahtar DEĞİŞMEZ, entegrasyonunuz kırılmaz.
Ödemeden önce entegrasyonu bitirmek ister misiniz?
Yapay zekâ asistanından kullanaynı katalog, MCP aracı olarak
Her uç aynı zamanda Model Context Protocol üzerinden yayınlanıyor; Claude, ChatGPT ya da kendi ajanınız doğrudan çağırabilir — ara kod yok, sarmalayıcı fonksiyon yok. Asistan aynı girdi şemalarını ve aynı ölçümü görür.
Şu an 68 araç. Yeni uçlar kendiliğinden görünür; sizin tarafınızda güncellenecek bir şey yok.
claude_desktop_config.json
{
"mcpServers": {
"temsor": {
"url": "https://api.temsor.com/mcp",
"headers": { "x-api-key": "fk_live_…" }
}
}
}
Hızlı başlangıç
Resmî istemci: npm install temsor-api · npmjs.com/package/temsor-api
Node.js
import Client from "temsor-api";
const api = new Client({ apiKey: KEY });
const r = await api.${(() => {
const first = apis[0];
return first.slug.split(/[/-]/).map((p, i) => (i === 0 ? p : p[0].toUpperCase() + p.slice(1))).join('');
})()}(${esc(JSON.stringify(apis[0].examples[0]?.input ?? {}))});
console.log(r, r.$meta);cURL
curl -s https://api.temsor.com/v1/tr/labor \
-H "content-type: application/json" \
-H "x-api-key: fk_live_…" \
-d '{"startDate":"2025-08-01","endDate":"2026-08-01","monthlyGross":33030}'JavaScript
const res = await fetch("https://api.temsor.com/v1/tr/labor", {
method: "POST",
headers: { "content-type": "application/json", "x-api-key": KEY },
body: JSON.stringify({"startDate":"2025-08-01","endDate":"2026-08-01","monthlyGross":33030})
});
const { data } = await res.json();Python
import httpx
r = httpx.post("https://api.temsor.com/v1/tr/labor",
headers={"x-api-key": KEY},
json={"startDate":"2025-08-01","endDate":"2026-08-01","monthlyGross":33030})
data = r.json()["data"]