API
API, suç ve asayiş olaylarının il, ilçe ve mahalle düzeyindeki kayıtlarını, özetlerini ve bir konum için hazırlanan suç raporunu JSON biçiminde verir.
Kapsam
Sitede yayımlanan cinayet ve silahlı saldırı göstergelerinin yanında aşağıdaki türlerdeki olaylar da konum düzeyinde endekslenir. Türlerin kanundaki tanımları diğer suçlar sayfasındadır. Silahlı saldırılar tür fark etmeksizin silahli alanıyla işaretlenir.
API olay kayıtlarını ve sayıları verir. Olay kayıtları 2023–2025 dönemini kapsar; yıl verilmezse en son veri yılı döner. Nüfusa oran ve endeks yalnız cinayet ve silahlı saldırı için hesaplanır; diğer türlerde basına yansıyan olaylar, resmî kayıtların illere göre düzensiz dağılan küçük bir bölümüdür. Uyuşturucu ve kaçakçılık kayıtlarının çoğu kolluk operasyonudur.
Konum ve gizlilik
- Her kaydın konum_duzeyi alanı il, ilçe ya da mahalledir. İlçesi doğrulanamayan olaylar yalnız il sorgularında döner.
- Mahalle ve köy adları TÜİK Adrese Dayalı Nüfus Kayıt Sistemi listesiyle eşleştirilir. Nüfusu 1.000’in altındaki yerleşimlerde konum ilçe düzeyinde verilir.
- Cinsel suçlarda konum en çok ilçe düzeyindedir.
- Konum raporunda noktanın ilçesi geoBoundaries sınırlarıyla bulunur; mesafeler, mahalle ve köy merkezlerinin OpenStreetMap verisiyle belirlenen konumuna göre hesaplanır. Yanıtta koordinat verilmez.
- Tarih ay çözünürlüğündedir. Kayıtlarda ad, yaş, cinsiyet, adres, sokak ve kaynak bağlantısı bulunmaz.
- Kodlar Türkçe karakterler sadeleştirilerek küçük harfle yazılır: Kadıköy için kadikoy. Kodların listesi /api/v1/konumlar uç noktasındadır.
Kimlik doğrulama
Her istek, lisansla verilen anahtarı taşımalıdır. Anahtar bir kez gösterilir; sunucuda yalnız özeti saklanır. Günlük istek limiti pakete göre belirlenir ve her yanıtın başlığında bildirilir.
Authorization: Bearer se_•••••••••••••••• X-Istek-Limiti: 5000 X-Istek-Kalan: 4987
Uç noktalar
GET /api/v1/konum-raporu
Bir nokta ya da alan için suç raporu verir: noktanın il ve ilçesi, il ve ilçe endeksleri, yarıçap içindeki olaylar, ilçedeki ve ildeki olay sayıları. Rapor bütün türleri kapsar; endekse girmeyen türler olay sayısıyla verilir.
- enlem, boylam
- Noktanın koordinatı (WGS84), ondalık ayırıcısı nokta. Örnek: 40.9870, 29.0260
- yaricap
- Yakın çevre yarıçapı, metre; 100–10.000, varsayılan 1.000
- olay_limit
- Yakın çevre listesindeki en çok olay; 0–200, varsayılan 50
- il, ilce
- Nokta yerine alan: il kodu ve isteğe bağlı ilçe kodu; yakın çevre bölümü dönmez
- yil
- Olay yılı, virgülle ayrılmış yıllar ya da tum (bütün veri yılları; şu an 2023, 2024, 2025); varsayılan en son yıl. Birden çok yılda sayılar yılların toplamıdır, endeksler en son yıl içindir
GET /api/v1/konum-raporu?enlem=40.9870&boylam=29.0260&yaricap=1000
{
"yil": 2025, "yillar": [2025],
"sorgu": { "enlem": 40.987, "boylam": 29.026, "yaricap": 1000, "olay_limit": 50 },
"konum": {
"il": "istanbul", "il_ad": "İstanbul", "ilce": "kadikoy", "ilce_ad": "Kadıköy",
"mahalle": { "kod": "caferaga", "ad": "Caferağa", "tip": "mahalle", "mesafe_m": 240 }
},
"endeksler": {
"turkiye": { "cinayet": { "vaka": <sayı>, "oran_100bin": <sayı> }, "cinayette_olen": { … }, "silahli_saldiri": { … } },
"il": {
"nufus": <sayı>,
"cinayet": { "endeks": <sayı>, "sira": <1–81>, "il_sayisi": 81, "sinif": <1–5>, "sinif_ad": "90–110",
"vaka": <sayı>, "oran_100bin": <sayı> },
"cinayette_olen": { "kisi": <sayı>, "oran_100bin": <sayı> },
"silahli_saldiri": { … }
},
"ilce": {
"nufus": <sayı>, "guven": "orta",
"cinayet": { "sinif": <1–5>, "sinif_ad": "…", "il_sira": <sayı>, "il_ilce_sayisi": 39,
"turkiye_yuzdelik": <0–100>, "il_ile_kiyas": "civarında" },
"silahli_saldiri": { … }
}
},
"yakin_cevre": {
"yaricap_m": 1000, "mahalle_sayisi": <sayı>, "toplam": <sayı>, "silahli": <sayı>,
"turler": { "cinayet": { "n": <sayı>, "silahli": <sayı> }, "gasp": { … }, … },
"olaylar": [
{ "id": "ornek00000000002", "yil": 2025, "ay": 7, "tur": "gasp", "yontem": null, "sonuc": null, "silahli": 0,
"il": "istanbul", "ilce": "kadikoy", "ilce_ad": "Kadıköy", "mahalle": "caferaga", "mahalle_ad": "Caferağa",
"mesafe_m": 240 }
],
"olay_listesi_tam": true
},
"ilce": { "toplam": <sayı>, "silahli": <sayı>, "konum_duzeyi": { "mahalle": <sayı>, "ilce": <sayı>, "il": 0 }, "turler": { … } },
"il": { "toplam": <sayı>, "silahli": <sayı>, "konum_duzeyi": { … }, "turler": { … } },
"turler": [
{ "kod": "cinayet", "ad": "Cinayet (kasten öldürme ve teşebbüs)", "maddeler": "TCK 81–83, 35", "kapsam": "yuksek", "endekste": true },
{ "kod": "kasten_yaralama", "ad": "Kasten yaralama", "maddeler": "TCK 86–87", "kapsam": "dusuk", "endekste": false },
…
],
"kaynaklar": { … }
}- yil, yillar
- yillar sayıların kapsadığı yıllar, yil bunların en sonudur; endeksler yil içindir. Yakın çevre listesindeki her olay kendi yılını taşır
- konum.mahalle
- Noktanın ilçesinde, 3 km içindeki en yakın mahalle ya da köy merkezi; yoksa null
- endeksler.il
- Cinayet ve silahlı saldırı endeksi (Türkiye = 100), 81 il içindeki sıra (1 en yüksek), sınıf (1: 70 altı, 5: 140 ve üstü), vaka sayısı ve 100 bin kişideki oran. Cinayet endeksi 100 bin kişide kasten öldürülen kişi oranına dayanır; cinayet.vaka ve cinayet.oran_100bin ölümle sonuçlanan cinayet vakasını, cinayette_olen öldürülen kişiyi verir
- endeksler.ilce
- Sınıf, il içindeki sıra, 973 ilçe içindeki yüzdelik dilim (100 en yüksek) ve il oranıyla karşılaştırma. guven, ilçe nüfusuna göre tahminin dayanağını gösterir: dusuk, orta, yuksek
- yakin_cevre
- Mahalle düzeyinde konumu olan olaylar; mesafe mahalle merkezine göre hesaplanır. olay_listesi_tam false ise liste olay_limit değerinde kesilmiştir
- ilce, il
- Mahalle, ilçe ve il düzeyindeki bütün kayıtların türe göre sayısı
- turler[].kapsam
- yuksek: endeksi yayımlanan tür; dusuk: endekse girmeyen, olay sayısıyla verilen tür
GET /api/v1/olaylar
Bir konumdaki olay kayıtlarını aya göre sıralı ve sayfalı olarak verir.
- il
- İl kodu, zorunlu. Örnek: istanbul
- ilce
- İlçe kodu. Örnek: kadikoy
- mahalle
- Mahalle kodu; ilce ile birlikte
- tur
- Bir ya da virgülle ayrılmış birden fazla tür kodu
- yil
- Olay yılı; varsayılan en son yıl
- ay_bas, ay_bit
- Ay aralığı, 1–12
- silahli
- 1: yalnız silahlı saldırılar
- konum_duzeyi
- il, ilce ya da mahalle
- limit, sayfa
- Sayfa başına en çok 500 kayıt
GET /api/v1/olaylar?il=izmir&ilce=bornova&tur=hirsizlik,gasp&ay_bas=1&ay_bit=6
Authorization: Bearer se_••••••••••••••••
200 OK
X-Istek-Limiti: 5000
X-Istek-Kalan: 4987
{
"yil": 2025,
"sorgu": { "il": "izmir", "ilce": "bornova", "tur": ["hirsizlik", "gasp"], "ay_bas": 1, "ay_bit": 6 },
"sayfa": 1, "limit": 100, "toplam": 1,
"veri": [
{
"id": "ornek00000000001", "yil": 2025, "ay": 3,
"il": "izmir", "il_ad": "İzmir", "ilce": "bornova", "ilce_ad": "Bornova",
"mahalle": "kazimdirik", "mahalle_ad": "Kazımdirik", "mahalle_tip": "mahalle", "konum_duzeyi": "mahalle",
"tur": "hirsizlik", "yontem": null, "sonuc": null, "silahli": 0
}
]
}GET /api/v1/ozet
Bir konum için türe ve aya göre olay sayılarını verir. komsu=1 parametresiyle komşu ilçeler de hesaba katılır.
- il
- İl kodu, zorunlu
- ilce
- İlçe kodu
- mahalle
- Mahalle kodu
- komsu
- 1: ilçeyle ortak sınırı olan ilçeleri de kat
- yil
- Olay yılı; varsayılan en son yıl
GET /api/v1/ozet?il=izmir&ilce=bornova&komsu=1
{
"yil": 2025,
"konum": {
"il": "izmir", "ilce": "bornova", "mahalle": null,
"komsular": ["izmir/bayrakli", "izmir/buca", "izmir/karsiyaka", "izmir/kemalpasa",
"izmir/konak", "izmir/menemen", "manisa/yunusemre"]
},
"toplam": <sayı>,
"silahli": <sayı>,
"konum_duzeyi": { "ilce": <sayı>, "mahalle": <sayı> },
"turler": {
"hirsizlik": { "n": <sayı>, "silahli": <sayı>, "aylik": [<12 ay>] },
"kasten_yaralama": { … }
}
}GET /api/v1/konumlar
İlleri, bir ilin ilçelerini ya da bir ilçede olay kaydı bulunan mahalleleri kodları ve olay sayılarıyla verir.
- il
- Verilirse ilin ilçeleri; verilmezse iller
- ilce
- Verilirse ilçenin olay kaydı bulunan mahalleleri
- yil
- Olay yılı; varsayılan en son yıl
GET /api/v1/turler
Tür kodlarını, adlarını, ilgili kanun maddelerini, her tür için verilen en ayrıntılı konum düzeyini ve kapsamını verir.
Alanlar
- id
- Kaydın kalıcı kimliği
- yil, ay
- Olay yılı ve ayı
- il, il_ad
- İl kodu ve adı
- ilce, ilce_ad
- İlçe kodu ve adı; ilçe doğrulanamadıysa null
- mahalle, mahalle_ad
- Resmî mahalle ya da köy kodu ve adı; yoksa null
- mahalle_tip
- mahalle ya da koy
- konum_duzeyi
- il, ilce ya da mahalle
- tur
- Tür kodu; bkz. kapsam
- yontem
- atesli_silah, kesici_alet, darp, diger ya da null
- sonuc
- olum, yaralanma, girisim ya da null
- silahli
- 1: ateşli silah ya da kesici aletle yapılan, ölüm ya da yaralanmayla biten saldırı
Hatalar
- 400
- Eksik ya da geçersiz parametre
- 401
- Anahtar yok ya da geçersiz
- 403
- Anahtarın kapsamı dışında bir il
- 404
- Bilinmeyen uç nokta, il ya da ilçe; Türkiye sınırları dışında nokta
- 429
- Günlük istek limiti doldu
{ "hata": "il parametresi gerekli." }Erişim
Anahtar, kurumsal erişim talebinin değerlendirilmesinden sonra yıllık lisansla verilir. Sorgu limiti, kapsanan iller ve ürün içi gösterim hakkı sözleşmede tanımlanır. Talep değerlendirilirken deneme anahtarı verilebilir. Dosya teslimi, panel ve API için tek form kullanılır; formda Platform paketini ya da API erişimini seçin.