A continuación se presentan ejemplos simples del uso de la API en distintos lenguajes de programación.
La librería bcchapi contiene clases y métodos para poder hacer uso de la API BDE desde Python. De esta manera se facilita la extracción de datos para desarrolladores y analistas que deseen automatizar sus procesos de una manera estandarizada. Los resultados principales de las funciones disponibles se entregan en un objeto DataFrame de Pandas, aunque también existen otras posibilidades de acuerdo a las necesidades del usuario.
La librería se puede instalar desde el Python Package Index:
pip install bcchapi
Adicionalmente se descargarán las dependencias de pandas y requests si no están instaladas en el ambiente utilizado.
El objeto principal de la librería es Siete, que permite crear cuadros estadísticos y buscar series disponibles. Para iniciarlo se deben incluir las credenciales del usuario o llamar a un archivo de texto que las contenga.
import bcchapi
# Incluyendo credenciales explícitamente
siete = bcchapi.Siete("usuario@ejemplo.com", "contraseña")
# O bien llamando a un archivo
siete = bcchapi.Siete(file="credenciales.txt")
El parámetro file debe llamar a un documento que contenga en su primera línea el usuario y en la segunda la contraseña.
En caso de que no conozcamos el código de la serie que se desea
consultar, este objeto permite utilizar el método buscar()
para encontrar las distintas series que contienen alguna palabra en
específico en su nombre. El resultado es un DataFrame de pandas:
siete.buscar("antofagasta")
# seriesId frequencyCode spanishTitle ...
# 0 F034.BESAN.IND.BCCH.2020.0.D DAILY Región de Antofagasta; Boletas electrónicas em... ...
# 1 F034.BESOAN.IND.BCCH.2020.0.D DAILY Región de Antofagasta; Boletas electrónicas em... ...
# 2 F022.CCPEAN.STO.Z.Z.Z.M MONTHLY Número de cuentas corrientes de personas natur... ...
# ... ... ... ... ...
# 167 F035.PIB.V12.R.CLP.2018.COM.Z.Z.02.0.A ANNUAL PIB Comercio, Región de Antofagasta, contribuc... ...
# 168 F035.PIB.V12.R.CLP.2018.RH.Z.Z.02.0.A ANNUAL PIB Restaurantes y hoteles, Región de Antofaga... ...
# 169 F035.PIB.V12.R.CLP.2018.Z.Z.Z.02.0.A ANNUAL PIB Región de Antofagasta, contribución porcen... ...
Habiendo encontrado las series que se desean consultar, el método
cuadro()
permite crear una tabla similar a las que se
pueden encontrar en la BDE:
siete.cuadro(
series=["F032.IMC.IND.Z.Z.EP18.Z.Z.0.M", "G073.IPC.IND.2018.M"],
nombres = ["imacec", "ipc"],
desde="2010-01-01",
hasta="2020-12-01",
variacion=12,
frecuencia="A",
observado={"imacec":np.mean, "ipc":"last"}
)
# imacec ipc
# 2010-12-31 NaN NaN
# 2011-12-31 0.062239 0.044377
# 2012-12-31 0.061553 0.014870
# 2013-12-31 0.033085 0.030144
# 2014-12-31 0.017926 0.046464
# 2015-12-31 0.021519 0.043785
# 2016-12-31 0.017530 0.027087
# 2017-12-31 0.013577 0.022696
# 2018-12-31 0.039900 0.025632
# 2019-12-31 0.007431 0.030013
# 2020-12-31 -0.061452 0.029729
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=usuario@ejemplo.com&pass=tuPassword&firstdate=2015-01-01&lastdate=2021-01-31×eries=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)
# 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=usuario@ejemplo.com&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)
# 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
Definición de WSDL, manual técnico para desarrolladores y aplicación de ejemplo disponibles.