Ir al contenido

Comunas y Regiones de Chile

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.


Estos endpoints exigen una credencial válida, sin ningún rol en particular: sirve cualquier API Key de tu empresa, y también la sesión de un usuario en la aplicación web. La respuesta es idéntica para todos.


Retorna las 16 regiones de Chile.

GET /global/regiones
Authorization: Bearer {api_key}
Ventana de terminal
curl -X GET "https://api.redcumbre.cl/global/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 /global/comunas
Authorization: Bearer {api_key}
Ventana de terminal
curl -X GET "https://api.redcumbre.cl/global/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 /global/comunas-regiones
Authorization: Bearer {api_key}
Ventana de terminal
curl -X GET "https://api.redcumbre.cl/global/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 /global/comunas-regiones para cargar ambos catálogos y crear selectores dependientes:

const response = await fetch('https://api.redcumbre.cl/global/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/global/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, expirada, revocada o no proporcionada
403Acceso denegadoEstás llamando a la dirección anterior (/comunas, /regiones, /comunas-regiones) en vez de a /global/…. Tu credencial está bien
404No encontradoLa ruta no existe. Revisá que el prefijo sea /global/

👉 Ver endpoints en Swagger