Geliştirici API

İhale verilerini kendi sisteminize bağlayın

İhale Metrik REST API ile ihale arama, detay, alarm ve profil verilerini kendi sistemlerinize entegre edin. Erişim, yalnız bizim oluşturup onayladığımız 3 parçalı kimlik (Access Key + Secret Key + Token) ve izin verilen IP adresleriyle sağlanır.

3 parçalı kimlik

Access Key + Secret Key + Token. Üçü birden doğru olmalı.

IP kilidi

Yalnız önceden bildirdiğiniz IP adres(ler)inden erişim.

Onaylı erişim

Her kimlik yönetici tarafından oluşturulup onaylanır; iptal edilebilir.

Başlarken

1. Kimlik talep edin

API erişimi davetlidir: destek ekibiyle iletişime geçin. Firmanız için bir kimlik oluşturup Access Key, Secret Key ve Token değerlerini güvenli biçimde iletiriz. Bu üç değer yalnız bir kez verilir; kaybederseniz yenisi üretilir.

2. Sabit IP adresinizi bildirin

İstek atacağınız sunucunun sabit genel IP adresini (ya da IP bloğunu) bize bildirin. Erişim yalnız bu adres(ler)den çalışır; başka bir IP’den gelen istek reddedilir. Bu, anahtar sızsa bile erişimi korur.

3. Üç başlıkla çağırın

Her isteğe üç kimlik başlığını birlikte ekleyin. Üçü de doğru, kimlik onaylı ve istek izinli IP’den ise yanıt döner; aksi halde hata kodu alırsınız.

Kimlik doğrulama

Her isteğe aşağıdaki üç başlığı ekleyin. Değerleri yalnız kimlik oluşturulurken bir kez verilir; güvenli bir sır deposunda saklayın, istemci tarafında (tarayıcı, mobil uygulama) gömmeyin.

X-Access-Key: imk_xxxxxxxxxxxxxxxxxxxxxxxx
X-Secret-Key: ims_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Authorization: Bearer imt_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Örnek istek

curl -s "https://ihalemetrik.com/api/v1/tenders?query=yazilim&province=Ankara&limit=10" \
  -H "X-Access-Key: imk_xxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "X-Secret-Key: ims_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Authorization: Bearer imt_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

Örnek yanıt

{
  "success": true,
  "data": {
    "items": [
      { "id": "…", "ikn": "2026/123456", "title": "…", "institution": "…", "city": "Ankara" }
    ],
    "nextCursor": "…"
  }
}

Tüm yanıtlar { success, data?, error?, code? } zarfıyla döner. Sayfalama cursor ile yapılır: yanıttaki nextCursor değerini bir sonraki isteğe cursor parametresi olarak geçirin.

Uç noktalar

İlk sürümde yalnız okuma uçları açıktır.

MetodYolAçıklamaYetki
GET/api/v1/tendersİhale arama. Parametreler: query, province, type (mal|hizmet|yapim|danismanlik), minAmount, maxAmount, limit (≤100), cursor.tenders:read
GET/api/v1/tenders/{id}Tek bir ihalenin detayı.tenders:read
GET/api/v1/alertsFirmanızın tanımlı alarmları.alerts:read
GET/api/v1/meHesap ve abonelik bilgileri.me:read

Hata kodları

HTTPKodAnlamı
401UNAUTHORIZEDÜç başlıktan biri eksik.
401INVALID_CREDENTIALSAccess Key, Secret Key veya Token eşleşmedi (hangisi olduğu belirtilmez).
401KEY_REVOKEDKimlik iptal edilmiş.
401KEY_EXPIREDKimliğin süresi dolmuş.
403NOT_APPROVEDKimlik henüz onaylanmamış.
403IP_NOT_ALLOWEDİstek izin verilmeyen bir IP adresinden geldi.
403INSUFFICIENT_SCOPEKimlik bu uç için gerekli yetkiye sahip değil.
429RATE_LIMIT_EXCEEDEDSaatlik istek sınırı aşıldı.

Hız sınırı

İstekler firma başına saatlik olarak sınırlıdır (varsayılan 1.000/saat; kimliğinize özel ayarlanabilir). Sınır aşıldığında 429 döner; yanıt üstbilgilerinde kalan hak ve sıfırlanma zamanı yer alır. İsteklerinizi istikrarlı bir hızda gönderin ve 429 durumunda kısa bir bekleme ile yeniden deneyin.

Entegrasyona hazır mısınız?

Kimlik talebinizi iletin; sabit IP adresinizle birlikte kuruluma yardımcı olalım.

API erişimi talep edin