🏦 API Indicadores Previsionales Chile

API REST para obtener indicadores previsionales de Chile desde Previred.com en tiempo real

✅ REST API 📊 Datos en tiempo real ⚡ Cache inteligente 🔒 CORS habilitado

🚀 Comenzar

Base URL
https://victorcabrera.cl/apis/indicadores-previsionales/v1/
💡
Sin autenticación requerida
Esta API es pública y no requiere API key ni tokens de autenticación.

Características

📡

Datos en Tiempo Real

Scraping automático de datos oficiales desde Previred.com

Cache Inteligente

Cache de 5 minutos para respuestas rápidas y eficientes

🔄

Actualización Manual

Fuerza la actualización con el parámetro ?refresh=true

📋

Formato JSON

Respuestas estructuradas en formato JSON estándar

📊 Indicadores Soportados

UF
Unidad de Fomento actual y anterior
$39,597.67
UTM
Unidad Tributaria Mensual
$69,265
UTA
Unidad Tributaria Anual
$831,180
SIS
Seguro Invalidez y Sobrevivencia
1.49%
AFP
Comisiones de todas las AFP
0.46% - 1.45%
Topes Imponibles
AFP, Seguro Cesantía, IPS
En UF
Renta Mínima
Trabajadores dependientes
$529,000
Impuesto Único
Tramos en UTM (normativa SII)
8 tramos
Asignación Familiar
Valores por tramos A, B, C, D
$22,007 - $0
Seguro Cesantía
Porcentajes AFC por contrato
0% - 3%

🔗 Endpoints

GET /v1/ Obtener todos los indicadores

Retorna todos los indicadores previsionales disponibles en una sola llamada.

Parámetros de Query

Parámetro Tipo Requerido Descripción
refresh boolean Opcional Forzar actualización ignorando cache

Ejemplo de Request

curl
curl -X GET "https://victorcabrera.cl/apis/indicadores-previsionales/v1/" \
  -H "Content-Type: application/json"
GET /v1/uf Obtener solo UF

Retorna el valor actual y anterior de la Unidad de Fomento (UF).

curl
curl "https://victorcabrera.cl/apis/indicadores-previsionales/v1/uf"
GET /v1/utm Obtener solo UTM

Retorna el valor de la Unidad Tributaria Mensual (UTM).

curl
curl "https://victorcabrera.cl/apis/indicadores-previsionales/v1/utm"
GET /v1/sis Obtener tasa SIS

Retorna la tasa del Seguro de Invalidez y Sobrevivencia (SIS).

curl
curl "https://victorcabrera.cl/apis/indicadores-previsionales/v1/sis"
GET /v1/afp Obtener datos de AFP

Retorna los datos de todas las AFP activas incluyendo código, cotización y comisión.

AFP Disponibles

AFP Código Super Cotización Comisión
Capital40110%1.44%
Cuprum40210%1.44%
Habitat40310%1.27%
PlanVital40410%1.16%
ProVida40510%1.45%
Modelo40610%0.58%
Uno40710%0.46%
GET /v1/impuesto-unico Obtener tramos del Impuesto Único

Retorna los tramos del Impuesto Único expresados en UTM según normativa del SII.

📋
Los tramos están expresados en UTM y son estables (cambian raramente).
GET /v1/asignacion-familiar Obtener asignación familiar

Retorna los valores de asignación familiar por tramos de renta (A, B, C, D).

Tramos de Asignación

Tramo Monto Renta
A$22,007Renta ≤ $620,251
B$13,505$620,252 - $905,941
C$4,267$905,942 - $1,412,957
D$0Renta > $1,412,957
GET /v1/seguro-cesantia Obtener seguro de cesantía

Retorna los porcentajes del Seguro de Cesantía (AFC) por tipo de contrato.

Tipos de Contrato

Tipo Empleador Trabajador
Plazo Indefinido2.4%0.6%
Plazo Fijo / Obra3.0%0%
Plazo Indefinido +11 años0.8%0%
Casa Particular3.0%0%
POST /v1/refresh Forzar actualización del cache

Fuerza una actualización de todos los datos ignorando el cache actual.

curl
curl -X POST "https://victorcabrera.cl/apis/indicadores-previsionales/v1/refresh"

💻 Ejemplos de Código

JavaScript (Fetch)
// Obtener todos los indicadores
fetch('https://victorcabrera.cl/apis/indicadores-previsionales/v1/')
  .then(response => response.json())
  .then(data => {
    console.log('UF:', data.data.UF);
    console.log('UTM:', data.data.UTM);
    console.log('AFP:', data.data.AFP);
  });

// Obtener solo UF
const response = await fetch('https://victorcabrera.cl/apis/indicadores-previsionales/v1/uf');
const { data } = await response.json();
console.log(`UF Actual: $${data.UF.toLocaleString('es-CL')}`);
Python (requests)
import requests

# Obtener todos los indicadores
response = requests.get('https://victorcabrera.cl/apis/indicadores-previsionales/v1/')
data = response.json()

print(f"UF: ${data['data']['UF']:,.2f}")
print(f"UTM: ${data['data']['UTM']:,}")
print(f"SIS: {data['data']['SIS']}%")

# Obtener solo AFP
afp_response = requests.get('https://victorcabrera.cl/apis/indicadores-previsionales/v1/afp')
afp_data = afp_response.json()

for nombre, info in afp_data['data']['AFP'].items():
    print(f"{nombre}: Comisión {info['Comision']}%")
PHP
<?php
// Obtener todos los indicadores
$response = file_get_contents('https://victorcabrera.cl/apis/indicadores-previsionales/v1/');
$data = json_decode($response, true);

echo "UF: $" . number_format($data['data']['UF'], 2, ',', '.');
echo "UTM: $" . number_format($data['data']['UTM'], 0, ',', '.');

// Con cURL
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://victorcabrera.cl/apis/indicadores-previsionales/v1/uf');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);

$uf = json_decode($response, true);
echo "UF Actual: $" . $uf['data']['UF'];
?>

📦 Formato de Respuesta

Respuesta Exitosa

JSON
{
  "success": true,
  "data": {
    "periodo": "012026",
    "SIS": 1.49,
    "UF": 39597.67,
    "UFAnterior": 39485.65,
    "UTM": 69265,
    "UTA": 831180,
    "TopeImponibleAFP_UF": 87.8,
    "TopeImponibleSC_UF": 131.9,
    "TopeImponibleIPS_UF": 60,
    "RentaMinima": 529000,
    "ExpectativaVida": 0.9,
    "AFP": { ... },
    "impuestoUnico": { ... },
    "asignacionFamiliar": { ... },
    "seguroCesantia": { ... },
    "timestamp": "2026-01-23T12:00:00.000Z",
    "status": "success"
  },
  "version": "1.0.0",
  "apiVersion": "v1",
  "cache": {
    "lastUpdate": "2026-01-23T12:00:00.000Z",
    "source": "fresh"
  }
}

Estructura de Datos AFP

JSON
{
  "AFP": {
    "Capital": {
      "CodigoSuper": "401",
      "Cotizacion": "10",
      "Comision": "1.44"
    },
    "Cuprum": { ... },
    "Habitat": { ... },
    "PlanVital": { ... },
    "ProVida": { ... },
    "Modelo": { ... },
    "Uno": { ... }
  }
}

⚠️ Códigos de Error

200
OK

Solicitud exitosa. Los datos se retornan en el cuerpo de la respuesta.

404
Not Found

El endpoint solicitado no existe.

500
Internal Server Error

Error interno del servidor. Intenta nuevamente más tarde.

Respuesta de Error

JSON
{
  "success": false,
  "error": "Error interno del servidor",
  "message": "Detalle específico del error",
  "version": "1.0.0",
  "apiVersion": "v1"
}