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.

Guía para desarrolladores
Introducción

Statistical Data and Metadata eXchange (SDMX) fue creado en 2001 por siete organizaciones que trabajaban en estadísticas a nivel internacional: Banco de Pagos Internacionales (BPI), Banco Central Europeo (BCE), Eurostat, Fondo Monetario Internacional (FMI), Organización para la Cooperación y el Desarrollo Económico (OCDE), División de Estadística de las Naciones Unidas y el Banco Mundial. Estas siete organizaciones trabajan como patrocinadores de SDMX.
SDMX intenta asegurar que los metadatos siempre acompañen los datos, haciendo que la información sea directamente comprensible y útil. Por esta razón, las normas y las directrices SDMX manejan tanto los datos como los metadatos.Ver mas...

Objetivo

El objetivo de SDMX era desarrollar y utilizar procesos más eficientes para el intercambio de datos y metadatos estadísticos entre las organizaciones internacionales y sus países miembros. Para lograr este objetivo, se proporciona formatos estándar para los datos y metadatos, junto con las directrices para el contenido y una arquitectura informática para el intercambio de datos y metadatos.Ver mas...

Iniciación

La iniciativa SDMX establece estándares para facilitar el intercambio de datos estadísticos y metadatos utilizando tecnología de la información moderna. Varias versiones de las especificaciones técnicas se han lanzado desde 2004. Por lo cual es importante el aprendizaje de estas.Ver mas...


Las herramientas SDMX 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 lo siguientes:

NSI Web Service

NsiWebService es una herramienta que permitir a las organizaciones exponer su base de datos de difusión, utilizando tecnologías de servicios web, en formato SDMX-ML. Para facilitar la adopción e integración de este servicio web, se desarrolló en plataformas Java y .NET. NSI Web Service...

Mapping Assistant

MappingAssistant está destinado a facilitar las asignaciones entre los metadatos estructurales proporcionados por un DataStructureDefinition SDMX-ML (DSD) y los datos que se encuentran almacenados en una base de datos de diseminasión, y mantener estos en el MappingStore. En la infraestructura de referencia de SDMX, el Mapping Assistant proporciona información de asignación al Data Retriever. El módulo Data Retriever se conecta a la base de datos Mapping Store y accede a las asignaciones apropiadas para traducir las consultas SDMX-ML a SQL para la base de datos de diseminasión. La herramienta fue desarrollada como paquete portátil o componente que puede ser instalado en otras organizaciones. Mapping Assistant...

Definición de Estructura de Datos (DSD)

La definición de estructura de datos es el nombre que recibe un conjunto de explicaciones sobre cómo se construye un conjunto de datos y cómo habrá de interpretarse. Esta descripción de datos se construye sobre conceptos estadísticos. La definición de estructura de datos, es una descripción de todos los metadatos estructurales necesarios para comprender la estructura del conjunto de datos. Vincula los datos estadísticos a los metadatos estructurales mediante la asignación de conceptos descriptores. Cómo usar...

Para consultar el método obtener Definición de estructura de datos se envían los parámetros directamente en la URL.

Sintaxis:
Versión del estandar SDMX:
Referencia:
URL:
Accept:

Listas de Códigos (Code List)

En el modelo de información SDMX, una lista de códigos (Code List) es un objeto que contiene una lista de códigos. Una lista de códigos es simplemente un conjunto de valores que se usan para la representación de un concepto (dimensión o atributo) en definiciones de estructuras de datos/metadatos. Cada código está definido exclusivamente por un valor y una descripción que puede proporcionarse en varios idiomas. Cómo usar...

Para consultar el método obtener Lista de códigos se envían los parámetros directamente en la URL.

Sintaxis:
Versión del estandar SDMX:
Referencia:
URL:
Accept:

Conjunto de Datos (Dataset)

El conjunto de datos y metadatos relacionados cuyo contenido se ajusta a la especificación de una definición de estructura de datos (Data Structure Definition). La definición de estructura de datos (DSD) puede vincularse con una definición de flujo de datos. El flujo de datos define aquellos metadatos relacionados con un flujo de datos que se recoge o difunde. Tales metadatos contienen, por ejemplo, la periodicidad de los informes y qué organizaciones presentan un determinado conjunto de datos. Cómo usar...

Para consultar el método obtener Definición de estructura de datos se envían los parámetros directamente en la URL.

Sintaxis:
Versión del estandar SDMX:
Referencia:
URL:
Accept:
Cátalogo de errores SDMX

La definición de estructura de datos es el nombre que recibe un conjunto de explicaciones sobre cómo se construye un conjunto de datos y cómo habrá de interpretarse. Esta descripción de datos se construye sobre conceptos estadísticos. La definición de estructura de datos, es una descripción de todos los metadatos estructurales necesarios para comprender la estructura del conjunto de datos. Vincula los datos estadísticos a los metadatos estructurales mediante la asignación de conceptos descriptores.

SDMX Error HTTP Status code Ejemplo/Nota
No error 200
110 Not authorized 401
100 No results found 404 Flujo de datos no existente o no esta en producción. Además, si una consulta de estructura no devuelve resultados.
140 Syntax error 400
150 Semantic error 400 Dimensión inválida en la observación.
500 Internal Server error 500 Cartografía inalcanzable y / o bases de datos de diseminación.Error de configuración en web.config
N/A 406 El servicio web no puede responder al valor del campo Accept del encabezado HTTP.
Guía para desarrolladores
Introducción

PC-Axis es un programa estadístico especializado que supone un estándar en cuanto a la difusión de datos.

Objetivo

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 2008

PC-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-map

Software 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-map

Una 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

Método Pc-Axis
Para consultar el método PcAxis 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.

Token

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

Formato

Se requiere usar el tipificador de Pc-Axis [pcAxis].


  
CHARSET

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.

AXIS-VERSION

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.

CODEPAGE

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.

LANGUAGE

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.

CREATION-DATE

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.

DECIMALS

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.

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.

MATRIX

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

COPYRIGHT

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.

SUBJECT-CODE

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

TITLE

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.

CONTENTS

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

STUB

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.

HEADING

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.

VALUES

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.

UNITS

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

VALUENOTE

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.

SOURSE

Tipo: texto
Longitud: 256 caracteres
Multilínea: Si
Establece la organización responsable de las estadísticas. Se muestra con la nota al pie.

DATASYMBOL1, DATASYMBOL2, DATASYMBOL3, DATASYMBOL4, DATASYMBOL5, DATASYMBOL6

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.

Ver mas...
Guía para desarrolladores
Introducción

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.

Objetivo

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, Python, 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

Método json-stat
Para consultar el método Json-stat 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.

Token

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

Formato

Se requiere usar el tipificador de json-stat [jsonStat].


  
Versión

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.

Class

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.

Href

Especifica 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).

Label

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.

Value

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.

Status

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

Id

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

Size

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

Dimencion

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

Category

Se utiliza para describir los posibles valores de una dimensión.

Unit

Se puede usar para asignar metadatos de unidades de medida a las categorías de una dimensión con un rol métrico.

Ver mas...

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 datos: 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 datos: 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 datos: 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 datos: 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 datos: 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 datos: 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 datos: 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 datos: 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"}]]); 
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))
                                                    


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.

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: pcAxis
  • 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>
<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');
            });
        }
 
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-Stat.

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: jsonStat
  • 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>
<head>
    
     <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"> </script>
     <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.1/morris.css">
     <script src="//cdnjs.cloudflare.com/ajax/libs/raphael/2.1.0/raphael-min.js"> </script>
     <script src="//cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.1/morris.min.js"> </script>
</head>
<body>    
    <div id="barCharJsonStat"></div>
        
    </body>
</html>
/*
    JSON-stat JS Sample Code
    http://json-stat.org/tools/js.txt
    Author: Xavier Badosa (http://xavierbadosa.com)
    Date: 2015-12-22
    Version: 1.0.1

    Copyright 2015 Xavier Badosa
    License: Apache License, Version 2.0 http://www.apache.org/licenses/LICENSE-2.0
*/
var query = {
    "CL_GEO_AREA": "",
    "INDICADOR": "",
    "TIME_PERIOD": ""

};

var arrayCharMorisArray = [];

window.onload = function() {
    inicio();
}

function inicio() {

    getJsonStat().then(r => {
        console.log(r)
        main(r);
    }).catch(() => {
        console.log('Algo salió mal');
    });
}


function main(obj) {
    //Validate jsonstat
    var jsonstat = JSONstat(obj);
    if (!jsonstat) {
        return;
    }
    var timeline = Object.keys(obj.dimension.TIME_PERIOD.category.index);
    console.log(timeline);

    for (var i = 0; i <= timeline.length - 1; i++) {
        query.CL_GEO_AREA = "0700";
        query.INDICADOR = "1002000002";
        query.TIME_PERIOD = timeline[i];


        //Parse: Get value from jsonstat and query
        var value = getValue(jsonstat, query);

        //Write: Display query and result
        // show(query, value);

        addCharMorisArray(query, value);
    }

    arrayCharMorisArray;
    buidChatBarMoris(arrayCharMorisArray)

}


// Obtencion de los dastos en formato JsonStat
function getJsonStat() {
    return new Promise(function(resolve, reject) {
        var urlApiPcAxis = "/app/api/indicadores/desarrolladores/jsonxml/JSONSTAT/1002000002/es/0700/false/BISE/96fbd1bf-21e6-28e3-6e64-2b15999d2c89?type=jsonStat";
        $.ajax({
            type: "GET",
            url: urlApiPcAxis,
            //async: false,
            /*headers: {
                Accept: "application/jsonStat"
            },*/
            success: function(data, status, jqXHR) {
                resolve(data);
            },
            error: function(jqXHR, status) {
                reject(jqXHR);
            }
        });
    })

}

//getValue() converts a dimension/category object into a data value in three steps.
//Input example: {"concept":"UNR","area":"US","year":"2010"}
//Output example: 9.627692959
function getValue(jsonstat, query) {

    //1. {"concept":"UNR","area":"US","year":"2010"} ==> [0, 33, 7]
    var indices = getDimIndices(jsonstat, query);

    //2. [0, 33, 7] ==> 403
    var index = getValueIndex(jsonstat, indices);

    //3. 403 ==> 9.627692959
    return jsonstat.value[index];
}

//getDimIndices() converts a dimension/category object into an array of dimensions' indices.
//Input example: {"concept":"UNR","area":"US","year":"2010"}
//Output example: [0, 33, 7]
function getDimIndices(jsonstat, query) {
    var
        dim = jsonstat.dimension,
        ids = jsonstat.id || dim.id; //JSON-stat 2.0-ready

    for (var arr = [], i = 0, len = ids.length; i < len; i++) {
        arr[i] = getDimIndex(dim, ids[i], query[ids[i]]);
    }

    return arr;
}

//getValueIndex() converts an array of dimensions' indices into a numeric value index.
//Input example: [0, 33, 7]
//Output example: 403
function getValueIndex(jsonstat, indices) {
    var size = jsonstat.size || jsonstat.dimension.size; //JSON-stat 2.0-ready

    for (var i = 0, ndims = size.length, num = 0, mult = 1; i < ndims; i++) {
        mult *= (i > 0) ? size[ndims - i] : 1;
        num += mult * indices[ndims - i - 1];
    }

    return num;
}

//getDimIndex() converts a dimension ID string and a category ID string into the numeric index of that category in that dimension.
//Input example: "area", "US"
//Output example: 33
function getDimIndex(dim, name, value) {
    //In single category dimensions, "index" is optional
    if (!dim[name].category.index) {
        return 0;
    }

    var ndx = dim[name].category.index;

    if (name.toUpperCase().indexOf("TIME") == 0) {
        var res = dim[name].category
    }

    //"index" can be an object or an array
    if (Object.prototype.toString.call(ndx) !== "[object Array]") { //Object
        return ndx[value];
    } else { //Array
        return ndx.indexOf(value); //Polyfill required in old browsers
    }
}

//Validate
function JSONstat(jsonstat) {
    if (!jsonstat) {
        window.alert("Error: no response could be retrieved.");
        return NULL;
    }

    //If no "class", "bundle" response:
    //use the first dataset available
    //(assuming single dataset bundle response)
    //[Of course, it'd be better to add an argument
    //to the function to pass a dataset ID if
    //bundle responses must be properly supported.]
    if (!jsonstat.class) {
        jsonstat = jsonstat[Object.keys(jsonstat)[0]]; //Polyfill required in old browsers
    } else { //Verify it's a "dataset" response
        if (jsonstat.class !== "dataset") {
            window.alert("Error: response was not a JSON-stat bundle or dataset response.");
            return NULL;
        }
    }

    //Program requires "value" and "dimension" properties
    if (!jsonstat.value || !jsonstat.dimension) {
        window.alert("Error: response is not valid JSON-stat or does not contain required information.");
        return NULL;
    }

    return jsonstat;
}

//show() displays the query and its result.
function show(query, result) {
    var text = "";
    for (var prop in query) {
        text += prop + "=" + query[prop] + " ";
    }
    text += "==> " + result;

    document.getElementsByTagName("p")[0].innerHTML = text;
}

function addCharMorisArray(query, result) {
    //var 
    var text = "";
    var dataCharMoris = {
        "TIME_PERIOD": "",
        "OBS": 0
    }
    for (var prop in query) {
        if (prop == "TIME_PERIOD") {
            dataCharMoris.TIME_PERIOD = query[prop];
        }
    }
    dataCharMoris.OBS = result == undefined ? 0 : result;

    arrayCharMorisArray.push(dataCharMoris);
}


function buidChatBarMoris(arrayCharMorisArray) {

    var config = {
        data: arrayCharMorisArray, //data,
        xkey: 'TIME_PERIOD',
        barColors: ['#CF6F40'],
        ykeys: ['OBS'],
        labels: ['OBS'],
        fillOpacity: 0.6,
        hideHover: 'auto',
        resize: true,

    };

    config.element = 'barCharJsonStat';
    Morris.Bar(config);

}
 
Para descargar el ejemplo completo aquí .