API para Base de Datos Estadísticos

Se adjuntan códigos, manuales y documentación para el acceso a las series de la Base de Datos Estadísticos del Banco Central, utilizando Python, R y C#, así como la documentación de las APIs, junto a las condiciones de uso y formularios necesarios para acceder a este servicio.

Para todos los efectos de condiciones de uso, se utilizarán de forma indistinta API y Web services.


Uso del servicio

El Banco Central de Chile provee dos métodos en este servicio, uno que permite obtener los datos de las series estadísticas, y otro que entrega el catálogo de las series disponibles para ser consultadas.

Catálogo de series


Los métodos disponibles son:

    GetSeries: Permite obtener los datos de la serie.

    • URL: https://si3.bcentral.cl/SieteRestWS/SieteRestWS.ashx?user=123456789&pass=tuPassword&firstdate=YYYY-MM-DD&lastdate=YYYY-MM-DD&timeseries=codigodeserie&function=GetSeries

    • En la cual se consideran los parámetros:

      • user (obligatorio): completar nombre de usuario.
      • pass (obligatorio): completar contraseña.
      • firstdate (opcional): ingresar fecha desde la cual se requiere recoger datos. Si el parámetro no está presente, se recoge por defecto desde el primer dato disponible.
      • lastdate (opcional): ingresar fecha hasta la cual se requiere recoger datos. Si el parámetro no está presente, se recoge por defecto hasta el último dato disponible.
      • timeseries (obligatorio): incorporar código de la serie de tiempo a consultar.
      • function (opcional): completar valor GetSeries. De no completarse, GetSeries se usará por defecto.

    SearchSeries: Permite ver la lista de series disponibles por frecuencia y su metadata.

    • URL: https://si3.bcentral.cl/SieteRestWS/SieteRestWS.ashx?user=123456789&pass=tuPassword&frequency=frecuenciaelegida&function=SearchSeries

    • En la cual se consideran los parámetros:

      • user (obligatorio): completar nombre de usuario.
      • pass (obligatorio): completar contraseña.
      • frequency (obligatorio): completar con la frecuencia para la cual se quiere consultar el catálogo de series disponibles. Puede tomar los valores DAILY, MONTHLY, QUARTERLY o ANNUAL.
      • function (obligatorio): completar valor SearchSeries.

Las empresas, instituciones, organismos o personas naturales que deseen utilizar este servicio, deben completar el siguiente formulario y enviarlo a contacto_ws@bcentral.cl:

Formulario de registro y condiciones de uso.

Personas naturales deberán proveer identificación (cédula o pasaporte).

Carta solicitud de clave y declaración jurada (Certificado 1) sólo para empresas chilenas

Certificado de incumbencia (Certificado 2) sólo para empresas extranjeras

API RESTful - Python

Método GetSeries

Para consultar los datos disponibles de una serie a través de Python, sigue ejemplo para la serie de Tasa de política monetaria diaria (TPM). Utilizar las siguientes líneas de código:

import requests import pandas as pd url = "https://si3.bcentral.cl/SieteRestWS/SieteRestWS.ashx?user=123456789&pass=tuPassword&firstdate=2021-01-01&lastdate=2021-01-31&timeseries=F022.TPM.TIN.D001.NO.Z.D&function=GetSeries" response = requests.get(url) response = response.json() response = response["Series"]["Obs"] df_data = pd.DataFrame(response) df_data.head()

El objeto df_data es un dataframe con los datos consultados al servicio, con las columnas indexDateString (fecha), statusCode y value (métrica):


indexDateString statusCode value
0 04-01-2021 OK 0.5
1 05-01-2021 OK 0.5
2 06-01-2021 OK 0.5
3 07-01-2021 OK 0.5
4 08-01-2021 OK 0.5

El siguiente ejemplo despliega las series mensuales disponibles para la consulta SearchSeries:

import requests import pandas as pd url = "https://si3.bcentral.cl/SieteRestWS/SieteRestWS.ashx?user=123456789&pass=tuPassword&frequency=MONTHLY&function=SearchSeries" response = requests.get(url) response = response.json() response = response["SeriesInfos"] df_data = pd.DataFrame(response) df_data.head()

El objeto df_data es un dataframe con los datos consultados al servicio, con las columnas respectivas:

createdAt englishTitle firstObservation frequencyCode lastObservation seriesId spanishTitle updatedAt
0 08-07-2021 CPI Volatile Food, year to year percent changes 01-04-1990 MONTHLY 01-06-2021 G073.IPCAV.V12.2018.M IPC Alimentos volátiles, variación mismo perio... 08-07-2021
1 08-07-2021 CPI Volatile Food, monthly change 01-05-1989 MONTHLY 01-06-2021 G073.IPCAV.VAR.2018.M IPC Alimentos volátiles, variación mensual 08-07-2021
2 08-07-2021 CPI Goods without volatiles, year to year perc... 01-04-1990 MONTHLY 01-06-2021 G073.IPCBSV.V12.2018.M IPC Bienes sin volátiles, variación mismo peri... 08-07-2021
3 08-07-2021 CPI Goods without volatiles, monthly change 01-05-1989 MONTHLY 01-06-2021 G073.IPCBSV.VAR.2018.M IPC Bienes sin volátiles, variación mensual 08-07-2021
4 08-07-2021 CPI Volatile Energy, year to year percent changes 01-04-1990 MONTHLY 01-06-2021 G073.IPCEN.V12.2018.M IPC Energía volátiles, variación mismo periodo... 08-07-2021


API RESTful - R

Método GetSeries

Para consultar los datos disponibles de una serie a través de R, sigue ejemplo para la serie de Tasa de política monetaria diaria (TPM). Utilizar las siguientes líneas de código:

library("rjson") url="https://si3.bcentral.cl/SieteRestWS/SieteRestWS.ashx?user=123456789&pass=tuPassword&firstdate=2015-01-01&lastdate=2021-01-31&timeseries=F022.TPM.TIN.D001.NO.Z.D&function=GetSeries" json_data <- rjson::fromJSON(file=url) df_data <- as.data.frame(do.call(rbind, lapply(json_data$Series$Obs, as.vector))) head(df_data)

El objeto df_data es un dataframe con los datos consultados al servicio, con las columnas indexDateString (fecha), value (métrica) y statusCode:


indexDateString value statusCode 1 02-01-2015 3 OK 2 03-01-2015 NeuN ND 3 04-01-2015 NeuN ND 4 05-01-2015 3 OK 5 06-01-2015 3 OK 6 07-01-2015 3 OK

El siguiente ejemplo despliega las series mensuales disponibles para la consulta SearchSeries:

library("rjson") url="https://si3.bcentral.cl/SieteRestWS/SieteRestWS.ashx?user=123456789&pass=tuPassword&frequency=MONTHLY&function=SearchSeries" json_data <- rjson::fromJSON(file=url) df_data <- as.data.frame(do.call(rbind, lapply(json_data$SeriesInfos, as.vector))) head(df_data)

El objeto df_data es un dataframe con los datos consultados al servicio, con las columnas respectivas:

    
 
    seriesId			 frequencyCode
 1  G073.IPCAV.V12.2018.M       MONTHLY
 2  G073.IPCAV.VAR.2018.M       MONTHLY
 3  G073.IPCBSV.V12.2018.M      MONTHLY
 4  G073.IPCBSV.VAR.2018.M      MONTHLY
 5  G073.IPCEN.V12.2018.M       MONTHLY
 6  G073.IPCEN.VAR.2018.M       MONTHLY
    spanishTitle
 1  IPC Alimentos volátiles, variación mismo periodo año anterior
 2  IPC Alimentos volátiles, variación mensual
 3  IPC Bienes sin volátiles, variación mismo periodo año anterior
 4  IPC Bienes sin volátiles, variación mensual
 5  IPC Energía volátiles, variación mismo periodo año anterior
 6  IPC Energía volátiles, variación mensual
    englishTitle 							firstObservation
 1  CPI Volatile Food, year to year percent changes			01-04-1990
 2  CPI Volatile Food, monthly change					01-05-1989
 3  CPI Goods without volatiles, year to year percent changes		01-04-1990
 4  CPI Goods without volatiles, monthly change				01-05-1989
 5  CPI Volatile Energy, year to year percent changes			01-04-1990
 6  CPI Volatile Energy, monthly change					01-05-1989
		lastObservation  updatedAt  	createdAt
 1      01-06-2021 		08-07-2021 		08-07-2021
 2      01-06-2021 		08-07-2021 		08-07-2021
 3      01-06-2021 		08-07-2021 		08-07-2021
 4      01-06-2021 		08-07-2021 		08-07-2021
 5      01-06-2021 		08-07-2021 		08-07-2021
 6      01-06-2021 		08-07-2021 		08-07-2021
 


WS

API SOAP