İçeriğe Geç

Emsal Kararlar

GET /api/v1/court-decisions

Emsal Kararlar

UYAP/Adalet içtihat (emsal karar) külliyatında gezinmenizi ve anahtar kelimeyle arama yapmanızı sağlar. Bu külliyat, mevzuat kütüphanesinden ayrı tutulur: yapısal Detay alanları ve (alındıysa) tam metin saklanır. Mevzuat Kütüphanesindeki gibi bir yükümlülük/etiket çıkarımı uygulanmaz; yapay zeka analizi yalnızca seçilmiş kararlar için ayrıca çalıştırılır ve analiz çıktısı API üzerinden sunulmaz — detay yanıtındaki aiProcessed alanı yalnızca o karar için analiz çalıştırılıp çalıştırılmadığını bildirir.

Doğal dille (cümle/soru bazlı) arama için ayrı bir uç nokta vardır: Emsal Anlamlı Arama. Ek izin gerektirmez, bu sayfadaki izni kullanır.

Anahtar kelime araması

  • q — karar tam metni + daire adı üzerinde tam metin arama (Türkçe kök ve aksan duyarsız; örn. sozlesme sorgusu sözleşme geçen kararları bulur). Eşleşen kayıtlarda, eşleşen pasajı <b> işaretleriyle vurgulayan bir snippet alanı döner. Arama daire adı üzerinden de eşleşebildiği için, tam metni henüz alınmamış (hasText = false) kararlarda snippet null döner — bu alanı her zaman dolu varsaymayın.
  • Diğer tüm filtreler q ile VE mantığıyla birlikte çalışır.

Eşleşme kademesi (matchTier) — 2026-08-13

q ile yapılan ve alaka düzeyine göre sıralanan aramalarda her kayıt, sorgudaki kelimelerin kararda nasıl geçtiğini bildirir:

matchTier matchTierLabel Anlamı
1 Tam ifade Kelimeler ardışık geçiyor
2 Yakın eşleşme Sorgunun bitişik kelime çiftlerinden en az biri korunmuş
3 Tüm kelimeler Kelimelerin hepsi var, ancak dağınık

Sıralamada kademe skordan önce gelir: ifadeyi birebir içeren bir karar, yalnızca kelimeleri dağınık içeren bir karardan her zaman önce gelir.

matchIsApproximate alanı, matchTier > 1 türetmeniz gerekmesin diye kademe 2/3 için true döner — arayüzde "yaklaşık eşleşme" uyarısı göstermek için bu alanı kullanın.

Üç alan da null dönebilir ve bu bir hata değildir. Kademe hesaplanmadığı durumlar: sort=date_asc|date_desc verildiğinde, q verilmediğinde, sorgu tek bir köke indiğinde (örn. yalnızca durak kelimelerden oluşan bir ek), sorgu arama operatörü içerdiğinde (aşağıya bakın) ve kayıt yalnızca daire adı üzerinden eşleştiğinde (karar metni sorguyla hiç eşleşmemiştir). Bu durumlarda bir kademe bildirmek, test edilmemiş bir şey iddia etmek olurdu.

Arama operatörleri

q şu operatörleri destekler: "tırnak içinde tam ifade", -haric (kelimeyi dışla) ve or. Operatör içeren sorgularda eşleşme kademesi bildirilmez (matchTier = null); filtreleme operatörleri tam olarak uygular, yalnızca kademe etiketi verilmez.

Toplam sayı sınırı ve iki bayrak

Toplam sayı — hem anahtar kelime aramasında hem düz gezinmede — 10.000'de sınırlandırılır ve yanıt pagination içinde iki ek bayrak taşır:

  • totalCountIsLowerBound = truetotalCount tam olarak 10.000'dir, gerçek toplam bundan büyüktür. Hem q ile aramada hem düz gezinmede görülebilir.
  • totalCountIsEstimate = truetotalCount, Postgres planlayıcısının yaklaşık satır tahminidir; 10.000'in çok üzerinde olabilir ve kesin değildir. Yalnızca q verilmeden yapılan düz gezinmede görülür.

İki bayrak da false ise totalCount kesindir. Sayfa sayısını hesaplarken bayrakları kontrol edin.

Alaka sıralamasında totalCount farklı anlama gelir

relevance sıralamasında sayım 10.000'de değil, sıralama penceresinde (varsayılan 2.000) sınırlanır. Aynı sorgu sort=date_desc ile 10.000+, varsayılan sıralamayla 2.000+ dönebilir — külliyat değişmemiştir, yalnızca sayımın anlamı değişmiştir. Bunun sebebi, pencerenin ötesindeki kayıtların hiç puanlanmaması ve dolayısıyla sayfalamayla erişilebilir olmamasıdır; onları toplam gibi sunmak yanıltıcı olurdu.

Bunu ayırt edebilmeniz için pagination iki alan daha döner:

  • orderingIsApproximate = true — sıralama, eşleşmelerin tamamı üzerinde değil sınırlı bir aday penceresi üzerinde hesaplandı.
  • rankWindow — o pencerenin büyüklüğü.

Tam ifade eşleşmeleri bu pencereden etkilenmez; kendi sorgularıyla ayrıca bulunurlar, dolayısıyla eski bir tam-ifade kararı asla güncellik yüzünden elenmez. Sınır, kademe 2/3 kuyruğundadır. orderingIsApproximate gördüğünüzde doğru hamle daha derin sayfalamak değil, sorguyu daraltmaktır (tarih aralığı, daire, kurum türü).

Sayfalama derinliği de bu sınırla kırpılır: relevance modunda rankWindow / pageSize, tarih sıralamasında 10.000 / pageSize sayfadan öteye gidilemez; daha büyük bir page sessizce son erişilebilir sayfaya indirilir.

Filtreleme

  • itemType — mahkeme/kurum türü (CaseLawItemType enum sayı değeri, 0-7; değer listesi için Enum Referansı sayfasına bakın). Tanımsız bir değer 400 döndürmez — süzgeci tamamen düşürür, yani sonuç filtrelenmemiş külliyattır.
  • department — daire / birim adı içinde geçen metin (örn. 12. Hukuk Dairesi).
  • esasNo / kararNo — esas ve karar numarası (örn. 2006/10799, 2006/13163).
  • dateFrom / dateTo — karar tarihi aralığı (yyyy-MM-dd veya dd.MM.yyyy; bitiş günü dahildir).
  • onlyWithTexttrue ise yalnızca tam metni alınmış kararlar.
  • sortrelevance, date_desc veya date_asc.
    • q verildiğinde varsayılan relevance'tır (2026-08-13 itibarıyla; öncesinde date_desc idi). Geniş bir hukuki ifade 10.000+ kararla eşleşiyordu ve liste en yeniden eskiye dönüyordu; yani listenin başı, arananla değil güncellikle belirleniyordu. Kronolojik sıra isteyen çağrılar date_desc göndermeye devam edebilir.
    • q verilmediğinde (düz gezinme) varsayılan date_desc olarak kalır — sıralanacak bir sorgu yoktur.
    • Tanımsız bir değer 400 döndürmez, varsayılana düşer.

Sayfalama

page (varsayılan 1) ve pageSize (1-100, varsayılan 20; aralık dışı değerler sessizce kırpılır). Yanıt pagination ile toplam sayıyı ve yukarıdaki iki bayrağı döner.

Yetki ve kota

Bu uç nokta Api.CourtDecisions.Browse iznini gerektirir ve mevzuat Kütüphanesinden bağımsız olarak paket (tier) bazında hız/kota limitlerine tabidir.

Parametreler

İsimKonumTipZorunluAçıklama
q Query string Hayır Anahtar kelime araması: karar tam metni + daire adı üzerinde tam metin arama (Türkçe kök/aksan duyarsız). Eşleşen kayıtlarda 'snippet' alanı döner; tam metni alınmamış (yalnızca daire adı üzerinden eşleşen) kararlarda 'snippet' null'dur.
itemType Query integer Hayır Mahkeme/kurum türü (CaseLawItemType enum sayı değeri, 0-7). Tam liste: Enum Referansı. Tanımsız bir değer hata döndürmez, süzgeci tamamen düşürür.
department Query string Hayır Daire / birim adı içinde geçen metin (örn. '12. Hukuk Dairesi').
esasNo Query string Hayır Esas numarası (örn. '2006/10799').
kararNo Query string Hayır Karar numarası (örn. '2006/13163').
dateFrom Query string Hayır Karar tarihi başlangıç (yyyy-MM-dd veya dd.MM.yyyy).
dateTo Query string Hayır Karar tarihi bitiş (gün dahil).
onlyWithText Query boolean Hayır Yalnızca tam metni alınmış kararlar.
sort Query string Hayır 'relevance', 'date_desc' veya 'date_asc'. 'q' verildiğinde varsayılan 'relevance' (2026-08-13 itibarıyla; öncesinde 'date_desc' idi); 'q' yokken 'date_desc'. Tanımsız değer hata döndürmez, varsayılana düşer.
page Query integer Hayır Sayfa numarası.
pageSize Query integer Hayır 1-100; varsayılan 20.

Yanıtlar

200 — Kararların sayfalı listesi (daire, esas/karar no, tür, tarih, tam metin durumu; 'q' ile aramada eşleşme pasajı 'snippet'). Alaka sıralamasında her kayıt ayrıca 'matchTier' (1 tam ifade / 2 yakın eşleşme / 3 tüm kelimeler), 'matchTierLabel' ve 'matchIsApproximate' taşır; sıralanmayan yollarda üçü de null'dur. Toplam sayı düz gezinme ve tarih sıralamasında 10.000'de, ALAKA sıralamasında ise sıralama penceresinde (varsayılan 2.000) sınırlanır — yani aynı sorgu farklı 'sort' ile farklı büyüklükte 'totalCount' döndürebilir. Yanıt 'pagination.totalCountIsLowerBound', (yalnızca düz gezinmede) 'totalCountIsEstimate' ve (yalnızca alaka sıralamasında, sıralama pencereyle sınırlandıysa) 'orderingIsApproximate' + 'rankWindow' bayraklarını taşıyabilir.