zapi.
APIsPricingDocsMCP
APIsPricingDocsMCP
Sign in
zapi.
APIsPricingDocsMCP
APIsPricingDocsMCP
Sign in
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.

6 endpoints6 endpoints on this scraper222 calls222 calls so farupdated 23 days agoLast updated 9/2/2026, 7:32:13 AMBusy: 10+ calls so farllms.txt
Endpoints6

6/6 passing
checked 20 hours ago · daily 01:00 WIB

Provinces

All 38 Indonesian provinces with their official BPS codes.

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

Provinces
index.ts
// 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);
Recommended · typed errors, safe retries and bulk jobsSDK reference

Full reference

6 endpoints · plain text
GET
Provinces/v1/indonesia:wilayah/provinces
0 params

All 38 Indonesian provinces with their official BPS codes.

Parameters

This endpoint takes no parameters.

Request

curl -X GET "https://api.zapi.ink/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"
}
GET
Regencies & Cities/v1/indonesia:wilayah/regencies
2 params

Regencies 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.zapi.ink/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"
}
GET
Districts/v1/indonesia:wilayah/districts
2 params

Districts (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.zapi.ink/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"
}
GET
Villages/v1/indonesia:wilayah/villages
2 params

Villages (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.zapi.ink/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"
}
GET
Search/v1/indonesia:wilayah/search
1 param

Search 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.zapi.ink/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
}
GET
Code Bridging/v1/indonesia:wilayah/bridging
2 params

BPS 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.zapi.ink/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

indonesiaquran-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).

242242 calls so far10mResponses cached for 10m
Busy: 10+ calls so far

Jadwal Sholat & Hijriah

indonesiasholat-kemenag

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

188188 calls so far10mResponses cached for 10m
Busy: 10+ calls so far

Perpusnas

indonesiaperpusnas

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

111111 calls so far5mResponses cached for 5m
Busy: 10+ calls so far

Bimas Islam Kemenag

indonesiabimasislam

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

8282 calls so far10mResponses cached for 10m
Busy: 10+ calls so far

Cek BPOM

indonesiacek-bpom

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

3838 calls so far5mResponses cached for 5m
Busy: 10+ calls so far

Cek NIK

indonesiacek-nik

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

4040 calls so far5mResponses cached for 5m
Busy: 10+ calls so far
zapi.

One key, one response shape. We keep the scrapers working.

Get an API key
ProductBrowse APIsPricingDocsMCP server
DevelopersSDK on npmGitHubOpenAPI specllms.txt
SupportReport an issueDiscord
LegalTermsPrivacyCookiesAUPRefunds
© 2026 ZapiPublic web data, one API.
zapi.