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

FieldValue
Legacy Portalhttps://lpse.lkpp.go.id/eproc4DNS dead
New Portalhttps://spse.inaproc.idWAF-protected, no public access
Data Dashboardhttps://data.inaproc.idStreamlit app, accessible via proxy
E-Kataloghttps://katalog.inaproc.idCF-protected
OperatorLKPP (Lembaga Kebijakan Pengadaan Barang/Jasa Pemerintah)
Data typeGovernment procurement — vendor registry, active tenders, contract awards
Auth requiredUnknown — all endpoints currently blocked
Last verified2026-03-18

Legacy Portal Status (ALL dead)

PortalStatusSince
lpse.lkpp.go.id❌ DNS dead2026-02
lpse.pu.go.id❌ DNS dead2026-02
lpse.kominfo.go.id❌ DNS dead2026-02
lpse.jakarta.go.id❌ DNS dead2026-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 dead2026-03-18
e-katalog.lkpp.go.id❌ DNS dead2026-03-18

inaproc.id Ecosystem (NEW)

SubdomainWhatAccess
spse.inaproc.idSPSE procurement directory🔒 Custom WAF — blocks all automation
api.inaproc.idAPI gateway⚠️ Returns 404 — routes unknown
data.inaproc.idData dashboard✅ Streamlit app — accessible via Jakarta proxy
sirup.inaproc.idRUP procurement plans⚠️ Login required
katalog.inaproc.idE-Katalog product catalog⚠️ curl 200, Playwright 403 (CF)
ars.inaproc.idAdmin backend🔒 Pomerium SSO
notification.inaproc.idPush 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_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

ToolSignatureDescription
lookup_vendor_lpse(query: str) -> dictLook 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

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.