Skip to content

Mahalleler ​

Mahalle endpoint'leri Türkiye'deki mahalle kayıtlarını sunar.

Temel path:

http
/v2/neighborhoods

Endpoint'ler ​

MethodPathAçıklama
GET/v2/neighborhoodsMahalleleri listeler
GET/v2/neighborhoods/{neighborhoodId}ID ile tek mahalle getirir

Mahalle Nesnesi ​

AlanTipAçıklama
idintegerMahalle ID'si
namestringMahalle adı
slugstringURL uyumlu mahalle adı
provinceIdintegerBağlı olduğu il ID'si
districtIdintegerBağlı olduğu ilçe ID'si
municipalityIdintegerBağlı olduğu belediye ID'si
populationintegerMahalle nüfusu
postalCodestringBeş haneli mahalle posta kodu
postalCodeStatusstringPosta kodu durumu: official, derived veya estimated

TIP

Posta kodları sayısal görünse de postalCode alanı beş haneli string olarak döner. Türkiye'deki bazı posta kodları sıfır ile başlar ve integer olarak saklanırsa baştaki sıfır kaybolur.

Posta Kodu Durumu ​

Posta kodunun nasıl belirlendiğini anlamak için postalCodeStatus alanını kullanın:

DeğerAnlamı
officialPosta kodu resmi PTT posta kodu verisinde bulunur ve doğrudan bu kaynaktan kullanılır.
derivedPosta kodu mevcut mahalle için PTT verisinde yoktur; ancak mahalle daha önce posta kodu bilinen ve PTT verisinde yer alan bir köy ya da başka bir yerleşimin parçasıdır. Bu durumda önceki yerleşimin posta kodu kullanılır.
estimatedPosta kodu PTT verisinde yoktur ve önceki bir yerleşimden türetilememiştir. Değer ek kamusal kaynaklardan, yakındaki yerleşimlerden, ilçe düzeyi posta kodu örüntülerinden veya belgelenmiş idari değişikliklerden çıkarılır.

Kesin resmi posta kodu verisine ihtiyaç duyan istemciler postalCodeStatus alanını kontrol etmelidir. Yalnızca resmi kullanım için postalCodeStatus değeri official olan kayıtları filtreleyin.

Güncel mahalle durumu dağılımı:

DurumSayı
official32,142
derived76
estimated36
Toplam32,254

Örnek mahalle:

json
{
  "id": 3,
  "name": "Alidede",
  "slug": "alidede",
  "provinceId": 1,
  "districtId": 1104,
  "municipalityId": 937,
  "population": 1116,
  "postalCode": "01020",
  "postalCodeStatus": "official"
}

Mahalleleri Listeleme ​

http
GET /v2/neighborhoods

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

Sorgu Parametreleri ​

ParametreTipVarsayılanAçıklama
searchstring-Mahalle adına göre filtreler
fieldsstring-Döndürülecek alanları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
provinceIdinteger-Bağlı olduğu il ID'sine göre filtreler
districtIdinteger-Bağlı olduğu ilçe ID'sine göre filtreler
municipalityIdinteger-Bağlı olduğu belediye ID'sine göre filtreler
postalCodestring-Tam beş haneli posta koduna göre filtreler
postalCodePrefixstring-Bir ile beş hane arasındaki posta kodu prefix'ine göre filtreler
postalCodeStatusstring-Virgülle ayrılmış posta kodu durumu filtresi: official, derived, estimated

minPopulation ve maxPopulation birlikte verildiğinde minPopulation, maxPopulation değerinden küçük veya ona eşit olmalıdır. provinceId, districtId ve municipalityId birlikte kullanıldığında ID'ler aynı idari zincire ait olmalıdır.

İzin Verilen Alanlar ​

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

İstek ​

bash
curl "https://api.turkiyeapi.dev/v2/neighborhoods?districtId=1104&postalCodePrefix=010&limit=2&fields=id,name,postalCode,postalCodeStatus"

Yanıt ​

json
{
  "data": [
    {
      "id": 1,
      "name": "Ahmet Remzi Yüreğir",
      "postalCode": "01130",
      "postalCodeStatus": "official"
    },
    {
      "id": 2,
      "name": "Akkapı",
      "postalCode": "01040",
      "postalCodeStatus": "official"
    }
  ],
  "meta": {
    "count": 2,
    "total": 96,
    "limit": 2,
    "offset": 0,
    "datasetVersion": "2025",
    "lastUpdated": "2026-05-21"
  }
}

ID ile Mahalle Getirme ​

http
GET /v2/neighborhoods/{neighborhoodId}

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

Path Parametreleri ​

ParametreTipAçıklama
neighborhoodIdintegerMahalle ID'si

Sorgu Parametreleri ​

ParametreTipAçıklama
fieldsstringDöndürülecek mahalle alanlarının virgülle ayrılmış listesi
includestringDahil edilecek ilişkili kaynakların virgülle ayrılmış listesi

Include Değerleri ​

text
province,district,municipality

İstek ​

bash
curl "https://api.turkiyeapi.dev/v2/neighborhoods/3?include=province,district,municipality"

Yanıt ​

json
{
  "data": {
    "id": 3,
    "name": "Alidede",
    "slug": "alidede",
    "provinceId": 1,
    "districtId": 1104,
    "municipalityId": 937,
    "population": 1116,
    "postalCode": "01020",
    "postalCodeStatus": "official",
    "province": {
      "id": 1,
      "name": "Adana",
      "slug": "adana",
      "population": 2283609,
      "area": {
        "value": 13844,
        "unit": "km2"
      },
      "altitude": {
        "value": 25,
        "unit": "m"
      },
      "phoneAreaCodes": [322],
      "isCoastal": true,
      "isMetropolitan": true,
      "region": {
        "tr": "Akdeniz",
        "en": "Mediterranean"
      },
      "coordinates": {
        "latitude": 36.9863599,
        "longitude": 35.3252861
      },
      "stats": {
        "districtCount": 15,
        "municipalityCount": 15,
        "neighborhoodCount": 831,
        "villageCount": 0
      }
    },
    "district": {
      "id": 1104,
      "name": "Seyhan",
      "slug": "seyhan",
      "provinceId": 1,
      "population": 782204,
      "area": {
        "value": 444,
        "unit": "km2"
      },
      "stats": {
        "municipalityCount": 1,
        "neighborhoodCount": 96,
        "villageCount": 0
      }
    },
    "municipality": {
      "id": 937,
      "name": "Seyhan",
      "slug": "seyhan",
      "type": "district_center",
      "provinceId": 1,
      "districtId": 1104,
      "population": 782204,
      "stats": {
        "neighborhoodCount": 96
      }
    }
  },
  "meta": {
    "datasetVersion": "2025",
    "lastUpdated": "2026-05-21"
  }
}

Yaygın Hatalar ​

StatusKodNe zaman oluşur
400BAD_REQUESTSorgu veya path parametresi doğrulaması başarısız olduğunda
400INVALID_RANGE_FILTERminPopulation, maxPopulation değerinden büyük olduğunda
400INVALID_HIERARCHY_FILTERprovinceId, districtId ve municipalityId aynı hiyerarşiyi göstermediğinde
400INVALID_FIELDSfields istenen kaynak için bilinmeyen bir alan içerdiğinde
400INVALID_INCLUDEinclude desteklenmeyen bir ilişki içerdiğinde
404NEIGHBORHOOD_NOT_FOUNDİstenen mahalle bulunamadığında
429-Rate limit aşıldığında
500INTERNAL_SERVER_ERRORBeklenmeyen sunucu hatasında

Hata yanıtı:

json
{
  "error": {
    "code": "NEIGHBORHOOD_NOT_FOUND",
    "message": "Neighborhood not found.",
    "status": 404
  }
}