API del Banco de Indicadores

Versión 2.0

La API de Indicadores del INEGI permite consultar los datos y metadatos de los indicadores disponibles a nivel nacional, por entidad federativa y municipio. Puede utilizar la API para crear aplicaciones que muestren la información directamente de las bases de datos del INEGI en el preciso momento en que se actualiza.

Guía para desarrolladores
Introducción

Bienvenido a la documentación para desarrolladores de la API de Indicadores del INEGI. El INEGI se une a la iniciativa de datos de libre acceso con el objetivo de ampliar la disponibilidad de la información para los usuarios.

Audiencia

Esta documentación está dirigida para los desarrolladores familiarizados con la programación JavaScript y conocimientos de programación orientada a objetos.

Método Indicadores
Para consultar el método Indicadores se envían los parámetros directamente en la URL, por ejemplo:
Sintaxis:
URL:
IdIndicador

El primer paso que se debe realizar para obtener información de la API es seleccionar el indicador e identificar su clave. Esto lo puede realizar consultando el "Constructor de consultas".

Idioma

La información está disponible en español [es] e inglés [en].

Área geográfica

Puede ser nacional [00], por entidad federativa [99] o por municipio [999], dependiendo de cada indicador.

Dato más reciente o Serie histórica

Puede consultarse solo el dato más reciente [true] o la serie histórica completa [false].

Fuente de datos

Corresponde a la fuente de diseminación [BISE] o [BIE] de donde se obtendrán los datos consultados.

Versión

Con él se identificará la edición [2.0] del servicio de provisión de datos.

Token

Para utilizar la API es necesario mandarle un token válido, el cual puede obtener al registrarse aquí.

Formato

Se ofrece la información en 3 tipos de formatos: JSON [json], JSONP [jsonp] o XML [xml].


  
Id

Es el identificador del método seleccionado["INDICATOR"].

AgencyID

Es la identificación de la agencia que proporciona los datos["INEGI"].

Versión

Es la Versión del método utilizado para obtener los datos [2.0].

Lang

Es la clave del idioma en la que otorgan los datos["es"].

CODE

Es el arreglo de los datos obtenidos, cada elemento consta de los siguientes atributos.
Value: Es un identificador del dato.
Description: Es la descripción del dato.

Método Catálogo de metadatos
Para consultar el método Catálogo de metadatos se envían los parámetros directamente en la URL, por ejemplo:
Sintaxis:
URL:
Catálogo

Identifica [CL_UNIT] al listado de datos que complementan al indicador. Esto lo puede realizar consultando el "Constructor de consultas".

IdCatalogo

Llave de identificación para obtener un registro [1] o todos [null] los registros del catálogo.

Idioma

La información está disponible en español [es] e inglés [en].

Fuente de datos

Corresponde a la fuente de diseminación [BISE] o [BIE] de donde se obtendrán los datos consultados.

Versión

Con él se identificará la edición [2.0] del servicio de provisión de datos.

Token

Para utilizar la API es necesario mandarle un token válido, el cual puede obtener al registrarse aquí.

Formato

Se ofrece la información en 3 tipos de formatos: JSON [json], JSONP [jsonp] o XML [xml].


  
Id

Es el identificador del método seleccionado["INDICATOR"].

AgencyID

Es la identificación de la agencia que proporciona los datos["INEGI"].

Versión

Es la Versión del método utilizado para obtener los datos [2.0].

Lang

Es la clave del idioma en la que otorgan los datos["es"].

CODE

Es el arreglo de los datos obtenidos, cada elemento consta de los siguientes atributos.
Value: Es un identificador del dato.
Description: Es la descripción del dato.

Para usuarios del Servicio web antes disponible en http://www2.inegi.org.mx/servicioindicadores/Indicadores.asmx

Si eres usuario del Servicio web ahora podrás obtener la información mediante el uso de los siguientes métodos de la API del Banco de Indicadores:

Método Indicadores - para la consulta de indicadores.
Método Catálogo de metadatos. - para la consulta de catálogos.

Preguntas



Obtener datos de la serie histórica del indicador de Población total, en los Estados Unidos Mexicanos, en idioma español, en formato JSON.

Parámetros de entrada:
  • Indicador: 1002000001
  • Área geográfica: 01
  • Idioma: es
  • Dato más reciente: False (para este caso se solicita la serie histórica completa)
  • Formato: json
  • Token: [Aquí va tu Token]

Consulta:


Resultado:

  

Presentación de la información utilizando HTML y Javascript
Enseguida se muestra un ejemplo para presentar la información en una página web en forma de gráfica.

Código
<!DOCTYPE html >
<html xmlns="http://www.w3.org/1999/xhtml">
    <head >
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title ></title >
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script >
        <script type="text/javascript" src="js/llamarAPI.js"></script >
        <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script ></head >
    <body >
        <div id="chart" style="width: 100%; min-height: 550px;"></div >
        <div id="NoteChart"></div >
        <div id="FuenteChart"></div >
    </body >
</html >
google.charts.load('current',{'packages': ['corechart', 'bar']}); 
google.charts.setOnLoadCallback(drawChart); var arrayChartData=[]; 

//Obetencion de la estructura de datos del indicador con los parametros 
//Clave: 1002000002 
//Idioma: es 
//Clave entidad: 01 
//Datos resientes: false 
//Fuente de atos: BISE 
//Versión: 2.0 
var urlDataStructure="https://www.inegi.org.mx/app/api/indicadores/desarrolladores/jsonxml/INDICATOR/1002000001/es/00/false/BISE/2.0/[Aquí va tu Token]?type=json"; 
$.getJSON(urlDataStructure, function (dataStructure){
    var Observations=dataStructure.Series[0].OBSERVATIONS; 
    for (var i=0; i <=Observations.length - 1; i++)
        {arrayChartData[i]=[Observations[i].TIME_PERIOD, parseInt(Observations[i].OBS_VALUE), '#E16c32'];}
    }); 

//Obetencion de metadatos del indicador con los parametros 
//Catalago: CL_INDICATOR 
//Clave: 1002000002 
//Idioma: es 
//Fuente de atos: BISE 
//Versión: 2.0 
var dataCL_INDICATOR; 
var urlDataCL_INDICATOR="https://www.inegi.org.mx/app/api/indicadores/desarrolladores/jsonxml/CL_INDICATOR/1002000001/es/BISE/2.0/[Aquí va tu Token]?type=json"; 
$.getJSON(urlDataCL_INDICATOR, function (dataCatalog){
    dataCL_INDICATOR={Descripcion: dataCatalog.CODE[0].Description, AgencyID: dataCatalog.agencyID,}}); 

//Obetencion de la unidadde medida del indicador con los parametros 
//Catalago: CL_UNIT //Clave: 96 
//Idioma: es //Fuente de atos: BISE 
//Versión: 2.0 
var dataCL_UNIT; 
var urlDataCL_UNIT="https://www.inegi.org.mx/app/api/indicadores/desarrolladores/jsonxml/CL_UNIT/96/es/BISE/2.0/[Aquí va tu Token]?type=json"; 
$.getJSON(urlDataCL_UNIT, function (dataCatalog){
    dataCL_UNIT={Descripcion: dataCatalog.CODE[0].Description, Value: dataCatalog.CODE[0].value,}
}); 

//Obetencion de la nota del indicador con los parametros
//Catalago: CL_NOTE 
//Clave: 1398 
//Idioma: es 
//Fuente de atos: BISE 
//Versión: 2.0 
var dataCL_NOTE; 
var urlDataCL_NOTE="https://www.inegi.org.mx/app/api/indicadores/desarrolladores/jsonxml/CL_NOTE/1398/es/BISE/2.0/[Aquí va tu Token]?type=json"; 
$.getJSON(urlDataCL_NOTE, function (dataCatalog){
    dataCL_NOTE={Descripcion: dataCatalog.CODE[0].Description, Value: dataCatalog.CODE[0].value,}
}); 

//Obetencion de la fuente del indicador con los parametros
//Catalago: CL_SOURCE 
//Clave: 2,3,343,487,510 
//Idioma: es 
//Fuente de atos: BISE 
//Versión: 2.0 
var dataCL_SOURCE; 
var urlDataCL_SOURCE="https://www.inegi.org.mx/app/api/indicadores/desarrolladores/jsonxml/CL_SOURCE/2,3,343,487,510/es/BISE/2.0/[Aquí va tu Token]?type=json"; 
$.getJSON(urlDataCL_SOURCE, function (dataCatalog){
    var descripcion=""; var value=""; 
for (var i=0; dataCatalog.CODE.length >i; i++){
    descripcion=descripcion + " " + dataCatalog.CODE[i].Description; value=value + " " + dataCatalog.CODE[i].value;
}
    dataCL_SOURCE={Descripcion: descripcion, Value: value,}
}); 

//Obetencion del tema del indicador con los parametros
//Catalago: CL_TOPIC
//Clave: 2,3,343,487,510 
//Idioma: es 
//Fuente de atos: BISE 
//Versión: 2.0 
var dataCL_TOPIC; 
var urlDataCL_TOPIC="https://www.inegi.org.mx/app/api/indicadores/desarrolladores/jsonxml/CL_TOPIC/2,3,343,487,510/es/BISE/2.0/[Aquí va tu Token]?type=json"; 
$.getJSON(urlDataCL_SOURCE, function (dataCatalog){var descripcion=""; var value=""; 
    for (var i=0; dataCatalog.CODE.length >i; i++)
    {descripcion=descripcion + " " + dataCatalog.CODE[i].Description; value=value + " " + dataCatalog.CODE[i].value;
    }
    dataCL_SOURCE={Descripcion: descripcion, Value: value,}
});

//Obetencion de la frecuancia o periodicidad del indicador con los parametros
//Catalago: CL_FREQ 
//Clave: 2,3,343,487,510 
//Idioma: es 
//Fuente de atos: BISE 
//Versión: 2.0 
var dataCL_FREQ; 
var urlDataCL_FREQ="https://www.inegi.org.mx/app/api/indicadores/desarrolladores/jsonxml/CL_FREQ/7/es/BISE/2.0/[Aquí va tu Token]?type=json"; $.getJSON(urlDataCL_FREQ, function (dataCatalog){
    var descripcion=""; 
    var value=""; 
    dataCL_FREQ={Descripcion: dataCatalog.CODE[0].Description, Value: dataCatalog.CODE[0].value,}
}); 

//Obetencion de la entidado municipio del indicador con los parametros
//Catalago: CL_GEO_AREA 
//Clave: 00 
//Idioma: es 
//Fuente de atos: BISE 
//Versión: 2.0 
var dataCL_GEO_AREA; var urlDataCL_GEO_AREA="https://www.inegi.org.mx/app/api/indicadores/desarrolladores/jsonxml/CL_GEO_AREA/00/es/BISE/2.0/[Aquí va tu Token]?type=json"; 
$.getJSON(urlDataCL_GEO_AREA, function (dataCatalog){
    var descripcion=""; 
    var value=""; 
    dataCL_GEO_AREA={Descripcion: dataCatalog.CODE[0].Description, Value: dataCatalog.CODE[0].value,}}
); 

//Funcion para pintar la grafica function 
drawChart(){
document.getElementById("NoteChart").innerHTML='<b >Nota </b ><br >' + dataCL_NOTE.Descripcion; 
document.getElementById("FuenteChart").innerHTML='<b >Fuente </b ><br >' + dataCL_SOURCE.Descripcion; 
var data=google.visualization.arrayToDataTable([[{role: "domain", 
                                                 Label: "Año", 
                                                 type: "string"},
                                                 {
                                                    Label: "Valor", 
                                                    role: "data", 
                                                    type: "number"
                                                },
                                                {role: "style"}]]); 
console.log(data); 
data.addRows(arrayChartData); 
var view=new google.visualization.DataView(data); 
var options={title:dataCL_INDICATOR.Descripcion + " (Periodicidad:" + dataCL_FREQ.Descripcion +", Área geográfica: "+dataCL_GEO_AREA.Descripcion+")", 
             titleTextStyle:{
                 fontSize: 14, 
                 color: 'black', 
                 bold: true, italic: false}, 
             chart:{title: 'Company Performance', 
                    subtitle: 'Sales, Expenses, and Profit: 2014-2017',}, 
             legend:{position: "none"}, 
             hAxis:{title: 'Años', format: 'yyyy', 
                    textStyle:{fontSize: 12, 
                               color: 'Black', 
                               bold: true, 
                               italic: false}, 
                    titleTextStyle:{fontSize: 12, 
                                    color: 'Black',
                                    bold: true, 
                                    italic: false}}, 
             vAxis:{title: dataCL_UNIT.Descripcion, 
                    min:1, 
                    textStyle:{fontSize: 12, 
                               color: 'Black', 
                               bold: false, 
                               italic: false,}, 
                    titleTextStyle:{fontSize: 12, 
                                    color: 'Black',
                                    bold: true, 
                                    italic: false}
                   }}; 
            var chart=new google.visualization.ColumnChart(document.getElementById('chart')); 
            chart.draw(view, options);}$(window).resize(function (){drawChart();});
 
Para descargar el ejemplo completo aquí .

Obtener datos de la serie histórica del indicador de Población total, en los Estados Unidos Mexicanos, en idioma español, en formato JSON y calcular su promedio.

import requests
import json

#Llamado al API
url='https://www.inegi.org.mx/app/api/indicadores/desarrolladores/jsonxml/INDICATOR/1002000002/es/00000/false/BISE/2.0/[Aquí va tu Token]?type=json'
response= requests.get(url)
if response.status_code==200:
    content= json.loads(response.content)
    Series=content['Series'][0]['OBSERVATIONS']   
    
    #Obtención de la lista de observaciones 
    Observaciones=[]
    for obs in Series:  Observaciones.append(float(obs['OBS_VALUE']));
    

    #Generación del promedio de la lista de observaciones 
    sum=0.0
    for i in range(0,len(Observaciones)): sum=sum+Observaciones[i];  

    resultado=sum/len(Observaciones);
    print(resultado)
                                                    

Obtener datos de la serie histórica del indicador de Población total, en los Estados Unidos Mexicanos, en idioma español, en formato JSON y calcular su promedio.

library(httr)
library(jsonlite)
library(rjson)

#Llamado al API
url <-"https://www.inegi.org.mx/app/api/indicadores/desarrolladores/jsonxml/INDICATOR/1002000001/es/00000/false/BISE/2.0/[Aquí va tu Token]?type=json"
respuesta<-GET(url)
datosGenerales<-content(respuesta,"text")
flujoDatos<-paste(datosGenerales,collapse = " ")

#Obtención de la lista de observaciones 
flujoDatos<-fromJSON(flujoDatos)
flujoDatos<-flujoDatos $Series
flujoDatos<-flujoDatos[[1]] $OBSERVATIONS

#Generación del promedio de la lista de observaciones 
datos<-0;
for (i in 1:length(flujoDatos)){

 datos[i]<-flujoDatos[[i]] $OBS_VALUE
}

datos<-as.numeric(datos)
print(mean(datos))