API v1

Código postal de Chile, como API.

Pública, gratis, sin API key. Respuestas JSON predecibles y OpenAPI.

Base URL

https://micodigopostal.fun/v1

Endpoints

GET/postal-codes/searchCódigo por comuna (y opcionalmente calle + número).
GET/reverseComuna, calle y número desde lat/lon (vía OpenStreetMap).
GET/regionsRegiones de Chile con sus comunas.
GET/stats/summaryCobertura de datos.
GET/healthEstado del servicio.

Ejemplo

La misma petición, en tres lenguajes.

curl
curl -G "https://micodigopostal.fun/v1/postal-codes/search" \
  --data-urlencode "commune=Ñuñoa" \
  --data-urlencode "street=Irarrázaval" \
  --data-urlencode "number=3400"
JavaScript
const params = new URLSearchParams({
  commune: "Ñuñoa",
  street: "Irarrázaval",
  number: "3400",
});
const res = await fetch(
  "https://micodigopostal.fun/v1/postal-codes/search?" + params
);
const { code, precision, addressStatus } = await res.json();
Python
import requests

r = requests.get(
    "https://micodigopostal.fun/v1/postal-codes/search",
    params={
        "commune": "Ñuñoa",
        "street": "Irarrázaval",
        "number": "3400",
    },
)
print(r.json()["code"])

Respuesta

{
  "code": "7790825",
  "precision": "exacta",
  "addressStatus": "exact",
  "source": "official",
  "commune": "Ñuñoa",
  "province": "Provincia de Santiago",
  "region": "Región Metropolitana",
  "lat": -33.4593,
  "lon": -70.6003
}

addressStatus distingue "not_requested", "exact", "commune_only" y "temporarily_unavailable"; precision vale "comuna" o "exacta"; source vale "base", "osm" u "official". Rate limit: 30 búsquedas/min por IP. CORS abierto para GET.