An Akaloka product

Indonesian documents,
parsed in one call.

Bitaloka decodes NIK (KTP), STNK plates, and NPWP numbers into structured data — gender, birth date, region, and validity checks — deterministically and offline. No government database, no personal data stored.

api.bitaloka.io
$ curl https://api.bitaloka.io/v1/nik/3174022501700001
{
  "valid": true,
  "gender": "L",
  "birthDate": { "day": 25, "month": 1, "yearResolved": 1970 },
  "region": { "province": { "code": "31", "name": "DKI Jakarta" }, … }
}

Three documents, one API

Pure, deterministic parsers — no lookups, no latency, no data retention.

NIK /v1/nik

KTP identity number. Extracts gender, birth date and full region (province/regency/district) from the 16 digits, with consistency checks.

STNK /v1/plate

Vehicle registration plates. Normalizes and validates format, region code and serial number.

NPWP /v1/npwp

Taxpayer identification number. Validates the 15-digit format and its built-in check digit.

Use it however you build

A REST API, an MCP server for your agents, and a no-code playground.

API

REST API

A single Cloudflare Worker with an OpenAPI spec and interactive reference UI at /reference. CORS on by default.

MCP

MCP server

Expose parse_nik, parse_plate and validate_npwp to any MCP-capable agent.

>_

Web playground

Type a value and see the parsed result instantly — no code, no API key required.

FAQ

Does Bitaloka query a government database?
No. Every parse is computed locally from the number itself. No external service is called and no personal data is stored or logged.
Is it free to use?
Yes — the API is open by default. Optionally protect it by setting the API_KEYS environment variable on the worker.
What can I parse?
NIK (KTP identity numbers), STNK vehicle plates, and NPWP taxpayer numbers. A batch endpoint accepts up to 100 mixed items in a single request.
Can I run it on my own infrastructure?
Yes — the parsers are a standalone TypeScript package (@bitaloka/core), and the API is a portable Cloudflare Worker you can deploy under your own account.

Start parsing in under a minute

One endpoint. Structured JSON. Nothing stored.