Para enterarte de las ultimas noticias y también comentar sobre el API, utiliza el hashtag #MindicadorChile

Este es un servicio open source (web service) que entrega los principales indicadores económicos para Chile en formato JSON. Tanto los indicadores diarios como históricos para que desarrolladores puedan utilizarlos en sus aplicaciones o sitios web.

La aplicación mapea constantemente el sitio del Banco Central de Chile manteniendo así nuestra base de datos actualizada con los últimos valores del día.

Unidad de fomento (UF): Valores desde 1977 hasta hoy.
Libra de Cobre: Valores desde 2012 hasta hoy.
Tasa de desempleo: Valores desde 2009 hasta hoy.
Euro: Valores desde 1999 hasta hoy.
Imacec: Valores desde 1997 hasta hoy.
Dólar observado: Valores desde 1984 hasta hoy.
Tasa Política Monetaria (TPM): Valores desde 2001 hasta hoy.
Indice de valor promedio (IVP): Valores desde 1990 hasta hoy.
Indice de Precios al Consumidor (IPC): Valores desde 1928 hasta hoy.
Dólar acuerdo: Valores desde 1988 hasta hoy.
Unidad Tributaria Mensual (UTM): Valores desde 1990 hasta hoy.
Bitcoin: Valores desde 2009 hasta hoy.

La API proporciona los datos de los siguientes indicadores económicos [uf, ivp, dolar, dolar_intercambio, euro, ipc, utm, imacec, tpm, libra_cobre, tasa_desempleo, bitcoin], y los puedes consultar de 4 formas distintas.

1. Consultar todos los indicadores económicos

Entrega los últimos valores registrados de los principales indicadores https://mindicador.cl/api

{{ apiJSON.apiQueryOne }}

2. Consultar por tipo de indicador económico

Entrega los valores del último mes del indicador consultado https://mindicador.cl/api/{tipo_indicador}

{{ apiJSON.apiQueryTwo }}

3. Consultar por tipo de indicador económico dada una fecha determinada

Entrega el valor del indicador consultado según la fecha especificada https://mindicador.cl/api/{tipo_indicador}/{dd-mm-yyyy}

{{ apiJSON.apiQueryThree }}

4. Consultar por tipo de indicador económico dado un año determinado

Entrega los valores del indicador consultado según el año especificado https://mindicador.cl/api/{tipo_indicador}/{yyyy}

{{ apiJSON.apiQueryFour }}

JSON es un formato para el intercambio de datos que nació como una alternativa a XML. Es ligero (al estar basado en texto plano), de fácil uso, simple de generar e interpretar, y es completamente independiente de cualquier lenguaje de programación, lo cual lo convierte en un lenguaje ideal para el intercambio de información entre distintas tecnologías.

Cada lenguaje trae nativamente su propia librería para codificar y decodificar cadenas JSON.

PHP

<?php
$apiUrl = 'https://mindicador.cl/api';
//Es necesario tener habilitada la directiva allow_url_fopen para usar file_get_contents
if ( ini_get('allow_url_fopen') ) {
    $json = file_get_contents($apiUrl);
} else {
    //De otra forma utilizamos cURL
    $curl = curl_init($apiUrl);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    $json = curl_exec($curl);
    curl_close($curl);
}

$dailyIndicators = json_decode($json);
echo 'El valor actual de la UF es $' . $dailyIndicators->uf->valor;
echo 'El valor actual del Dólar observado es $' . $dailyIndicators->dolar->valor;
echo 'El valor actual del Dólar acuerdo es $' . $dailyIndicators->dolar_intercambio->valor;
echo 'El valor actual del Euro es $' . $dailyIndicators->euro->valor;
echo 'El valor actual del IPC es ' . $dailyIndicators->ipc->valor;
echo 'El valor actual de la UTM es $' . $dailyIndicators->utm->valor;
echo 'El valor actual del IVP es $' . $dailyIndicators->ivp->valor;
echo 'El valor actual del Imacec es ' . $dailyIndicators->imacec->valor;
?>

NodeJS

var https = require('https');
https.get('https://mindicador.cl/api', function(res) {
    res.setEncoding('utf-8');
    var data = '';

    res.on('data', function(chunk) {
        data += chunk;
    });
    res.on('end', function() {
        var dailyIndicators = JSON.parse(data); // JSON to JavaScript object
        res.send('El valor actual de la UF es $' + dailyIndicators.uf.valor);
    });

}).on('error', function(err) {
    console.log('Error al consumir la API!');
});

Vanilla JS

https://codepen.io/rafael-andrews/pen/ZEerXaJ
fetch('https://mindicador.cl/api').then(function(response) {
    return response.json();
}).then(function(dailyIndicators) {
    document.getElementById("UF").innerHTML = 'El valor actual de la UF es $' + dailyIndicators.uf.valor;
    document.getElementById("DolarO").innerHTML = 'El valor actual del Dólar observado es $' + dailyIndicators.dolar.valor;
    document.getElementById("DolarA").innerHTML = 'El valor actual del Dólar acuerdo es $' + dailyIndicators.dolar_intercambio.valor;
    document.getElementById("Euro").innerHTML = 'El valor actual del Euro es $' + dailyIndicators.euro.valor;
    document.getElementById("IPC").innerHTML = 'El valor actual del IPC es ' + dailyIndicators.ipc.valor;
    document.getElementById("UTM").innerHTML = 'El valor actual de la UTM es $' + dailyIndicators.utm.valor;
    document.getElementById("IVP").innerHTML = 'El valor actual del IVP es $' + dailyIndicators.ivp.valor;
    document.getElementById("Imacec").innerHTML = 'El valor actual del Imacec es ' + dailyIndicators.imacec.valor;
}).catch(function(error) {
    console.log('Requestfailed', error);
});

AngularJS

/*JS*/
function Controller($scope, $http) {
    $http.get('https://mindicador.cl/api').success(function(data) {
        $scope.dailyIndicators = data;
    }).error(function() {
        console.log('Error al consumir la API!');
    });
}
/*HTML*/
<body ng-app>
    <p ng-controller="Controller">El valor actual de la UF es ${{dailyIndicators.uf.valor}}</p>
</body>

jQuery

$.getJSON('https://mindicador.cl/api', function(data) {
    var dailyIndicators = data;
    $("<p/>", {
        html: 'El valor actual de la UF es $' + dailyIndicators.uf.valor
    }).appendTo("body");
}).fail(function() {
    console.log('Error al consumir la API!');
});

Python

/*Ejemplo enviado por: Isabel Vega Villablanca*/
import json
import requests

class Mindicador:

def __init__(self, indicador, year):
    self.indicador = indicador
    self.year = year

def InfoApi(self):
    # En este caso hacemos la solicitud para el caso de consulta de un indicador en un año determinado
    url = f'https://mindicador.cl/api/{self.indicador}/{self.year}'
    response = requests.get(url)
    data = json.loads(response.text.encode("utf-8"))
    # Para que el json se vea ordenado, retornar pretty_json
    pretty_json = json.dumps(data, indent=2)
    return data

ASP.NET

/*VB*/
Imports System.Net
Imports System.Web.Script.Serialization

Dim apiUrl As String = "https://www.mindicador.cl/api"
Dim jsonString As String = "{}"
Dim dailyIndicators As Object
Dim http As New WebClient()
Dim js As New JavaScriptSerializer()

http.Headers.Add(HttpRequestHeader.Accept, "application/json")
jsonString = http.DownloadString(apiUrl)
dailyIndicators = js.Deserialize(Of Object)(jsonString)

Response.Write("El valor actual de la UF es $" & dailyIndicators("uf")("valor"))
/*C#*/
using System.Net;
using System.Web.Script.Serialization;
using System.Collections.Generic;

string apiUrl = "https://www.mindicador.cl/api";
string jsonString = "{}";
WebClient http = new WebClient();
JavaScriptSerializer jss = new JavaScriptSerializer();

http.Headers.Add(HttpRequestHeader.Accept, "application/json");
jsonString = http.DownloadString(apiUrl);
var indicatorsObject = jss.Deserialize<Dictionary<string, object>>(jsonString);

Dictionary<string, Dictionary<string, string>> dailyIndicators = new Dictionary<string, Dictionary<string, string>>();

int i = 0;
foreach (var key in indicatorsObject.Keys.ToArray())
{
	var item = indicatorsObject[key];

	if (item.GetType().FullName.Contains("System.Collections.Generic.Dictionary"))
	{
		Dictionary<string, object> itemObject = (Dictionary<string, object>)item;
		Dictionary<string, string> indicatorProp = new Dictionary<string, string>();

		int j = 0;
		foreach (var key2 in itemObject.Keys.ToArray())
		{
			indicatorProp.Add(key2, itemObject[key2].ToString());
			j++;
		}

		dailyIndicators.Add(key, indicatorProp);
	}
	i++;
}

Response.Write("El valor actual de la UF es $" + dailyIndicators["uf"]["valor"]);
/*Ejemplo en C# enviado por: Angelo Bernardi*/
System
System.Threading.Tasks
System.Net.Http
System.Net.Http.Headers
System.Web.Script.Serialization

private readonly string svcURL = "https://www.mindicador.cl";
private readonly string pathAPI = "api";
private readonly string moneda = "uf";
private readonly string fecha = System.DateTime.Now.ToString("dd-MM-yyyy"); //"21-12-2017"; //string.Empty;
private JavaScriptSerializer js = new JavaScriptSerializer();

void Main()
{
    var result = Task.Run(() => LlamaServicio()).Result;
    result.Dump();
}

public async Task<Object> LlamaServicio()
{
    string EmpResponse = string.Empty;
    var qryString = string.Concat(pathAPI, "/", moneda, "/", fecha);
    using (var client = new HttpClient())
    {
        client.BaseAddress = new Uri(svcURL);
        client.DefaultRequestHeaders.Clear();
        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
        HttpResponseMessage Res = await client.GetAsync(qryString);
        if (Res.IsSuccessStatusCode)
        {
            EmpResponse = Res.Content.ReadAsStringAsync().Result;
        }
    }
    return js.DeserializeObject(EmpResponse);
}

R

Repositorio con funciones útiles en R. Desarrollado por: Hugo Gallardo.
https://github.com/HugoGallardoR/Mindicador_R

MATLAB

Cliente en Matlab desarrollado por: Lautaro Parada.
https://github.com/LautaroParada/Indicadores-enconomicos

Este es un cliente de la API que entrega los principales indicadores económicos para Chile en formato Table o struct. Tanto los indicadores diarios como los históricos pueden ser usados por desarrolladores y/ analistas en aplicaciones, analisis, etc.

Mindicador.cl corre en un cloud server bajo DigitalOcean, el cual tiene un costo de 5 USD mensuales y que se debió escalar a 10 USD por la masiva cantidad de peticiones diarias (más de 1.5 millones).

Si deseas contribuir al proyecto y ser parte de los desarrolladores que apoyan este API, puedes hacer una donación por la cantidad que gustes.

Paypal

Puedes contactarme para cualquier duda que tengas sobre la API o los indicadores económicos utilizados.

{{ message.text }}