A comprehensive reference for 57 Indonesian government data portals, APIs, and data sources โ with practical Python examples, scraping patterns, and gotchas learned from production use.
๐ status.datarakyat.id โ Live daily status page tracking uptime of all portals from US + Jakarta.
Last checked: 2026-03-29 โ 22 up ยท 6 geo-blocked (ID only) ยท 5 CF challenge ยท 16 DNS dead ยท 3 down ยท Full update โ
Why this exists: Indonesian government APIs are poorly documented, frequently change without notice, and have quirks not covered in official docs. This repo captures real-world knowledge from building production applications against these data sources.
This repo includes a SKILL.md that makes it usable as a Claude/OpenClaw agent skill:
# Clone and use as a local skill reference
git clone https://github.com/suryast/indonesia-gov-apis.gitConnect Indonesian data sources to AI assistants via Model Context Protocol:
# Connect pasal.id (third-party Indonesian law index) to Claude
claude mcp add --transport http pasal-id https://pasal-mcp-server-production.up.railway.app/mcpSee mcp-servers/ for full setup instructions and a list of data sources ready for MCP wrapping.
| # | Source | Agency | Docs | API? |
|---|---|---|---|---|
| 1 | Portal Satu Data (SDI) | Bappenas | CKAN portal, 10K+ datasets | โ CKAN API |
| 2 | BPS Statistics | Badan Pusat Statistik | GDP, CPI, population, trade | โ REST API (was CF-blocked, now working) |
| 3 | BMKG Weather | BMKG | Weather, earthquakes, tsunami | โ JSON feeds |
| 4 | IDX / BEI | Bursa Efek Indonesia | Stock prices, corporate data | |
| 5 | DJPB Treasury | Kemenkeu | Treasury, disbursement data | โ CKAN API |
| 6 | JDIH BPK | BPK / Perpusnas | Legal documentation network | โ Partial API |
| 7 | Putusan MA | Mahkamah Agung | Court decisions (millions) | โ Public search |
| 8 | LPSE / INAPROC | LKPP | Government procurement tenders | |
| 9 | Portal APBN | Kemenkeu | State budget data | โ CSV/XLSX |
| 10 | Bank Indonesia | Bank Indonesia | Exchange rates, BI Rate | โ REST API |
| 11 | BIG Geospatial | BIG | Admin boundaries, zoning | โ WMS/WFS |
| 12 | BNPB Disaster | BNPB | Disaster events, risk data | โ REST + GeoJSON |
| # | Source | Agency | Docs | Format |
|---|---|---|---|---|
| 13 | BPJPH Halal | BPJPH Kemenag | 1.98M halal businesses | JSON POST |
| 14 | BPOM Products | BPOM | 242K food/drug registrations | DataTables+CSRF |
| 15 | AHU Company Registry | Kemenkumham | All registered PT, CV, Firma | HTML+CAPTCHA |
| 16 | OSS / NIB | BKPM | Business ID (NIB) lookup | HTML forms |
| 17 | OJK Registry | OJK | Licensed financial entities | HTML+XLS |
| 18 | KPK e-LHKPN | KPK | Officials' wealth declarations | HTML+PDF |
| 19 | Putusan MK | Mahkamah Konstitusi | Constitutional court decisions | HTML+PDF |
| 20 | KSEI Statistics | KSEI | Securities investor stats | PDF/XLSX |
| 21 | e-PPID | All Ministries | Public information requests | Per ministry |
| 22 | Pajak / DJP | DJP | NPWP verification | Login required |
| # | Source | Region | Docs | Quality |
|---|---|---|---|---|
| 23 | Satu Data Jakarta | DKI Jakarta | Best-in-class regional | โญ CKAN API |
| 24 | Open Data Jabar | Jawa Barat | Good API quality | โญ CKAN API |
| 25 | Open Data Jatim | Jawa Timur | 38 kabupaten/kota | โ CKAN API |
| 26 | Satu Data Surabaya | Surabaya | Complete city-level | โ CKAN API |
| 27 | Open Data Bandung | Bandung | Smart city data | โ CKAN API |
| 28 | Open Data Bali | Bali | Tourism, agriculture |
| # | Source | Ministry | Docs | Key Data |
|---|---|---|---|---|
| 29 | Kemnaker | Ketenagakerjaan | UMR/UMP wages, employment stats | |
| 30 | Komdigi | Komunikasi Digital | Internet penetration, digital literacy | |
| 31 | ESDM Energy | ESDM | Energy production, mining permits | |
| 32 | KKP Fisheries | Kelautan & Perikanan | Fish catch, aquaculture, vessels | |
| 33 | ATR/BPN Land | ATR / BPN | Land certificates, PTSL | โ Login |
| 34 | Kemendikdasmen | Pendidikan | School registry (NPSN), teachers | |
| 35 | Kemenkes Health | Kesehatan | Hospital/clinic registry, SATUSEHAT | |
| 36 | Kemenag | Agama | 300K+ mosques, pesantren registry |
| # | Source | Organization | Docs | Key Data |
|---|---|---|---|---|
| 37 | OCCRP Aleph | OCCRP | Beneficial ownership, leaks data | โ REST API |
| 38 | OpenCorporates | OpenCorporates | Global company registry (ID subset) | โ REST API |
| 39 | EITI Indonesia | EITI / ESDM | Mining & oil/gas revenue transparency | |
| 40 | AHU-BO | Kemenkumham | Beneficial ownership registry | |
| 41 | ICW Corruption Watch | ICW (NGO) | Corruption case tracker |
| # | Source | Agency | Docs | Key Data |
|---|---|---|---|---|
| 42 | OJK SIKEPO | OJK | Fintech/crypto licensed platforms | |
| 43 | Satgas Waspada Investasi | OJK Task Force | Illegal investment alerts | โ Public list |
| 44 | KSEI Investor Stats | KSEI | Monthly investor statistics | |
| 45 | DJPB Budget | DJPB Kemenkeu | APBN spending execution |
| # | Source | Organization | Docs | Key Data |
|---|---|---|---|---|
| 46 | LAPOR! | KemenPANRB | Public complaint system | |
| 47 | IndoLII | USAID | Bilingual legal information | |
| 48 | OGP Indonesia | OGP | Ministry transparency scores | |
| 49 | Geoportal One Map | BIG / KLHK | 85 thematic maps, One Map Policy | โ WMS/WFS |
| 50 | SIGAP / InaRisk | BNPB | Disaster risk scores by location | โ REST API |
| 51 | pasal.id | Community (third-party) | 40K regulations, 937K articles via MCP | ๐ต MCP Ready |
| # | Source | Agency | Docs | Key Data |
|---|---|---|---|---|
| 52 | KPU Elections | KPU | Election results, candidate data | โ Web portal + JSON during elections |
| 53 | SIMBG Building Permits | Kemen PUPR | Building permit (PBG) registry | โ Public search |
| 54 | CoreTax DJP | DJP | New core tax system (replaced e-Filing) | โ Login-gated |
| 55 | SATUSEHAT | Kemenkes | National health platform (FHIR API) | โ API (registration required) |
| 56 | BPJPH Halal API | BPJPH | 1.98M+ halal business records | โ JSON POST (no auth) |
# Search BPJPH halal database
import requests
resp = requests.post(
"https://cmsbl.halal.go.id/api/search/data_penyelia",
json={"length": 20, "start": 0, "nama_penyelia": "A"},
headers={"Content-Type": "application/json"}
)
businesses = resp.json()["data"]
print(f"Found {len(businesses)} businesses")# Get BMKG earthquake data (no auth needed)
resp = requests.get("https://data.bmkg.go.id/DataMKG/TEWS/autogempa.json")
quake = resp.json()["Infogempa"]["gempa"]
print(f"Latest: M{quake['Magnitude']} at {quake['Wilayah']}")Most Indonesian gov sites block datacenter IPs (AWS, GCP, DO). Use Cloudflare Workers proxy or residential proxy.
Government sites love Excel and PDF. Use openpyxl for Excel, pdfplumber for PDF.
BPOM and some OJK pages require session cookies + CSRF tokens. Always use requests.Session().
data.go.id, Jakarta, Jabar, Jatim, Surabaya, Bandung all use CKAN. Same API pattern works everywhere:
requests.get("https://{portal}/api/3/action/package_search", params={"q": "keyword", "rows": 10})โโโ README.md
โโโ SKILL.md # AI agent skill file
โโโ mcp-servers/ # MCP server setup guides
โโโ apis/
โ โโโ tier1-open-apis/ # 12 sources with REST/JSON APIs
โ โโโ tier2-scrapeable/ # 10 sources requiring scraping
โ โโโ tier3-regional/ # 6 regional open data portals
โ โโโ tier4-ministry/ # 8 ministry-specific sources
โ โโโ tier5-transparency/ # 5 anti-corruption sources
โ โโโ tier6-financial/ # 4 financial sector sources
โ โโโ tier7-civil-society/ # 5 civil society & geospatial
โ โโโ tier8-new/ # 5 newly discovered sources
โโโ status/ # Daily status checks + update logs
โโโ examples/ # Working Python examples
Daily log of which Indonesian government portals are accessible, blocked, or down. Monitored from Sydney (AU), Singapore, and Jakarta (ID) via indonesia-civic-signal-monitor.
Why this matters: Indonesian government websites frequently go down, change URLs, add geo-blocks, or break without notice. There's no public status page. This is the closest thing to one.
2026-03-29 (Sunday) โ Full update
22 up ยท 6 geo-blocked ยท 5 CF-blocked ยท 16 DNS dead ยท 3 down. +5 new sources added (KPU, SIMBG, CoreTax, SATUSEHAT, BPJPH Halal API). Changes since Mar 16: LAPOR! now accessible worldwide, BPS unblocked, DJPB Budget now geo-blocked.
Checked from Sydney, Australia (AU) and Jakarta, Indonesia (ID). Status: โ
Working,
| # | Portal | AU | ID | Status | Notes |
|---|---|---|---|---|---|
| 1 | Satu Data (data.go.id) | โ 200 | โ | โ Working | CKAN API stable |
| 2 | BPS (webapi.bps.go.id) | โ 403 | โ 403 | Cloudflare bot protection on both AU and ID. API works with key via requests but not curl |
|
| 3 | BMKG (data.bmkg.go.id) | โ 200 | โ | โ Working | Earthquake + weather JSON feeds stable |
| 4 | IDX (idx.co.id) | โ 403 | โ 403 | Cloudflare bot protection. Web works in browser | |
| 5 | DJPB Treasury (data.treasury.kemenkeu.go.id) | โ DNS | โ DNS | โ DNS Dead | NXDOMAIN from everywhere |
| 6 | JDIH BPK (jdih.bpk.go.id) | โ 403 | โ 200 | Blocked from AU datacenter IPs | |
| 7 | Putusan MA (putusan3.mahkamahagung.go.id) | โ Timeout | โ Timeout | โ Down | DNS resolves (103.16.79.91) but connection times out from both AU and ID |
| 8 | LPSE (spse.inaproc.id) | โ 403 | โ 200 | CF Turnstile challenge. Individual lpse.*.go.id portals all broken โ LKPP CNAME migration to ars.inaproc.id caused "CNAME Cross-User Banned" on CF. 589 portals affected |
|
| 9 | Portal APBN (data.anggaran.kemenkeu.go.id) | โ DNS | โ DNS | โ DNS Dead | NXDOMAIN from everywhere |
| 10 | Bank Indonesia (www.bi.go.id) | โ | โ Working | Redirects to /id/ โ normal behavior |
|
| 11 | BIG Geospatial (tanahair.indonesia.go.id) | โ Timeout | โ Timeout | โ Down | DNS resolves (202.4.179.23) but server unresponsive |
| 12 | BNPB Disaster (dibi.bnpb.go.id) | โ 200 | โ | โ Working | REST + GeoJSON API stable |
| # | Portal | AU | ID | Status | Notes |
|---|---|---|---|---|---|
| 13 | BPJPH (sertifikasi.halal.go.id) | โ DNS | โ DNS | โ DNS Dead | Old cert search portal gone. bpjph.halal.go.id is alive but it's a Gatsby news site โ no public cert search API |
| 14 | BPOM (cekbpom.pom.go.id) | โ 200 | โ | โ Working | Redesigned โ old /produk/0/{id} URLs all 404. New endpoint: POST /produk-dt/all (DataTables + CSRF). 639K+ products |
| 15 | AHU (ahu.go.id) | โ Timeout | โ 200 | Company registry in extended maintenance. Accessible from ID but returns 0 records | |
| 16 | OSS (oss.go.id) | โ 200 | โ 200 | Site loads but /informasi/pencarian-nib returns 404 from everywhere โ public NIB search page removed |
|
| 17 | OJK Registry (sikapiuangmu.ojk.go.id) | โ 403 | โ 200 | Blacklist data accessible only via Indonesian IP | |
| 18 | OJK API (api.ojk.go.id) | โ DNS | โ DNS | โ DNS Dead | NXDOMAIN from everywhere since at least Mar 10 |
| 19 | LHKPN (elhkpn.kpk.go.id) | โ 200 | โ 200 | Page loads but redirects to reCAPTCHA + login. Wealth declaration search was previously public | |
| 20 | Putusan MK (putusan.mahkamahkonstitusi.go.id) | โ DNS | โ DNS | โ DNS Dead | NXDOMAIN from everywhere |
| 21 | KSEI (www.ksei.co.id) | โ Timeout | โ 200 | Blocks datacenter IPs | |
| 22 | e-PPID (ppid.kemenkeu.go.id) | โ DNS | โ DNS | โ DNS Dead | NXDOMAIN from everywhere |
| 23 | Pajak / DJP (ereg.pajak.go.id) | โ Timeout | โ Timeout | โ Down | DNS resolves (103.28.106.134) but connection times out from both |
| # | Portal | AU | ID | Status | Notes |
|---|---|---|---|---|---|
| 24 | Satu Data Jakarta (data.jakarta.go.id) | โ 200 | โ | โ Working | Best regional portal, CKAN API |
| 25 | Open Data Jabar (opendata.jabarprov.go.id) | โ 403 | โ 403 | โ CF Challenge | Cloudflare blocking from both AU and ID |
| 26 | Open Data Jatim (data.jatimprov.go.id) | โ DNS | โ DNS | โ DNS Dead | NXDOMAIN |
| 27 | Satu Data Surabaya (data.surabaya.go.id) | โ DNS | โ DNS | โ DNS Dead | NXDOMAIN |
| 28 | Open Data Bandung (data.bandung.go.id) | โ Timeout | โ Timeout | โ Down | DNS resolves (202.58.242.113) but unresponsive |
| 29 | Open Data Bali (data.baliprov.go.id) | โ DNS | โ DNS | โ DNS Dead | NXDOMAIN |
| # | Portal | AU | ID | Status | Notes |
|---|---|---|---|---|---|
| 30 | Kemnaker (kemnaker.go.id) | โ 200 | โ | โ Working | |
| 31 | Komdigi (komdigi.go.id) | โ 403 | โ 403 | โ CF Challenge | Cloudflare blocking from both |
| 32 | ESDM (www.esdm.go.id) | โ 200 | โ | โ Working | |
| 33 | KKP (kkp.go.id) | โ 200 | โ | โ Working | |
| 34 | ATR/BPN (www.atrbpn.go.id) | โ 200 | โ | โ Working | |
| 35 | Kemendikdasmen (dapo.kemdikbud.go.id) | โ DNS | โ DNS | โ DNS Dead | NXDOMAIN โ ministry restructured from Kemdikbud |
| 36 | Kemenkes (sirs.kemkes.go.id) | โ 200 | โ | โ Working | Hospital/clinic registry |
| 37 | Kemenag (simas.kemenag.go.id) | โ 200 | โ | โ Working | Mosque registry |
| # | Portal | AU | ID | Status | Notes |
|---|---|---|---|---|---|
| 38 | OCCRP Aleph (aleph.occrp.org) | โ 200 | โ | โ Working | International โ no geo-blocking |
| 39 | OpenCorporates (opencorporates.com) | โ 403 | โ 403 | Rate-limited, needs API key | |
| 40 | EITI Indonesia (eiti.esdm.go.id) | โ DNS | โ DNS | โ DNS Dead | NXDOMAIN |
| 41 | AHU-BO (ahu.go.id) | โ Timeout | โ 200 | Same as AHU (#15) โ accessible from ID only | |
| 42 | ICW (antikorupsi.org) | โ 200 | โ | โ Working |
| # | Portal | AU | ID | Status | Notes |
|---|---|---|---|---|---|
| 43 | OJK SIKEPO (ojk.go.id) | โ Timeout | โ 200 | Main OJK site blocked from AU | |
| 44 | Satgas Waspada (sikapiuangmu.ojk.go.id) | โ 403 | โ 200 | Same as OJK Registry (#17) | |
| 45 | KSEI Stats (www.ksei.co.id) | โ Timeout | โ 200 | Same as KSEI (#21) | |
| 46 | DJPB Budget (djpb.kemenkeu.go.id) | โ 200 | โ | โ Working |
| # | Portal | AU | ID | Status | Notes |
|---|---|---|---|---|---|
| 47 | LAPOR! (www.lapor.go.id) | โ 200 | โ | โ Working | |
| 48 | IndoLII (www.indolii.org) | โ DNS | โ DNS | โ DNS Dead | NXDOMAIN โ project may have shut down |
| 49 | Geoportal (tanahair.indonesia.go.id) | โ Timeout | โ Timeout | โ Down | Same as BIG (#11) |
| 50 | InaRisk (inarisk.bnpb.go.id) | โ 200 | โ | โ Working | |
| 51 | pasal.id (pasal.id) | โ 200 | โ | โ Working | Community-run, MCP-ready |
| Category | Count | Portals |
|---|---|---|
| โ Working (from everywhere) | 22 | Satu Data, BPS, BMKG, BI, BNPB, BPJPH (new), BPOM, AHU, OSS, LHKPN, Jakarta, Kemnaker, ESDM, KKP, ATR/BPN, Kemenkes, Kemenag, OCCRP, ICW, LAPOR!, InaRisk, pasal.id |
| 6 | JDIH BPK, LPSE, OJK Registry, KSEI, Satgas Waspada, DJPB Budget | |
| 5 | IDX, Jabar, Komdigi, OpenCorporates, (BPS now working โ ) | |
| โ Down (DNS ok, server dead) | 3 | Bandung (400/500), AHU-BO (404), KSEI Stats (404) |
| โ DNS Dead | 16 | DJPB Treasury, APBN, BPJPH (old), OJK API, Putusan MA, Putusan MK, e-PPID, Pajak/DJP, Jatim, Surabaya, Bali, Kemendikdasmen, EITI, IndoLII, BIG/Geoportal, CoreTax |
16 out of 57 portals have dead DNS. That's 28% of Indonesian government data infrastructure with completely broken domain records.
Last updated: 2026-03-29 โ Full status update โ
| Project | Description |
|---|---|
| indonesia-civic-stack | Production-ready Python SDK + MCP server wrapping 11 government portals |
| indonesia-civic-signal-monitor | Anomaly detection engine โ monitors civic data for newsworthy changes |
| cek-investasi / legalkah.id | Investment legality checker using OJK + BPJPH data |
| cerita.datarakyat.id | Civic correlation engine โ cross-references government datasets for stories |
This repo is the reference documentation layer. The civic-stack SDK is the code layer. The signal monitor is the intelligence layer.
Know an Indonesian government API not listed here? Found a gotcha? PRs welcome!
This project documents publicly available government data sources for educational and research purposes. It is not affiliated with any Indonesian government agency. Always respect rate limits and terms of service.
MIT
