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 2004 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.

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], y los puedes consultar de 4 formas distintas.

1. Consultar todos los indicadores económicos

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

{{ apiJSON.apiQueryOne }}

2. Consultar por tipo de indicador económico

Entrega los valores del último mes del indicador consultado http://mindicador.cl:80/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 http://mindicador.cl:80/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 http://mindicador.cl:80/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 = 'http://mindicador.cl:80/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 http = require('http');
http.get('http://mindicador.cl:80/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!');
});

AngularJS

/*JS*/
function Controller($scope, $http) {
    $http.get('http://mindicador.cl:80/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('http://mindicador.cl:80/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!');
});

ASP.NET

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

Dim apiUrl As String = "http://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 = "http://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"]);

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 }}