Module: lpse
Source portal: inaproc.id (migrated from lpse.*.go.id) Scrape method: ⚠️ MODULE DEGRADED — all legacy portals dead, inaproc.id WAF-protected Phase: 3 License: MIT Status: DEGRADED
⚠️ Migration Notice (March 2026)
LKPP completed migration from individual lpse.*.go.id portals to inaproc.id in March 2026. All legacy portals are now dead or inaccessible. The new inaproc.id ecosystem does not provide a public API.
This module currently returns empty results. We are monitoring data.inaproc.id (a Streamlit dashboard) as a potential replacement data source.
Source
| Field | Value |
|---|---|
| Legacy Portal | https://lpse.lkpp.go.id/eproc4 — DNS dead |
| New Portal | https://spse.inaproc.id — WAF-protected, no public access |
| Data Dashboard | https://data.inaproc.id — Streamlit app, accessible via proxy |
| E-Katalog | https://katalog.inaproc.id — CF-protected |
| Operator | LKPP (Lembaga Kebijakan Pengadaan Barang/Jasa Pemerintah) |
| Data type | Government procurement — vendor registry, active tenders, contract awards |
| Auth required | Unknown — all endpoints currently blocked |
| Last verified | 2026-03-18 |
Legacy Portal Status (ALL dead)
| Portal | Status | Since |
|---|---|---|
| lpse.lkpp.go.id | ❌ DNS dead | 2026-02 |
| lpse.pu.go.id | ❌ DNS dead | 2026-02 |
| lpse.kominfo.go.id | ❌ DNS dead | 2026-02 |
| lpse.jakarta.go.id | ❌ DNS dead | 2026-03-18 |
| lpse.kemenkeu.go.id | ❌ CNAME → ars.inaproc.id (CF 403) | 2026-03-16 |
| lpse.kemkes.go.id | ❌ CNAME → ars.inaproc.id (CF 403) | 2026-03-16 |
| lpse.kemenag.go.id | ❌ CNAME → ars.inaproc.id (no response) | 2026-03-18 |
| sirup.lkpp.go.id | ❌ DNS dead | 2026-03-18 |
| e-katalog.lkpp.go.id | ❌ DNS dead | 2026-03-18 |
inaproc.id Ecosystem (NEW)
| Subdomain | What | Access |
|---|---|---|
spse.inaproc.id | SPSE procurement directory | 🔒 Custom WAF — blocks all automation |
api.inaproc.id | API gateway | ⚠️ Returns 404 — routes unknown |
data.inaproc.id | Data dashboard | ✅ Streamlit app — accessible via Jakarta proxy |
sirup.inaproc.id | RUP procurement plans | ⚠️ Login required |
katalog.inaproc.id | E-Katalog product catalog | ⚠️ curl 200, Playwright 403 (CF) |
ars.inaproc.id | Admin backend | 🔒 Pomerium SSO |
notification.inaproc.id | Push notifications | ✅ NestJS API |
Normalized Schema (result object)
Note: Schema unchanged from legacy implementation. Module returns empty results until a new data source is integrated.
Vendor lookup
{
"vendor_id": str,
"vendor_name": str,
"npwp": str | None,
"address": str | None,
"city": str | None,
"province": str | None,
"is_active": bool,
"business_type": str | None,
"qualification": str | None,
"portal_errors": list[str],
"total_results": int,
}
Tender search
{
"tender_id": str,
"tender_name": str,
"procuring_entity": str,
"tender_stage": str | None,
"procurement_method": str | None,
"ceiling_value": float | None,
"tender_status": str | None,
"funding_source": str | None,
"portal_errors": list[str],
}
MCP Tools
| Tool | Signature | Description |
|---|---|---|
lookup_vendor_lpse | (query: str) -> dict | Look up vendor by name or NPWP |
search_lpse_vendors | (keyword: str) -> list[dict] | Search vendors across all portals |
search_lpse_tenders | (keyword: str) -> list[dict] | Search active tenders by keyword |
get_lpse_portals | () -> list[dict] | List all monitored LPSE portals |
⚠️ All tools currently return empty results due to portal migration.
Historical: SPSE API (DEAD)
The legacy SPSE API used standard endpoints across all portals:
GET /eproc4/dt/rekanan?term=...&draw=1&start=0&length=10 # Vendor search
GET /eproc4/dt/tender?term=...&draw=1&start=0&length=10 # Tender search
This API format is preserved in the module for when/if inaproc.id exposes public endpoints.
Known Issues & Quirks
- All legacy portals are dead — do not attempt to scrape
lpse.*.go.id - inaproc.id has custom WAF — blocks even headless browsers from Jakarta IP
- data.inaproc.id is Streamlit — potential replacement, needs browser rendering
- Migration happened rapidly — portals active on March 16 were dead by March 18
Legal Basis
This module historically queried public LPSE portals that published government procurement
data for transparency. LKPP has since migrated to inaproc.id which restricts automated
access. We continue monitoring for any public API or open data initiative from LKPP.