Documentação para desenvolvedores
APIs de dados e documentos da Indonésia, prontas em minutos
Analise NIK, KK, placas e NPWP, consulte regiões, processe PDFs e resuma textos, com uma única API REST ou como ferramentas para o seu agente de IA via MCP.
- URL base
- https://api.bitaloka.io
- Formato
- Entrada em JSON · Saída em JSON ou arquivos
- Acesso
- Aberto durante a prévia · Chaves de API em breve
Sua primeira chamada — Sem SDK, sem configuração. Envie uma requisição e receba JSON.
curl -sS "https://api.bitaloka.io/v1/nik/3171014501900001" \
-H "X-API-Key: $BITALOKA_API_KEY" \
--fail-with-body const apiKey = process.env.BITALOKA_API_KEY ?? ''
const res = await fetch("https://api.bitaloka.io/v1/nik/3171014501900001", {
headers: { 'X-API-Key': apiKey },
})
if (!res.ok) throw new Error(`HTTP ${res.status}: ${await res.text()}`)
const data = await res.json()
console.log(data) import os
import requests
API_KEY = os.environ.get("BITALOKA_API_KEY", "")
res = requests.get(
"https://api.bitaloka.io/v1/nik/3171014501900001",
headers={"X-API-Key": API_KEY},
timeout=30,
)
res.raise_for_status()
print(res.json()) <?php
$ch = curl_init('https://api.bitaloka.io/v1/nik/3171014501900001');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['X-API-Key: ' . getenv('BITALOKA_API_KEY')],
]);
$body = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
curl_close($ch);
if ($body === false || $status >= 400) {
throw new RuntimeException("HTTP $status: $body");
}
print_r(json_decode($body, true)); package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://api.bitaloka.io/v1/nik/3171014501900001", nil)
check(err)
req.Header.Set("X-API-Key", os.Getenv("BITALOKA_API_KEY"))
res, err := http.DefaultClient.Do(req)
check(err)
defer res.Body.Close()
body, err := io.ReadAll(res.Body)
check(err)
if res.StatusCode >= 400 {
panic(fmt.Sprintf("HTTP %d: %s", res.StatusCode, body))
}
fmt.Println(string(body))
}
func check(err error) {
if err != nil {
panic(err)
}
} {
"valid": true,
"input": "3171014501900001",
"normalized": "3171014501900001",
"gender": "P",
"birthDate": {
"day": 5,
"month": 1,
"yearTwoDigit": 90,
"yearCandidates": [
1990,
2090
],
"yearResolved": 1990,
"yearIsAmbiguous": false
},
"region": {
"province": {
"code": "31",
"name": "Daerah Khusus Ibukota Jakarta"
},
"regency": {
"code": "3171",
"name": "Kota Administrasi Jakarta Pusat"
},
"district": {
"code": "317101",
"name": "Gambir"
}
},
"serial": "0001",
"genderConsistent": false,
"summary": "Perempuan, lahir 5 Januari 1990, Gambir, Kota Administrasi Jakarta Pusat, Daerah Khusus Ibukota Jakarta",
"errors": [],
"warnings": [
{
"code": "GENDER_MISMATCH",
"message": "Gender from birth-day offset does not match serial parity (last digit). Possible data-entry error."
}
]
} Escolha seu caminho
Início rápido
Faça sua primeira requisição e leia o resultado.
Referência da API
Todos os endpoints com campos, código e respostas reais.
Servidor MCP
Dê ao Claude, ao Cursor ou a qualquer cliente MCP as ferramentas da Bitaloka.
Sandbox
Execute todos os serviços no navegador com arquivos de exemplo.
Todos os serviços
22 serviços sob uma única URL base. Filtre por categoria ou pesquise.
-
Parser de KTP
GET
/v1/nik/{nik}Analisa um NIK indonésio (número de KTP) em local de nascimento, data, sexo e região.
Parsing -
Parser de KK
GET
/v1/kk/{kk}Analisa um número de Kartu Keluarga (cartão familiar) em sua estrutura.
Parsing -
Parser de STNK
GET
/v1/plate/{plate}Analisa uma placa (STNK) em região e dados de registro.
Parsing -
Parser de NPWP
GET
/v1/npwp/{npwp}Valida e analisa um número fiscal NPWP com seu dígito verificador.
Parsing -
Dados regionais
GET
/v1/region/{code}Consulte provinsi, kota/kabupaten, kecamatan e kelurahan.
Consulta -
Batch parse
POST
/v1/batchParse up to 100 NIK, KK, plate, NPWP or region values in one request.
Parsing -
PDF info
POST
/v1/pdf/infoRead page count, size and metadata of a PDF.
Organizar -
Unir PDF
POST
/v1/pdf/mergeCombine vários PDFs em um.
Organizar -
Dividir PDF
POST
/v1/pdf/splitDivida um PDF em um arquivo por página.
Organizar -
Extrair páginas
POST
/v1/pdf/extractExtraia páginas selecionadas como um novo PDF.
Organizar -
Remover páginas
POST
/v1/pdf/removeRemova páginas selecionadas de um PDF.
Organizar -
Organizar PDF
POST
/v1/pdf/organizeReordena, gira ou exclui páginas.
Organizar -
Girar PDF
POST
/v1/pdf/rotateGire todas as páginas 90°.
Organizar -
Marca d'água
POST
/v1/pdf/watermarkCarimbe uma marca d’água de texto em cada página.
Organizar -
Números de página
POST
/v1/pdf/pagenumbersAdicione números de página a um PDF.
Organizar -
Comprimir PDF
POST
/v1/pdf/compressReduza o tamanho (otimize + comprima imagens).
Conversão -
JPG para PDF
POST
/v1/pdf/from-imagesCombina imagens JPG/PNG em um único PDF.
Conversão -
Reparar PDF
POST
/v1/pdf/repairRepara um PDF corrompido.
Conversão -
Proteger PDF
POST
/v1/pdf/protectCriptografe um PDF com senha.
Segurança -
Desbloquear PDF
POST
/v1/pdf/unlockRemova a senha de um PDF.
Segurança -
Resumo IA
POST
/v1/ai/summaryResume textos longos com IA DeepSeek gratuita.
IA -
Tradução IA
POST
/v1/ai/translateTraduz texto para vários idiomas.
IA
Nenhum serviço corresponde à sua pesquisa.