Editor's Note
querying-indonesian-gov-data
>
Install
npx skills add https://github.com/suryast/indonesia-gov-apis --skill querying-indonesian-gov-dataSKILL.md
Querying Indonesian Government Data
š®š© STARTER_CHARACTER = š®š©
Route the user's intent to the right child reference, then follow its patterns.
Router
| User intent | Load reference | Quick pattern |
|---|---|---|
| Halal certification, halal product check | references/bpjph-halal.md | POST cmsbl.halal.go.id/api/search/data_penyelia JSON, no auth |
| Food/drug/cosmetic registration, BPOM | references/bpom-products.md | Session + CSRF ā POST cekbpom.pom.go.id/produk-dt |
| Is this fintech/investment legal, OJK | references/ojk-legality.md | GET sikapiuangmu.ojk.go.id/FrontEnd/AlertPortal/Search |
| Weather in Indonesia, earthquake, tsunami | references/bmkg-weather.md | GET data.bmkg.go.id/DataMKG/TEWS/autogempa.json |
| GDP, inflation, population, trade stats | references/bps-statistics.md | GET webapi.bps.go.id/v1/api/... (free API key) |
| USD/IDR exchange rate, BI Rate | references/bank-indonesia.md | Scrape bi.go.id/id/statistik/informasi-kurs/ |
| Indonesian law, regulation, specific pasal | references/pasal-id-law.md | MCP (third-party): claude mcp add --transport http pasal-id ... |
| Government datasets on any topic | references/ckan-portals.md | GET {portal}/api/3/action/package_search |
| Disaster risk for a location | references/inarisk-disaster.md | GET inarisk.bnpb.go.id/api/risk/score?lat=&lon= |
| Verify company is registered | references/company-verification.md | OpenCorporates ā OCCRP ā AHU cross-ref |
| Indonesian stock prices, IHSG | references/idx-stocks.md | yfinance with .JK suffix |
Workflow
- Match user intent to a row in the Router table above
- Read the linked reference file for full endpoint docs and code
- Adapt the pattern with user's specific query/parameters
- Execute and handle failures per the section below
Failure Modes
IP Blocked (403 / Timeout): Most .go.id sites block datacenter IPs. Add 2-5s delays or route through Cloudflare Workers proxy.
CSRF Expired: Re-fetch the HTML page, extract fresh csrf-token from <meta> tag. Applies to BPOM.
Rate Limits: BPS ~100/day, OpenCorporates 500/day, OCCRP 60/min, BPOM 2s gap minimum.
Required Headers:
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
"Accept-Language": "id-ID,id;q=0.9,en;q=0.8",
}
Data Formats: Indonesian gov sites use Excel (.xlsx) and PDF heavily. Parse with openpyxl and pdfplumber. JSON APIs are the exception.
Extended Docs
For sources not in the Router (procurement, courts, wealth declarations, geospatial, regional portals, ministry-specific data), see the full docs:
apis/tier1-open-apis/ā 12 sources with REST/JSON APIsapis/tier2-scrapeable/ā 10 sources requiring scrapingapis/tier3-regional/ā 6 regional CKAN portalsapis/tier4-ministry/throughapis/tier7-civil-society/ā 22 more sourcesmcp-servers/ā MCP server setup and opportunities
Installs0
GitHub Stars147
LanguageHTML
AddedMay 25, 2026