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.
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.
Esta documentación está dirigida para los desarrolladores familiarizados con la programación JavaScript y conocimientos de programación orientada a objetos.
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".
IdiomaLa información está disponible en español [es] e inglés [en].
Área geográficaPuede ser nacional [00], por entidad federativa [99] o por municipio [999], dependiendo de cada indicador.
Dato más reciente o Serie históricaPuede consultarse solo el dato más reciente [true] o la serie histórica completa [false].
Fuente de datosCorresponde a la fuente de diseminación [BISE] o [BIE] de donde se obtendrán los datos consultados.
VersiónCon él se identificará la edición [2.0] del servicio de provisión de datos.
TokenPara utilizar la API es necesario mandarle un token válido, el cual puede obtener al registrarse aquí.
FormatoSe ofrece la información en 3 tipos de formatos: JSON [json], JSONP [jsonp] o XML [xml].
Nombre de la estructura.
EmailCorreo electrónico del instituto.
Identificador único del indicador.
FREQPeriodicidad de actualización de la información.
TOPICIdentificador del tema.
UNITUnidad de medida.
UNIT_MULTUnidad multiplicadora de la observación.
NOTENotas relacionadas al indicador.
SOURCEFuente o programa del indicador.
LASTUPDATEFecha de actualización del indicador.
STATUSEstatus del indicador.
OBSERVATIONS
TIME_PERIODPeriodo de la observación.
OBS_VALUEValor de la observación.
OBS_EXCEPTIONExcepción cuando no existe un valor .
OBS_STATUSEstatus de la observación.
OBS_SOURCEFuente o programa relacionada la observación.
OBS_NOTENotas relacionada a la observación.
COBER_GEOClave de área geográfica.
Identifica [CL_UNIT] al listado de datos que complementan al indicador. Esto lo puede realizar consultando el "Constructor de consultas".
IdCatalogoLlave de identificación para obtener un registro [1] o todos [null] los registros del catálogo.
IdiomaLa información está disponible en español [es] e inglés [en].
Fuente de datosCorresponde a la fuente de diseminación [BISE] o [BIE] de donde se obtendrán los datos consultados.
VersiónCon él se identificará la edición [2.0] del servicio de provisión de datos.
TokenPara utilizar la API es necesario mandarle un token válido, el cual puede obtener al registrarse aquí.
FormatoSe ofrece la información en 3 tipos de formatos: JSON [json], JSONP [jsonp] o XML [xml].
Es el identificador del método seleccionado["INDICATOR"].
AgencyIDEs la identificación de la agencia que proporciona los datos["INEGI"].
VersiónEs la Versión del método utilizado para obtener los datos [2.0].
LangEs 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.
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.
PC-Axis es un programa estadístico especializado que supone un estándar en cuanto a la difusión de datos.
PC-Axis es un programa gratuito desarrollado por Statistics Sweden para la consulta de tablas estadísticas multidimensionales. Este programa es utilizado por un importante número de oficinas de estadísticas y entre sus características destacan las siguientes: Personalización de tablas, que permite que el usuario decida qué variables y valores intervienen y en qué orden. Cálculos típicos en una tabla estadística sin necesidad de escribir fórmulas. Confección de gráficos estadísticos. Exportación y copia de datos a otras aplicaciones. PC-Axis se utiliza para consultar en tu escritorio las tablas de datos que el INEGI difunde en formato PX a través de su repositorio e-Base. No se necesita el programa PC-Axis para consultar las publicaciones en Internet, sin embargo, sí se necesita PC-Axis para poder trabajar con las tablas de e-Base que se descarguen en este formato.
Las herramientas Pc-Axis existentes han sido desarrolladas por organizaciones activamente involucradas en el estándar y en general son distribuidas con licencia de código abierto. Para comenzar a usar de una forma básica el estándar se recomienda usar los siguientes:
PC-Axis 2008PC-Axis 2008 es un programa para Windows 95/98/NT/2000/XP y para Windows Vista. El procedimiento de instalación dejará asociados en su sistema los archivos de PC-Axis (extensión *.px) a este programa, de forma que su navegador de Internet los reconocerá como tales y lanzará directamente el programa PC-Axis. Si esto no ocurre, revise la configuración del navegador en lo relativo a aplicaciones asociadas. Para poder utilizar el programa es necesario que usted tenga permiso de administrador sobre el equipo. Descarga PC-Axis 2008
Px-mapSoftware gratuito desarrollado por el instituto de estadística noruego que permite presentar estadísticas mediante mapas temáticos. px-map está desarrollado para trabajar de forma totalmente integrada con pc-axis. compatible con windows 95/98/me/nt/2000/xp, es necesario instalar previamente pc-axis 2005. Nota: el proceso de instalación está en idioma inglés. simplemente, acepten las opciones por defecto. una vez realizado el proceso, es necesario instalar las plantillas de mapas del país vasco (disponible en esta misma página) si los archivos pc-axis con los que va usted a trabajar permiten el uso de mapas. Descarga Px-map
Ayuda px-mapUna vez instalado px-map es posible instalar la ayuda y los menús en euskera o castellano para que usted trabaje en el idioma que desee. Nota: el proceso de instalación está en idioma castellano. simplemente, acepten las opciones por defecto. Descarga Px-map
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".
IdiomaLa información está disponible en español [es] e inglés [en].
Área geográficaPuede ser nacional [00], por entidad federativa [99] o por municipio [999], dependiendo de cada indicador.
Dato más reciente o Serie históricaPuede consultarse solo el dato más reciente [true] o la serie histórica completa [false].
Fuente de datosCorresponde a la fuente de diseminación [BISE] o [BIE] de donde se obtendrán los datos consultados.
TokenPara utilizar la API es necesario mandarle un token válido, el cual puede obtener al registrarse aquí.
FormatoSe requiere usar el tipificador de Pc-Axis [pcAxis].
Tipo: texto
Longitud: 20 caracteres
Multilínea: No
CHARSET = ”ANSI”; indica que los textos en el archivo
están escritos en formato de Windows. Si falta la
palabra clave, significa que los textos en el archivo
están en formato DOS. Serán traducidos por PC-Axis a
Windows. Esta palabra clave debe aparecer al comienzo
del archivo antes de cualquier texto que pueda incluir
caracteres fuera de A-Z, 0-9.
Tipo: texto
Longitud: 20 caracteres
Multilínea: No
Número de versión para PC-Axis (nueva longitud de texto
2008). Se lee y se guarda, pero por lo demás no se usa.
Tipo: texto
Longitud: 20 caracteres
Multilínea: No
Se utiliza al crear el formato XML para obtener los
caracteres correctos. Predeterminado iso-8859-1. Max 20
caracteres.
Tipo: texto
Longitud: 2 caracteres
Multilínea: No
El idioma utilizado en el archivo PC-Axis (2
caracteres), sv para sueco, en para inglés, etc. Compare
los códigos de idioma para archivos de texto. Si se
utiliza la palabra clave, las palabras para "and" y "by"
se leen del archivo de texto de ese idioma. De lo
contrario, estas palabras se leen del archivo de texto
del idioma en el que se ejecuta el programa.
Tipo: texto
Longitud: 256 caracteres
Multilínea: Sí
Fecha en que se creó el archivo. Escrito en formato
CCYYMMDD hh: mm, p. "19960612 14:20". Se muestra junto
con notas al pie.
Tipo: entero [0, 15]
Longitud: líneas de 256 caracteres
Multilínea: No
El número de decimales en las celdas de la tabla. 0 -
15. (0-6 si SHOWDECIMALS no está incluido). Indica
cuántos decimales se guardarán en el archivo PC-Axis.
Escrito sin comillas. Compare
SHOWDECIMALS.
Tipo: entero
Longitud: N/A
Multilínea: No
El número de decimales que se mostrarán en la tabla,
0-6. Debe ser igual o menor que el número almacenado
como lo indica la palabra clave DECIMALS. Si
SHOWDECIMALS no se indica en el archivo, se utilizará el
número indicado por DECIMALS.
Tipo: texto
Longitud: 20
Multilínea: No
El nombre de la matriz. Se sugiere como nombre de
archivo cuando se recupera el archivo. (nueva duración
2008).
Tipo: texto
Longitud: 20 caracteres
Multilínea: NO
Copyright se otorga como SÍ o NO. Si COPYRIGHT = YES, el
copyright se refiere a la organización dada en SOURCE.
Se muestra junto con notas al pie.
Tipo: texto Longitud: 20 caracteres Multilínea: No Código de área de asunto. Se utiliza para crear archivos con tablas disponibles en PC-Axis. El texto no debe exceder los 20 caracteres (nueva longitud 2008).
SUBJECT-AREA
Tipo: texto
Longitud: 256 caracteres
Multilínea: No
El nombre del área temática en texto plano, como se
muestra en el menú "Seleccionar área temática". El texto
no debe superar los 256 caracteres (nueva longitud en
2008).
Tipo: texto
Longitud: líneas de 256 caracteres
Multilínea: Sí
El título de la tabla, que refleja sus contenidos y
variables. No es necesario si el archivo contiene
DESCRIPTION, en ese caso se utiliza el texto que
pertenece a la descripción. El aspecto del encabezado de
una tabla depende de las variables que elija el usuario;
El encabezado así creado se guardará como TÍTULO.
(Compare también DESCRIPTIONDEFAULT) Si el archivo
contiene DESCRIPTION, se usará el texto para esta
palabra clave.
Tipo: texto
Longitud: 256 caracteres
Multilínea: No
Información sobre el contenido, que constituye la
primera parte de un título creado al recuperar tablas de
PC-Axis. El texto no debe superar los 256 caracteres
(antes de 2002, solo 100 caracteres).
Tipo: texto
Longitud: 256 caracteres por valor
Multilínea: Sí
Se debe incluir al menos una de las palabras clave STUB
o HEADING. Por lo general, ambos están incluidos, ya que
elige una o varias variables para el código auxiliar y
el encabezado, respectivamente. Las palabras clave van
seguidas de una lista con las variables elegidas. Las
variables están entre comillas y separadas por comas. Si
la lista con las variables tiene que dividirse en varias
líneas, esto debe hacerse después de una coma y no
dentro del nombre de la variable.
Tipo: texto
Longitud: 256 caracteres por valor
Multilínea: Sí
Se debe incluir al menos una de las palabras clave STUB
o HEADING. Por lo general, ambos están incluidos, ya que
elige una o varias variables para el código auxiliar y
el encabezado, respectivamente. Las palabras clave van
seguidas de una lista con las variables elegidas. Las
variables están entre comillas y separadas por comas. Si
la lista con las variables tiene que dividirse en varias
líneas, esto debe hacerse después de una coma y no
dentro del nombre de la variable.
Tipo: texto
Longitud: 256 caracteres por valor
Multilínea: Sí
La palabra clave VALUES aparece una vez para cada
variable en la tabla, seguida del nombre de la variable
entre paréntesis, entre comillas. Los valores estarán en
el mismo orden que en el código auxiliar y el
encabezado, respectivamente. Están entre comillas y
separados por comas. Cada nombre de valor no debe
exceder los 256 caracteres. Si los valores tienen que
dividirse en varias líneas, esto debe hacerse después de
una coma y no dentro del nombre del valor. Consulte
también la palabra clave TIMEVAL a continuación.
Tipo: texto
Longitud: 256 caracteres
Multilínea: No
Texto de unidad, p. Ej. tonelada, índice. El texto no
debe superar los 256 caracteres (nueva longitud 2008).
Compare UNIDADES para CONTVARIABLE. Cuando hay un
CONTVARIABLE, la palabra clave UNITS toma un índice y se
repite para cada valor de la variable de contenido.
UNIDADES ("valor") = "toneladas".
Tipo: texto
Longitud: 256 caracteres
Multilínea: Si
Una nota a pie de página para valores variables
separados. Debe escribirse con el nombre de la variable
y los nombres de los valores entre paréntesis.
Tipo: texto
Longitud: 256 caracteres
Multilínea: Si
Establece la organización responsable de las
estadísticas. Se muestra con la nota al pie.
Tipo: texto Longitud: 20 caracteres Multilínea: No Esto si se usa para indicar cómo se almacena un "." se presentará en una tabla.
DATA
Tipo: entero/texto
Longitud: N/A
Multilínea: Sí
La palabra clave DATOS debe colocarse al final del
archivo, seguida de todas las celdas de datos o si se
usan CLAVES los valores variables y todas las celdas de
datos que difieren de 0.
Los principales estándares estadísticos para el intercambio de datos y metadatos están basados en XML: generalmente son complicados y detallados, por lo que JSON-Stat viene a cambiar este paradigma.
JSON-stat es un formato de difusión JSON ligero y simple, más adecuado
para la visualización de datos, aplicaciones móviles o iniciativas de
datos abiertos, que ha sido diseñado para todo tipo de diseminadores.
JSON-stat también propone un esquema de microdatos HTML para enriquecer
las tablas HTML y poner el vocabulario JSON-stat en el navegador.
JSON-stat viene con bibliotecas y código de muestra para
varios lenguajes de programación: JavaScript, R, Java,
Julia, PHP o incluso la línea de comandos.
Ver mas
Como parte de las herramientas se puede usar el visualizador para desplegar los datso y metadatos en línea. Ver mas
Además existe una aplicación en línea la cual permite verificar la correcta construcción del archivo Json-Stat. Ver mas
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".
IdiomaLa información está disponible en español [es] e inglés [en].
Área geográficaPuede ser nacional [00], por entidad federativa [99] o por municipio [999], dependiendo de cada indicador.
Dato más reciente o Serie históricaPuede consultarse solo el dato más reciente [true] o la serie histórica completa [false].
Fuente de datosCorresponde a la fuente de diseminación [BISE] o [BIE] de donde se obtendrán los datos consultados.
TokenPara utilizar la API es necesario mandarle un token válido, el cual puede obtener al registrarse aquí.
FormatoSe requiere usar el tipificador de json-stat [jsonStat].
Declara la versión
JSON-stat de la respuesta. El objetivo de esta propiedad
es ayudar a los clientes a analizar esa respuesta
particular. Debido a que las versiones futuras podrían
agregar propiedades opcionales, la misma respuesta puede
ser válida en varias versiones: cualquiera de esas
versiones se acepta como un valor de versión.
Antes de la versión 2.0
La versión se introdujo en la versión 2.0. Es por eso
que esta propiedad no puede aceptar valores inferiores a
2.0.
JSON-stat admite varias clases de respuestas. Los valores posibles de la clase son: conjunto de datos, dimensión y colección. Las respuestas del conjunto de datos incluyen un único conjunto de datos. Se declaran utilizando el valor de la clase de conjunto de datos.
HrefEspecifica una
URL.
Los proveedores pueden usar esta propiedad para evitar
el envío de información que se comparte entre diferentes
solicitudes (por ejemplo, dimensiones).
Se utiliza para
asignar un texto descriptivo muy corto (una línea) a las
ID en diferentes niveles del árbol de respuestas. Es
dependiente del idioma.
Cuando es una propiedad raíz o un elemento secundario de
ID de dimensión o de una ID de categoría de unidad, es
una cadena.
Contiene los datos ordenados según las dimensiones del conjunto de datos. Por lo general, toma la forma de una matriz donde los valores faltantes se expresan como nulos.
StatusContiene metadatos a nivel de observación. Cuando toma una forma de matriz del mismo tamaño de valor , asigna un estado a cada dato por posición.
IdSe utiliza para describir una dimensión particular. El nombre de este objeto debe ser una de las cadenas en la matriz de id. Debe haber un único objeto de ID de dimensión para cada dimensión en la matriz de id.
SizeContiene el número (entero) de categorías (valores posibles) de cada dimensión en el conjunto de datos. Tiene el mismo número de elementos y en el mismo orden que en id.
DimencionJSON-stat sigue un modelo de cubo: los valores se organizan en celdas y una celda es la intersección de varias dimensiones. La propiedad de dimensión contiene información sobre las dimensiones del conjunto de datos.
CategorySe utiliza para describir los posibles valores de una dimensión.
UnitSe puede usar para asignar metadatos de unidades de medida a las categorías de una dimensión con un rol métrico.
Ver mas...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.
Consulta:
Resultado:
Consulta:
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))
Obtener datos de la serie histórica del indicador de Población total, en los Estados Unidos Mexicanos, en idioma español, en formato PC-Axis.
Consulta:
Resultado:
<!DOCTYPE html > <html> <head> <link href="c3/c3.css" rel="stylesheet" type="text/css"> </head> <body> <div id="chart"></div> <div id="chartPcAxis"></div> <script src="https://d3js.org/d3.v5.min.js" charset="utf-8"></script> <script src="c3/c3.js"></script> <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script> <script src="JSPc-Axis/px.js"></script> <script src="JSPc-Axis/underscore.js"></script>; </body > </html >
window.onload = function() { getPcAxis(); } function buildPcAxis() { return new Promise(function(resolve, reject) { var urlApiPcAxis = "http://www.inegi.org.mx/app/api/indicadores/desarrolladores/jsonxml/PCAXIS/1002000001/es/00/false/BISE/[Aquí va tu Token]?type=pcAxis"; $.ajax({ type: "GET", url: urlApiPcAxis, //async: false, headers: { Accept: "text/px" }, success: function(data, status, jqXHR) { resolve(data); }, error: function(jqXHR, status) { reject(jqXHR); } }); }) } function buildChart(px) { const _column = [px.metadata["VALUES "].Indicadores]; for (var i = 0; i < px.data.length; i++) { _column.push(parseFloat(px.data[i])) } const _X = ["x"]; for (var i = 0; i < px.metadata["VALUES "].Tiempo.length; i++) { _X.push(px.metadata["VALUES "].Tiempo[i]); } var chartPcAxis = c3.generate({ bindto: '#chartPcAxis', data: { x: 'x', colors: { '(1002000001) Población total': '#FF9124' }, columns: [ _X, _column ], type: 'bar', onclick: function(d, element) { //console.log("onclick", d, element); }, onmouseover: function(d) { //console.log("onmouseover", d); }, onmouseout: function(d) { //console.log("onmouseout", d); } }, axis: { x: { type: 'categorized', label: 'X Label' }, y: { label: { text: px.metadata.UNITS.TABLE, position: 'outer-middle' } } }, bar: { width: { ratio: 0.3, //max: 30 }, } }); } function getPcAxis() { buildPcAxis().then(r => { buildChart(new Px(r)); }).catch(() => { console.log('Algo salió mal'); }); }
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-Stat.
Consulta:
Resultado:
<html lang="es"> <head> <title>Ejemplo de json-stat </title> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.4.1/dist/css/bootstrap.min.css"> <script src="https://unpkg.com/jsonstat-toolkit@1.4.2"> </script> <script src="https://unpkg.com/jsonstat-suite@3.5.0"> </script> <script src="/JsonStat/ejemplo-json-stat.js"> </script> <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"> </script> </head> <body onload="inicioJsonStat()"> <div id="TablaJsonStat"> </div> <br> <div id="top_x_div" style="width: 1900px; height: 700px;"> </div> </body> </html>
const url = "https://www.inegi.org.mx/app/api/indicadores/desarrolladores/jsonxml/JSONSTAT/1002000001/es/0700/false/BISE/[Aquí va tu Token]?type=jsonStat"; //Se obtiene el JsonStat en forma de objeto por medio de la librería jsonstat-toolkit async function getJsonStatDS(url_) { return new Promise(function (resolve, reject) { JSONstat(url_).then((result) => { resolve(result); }); }); } //Creación de la tabla por medio de la librería jsonstat-suite async function getJsonStatTabla(url_) { return new Promise(function (resolve, reject) { JSONstat(url_).then((result) => { var html = JSONstatUtils.datalist(result, { counter: true, status: true, tblclass: "table table-striped", }); document.getElementById("TablaJsonStat").innerHTML = html; resolve(result); }); }); } var jsonStat; async function inicioJsonStat() { var jsonStat = await getJsonStatDS(url); await getJsonStatTabla(url); //Creación de la matriz de datos para alimentar al graficador var jsonStatChart = jsonStat.Dataset(0).toTable({}, function (d, i) { return [d[0] + " " + d[4], d[5]]; }); google.charts.load("current", { packages: ["bar"] }); google.charts.setOnLoadCallback(drawStuff); function drawStuff() { var data = new google.visualization.arrayToDataTable(jsonStatChart); var options = { legend: { position: "none" }, chart: { title: jsonStat.Dataset(0).label, }, bar: { groupWidth: "90%" }, colors: ["#d95f02"], }; var chart = new google.charts.Bar(document.getElementById("top_x_div")); chart.draw(data, google.charts.Bar.convertOptions(options)); } }