Skip to content

Getting Started ​

webapi.id is a gateway for multiple independent APIs. One account, one dashboard, one API key per product you subscribe to.

Base URL ​

https://api.webapi.id

Every product is mounted at /v1/{product} — e.g. /v1/geodoc/provinces. Each product has its own OpenAPI reference with the exact paths, parameters, and response shapes.

1. Get an API key ​

Sign in at console.webapi.id with GitHub. A free-tier geodoc key is provisioned automatically on your first login — the plaintext key is shown once, right after sign-in. Copy it immediately; the gateway only ever stores a hash of it after that, so it cannot be shown to you again (see Authentication for why, and how to get a new one if you lose it).

2. Make a request ​

Every request needs the X-API-Key header:

bash
curl https://api.webapi.id/v1/geodoc/provinces \
  -H "X-API-Key: wak_live_your_key_here"
json
{
  "data": [
    { "code": "11", "name": "Aceh" },
    { "code": "12", "name": "Sumatera Utara" }
  ]
}

3. Handle the response ​

  • Success responses are always {"data": [...]} for read APIs, or a product-specific shape documented on its own reference page.
  • Every error response across every product is {"error": "<message>"} — see Errors for the full list of status codes.
  • Each response carries an X-RateLimit-Remaining header — see Rate Limits.

Available products ​

ProductStatusReference
geodoc — Indonesia regional data & postal codesLive/api/geodoc
otpauth — Email OTP send/verifyPrivate testing/api/otpauth

Building an integration with an AI agent ​

If you're wiring this up via an LLM/agent rather than reading this page by hand: start at /llms.txt, and fetch each product's raw OpenAPI file directly (e.g. /openapi/geodoc.yaml) rather than scraping the rendered HTML — it's the same content, machine-readable, and it's the actual source of truth this site is generated from.