Skip to content

Districts

District endpoints expose Turkey's district records and district-scoped child collections.

Base path:

http
/v2/districts

Endpoints

MethodPathDescription
GET/v2/districtsList districts
GET/v2/districts/{districtId}Get one district by ID
GET/v2/districts/{districtId}/municipalitiesList municipalities in a district
GET/v2/districts/{districtId}/neighborhoodsList neighborhoods in a district
GET/v2/districts/{districtId}/villagesList villages in a district

District Object

FieldTypeDescription
idintegerDistrict ID
namestringDistrict name
slugstringURL-safe district name
provinceIdintegerParent province ID
populationintegerDistrict population
area.valuenumberDistrict area value
area.unitstringArea unit, always km2
stats.municipalityCountintegerNumber of municipalities in the district
stats.neighborhoodCountintegerNumber of neighborhoods in the district
stats.villageCountintegerNumber of villages in the district

Example district:

json
{
  "data": [
    {
      "id": 1103,
      "name": "Adalar",
      "provinceId": 34,
      "population": 17489
    },
    {
      "id": 1166,
      "name": "Bakırköy",
      "provinceId": 34,
      "population": 218204
    }
  ],
  "meta": {
    "count": 2,
    "total": 39,
    "limit": 2,
    "offset": 0,
    "datasetVersion": "2025",
    "lastUpdated": "2026-05-10"
  }
}

List Districts

http
GET /v2/districts

Returns a paginated list of districts.

Query Parameters

ParameterTypeDefaultDescription
searchstring-Filters by district name
fieldsstring-Comma-separated district fields to include
sortstringidSorts by a: id, -id, name, -name, population, -population
limitinteger100Number of records to return, from 1 to 1000
offsetinteger0Number of records to skip
minPopulationinteger-Minimum population
maxPopulationinteger-Maximum population
minAreanumber-Minimum area in square kilometers
maxAreanumber-Maximum area in square kilometers
provinceIdinteger-Filters districts by parent province ID

Allowed Fields

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

Request

bash
curl "https://api.turkiyeapi.dev/v2/districts?provinceId=34&limit=2&fields=id,name,provinceId,population"

Response

json
{
  "data": [
    {
      "id": 1103,
      "name": "Adalar",
      "provinceId": 34,
      "population": 16325
    },
    {
      "id": 2048,
      "name": "Arnavutköy",
      "provinceId": 34,
      "population": 336062
    }
  ],
  "meta": {
    "count": 2,
    "total": 39,
    "limit": 2,
    "offset": 0,
    "datasetVersion": "2025",
    "lastUpdated": "2026-05-10"
  }
}

Get District by ID

http
GET /v2/districts/{districtId}

Returns one district by numeric district ID.

Path Parameters

ParameterTypeDescription
districtIdintegerDistrict ID

Query Parameters

ParameterTypeDescription
fieldsstringComma-separated district fields to include
includestringComma-separated related resources to include

Includes

text
province,municipalities,neighborhoods,villages

Request

bash
curl "https://api.turkiyeapi.dev/v2/districts/1103?include=province,neighborhoods"

Response

json
{
  "data": {
    "id": 1103,
    "name": "Adalar",
    "slug": "adalar",
    "provinceId": 34,
    "population": 16325,
    "area": {
      "value": 11,
      "unit": "km2"
    },
    "stats": {
      "municipalityCount": 1,
      "neighborhoodCount": 5,
      "villageCount": 0
    },
    "province": {
      "id": 34,
      "name": "İstanbul"
    },
    "neighborhoods": []
  },
  "meta": {
    "datasetVersion": "2025",
    "lastUpdated": "2026-05-10"
  }
}

Included resources use their own schemas. The example above shortens nested objects for readability.

List Municipalities in a District

http
GET /v2/districts/{districtId}/municipalities

Returns municipalities whose districtId matches the path parameter.

Path Parameters

ParameterTypeDescription
districtIdintegerDistrict ID

Query Parameters

ParameterTypeDefaultDescription
fieldsstring-Comma-separated municipality fields to include
limitinteger100Number of records to return, from 1 to 1000
offsetinteger0Number of records to skip

Request

bash
curl "https://api.turkiyeapi.dev/v2/districts/1103/municipalities"

List Neighborhoods in a District

http
GET /v2/districts/{districtId}/neighborhoods

Returns neighborhoods whose districtId matches the path parameter.

Path Parameters

ParameterTypeDescription
districtIdintegerDistrict ID

Query Parameters

ParameterTypeDefaultDescription
fieldsstring-Comma-separated neighborhood fields to include
limitinteger100Number of records to return, from 1 to 1000
offsetinteger0Number of records to skip

Request

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

List Villages in a District

http
GET /v2/districts/{districtId}/villages

Returns villages whose districtId matches the path parameter.

Path Parameters

ParameterTypeDescription
districtIdintegerDistrict ID

Query Parameters

ParameterTypeDefaultDescription
fieldsstring-Comma-separated village fields to include
limitinteger100Number of records to return, from 1 to 1000
offsetinteger0Number of records to skip

Request

bash
curl "https://api.turkiyeapi.dev/v2/districts/1103/villages"

Common Errors

StatusCodeWhen it happens
400BAD_REQUESTQuery or path parameter validation fails
400INVALID_FIELDSfields contains an unknown field for the requested resource
400INVALID_INCLUDEinclude contains an unsupported relation
404DISTRICT_NOT_FOUNDThe requested district does not exist
429-Rate limit exceeded
500INTERNAL_SERVER_ERRORUnexpected server error

Error response:

json
{
  "error": {
    "code": "DISTRICT_NOT_FOUND",
    "message": "District not found.",
    "status": 404
  }
}