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.
Entrega los últimos valores registrados de los principales indicadores https://mindicador.cl/api
{{ apiJSON.apiQueryOne }}
Entrega los valores del último mes del indicador consultado https://mindicador.cl/api/{tipo_indicador}
{{ apiJSON.apiQueryTwo }}
Entrega el valor del indicador consultado según la fecha especificada https://mindicador.cl/api/{tipo_indicador}/{dd-mm-yyyy}
{{ apiJSON.apiQueryThree }}
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 $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; ?>
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!'); });
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); });
/*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>
$.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!'); });
/*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
/*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); }
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.
Puedes contactarme para cualquier duda que tengas sobre la API o los indicadores económicos utilizados.