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.idEvery 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:
curl https://api.webapi.id/v1/geodoc/provinces \
-H "X-API-Key: wak_live_your_key_here"{
"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-Remainingheader — see Rate Limits.
Available products
| Product | Status | Reference |
|---|---|---|
geodoc — Indonesia regional data & postal codes | Live | /api/geodoc |
otpauth — Email OTP send/verify | Private 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.