zapi.
APIsPricingDocsMCP
APIsPricingDocsMCPSign in
zapi.
APIsPricingDocsMCP
APIsPricingDocsMCPSign in
On this page
  • Playground
  • Code examples
  • Full reference
  • Related APIs
Indonesia/Wilayah Indonesia
Logo Wilayah Indonesia

Wilayah Indonesia

Indonesian administrative regions — province, regency, district and village — from official government registries, with BPS and Kemendagri codes.

Endpoints
6
Requests
222
Updated
3 hours ago
For LLMs
llms.txt
Endpoint healthnot yet measured
  • provincesnot measured
  • regenciesnot measured
  • districtsnot measured
  • villagesnot measured
  • searchnot measured
+ 1 more endpointShow less
  • bridgingnot measured
no measurements yetdaily 01:00 WIB

Playground

6 endpoints
GET/v1/indonesia:wilayah/provinces1d cache0 paramschecking key…
Parameters

No parameters — just send it.

·
Response
EXAMPLE
{
  "count": 38,
  "items": [
    {
      "code": "11",
      "name": "ACEH"
    },
    {
      "code": "12",
      "name": "SUMATERA UTARA"
    },
    {
      "code": "13",
      "name": "SUMATERA BARAT"
    },
    {
      "code": "14",
      "name": "RIAU"
    },
    {
      "code": "15",
      "name": "JAMBI"
    },
    {
      "code": "16",
      "name": "SUMATERA SELATAN"
    },
    {
      "code": "17",
      "name": "BENGKULU"
    },
    {
      "code": "18",
      "name": "LAMPUNG"
    }
  ],
  "provider": "sipedas"
}

Code examples

Provinces
zpi-sdkrecommended
// npm i zpi-sdk
import { ZpiClient } from "zpi-sdk";

const client = new ZpiClient({ apiKey: "zpi_xxxxxxxxxxxxxxxxxxxxxxxx" });

const data = await client.run("indonesia:wilayah", "provinces", {});
console.log(data);
Full SDK reference →
request.sh
curl -X GET "https://api.zpi.web.id/v1/indonesia:wilayah/provinces" \
  -H "x-api-key: zpi_xxxxxxxxxxxxxxxxxxxxxxxx"

Full reference

6 endpoints · plain text
GETProvinces/v1/indonesia:wilayah/provincesAll 38 Indonesian provinces with their official BPS codes.

Parameters

This endpoint takes no parameters.

Request

curl -X GET "https://api.zpi.web.id/v1/indonesia:wilayah/provinces" \
  -H "x-api-key: zpi_xxxxxxxxxxxxxxxxxxxxxxxx"

Example response

{
  "count": 38,
  "items": [
    {
      "code": "11",
      "name": "ACEH"
    },
    {
      "code": "12",
      "name": "SUMATERA UTARA"
    },
    {
      "code": "13",
      "name": "SUMATERA BARAT"
    },
    {
      "code": "14",
      "name": "RIAU"
    },
    {
      "code": "15",
      "name": "JAMBI"
    },
    {
      "code": "16",
      "name": "SUMATERA SELATAN"
    },
    {
      "code": "17",
      "name": "BENGKULU"
    },
    {
      "code": "18",
      "name": "LAMPUNG"
    }
  ],
  "provider": "sipedas"
}
GETRegencies & Cities/v1/indonesia:wilayah/regenciesRegencies and cities of one province, typed KABUPATEN or KOTA.

Parameters

provinceCodestringrequired
BPS province code, 2 digits, from the provinces endpoint. BPS and Kemendagri codes differ for the six Papua provinces.
yearnumberoptional
Registry year. Data exists for 2014-2026; a region is absent from years before it was formed.

Request

curl -X GET "https://api.zpi.web.id/v1/indonesia:wilayah/regencies?provinceCode=32&year=2026" \
  -H "x-api-key: zpi_xxxxxxxxxxxxxxxxxxxxxxxx"

Example response

{
  "year": 2026,
  "count": 27,
  "items": [
    {
      "code": "3201",
      "name": "BOGOR",
      "type": "KABUPATEN"
    },
    {
      "code": "3202",
      "name": "SUKABUMI",
      "type": "KABUPATEN"
    },
    {
      "code": "3203",
      "name": "CIANJUR",
      "type": "KABUPATEN"
    },
    {
      "code": "3204",
      "name": "BANDUNG",
      "type": "KABUPATEN"
    },
    {
      "code": "3205",
      "name": "GARUT",
      "type": "KABUPATEN"
    },
    {
      "code": "3206",
      "name": "TASIKMALAYA",
      "type": "KABUPATEN"
    },
    {
      "code": "3207",
      "name": "CIAMIS",
      "type": "KABUPATEN"
    },
    {
      "code": "3208",
      "name": "KUNINGAN",
      "type": "KABUPATEN"
    }
  ],
  "provider": "sipedas",
  "provinceCode": "32"
}
GETDistricts/v1/indonesia:wilayah/districtsDistricts (kecamatan) of one regency or city.

Parameters

regencyCodestringrequired
BPS regency/city code, 4 digits, from the regencies endpoint
yearnumberoptional
Registry year. Data exists for 2014-2026; a region is absent from years before it was formed.

Request

curl -X GET "https://api.zpi.web.id/v1/indonesia:wilayah/districts?regencyCode=3204&year=2026" \
  -H "x-api-key: zpi_xxxxxxxxxxxxxxxxxxxxxxxx"

Example response

{
  "year": 2026,
  "count": 31,
  "items": [
    {
      "code": "3204010",
      "name": "CIWIDEY"
    },
    {
      "code": "3204011",
      "name": "RANCABALI"
    },
    {
      "code": "3204020",
      "name": "PASIRJAMBU"
    },
    {
      "code": "3204030",
      "name": "CIMAUNG"
    },
    {
      "code": "3204040",
      "name": "PANGALENGAN"
    },
    {
      "code": "3204050",
      "name": "KERTASARI"
    },
    {
      "code": "3204060",
      "name": "PACET"
    },
    {
      "code": "3204070",
      "name": "IBUN"
    }
  ],
  "provider": "sipedas",
  "regencyCode": "3204"
}
GETVillages/v1/indonesia:wilayah/villagesVillages (desa/kelurahan) of one district.

Parameters

districtCodestringrequired
BPS district code, 7 digits, from the districts endpoint
yearnumberoptional
Registry year. Data exists for 2014-2026; a region is absent from years before it was formed.

Request

curl -X GET "https://api.zpi.web.id/v1/indonesia:wilayah/villages?districtCode=3204280&year=2026" \
  -H "x-api-key: zpi_xxxxxxxxxxxxxxxxxxxxxxxx"

Example response

{
  "year": 2026,
  "count": 6,
  "items": [
    {
      "code": "3204280001",
      "name": "BOJONGSARI"
    },
    {
      "code": "3204280002",
      "name": "BOJONGSOANG"
    },
    {
      "code": "3204280003",
      "name": "LENGKONG"
    },
    {
      "code": "3204280004",
      "name": "CIPAGALO"
    },
    {
      "code": "3204280005",
      "name": "BUAHBATU"
    },
    {
      "code": "3204280006",
      "name": "TEGALLUAR"
    }
  ],
  "provider": "sipedas",
  "districtCode": "3204280"
}
GETSearch/v1/indonesia:wilayah/searchSearch regions by name across all four levels; returns BPS and Kemendagri codes.

Parameters

qstringrequired
Region name, at least 2 characters. Matches names only, never codes. SQL wildcards work: % for any run of characters, _ for exactly one.

Request

curl -X GET "https://api.zpi.web.id/v1/indonesia:wilayah/search?q=bojong%25soang" \
  -H "x-api-key: zpi_xxxxxxxxxxxxxxxxxxxxxxxx"

Example response

{
  "count": 2,
  "items": [
    {
      "code": "3204280",
      "name": "BOJONGSOANG",
      "level": "district",
      "kodeDagri": "32.04.08",
      "namaDagri": "BOJONGSOANG"
    },
    {
      "code": "3204280002",
      "name": "BOJONGSOANG",
      "level": "village",
      "kodeDagri": "32.04.08.2002",
      "namaDagri": "BOJONGSOANG"
    }
  ],
  "query": "bojong%soang",
  "provider": "sig-bps",
  "truncated": false
}
GETCode Bridging/v1/indonesia:wilayah/bridgingBPS code, Kemendagri code and postal code for every region under one parent.

Parameters

levelenumrequired
Level to list. Items carry both the BPS code and the Kemendagri code, which differ for the six Papua provinces. Values: province, regency, district, village.
parentCodestringoptional
BPS code of the parent — 2 digits for regencies, 4 for districts, 7 for villages. Omit for level=province.

Request

curl -X GET "https://api.zpi.web.id/v1/indonesia:wilayah/bridging?level=village&parentCode=3204280" \
  -H "x-api-key: zpi_xxxxxxxxxxxxxxxxxxxxxxxx"

Example response

{
  "count": 6,
  "items": [
    {
      "code": "3204280001",
      "name": "BOJONGSARI",
      "type": "DESA",
      "kodePos": "40354",
      "kodeDagri": "32.04.08.2005",
      "namaDagri": "BOJONGSARI"
    },
    {
      "code": "3204280002",
      "name": "BOJONGSOANG",
      "type": "DESA",
      "kodePos": "40354",
      "kodeDagri": "32.04.08.2002",
      "namaDagri": "BOJONGSOANG"
    },
    {
      "code": "3204280003",
      "name": "LENGKONG",
      "type": "DESA",
      "kodePos": "40354",
      "kodeDagri": "32.04.08.2001",
      "namaDagri": "LENGKONG"
    },
    {
      "code": "3204280004",
      "name": "CIPAGALO",
      "type": "DESA",
      "kodePos": "40354",
      "kodeDagri": "32.04.08.2004",
      "namaDagri": "CIPAGALO"
    },
    {
      "code": "3204280005",
      "name": "BUAHBATU",
      "type": "DESA",
      "kodePos": "40354",
      "kodeDagri": "32.04.08.2003",
      "namaDagri": "BUAHBATU"
    },
    {
      "code": "3204280006",
      "name": "TEGALLUAR",
      "type": "DESA",
      "kodePos": "40354",
      "kodeDagri": "32.04.08.2006",
      "namaDagri": "TEGALLUAR"
    }
  ],
  "level": "village",
  "provider": "sig-bps",
  "parentCode": "3204280"
}

Related APIs

More in indonesia

Al-Qur'an Kemenag

indonesia/quran-kemenag

Official Indonesian Ministry of Religious Affairs Qur'an: 114 surah, 6,236 ayah with Arabic, kitabah, transliteration, Indonesian translation and footnotes, plus the full Kemenag tafsir (wajiz, tahlili, kosakata, munasabah, sabab nuzul).

242 calls·10m cache

Jadwal Sholat & Hijriah

indonesia/sholat-kemenag

Indonesian prayer schedules for 517 cities sourced from the Ministry of Religious Affairs dataset, plus Hijri/Gregorian conversion and qibla direction.

188 calls·10m cache

Perpusnas

indonesia/perpusnas

Perpustakaan Nasional RI — Khastara digitised manuscripts and the OPAC national catalogue with full MARC records and digital content listings.

111 calls·5m cache

Bimas Islam Kemenag

indonesia/bimasislam

Directorate General of Islamic Community Guidance: sharia consultation Q&A answered by the Kemenag team, official news, and directorate profile pages.

82 calls·10m cache

Cek BPOM

indonesia/cek-bpom

Pencarian registrasi produk obat, kosmetik, suplemen, dan pangan pada database resmi BPOM RI.

38 calls·5m cache

Cek NIK

indonesia/cek-nik

Decode structural information from a 16-digit Indonesian NIK identifier.

28 calls·5m cache
Browse APIsPricingDocsMCP serverGet an API key
zapi.One key, one response shape.
TermsPrivacyCookiesAUPRefunds© 2026