Açık Veri API'si
Türkiye kamu alımlarının kamuya açık agrega göstergelerine — rekabet endeksi, tek teklif oranı, tenzilat, doğrudan temin hacmi, il ve sektör kırılımları — salt-okunur, JSON, programatik erişim. Akademik ve gazetecilik kullanımı için açık; atıfla serbestçe kullanılır.
Başlangıç
Kimlik doğrulama, herkese açık apikey anahtarıyla yapılır (Supabase anon anahtarı — tasarımı gereği publiktir). Taban yol:
# Taban yol https://ihaleglobal.com/rest/v1/ # Örnek: yıl bazında genel rekabet endeksi (tek teklif oranı + tenzilat). # yil=gt.0 → yıl toplamı satırını (yil=0) atlar, 2019'dan bugüne tüm yılları verir. curl "https://ihaleglobal.com/rest/v1/veri_rekabet_endeksi?boyut=eq.genel&yil=gt.0&order=yil.asc" \ -H "apikey: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlIiwiaWF0IjoxNzg0MzA3MTU4LCJleHAiOjE5NDE5ODcxNTh9.CjNKulvirotDD_y2oO2QKgo0kbqYvL0jUSV1RiDMoso"
Yanıt (kısaltılmış):
[
{ "boyut":"genel", "deger":"Tumu", "yil":2019, "ihale_sayisi":122297, "tek_teklif_pct":33.4, "tenzilat_ort":16.5, "kapsama_pct":100 },
{ "boyut":"genel", "deger":"Tumu", "yil":2024, "ihale_sayisi":143207, "tek_teklif_pct":36.4, "tenzilat_ort":15.0, "kapsama_pct":100 }
]
Python (pandas):
import pandas as pd, requests H = {"apikey": "<public-anon-key>"} url = "https://ihaleglobal.com/rest/v1/veri_rekabet_endeksi" df = pd.DataFrame(requests.get(url, headers=H, params={"boyut":"eq.sektor","yil":"eq.2024"}).json())
Uç Noktalar
On dört salt-okunur uç nokta, iki katmanda. Katman 1 saf kategori/endeks agregasıdır (isim içermez). Katman 2, kamuya açık firma/kurum unvanlarıyla sıralı özet sunar. Tümünü sürüm ve atıflarıyla programatik keşfetmek için aşağıdaki /rest/v1/veri_katalog ucunu kullanın.
Kolonlar: boyut (genel·il·sektor·usul·idare_tur), deger, yil, ihale_sayisi, tek_teklif_pct, tenzilat_ort, kapsama_pct
curl "https://ihaleglobal.com/rest/v1/veri_rekabet_endeksi?boyut=eq.sektor&yil=eq.2024&order=tek_teklif_pct.desc" -H "apikey: <key>"
Kolonlar: boyut (genel·il·sektor·idare_tur), deger, yil, islem_sayisi, medyan_bedel, ort_bedel
curl "https://ihaleglobal.com/rest/v1/veri_dt_endeksi?boyut=eq.sektor&yil=eq.2025&order=islem_sayisi.desc" -H "apikey: <key>"
Kolonlar: il, sektor, ihale_sayisi, toplam_bedel
curl "https://ihaleglobal.com/rest/v1/veri_il_sektor?il=eq.ANKARA&order=toplam_bedel.desc" -H "apikey: <key>"
Kolonlar: il, sektor, ihale_sayisi, toplam_bedel, yerli_bedel, disari_bedel, yerli_pct
curl "https://ihaleglobal.com/rest/v1/veri_il_yerlilik?il=eq.KONYA&order=yerli_pct.asc" -H "apikey: <key>"
Kolonlar: idare_il (alan kurumun ili), firma_il (yüklenicinin ili), sozlesme_sayisi, bedel
curl "https://ihaleglobal.com/rest/v1/veri_il_ticaret_akisi?idare_il=eq.VAN&order=bedel.desc" -H "apikey: <key>"
Kolonlar: il, kurum, sozlesme_sayisi, bedel, sira (1–10)
curl "https://ihaleglobal.com/rest/v1/veri_il_top_kurum?il=eq.İZMİR&order=sira.asc" -H "apikey: <key>"
Kolonlar: sektor, kurum, sozlesme_sayisi, bedel, sira
Kolonlar: il, kurum, alim_sayisi, bedel, sira
Kolonlar: il, firma, firma_il, sozlesme_sayisi, bedel, sira
curl "https://ihaleglobal.com/rest/v1/veri_il_top_firma?il=eq.BURSA&order=sira.asc" -H "apikey: <key>"
Kolonlar: sektor, firma, firma_il, sozlesme_sayisi, bedel, sira
Kolonlar: il (firmanın ili), firma, sozlesme_sayisi, ciro, sira
Kolonlar: il, firma, alim_sayisi, bedel, sira
Kolonlar: boyut (genel·il·sektor), deger, yil, sozlesme_sayisi, yerli_adet_pct, yerli_bedel_pct, kapsama_pct
Kolonlar: boyut (genel·il·sektor), deger, yil, sozlesme_sayisi, firma_sayisi, cr1, cr4, cr10, hhi
Sorgulama, sayfalama ve hız
Uç noktalar PostgREST üzerinde çalışır; standart filtre, sıralama ve sayfalama söz dizimi geçerlidir.
Hız sınırı — üç kademe:
Anon (anahtarsız): IP başına 2 istek/sn, burst 60 — normal kullanım etkilenmez, yalnız toplu çekim yavaşlar. ·
Akademik (kayıtla, ücretsiz): X-Api-Key başlığıyla 20 istek/sn, burst 100. ·
Kurumsal: özel limit + SLA. Aşımda 429 döner; toplu/otomatik çekimde istekleri makul aralıklarla yollayın.
Akademik API anahtarı al — ücretsiz
Üniversite e-postasıyla (.edu.tr / .edu) anında; diğer başvurular elle onaylanır. Anahtar rate-limit kademesini yükseltir (anon 2/sn → akademik 20/sn) — veriye erişim zaten anahtarsız da açıktır (CC BY 4.0). Kurumsal (yüksek hacim + SLA) için amacınızı yazın, dönelim.
Lisans ve atıf
Veri CC BY 4.0 altında sunulur: kopyalayabilir, dönüştürebilir, ticari dahil her amaçla kullanabilirsiniz — tek koşul atıf. Kaynak, EKAP'ın kamuya açık ihale ve doğrudan temin kayıtlarıdır; agregalar İhaleGlobal veri altyapısında üretilmiştir. Yöntem Araştırma Enstitüsü Yöntem bölümünde açıktır.
Akademik kullanım — katalog, sürüm ve makine-okunur atıf
Tüm veri kümelerini, geçerli sürümlerini ve önerilen atıflarını tek uçtan programatik olarak keşfedin. Her veri kümesinin kalıcı bir kimliği (IGRE-veri-…-vYYYY-Www) ve haftalık sürümü vardır; makale ve tezlerde sürümü belirtmeniz yeniden-üretilebilirlik için önerilir. Veri haftalık yenilenir; sürüm hafta boyunca sabit kalır.
Kolonlar: kod, ad, aciklama, url, lisans, surum, yayinci, kaynak, kimlik, atif
curl "https://ihaleglobal.com/rest/v1/veri_katalog?select=kod,ad,surum,kimlik,atif" -H "apikey: <key>"
BibTeX (biblatex) — katalogdaki atif / surum / url alanlarından doldurun. Aşağıdaki v2026-W35 yalnızca örnektir; güncel sürüm için veri_katalog.surum alanını (veya /rest/v1/veri_surum ucunu) kullanın. Klasik BibTeX kullanıyorsanız @dataset yerine @misc + howpublished tercih edin (version/license bazı eski .bst stillerinde yok sayılabilir).
@dataset{igre_veri_rekabet_endeksi,
title = {Rekabet Endeksi},
author = {{İhaleGlobal Araştırma Enstitüsü}},
year = {2026},
version = {v2026-W35},
publisher = {İhaleGlobal Araştırma Enstitüsü},
url = {https://ihaleglobal.com/rest/v1/veri_rekabet_endeksi},
note = {Kalıcı kimlik: IGRE-veri-rekabet_endeksi-v2026-W35},
license = {CC BY 4.0}
}
Kapsam sınırları:
- Rekabet göstergeleri (tek teklif, tenzilat) için 2019–2024 sağlam; 2025–2026 sonuç detayları kısmi olduğundan bu yıllar için düşüş yorumu yapılmaz.
- Doğrudan temin arşivi 2025 öncesi eksiktir; yıllar arası DT karşılaştırması yapılamaz, 2025 referans yıldır.
- Firma/kurum kırılımları kova başına en yüksek 10 kayıtla sınırlıdır (tam firma dizini bu API'de yer almaz).