Skip to content

İller

İl endpoint'leri Türkiye'deki il kayıtlarını ve il kapsamındaki alt koleksiyonları sunar.

Temel path:

http
/v2/provinces

Endpoint'ler

MethodPathAçıklama
GET/v2/provincesİlleri listeler
GET/v2/provinces/{provinceId}ID ile tek il getirir
GET/v2/provinces/{provinceId}/districtsBir ildeki ilçeleri listeler
GET/v2/provinces/{provinceId}/municipalitiesBir ildeki belediyeleri listeler
GET/v2/provinces/{provinceId}/neighborhoodsBir ildeki mahalleleri listeler
GET/v2/provinces/{provinceId}/villagesBir ildeki köyleri listeler

İl Nesnesi

AlanTipAçıklama
idintegerİl ID'si
namestringİl adı
slugstringURL uyumlu il adı
populationintegerİl nüfusu
area.valuenumberİl alan değeri
area.unitstringAlan birimi, her zaman km2
altitude.valuenumberMetre cinsinden il rakımı
altitude.unitstringRakım birimi, her zaman m
phoneAreaCodesinteger[]İl telefon alan kodları
isCoastalbooleanİlin kıyı ili olup olmadığı
isMetropolitanbooleanİlin büyükşehir olup olmadığı
region.trstringİlin Türkçe bölge adı
region.enstringİlin İngilizce bölge adı
coordinates.latitudenumberİl enlemi
coordinates.longitudenumberİl boylamı
stats.districtCountintegerİldeki ilçe sayısı
stats.municipalityCountintegerİldeki belediye sayısı
stats.neighborhoodCountintegerİldeki mahalle sayısı
stats.villageCountintegerİldeki köy sayısı

TIP

İstanbul ili, Boğaz'ın iki yakasında yer aldığı için iki telefon alan koduna sahiptir. Avrupa yakası 212 alan kodunu, Anadolu yakası ise 216 alan kodunu kullanır. Türkiye'deki diğer illerin tamamında yalnızca bir alan kodu vardır. Bu nedenle phoneAreaCodes, çoğu ilde tek eleman içerse de bir dizi olarak döner.

Örnek il:

json
{
  "id": 34,
  "name": "İstanbul",
  "slug": "istanbul",
  "population": 15754053,
  "area": {
    "value": 5461,
    "unit": "km2"
  },
  "altitude": {
    "value": 25,
    "unit": "m"
  },
  "phoneAreaCodes": [212, 216],
  "isCoastal": true,
  "isMetropolitan": true,
  "region": {
    "tr": "Marmara",
    "en": "Marmara"
  },
  "coordinates": {
    "latitude": 41.006381,
    "longitude": 28.9758715
  },
  "stats": {
    "districtCount": 39,
    "municipalityCount": 39,
    "neighborhoodCount": 961,
    "villageCount": 0
  }
}

İlleri Listeleme

http
GET /v2/provinces

Sayfalanmış il listesi döndürür.

Sorgu Parametreleri

ParametreTipVarsayılanAçıklama
searchstring-İl adına göre filtreler
fieldsstring-Döndürülecek il alanlarının virgülle ayrılmış listesi
sortstringidSıralama değeri: id, -id, name, -name, population, -population
limitinteger100Döndürülecek kayıt sayısı, 1 ile 1000 arası
offsetinteger0Atlanacak kayıt sayısı
minPopulationinteger-Minimum nüfus
maxPopulationinteger-Maksimum nüfus
minAreanumber-Kilometrekare cinsinden minimum alan
maxAreanumber-Kilometrekare cinsinden maksimum alan
minAltitudenumber-Metre cinsinden minimum rakım
maxAltitudenumber-Metre cinsinden maksimum rakım
isCoastalstring-Kıyı illerini filtreler. İzin verilen değerler: true, false
isMetropolitanstring-Büyükşehirleri filtreler. İzin verilen değerler: true, false

TIP

isCoastal ve isMetropolitan, sorgu parametrelerinde kolay kullanım için true ve false string değerlerini kabul eder. Boolean gibi görünseler de query string içinde string olarak gönderilirler.

İzin Verilen Alanlar

text
id,name,slug,population,area,altitude,phoneAreaCodes,isCoastal,isMetropolitan,region,coordinates,stats

İstek

bash
curl "https://api.turkiyeapi.dev/v2/provinces?search=istanbul&fields=id,name,population,area"

Yanıt

json
{
  "data": [
    {
      "id": 34,
      "name": "İstanbul",
      "population": 15754053,
      "area": {
        "value": 5461,
        "unit": "km2"
      }
    }
  ],
  "meta": {
    "count": 1,
    "total": 1,
    "limit": 100,
    "offset": 0,
    "datasetVersion": "2025",
    "lastUpdated": "2026-05-10"
  }
}

ID ile İl Getirme

http
GET /v2/provinces/{provinceId}

Sayısal il ID'si ile tek il döndürür.

Path Parametreleri

ParametreTipAçıklama
provinceIdintegerİl ID'si

Sorgu Parametreleri

ParametreTipVarsayılanAçıklama
fieldsstring-Döndürülecek il alanlarının virgülle ayrılmış listesi
includestring-Dahil edilecek ilişkili kaynakların virgülle ayrılmış listesi

Include Değerleri

text
districts,municipalities,neighborhoods,villages

İstek

bash
curl "https://api.turkiyeapi.dev/v2/provinces/34?include=districts,municipalities"

Yanıt

json
{
  "data": {
    "id": 34,
    "name": "İstanbul",
    "slug": "istanbul",
    "population": 15754053,
    "area": {
      "value": 5461,
      "unit": "km2"
    },
    "altitude": {
      "value": 25,
      "unit": "m"
    },
    "phoneAreaCodes": [212, 216],
    "isCoastal": true,
    "isMetropolitan": true,
    "region": {
      "tr": "Marmara",
      "en": "Marmara"
    },
    "coordinates": {
      "latitude": 41.006381,
      "longitude": 28.9758715
    },
    "stats": {
      "districtCount": 39,
      "municipalityCount": 39,
      "neighborhoodCount": 961,
      "villageCount": 0
    },
    "districts": [],
    "municipalities": []
  },
  "meta": {
    "datasetVersion": "2025",
    "lastUpdated": "2026-05-10"
  }
}

Dahil edilen kaynaklar kendi şemalarını kullanır. Yukarıdaki örnekte iç içe diziler okunabilirlik için kısaltılmıştır.

İldeki İlçeleri Listeleme

http
GET /v2/provinces/{provinceId}/districts

Path parametresindeki provinceId ile eşleşen ilçeleri döndürür.

Path Parametreleri

ParametreTipAçıklama
provinceIdintegerİl ID'si

Sorgu Parametreleri

ParametreTipVarsayılanAçıklama
fieldsstring-Döndürülecek ilçe alanlarının virgülle ayrılmış listesi
limitinteger100Döndürülecek kayıt sayısı, 1 ile 1000 arası
offsetinteger0Atlanacak kayıt sayısı

İzin Verilen Alanlar

text
id,name,slug,provinceId,population,area,stats

İstek

bash
curl "https://api.turkiyeapi.dev/v2/provinces/34/districts"

İldeki Belediyeleri Listeleme

http
GET /v2/provinces/{provinceId}/municipalities

Path parametresindeki provinceId ile eşleşen belediyeleri döndürür.

Path Parametreleri

ParametreTipAçıklama
provinceIdintegerİl ID'si

Sorgu Parametreleri

ParametreTipVarsayılanAçıklama
fieldsstring-Döndürülecek belediye alanlarının virgülle ayrılmış listesi
limitinteger100Döndürülecek kayıt sayısı, 1 ile 1000 arası
offsetinteger0Atlanacak kayıt sayısı

İzin Verilen Alanlar

text
id,name,slug,type,provinceId,districtId,population,stats

İstek

bash
curl "https://api.turkiyeapi.dev/v2/provinces/34/municipalities"

İldeki Mahalleleri Listeleme

http
GET /v2/provinces/{provinceId}/neighborhoods

Path parametresindeki provinceId ile eşleşen mahalleleri döndürür.

Path Parametreleri

ParametreTipAçıklama
provinceIdintegerİl ID'si

Sorgu Parametreleri

ParametreTipVarsayılanAçıklama
fieldsstring-Döndürülecek mahalle alanlarının virgülle ayrılmış listesi
limitinteger100Döndürülecek kayıt sayısı, 1 ile 1000 arası
offsetinteger0Atlanacak kayıt sayısı

İzin Verilen Alanlar

text
id,name,slug,provinceId,districtId,municipalityId,population,postalCode

İstek

bash
curl "https://api.turkiyeapi.dev/v2/provinces/34/neighborhoods?fields=id,name,population"

İldeki Köyleri Listeleme

http
GET /v2/provinces/{provinceId}/villages

Path parametresindeki provinceId ile eşleşen köyleri döndürür.

Path Parametreleri

ParametreTipAçıklama
provinceIdintegerİl ID'si

Sorgu Parametreleri

ParametreTipVarsayılanAçıklama
fieldsstring-Döndürülecek köy alanlarının virgülle ayrılmış listesi
limitinteger100Döndürülecek kayıt sayısı, 1 ile 1000 arası
offsetinteger0Atlanacak kayıt sayısı

İzin Verilen Alanlar

text
id,name,slug,provinceId,districtId,population,postalCode

İstek

bash
curl "https://api.turkiyeapi.dev/v2/provinces/34/villages"

Yaygın Hatalar

StatusKodNe zaman oluşur
400BAD_REQUESTSorgu veya path parametresi doğrulaması başarısız olduğunda
400INVALID_FIELDSfields istenen kaynak için bilinmeyen bir alan içerdiğinde
400INVALID_INCLUDEinclude desteklenmeyen bir ilişki içerdiğinde
404PROVINCE_NOT_FOUNDİstenen il bulunamadığında
429-Rate limit aşıldığında
500INTERNAL_SERVER_ERRORBeklenmeyen sunucu hatasında

Hata yanıtı:

json
{
  "error": {
    "code": "PROVINCE_NOT_FOUND",
    "message": "Province not found.",
    "status": 404
  }
}