Ir al contenido

Comunas y Regiones

Estos endpoints permiten obtener el catálogo completo de división político-administrativa de Chile. Los datos incluyen códigos SII, códigos BHE y relaciones entre comunas y regiones.

Son útiles para poblar selectores en formularios, validar datos de entrada, o sincronizar catálogos con tu sistema.


Antes de usar estos endpoints necesitas:

  1. Una API Key con rol FULL-API

Retorna las 16 regiones de Chile.

GET /regiones
Authorization: Bearer {api_key}
Ventana de terminal
curl -X GET "https://api.redcumbre.cl/regiones" \
-H "Authorization: Bearer {api_key}"
{
"success": true,
"data": [
{ "id": 1, "nombre": "Tarapacá" },
{ "id": 2, "nombre": "Antofagasta" },
{ "id": 3, "nombre": "Atacama" },
{ "id": 4, "nombre": "Coquimbo" },
{ "id": 5, "nombre": "Valparaíso" },
{ "id": 6, "nombre": "O'Higgins" },
{ "id": 7, "nombre": "Maule" },
{ "id": 8, "nombre": "Biobío" },
{ "id": 9, "nombre": "La Araucanía" },
{ "id": 10, "nombre": "Los Lagos" },
{ "id": 11, "nombre": "Aysén" },
{ "id": 12, "nombre": "Magallanes" },
{ "id": 13, "nombre": "Metropolitana" },
{ "id": 14, "nombre": "Los Ríos" },
{ "id": 15, "nombre": "Arica y Parinacota" },
{ "id": 16, "nombre": "Ñuble" }
]
}
CampoTipoDescripción
idnumberID de la región (1-16)
nombrestringNombre oficial de la región

Retorna las 346 comunas de Chile con información detallada.

GET /comunas
Authorization: Bearer {api_key}
Ventana de terminal
curl -X GET "https://api.redcumbre.cl/comunas" \
-H "Authorization: Bearer {api_key}"
{
"success": true,
"data": [
{
"id": 1,
"nombre": "Arica",
"numero": 1101,
"codigoSii": "15101",
"regionId": 15,
"regionNombre": "Arica y Parinacota",
"bheCodigo": 15101,
"bheNombre": "ARICA",
"bheRegionCodigo": 15,
"bheRegionNombre": "ARICA Y PARINACOTA",
"unidadSii": {
"direccionRegional": "Dirección Regional de Arica y Parinacota",
"nombreCorto": "DR Arica y Parinacota",
"codigoRegion": "15",
"unidad": "Unidad de Arica"
}
}
]
}
CampoTipoDescripción
idnumberID secuencial de la comuna
nombrestringNombre oficial de la comuna
numeronumberCódigo numérico de la comuna
codigoSiistringCódigo SII de la comuna (5 dígitos)
regionIdnumberID de la región a la que pertenece
regionNombrestringNombre de la región
bheCodigonumberCódigo BHE de la comuna
bheNombrestringNombre de la comuna según BHE
bheRegionCodigonumberCódigo de región según BHE
bheRegionNombrestringNombre de región según BHE
unidadSiiobject | nullInformación de la unidad SII correspondiente
CampoTipoDescripción
direccionRegionalstringNombre de la Dirección Regional
nombreCortostringNombre corto de la DR
codigoRegionstringCódigo de la región
unidadstringNombre de la unidad SII

Retorna ambos listados en una sola llamada. Útil para cargar todos los datos de una vez.

GET /comunas-regiones
Authorization: Bearer {api_key}
Ventana de terminal
curl -X GET "https://api.redcumbre.cl/comunas-regiones" \
-H "Authorization: Bearer {api_key}"
{
"success": true,
"data": {
"regiones": [
{ "id": 1, "nombre": "Tarapacá" },
{ "id": 2, "nombre": "Antofagasta" }
],
"comunas": [
{
"id": 1,
"nombre": "Arica",
"regionId": 15,
"codigoSii": "15101"
}
]
}
}

Usa /comunas-regiones para cargar ambos catálogos y crear selectores dependientes:

const response = await fetch('https://api.redcumbre.cl/comunas-regiones', {
headers: { 'Authorization': `Bearer ${apiKey}` }
});
const { data } = await response.json();
// Poblar selector de regiones
const regionSelect = document.getElementById('region');
data.regiones.forEach(region => {
const option = new Option(region.nombre, region.id);
regionSelect.add(option);
});
// Filtrar comunas por región seleccionada
regionSelect.addEventListener('change', (e) => {
const comunaSelect = document.getElementById('comuna');
comunaSelect.innerHTML = '';
const comunasFiltradas = data.comunas.filter(c => c.regionId === parseInt(e.target.value));
comunasFiltradas.forEach(comuna => {
const option = new Option(comuna.nombre, comuna.codigoSii);
comunaSelect.add(option);
});
});

Para enviar datos al SII necesitas el codigoSii de la comuna:

const comunas = await fetch('https://api.redcumbre.cl/comunas', {
headers: { 'Authorization': `Bearer ${apiKey}` }
}).then(r => r.json());
const santiago = comunas.data.find(c => c.nombre === 'Santiago');
console.log(santiago.codigoSii); // "13101"

Verifica que un código de comuna sea válido antes de enviar datos:

function validarCodigoComuna(codigo, comunas) {
return comunas.some(c => c.codigoSii === codigo);
}

CódigoDescripciónCausa
401No autorizadoAPI Key inválida o no proporcionada
403Acceso denegadoAPI Key no tiene rol FULL-API

👉 Ver endpoints en Swagger