Uso de API´s en R

Jeffry Bonilla

2024-11-17

¿Qué es una API?

Una interfaz de programación de aplicaciones, API, es un mecanismo que permite la comunicación e intercambio de información entre sistemas. (datos.gob.es, n.d.)

Es habitual usar APIs para acceder a datos meteorológicos, de transporte público o los producidos por sensores de monitorización urbanos, entre otros datos de alto valor. No obstante, las APIs son adecuadas para consumir todo tipo de datos de forma automática, siendo posible, además, ajustar la descarga exclusivamente a los datos requeridos. (datos.gob.es, n.d.)


Partes de una URL. “(WEB API)”

Una URL está compuesta de varias partes, unas son obligatorias y otras pueden ser opcionales. (Caballero 2022)

Ejemplo: “https://datos.bancomundial.org/indicador/NY.GDP.MKTP.KD.ZG?locations=SV

Tipos de API´s.

Segun el articulo de Amazon Web Services se puede establecer los principales tipos de APIS: (Services 2023)

API privadas: Estas son internas de una empresa y solo se utilizan para conectar sistemas y datos dentro de la empresa.

API públicas: Están abiertas al público y pueden cualquier persona puede utilizarlas. Puede haber o no alguna autorización y coste asociado a este tipo de API.

API de socios: Solo pueden acceder a ellas los desarrolladores externos autorizados para ayudar a las asociaciones entre empresas.

API compuestas: Estas combinan dos o más API diferentes para abordar requisitos o comportamientos complejos del sistema.

API´s para descargar datos económicos.

Una API en economía es una interfaz que permite la comunicación y el intercambio de datos entre diferentes sistemas o aplicaciones relacionados con información económica. Estas APIs proporcionan acceso directo a datos económicos, como indicadores macroeconómicos (PIB, inflación, empleo), precios de mercado, estadísticas de comercio exterior, entre otros. Los usuarios pueden hacer solicitudes a través de la API para obtener datos actualizados o históricos, lo que facilita la integración de esta información en análisis, informes y aplicaciones económicas, sin necesidad de intervención manual o descarga de grandes archivos.

Ejemplos de Organismos que poseen API´s en Ecocomía.

- World Bank API: https://datahelpdesk.worldbank.org/knowledgebase/articles/889392-developer-information-overview

- IMF API: https://www.imf.org/external/datamapper/api/help

- OECD API: https://data.oecd.org/api/

- Eurostat API: https://ec.europa.eu/eurostat/web/main/data/web-services

- UN Comtrade API: https://comtrade.un.org/data/Doc/api/

- FRED API: https://fred.stlouisfed.org/docs/api/fred/

Acceso a la API de La Organización para la Cooperación y el Desarrollo Económico (OCDE)

Para usar esta API, la OCDE brinda una documentación para conocer acerca de ella, y la mejor forma de hacer uso de esta es a través de la búsqueda manual de los indicadores (para ver la amplia cantidad de indicadores disponibles, puedes visitar: https://www.oecd.org/en/data/indicators.html?orderBy=mostRelevant&page=0). Una vez localizados, se debe ir al apartado “API para desarrolladores” y así obtener la URL para acceder a la base de datos del indicador buscado. (OCDE 2024)

Ejemplo: Accede a la base de datos de Indicadores Económicos Clave (KEI), que contiene estadísticas mensuales y trimestrales para todos los países miembros de la OCDE. Dentro de ella, se muestra el índice de producción de manufactura, muestra a partir de 2015 ¿cuál ha sido su comportamiendo?

# Es el enlace que genera la página de la OCDE.
url<- "https://sdmx.oecd.org/public/rest/data/OECD.SDD.STES,DSD_KEI@DF_KEI,/.M.PRVM.IX.C..?startPeriod=2000-01&dimensionAtObservation=AllDimensions"  
Volumen_Y_M<- readSDMX(url)
Volumen_Y_M<-Volumen_Y_M %>% as.tibble()
Volumen_Y_M %>%
  arrange(desc(TIME_PERIOD)) %>% 
  head(10) %>% 
  kable(caption = "Indice de Volumen de la Producción de manufactura de algunos paises de la OCDE") %>%  
  kable_classic(html_font = "Times New Roman", font_size = 14) %>% 
  add_footnote(label="Tomado de la API de la OCDE",
               notation="symbol") %>%  kable_styling() 
Indice de Volumen de la Producción de manufactura de algunos paises de la OCDE
TIME_PERIOD REF_AREA FREQ MEASURE UNIT_MEASURE ACTIVITY ADJUSTMENT TRANSFORMATION obsValue UNIT_MULT DECIMALS BASE_PER OBS_STATUS
2024-09 BEL M PRVM IX C Y _Z 128.50802 0 1 2015 A
2024-09 CHL M PRVM IX C Y _Z 103.73496 0 1 2015 A
2024-09 CZE M PRVM IX C Y _Z 116.00306 0 1 2015 A
2024-09 DNK M PRVM IX C Y _Z 163.04746 0 1 2015 A
2024-09 EST M PRVM IX C Y _Z 111.27587 0 1 2015 A
2024-09 FIN M PRVM IX C Y _Z 115.75711 0 1 2015 A
2024-09 DEU M PRVM IX C Y _Z 92.20000 0 1 2015 A
2024-09 FRA M PRVM IX C Y _Z 99.54865 0 1 2015 A
2024-09 HUN M PRVM IX C Y _Z 114.24019 0 1 2015 A
2024-09 ITA M PRVM IX C Y _Z 100.29185 0 1 2015 A
* Tomado de la API de la OCDE
## Ejemplificar su uso.
Grafica<-Volumen_Y_M %>% 
  filter(REF_AREA%in%c("KOR", "USA","FRA","BRA"),
         TIME_PERIOD>2013) %>% 
  select(TIME_PERIOD,REF_AREA,obsValue) %>% 
  group_by(TIME_PERIOD,REF_AREA) %>% 
  pivot_wider(names_from = REF_AREA, values_from = obsValue) -> Comparativa1
Comparativa1[,-1]%>% ts(start = c(2013,1), frequency = 12 ) ->`Indice de Volumen de la Producción de manufactura de algunos paises de la OCDE`
ts_plot(`Indice de Volumen de la Producción de manufactura de algunos paises de la OCDE`)

Acceso a la API de UN COMTRADE (comtradr).

Para poder acceder a esta API, es necesario registrarse como usuario en https://comtradeplus.un.org/, donde se puede acceder mediante un correo de Google y así acceder a “Mi portal API”. Ahí, se puede suscribir al acceso a la API para obtener el “TOKEN” (sin este no se puede hacer uso de la API). Cabe mencionar que esta API tiene limitaciones para los usuarios sin un plan de pago, ya que existen restricciones de acceso y descarga de datos. Para ver más detalles sobre estas limitaciones en las suscripciones, se puede visitar: https://uncomtrade.org/docs/subscriptions/. También existe una guia para usar la Librería (Bochtler 2024)


Ejemplo No.1: Accede y descarga los datos de exportaciones mensuales totales para 2023 de los 5 países de Centroamerica con el mundo.

#install.packages("comtradr") #Para instalar la librería.
library(comtradr)
#Sys.setenv('COMTRADE_PRIMARY' = 'clave') # Se ingresa la KEY que brinda el sitio web de UNcomtrade
Exportaciones_CA<-ct_get_data(commodity_code = ,
                              reporter = c("SLV","HND","GTM","CRI","NIC","PAN"), 
                              partner = c("World"),
                              frequency =  "M",
                              flow_direction = "export",
                              start_date  = 2023,
                              end_date = 2023)
Exportaciones_CA<-Exportaciones_CA %>% select(Mes=refMonth,Year=refYear,ISO=reporterISO,Country=reporterDesc,Socio=partnerDesc,Valor=fobvalue) %>%  
  mutate(Valor=round((Valor/1e6),2)) %>% 
kable(caption = "Exportaciones de los Países de Centroamérica con el resto del mundo en MM USD ") %>%
  kable_classic(html_font = "Times New Roman", font_size = 14) %>% 
  add_footnote(label="Tomado de la API de Uncomtrade",
               notation="symbol") %>%  kable_styling() 
Exportaciones_CA
Exportaciones de los Países de Centroamérica con el resto del mundo en MM USD
Mes Year ISO Country Socio Valor
1 2023 SLV El Salvador World 522.55
1 2023 GTM Guatemala World 1156.94
1 2023 NIC Nicaragua World 642.51
1 2023 PAN Panama World 258.43
2 2023 SLV El Salvador World 582.92
2 2023 GTM Guatemala World 1248.42
2 2023 NIC Nicaragua World 602.49
2 2023 PAN Panama World 145.15
3 2023 SLV El Salvador World 683.74
3 2023 GTM Guatemala World 1454.99
3 2023 NIC Nicaragua World 730.95
3 2023 PAN Panama World 379.97
4 2023 SLV El Salvador World 471.52
4 2023 GTM Guatemala World 1229.85
4 2023 NIC Nicaragua World 602.09
4 2023 PAN Panama World 322.95
5 2023 SLV El Salvador World 589.65
5 2023 GTM Guatemala World 1226.19
5 2023 NIC Nicaragua World 670.01
5 2023 PAN Panama World 309.38
6 2023 SLV El Salvador World 588.90
6 2023 GTM Guatemala World 1237.26
6 2023 NIC Nicaragua World 659.84
6 2023 PAN Panama World 343.44
7 2023 SLV El Salvador World 568.71
7 2023 GTM Guatemala World 1195.11
7 2023 NIC Nicaragua World 649.75
7 2023 PAN Panama World 438.24
8 2023 SLV El Salvador World 539.60
8 2023 GTM Guatemala World 1129.31
8 2023 NIC Nicaragua World 639.20
8 2023 PAN Panama World 351.12
9 2023 SLV El Salvador World 502.44
9 2023 GTM Guatemala World 1148.40
9 2023 NIC Nicaragua World 561.93
9 2023 PAN Panama World 378.00
10 2023 SLV El Salvador World 495.80
10 2023 GTM Guatemala World 1004.21
10 2023 NIC Nicaragua World 563.15
10 2023 PAN Panama World 319.08
11 2023 SLV El Salvador World 503.15
11 2023 GTM Guatemala World 1063.99
11 2023 NIC Nicaragua World 562.25
11 2023 PAN Panama World 50.24
12 2023 SLV El Salvador World 449.11
12 2023 GTM Guatemala World 1166.37
12 2023 NIC Nicaragua World 494.32
12 2023 PAN Panama World 70.96
* Tomado de la API de Uncomtrade


Ejemplo No. 2: A nivel del capítulo arancelario “87” (vehículos de motor, incluidos los vehículos de turismo y otros vehículos diseñados principalmente para el transporte de personas, así como los vehículos de carga), ¿cuánto exportó Japón a Estados Unidos en el período 2020-2023?

Paises_<-country_codes # Muestra los Países
Catalogo_Productos<-ct_get_ref_table("HS") # Brinda catalogo de los productos y servicios según se especifique. 
Posibles_productos <- ct_commodity_lookup("Maize", return_code = TRUE, return_char = TRUE) # Busca todo los relacionado a la mercancía especificada.

# Buscar todos los códigos de productos relacionados con el Vehículos
Car_datos <- ct_commodity_lookup("Vehicles", return_code = TRUE, return_char = TRUE) 

# Realizar la consulta a la API para obtener datos de exportación de Vehículos
datos_Car <- ct_get_data(
  reporter = "JPN",  
  flow_direction = c("export"),
  partner = "USA",
  start_date = 2020,  
  end_date = 2023,
  frequency = "A",    
  commodity_code = Car_datos)

datos_Car<-datos_Car %>% select(Year=refYear,
                                ISO=reporterISO,
                                Country=reporterDesc,
                                Socio=partnerDesc,
                                Nivel_Agregacion=aggrLevel,
                                Codigo_Arancelario=cmdCode,
                                Descripcion=cmdDesc,
                                Valor=fobvalue) %>% 
  filter(Nivel_Agregacion==2) %>% 
  mutate(Valor=round((Valor/1e6),2)) %>% 
kable(caption = "Exportaciones de Japón del Capitulo Arancelario 87 hacia Estados Unidos en MM USD") %>%
  kable_classic(html_font = "Times New Roman", font_size = 14) %>% 
  add_footnote(label="Tomado de la API de Uncomtrade",
               notation="symbol") %>%  kable_styling() 
datos_Car
Exportaciones de Japón del Capitulo Arancelario 87 hacia Estados Unidos en MM USD
Year ISO Country Socio Nivel_Agregacion Codigo_Arancelario Descripcion Valor
2020 JPN Japan USA 2 87 Vehicles; other than railway or tramway rolling stock, and parts and accessories thereof 40991.07
2021 JPN Japan USA 2 87 Vehicles; other than railway or tramway rolling stock, and parts and accessories thereof 43653.34
2022 JPN Japan USA 2 87 Vehicles; other than railway or tramway rolling stock, and parts and accessories thereof 43476.22
2023 JPN Japan USA 2 87 Vehicles; other than railway or tramway rolling stock, and parts and accessories thereof 51660.88
* Tomado de la API de Uncomtrade

Acceso a la API de Eurostats (eurostat).

El acceso a esta API es facilitado por la librería “eurostat”, se puede destacar la existencía de 11,521 conjunto de datos, para poder profundizar sobre las herramientas y usos de esta API, consultar:(eurostat 2024) https://ropengov.github.io/eurostat/articles/eurostat_tutorial.html#r-tools-for-eurostat-open-data

Ejemplo: Accede dentro de los datasets disponibles en la API al “Consumo Final del Gobierno Central” de los siguientes paises de la UE (Francia: FR, España: ES , Dinamarca: DK, Alemania: DE para el año 2023

# install.packages("eurostat") Para instalar la librería.
library(eurostat)

Datasets_Eurostats<-get_eurostat_toc() # Permite conocer los conjutos de datos existentes en la API.
Datasets_Eurostats%>% head(10) %>% 
  filter(values>0) %>% 
  #filter(title=="Final consumption expenditure of general government")
  kable(caption = "Datasets disponibles en la API de Eurostats") %>%  
  kable_classic(html_font = "Times New Roman", font_size = 14) %>% 
  add_footnote(label="Tomado de la API de Eurostats",
               notation="symbol") %>%  kable_styling() 
Datasets disponibles en la API de Eurostats
title code type last.update.of.data last.table.structure.change data.start data.end values hierarchy
Current account - quarterly data ei_bpm6ca_q table 14.11.2024 14.11.2024 1991-Q1 2024-Q2 281865 4
Financial account - quarterly data ei_bpm6fa_q table 14.11.2024 14.11.2024 1991-Q1 2024-Q2 50557 4
Current account - monthly data ei_bpm6ca_m table 21.10.2024 21.10.2024 1991-01 2024-08 232014 4
Financial account - monthly data ei_bpm6fa_m table 21.10.2024 21.10.2024 1991-01 2024-08 76393 4
International investment position - quarterly data ei_bpm6iip_q table 15.11.2024 15.11.2024 1992-Q4 2024-Q2 62093 4
* Tomado de la API de Eurostats
# Acceder al Datasets que contiene el consumo Final del Gobierno Central.
Consumo_GC<- get_eurostat(id="tec00010") 
Consumo_GC<-Consumo_GC %>% 
  filter(TIME_PERIOD=="2023-01-01",
         geo%in%c("FR", "ES", "DK", "DE"))

Consumo_GC %>% kable(caption = "Datasets disponibles en la API de Eurostats") %>%  
  kable_classic(html_font = "Times New Roman", font_size = 14) %>% 
  add_footnote(label="Tomado de la API de Eurostats",
               notation="symbol") %>%  kable_styling() 
Datasets disponibles en la API de Eurostats
freq na_item unit geo TIME_PERIOD values
A P3_S13 CP_MEUR DE 2023-01-01 905151.0
A P3_S13 CP_MEUR DK 2023-01-01 85415.2
A P3_S13 CP_MEUR ES 2023-01-01 294321.0
A P3_S13 CP_MEUR FR 2023-01-01 678644.0
A P3_S13 PC_GDP DE 2023-01-01 21.6
A P3_S13 PC_GDP DK 2023-01-01 22.7
A P3_S13 PC_GDP ES 2023-01-01 19.6
A P3_S13 PC_GDP FR 2023-01-01 24.0
* Tomado de la API de Eurostats
Diccionario<-get_eurostat_dic(dictname = "unit") # CP_MEUR = "Current prices, million euro" y PC_GDP = "Percentage of gross domestic product (GDP)"
Diccionario %>% 
  head(10) %>% 
  kable(caption = "Diccionario de los valores de las variables") %>%  
  kable_classic(html_font = "Times New Roman", font_size = 14) %>% 
  add_footnote(label="Tomado de la API de Eurostats",
               notation="symbol") %>%  kable_styling()
Diccionario de los valores de las variables
code_name full_name
TOTAL Total
NR Number
NR_HAB Number per inhabitant
THS Thousand
MIO Million
BN Billion
CT Euro cent
EUR Euro
THS_EUR Thousand euro
MIO_EUR Million euro
* Tomado de la API de Eurostats

Acceso a la API Fondo Monetario Internacional (imfr).

El uso de esta API es facilitado a través de la librería (imfr), la cual se puede descargar desde el siguiente enlace: https://cran.r-project.org/src/contrib/Archive/imfr/, luego instalarla en ‘Package Archive File’ y con ello ya poder acceder a la API. En cuanto a su uso, también se puede utilizar la guía que brinda el FMI para acceder (FMI, n.d.).

Ejemplo: Accede a los datos de la API del FMI para obtener el ‘Índice de precios al consumidor (PCPI_IX), todos los artículos (PCPI_IX), variación porcentual, año anterior (PCPI_PC_CP_A_PT)’ de todos los países disponibles para el año 2024.

library(imfr)
Dataset_FMI<-imf_ids() ## Brinda los datasets disponibles
##   |                                                                              |                                                                      |   0%  |                                                                              |======================================================================| 100%
Dataset_FMI%>% 
  head(10) %>% 
  kable(caption = "Datasets disponibles en la API del IMF") %>%  
  kable_classic(html_font = "Times New Roman", font_size = 14) %>% 
  add_footnote(label="Tomado de la API del IMF",
               notation="symbol") %>%  kable_styling() 
Datasets disponibles en la API del IMF
database_id description
BOP_2017M06 Balance of Payments (BOP), 2017 M06
BOP_2020M3 Balance of Payments (BOP), 2020 M03
BOP_2017M11 Balance of Payments (BOP), 2017 M11
DOT_2020Q1 Direction of Trade Statistics (DOTS), 2020 Q1
GFSMAB2016 Government Finance Statistics Yearbook (GFSY 2016), Main Aggregates and Balances
BOP_2019M12 Balance of Payments (BOP), 2019 M12
GFSYFALCS2014 Government Finance Statistics Yearbook (GFSY 2014), Financial Assets and Liabilities by Counterpart Sector
GFSE2016 Government Finance Statistics Yearbook (GFSY 2016), Expense
FM201510 Fiscal Monitor (FM) October 2015
GFSIBS2016 Government Finance Statistics Yearbook (GFSY 2016), Integrated Balance Sheet (Stock Positions and Flows in Assets and Liabilities)
* Tomado de la API del IMF
data(codelist) 
IMF_CPI_codelist<- imf_codelist(database_id= "CPI") # Brinda Descripción de los campos del dataset.
##   |                                                                              |                                                                      |   0%  |                                                                              |=========                                                             |  13%  |                                                                              |======================================================================| 100%
IMF_CPI_codelist %>% 
  head(10) %>% 
  kable(caption = "Datasets disponibles en la API del IMF") %>%  
  kable_classic(html_font = "Times New Roman", font_size = 14) %>% 
  add_footnote(label="Tomado de la API del IMF",
               notation="symbol") %>%  kable_styling() 
Datasets disponibles en la API del IMF
codelist description
CL_UNIT_MULT Scale
CL_FREQ Frequency
CL_AREA_CPI Geographical Areas
CL_INDICATOR_CPI Indicator
CL_TIME_FORMAT Time format
* Tomado de la API del IMF
# Brindar los indicadores disponibles dentro del dataset selecionado.
IMF_CPI_indicadores <- imf_codes(codelist = "CL_INDICATOR_CPI") 
##   |                                                                              |                                                                      |   0%  |                                                                              |======================================================================| 100%
IMF_CPI_indicadores%>% 
  head(10) %>% 
  kable(caption = "Indicadores disponibles en el dataset seleccionado") %>%  
  kable_classic(html_font = "Times New Roman", font_size = 14) %>% 
  add_footnote(label="Tomado de la API del IMF",
               notation="symbol") %>%  kable_styling() 
Indicadores disponibles en el dataset seleccionado
codes description
PCPI_IX Consumer Price Index, All items
PCPIF_IX Food and non-alcoholic beverages
PCPIFBT_IX Alcoholic Beverages, Tobacco, and Narcotics
PCPIA_IX Clothing and footwear
PCPIH_IX Housing, Water, Electricity, Gas and Other Fuels
PCPIHO_IX Furnishings, household equipment and routine household maintenance
PCPIM_IX Health
PCPIT_IX Transport
PCPIEC_IX Communication
PCPIR_IX Recreation and culture
* Tomado de la API del IMF
# Realiza la consulta a la API del indicador específico.
Consumer_price_index<-imf_data(database_id = "CPI",indicator = c("PCPI_PC_CP_A_PT","PCPI_IX"), country = 'All', freq = 'M', start = 2020 , end = current_year()) 
## Downloading: 41 kB     Downloading: 41 kB     Downloading: 49 kB     Downloading: 49 kB     Downloading: 49 kB     Downloading: 49 kB     Downloading: 47 kB     Downloading: 47 kB     Downloading: 53 kB     Downloading: 53 kB     Downloading: 53 kB     Downloading: 53 kB     Downloading: 30 kB     Downloading: 30 kB     Downloading: 52 kB     Downloading: 52 kB     Downloading: 53 kB     Downloading: 53 kB     Downloading: 53 kB     Downloading: 53 kB     Downloading: 48 kB     Downloading: 48 kB     Downloading: 48 kB     Downloading: 48 kB       |                                                                              |                                                                      |   0%  |                                                                              |======================================================================| 100%
## Downloading: 16 kB     Downloading: 16 kB     Downloading: 17 kB     Downloading: 17 kB     Downloading: 34 kB     Downloading: 34 kB     Downloading: 43 kB     Downloading: 43 kB     Downloading: 43 kB     Downloading: 43 kB     Downloading: 3.9 kB     Downloading: 3.9 kB     Downloading: 16 kB     Downloading: 16 kB     Downloading: 17 kB     Downloading: 17 kB     Downloading: 35 kB     Downloading: 35 kB     Downloading: 43 kB     Downloading: 43 kB     Downloading: 43 kB     Downloading: 43 kB     Downloading: 47 kB     Downloading: 47 kB     Downloading: 47 kB     Downloading: 47 kB     Downloading: 18 kB     Downloading: 18 kB     Downloading: 37 kB     Downloading: 37 kB     Downloading: 41 kB     Downloading: 41 kB     Downloading: 41 kB     Downloading: 41 kB       |                                                                              |                                                                      |   0%  |                                                                              |======================================================================| 100%
Consumer_price_index%>% 
  arrange(desc(year_month)) %>% 
  head(10) %>% 
  kable(caption = "Índice de precios al consumidor, todos los artículos, variación porcentual, año anterior") %>%  
  kable_classic(html_font = "Times New Roman", font_size = 14) %>% 
  add_footnote(label="Tomado de la API del IMF",
               notation="symbol") %>%  kable_styling() 
Índice de precios al consumidor, todos los artículos, variación porcentual, año anterior
iso2c year_month PCPI_PC_CP_A_PT PCPI_IX
AM 2024-10 0.6059405 153.8891
BE 2024-10 3.2019896 132.7900
BR 2024-10 4.7581118 7036.3300
CH 2024-10 0.6229607 107.0741
CZ 2024-10 2.8359217 152.3000
DE 2024-10 2.0373514 120.2000
DK 2024-10 1.6142736 119.6000
DO 2024-10 3.1582902 129.6056
EE 2024-10 4.0767386 303.8000
GR 2024-10 2.3770128 119.7852
* Tomado de la API del IMF
# Ejemplo de su uso: variación porcentual de:Argentina (AR), Sudán del Sur (SS), Turquía (TR), Sierra Leona (SL), El Salvador (SV), Estados Unidos (US).
Grafica2<-Consumer_price_index%>% 
  filter(iso2c%in%c("AR", "SS", "TR", "SL", "SV", "US")) %>% 
  select(year_month,iso2c,PCPI_PC_CP_A_PT) %>% 
  group_by(year_month,iso2c) %>% 
  pivot_wider(names_from = iso2c, values_from = PCPI_PC_CP_A_PT) -> Comparativa2
Comparativa2[,-1]%>% ts(start = c(2020,1), frequency = 12 ) ->`Índice de precios al consumidor, todos los artículos, variación porcentual, año anterior`
ts_plot(`Índice de precios al consumidor, todos los artículos, variación porcentual, año anterior`)

Acceso a la API Banco Mundial (wbstats).

El acceso a la API es facilitado por la librería “wbstats”, en la cual están almacenados alrededor de 23,678 indicadores que pueden ser consultados y descargados.

Ejemplo No.1: Accede a la API del Banco Mundial y obten los datos del “Crecimiento del PIB per cápita (% anual)” (NY.GDP.PCAP.KD.ZG) de los países Centroamerica, China y Estados Unidos” en los ultimos 10 años.

#install.packages("wbstats")
library(wbstats)

# Para concer los indicadores disponibles en la API.
indicadores<-wb_indicators(lang = "es") 
indicadores %>% 
  head(10) %>% 
  kable(caption = "Indicadores disponibles en la API del Banco Mundial") %>%  
  kable_classic(html_font = "Times New Roman", font_size = 14) %>% 
  add_footnote(label="Tomado de la API del BM",
               notation="symbol") %>%  kable_styling() 
Indicadores disponibles en la API del Banco Mundial
indicator_id indicator unit indicator_desc source_org topics source_id source
1.0.HCount.1.90usd Tasa de Incidencia de la Pobreza ($1.90 al día) NA Tasa de Incidencia de la Pobreza mide la proporción de la población con ingreso per cápita diario (en PPA de 2011) por debajo de la línea de pobreza. Tabulaciones del LAC Equity Lab con datos de SEDLAC (CEDLAS y el Banco Mundial) 11 , Pobreza 37 NA
1.0.HCount.2.5usd Tasa de Incidencia de la Pobreza ($2.50 al día) NA Tasa de Incidencia de la Pobreza mide la proporción de la población con ingreso per cápita diario (en PPA de 2005) por debajo de la línea de pobreza. Tabulaciones del LAC Equity Lab con datos de SEDLAC (CEDLAS y el Banco Mundial) 11 , Pobreza 37 NA
1.0.HCount.Mid10to50 Tasa de Incidencia de la Clase Media ($10-50 al día) NA Tasa de Incidencia de la Pobreza mide la proporción de la población con ingreso per cápita diario (en PPA de 2005) por debajo de la línea de pobreza. Tabulaciones del LAC Equity Lab con datos de SEDLAC (CEDLAS y el Banco Mundial) 11 , Pobreza 37 NA
1.0.HCount.Ofcl Tasa Oficial de la Pobreza Moderada-Nacional NA Tasa de Incidencia de la Pobreza mide la proporción de la población con ingreso per cápita diario por debajo de la línea de pobreza desarrollada por cada país. Tabulaciones del LAC Equity Lab de los datos de las Oficinas Nacionales de Estadística 11 , Pobreza 37 NA
1.0.HCount.Poor4uds Tasa de Incidencia de la Pobreza ($4 al día) NA Tasa de Incidencia de la Pobreza mide la proporción de la población con ingreso per cápita diario (en PPA de 2005) por debajo de la línea de pobreza. Tabulaciones del LAC Equity Lab con datos de SEDLAC (CEDLAS y el Banco Mundial) 11 , Pobreza 37 NA
1.0.HCount.Vul4to10 Tasa de incidencia de población Vulnerable ($4-10 al día) NA Tasa de Incidencia de la Pobreza mide la proporción de la población con ingreso per cápita diario (en PPA de 2005) por debajo de la línea de pobreza. Tabulaciones del LAC Equity Lab con datos de SEDLAC (CEDLAS y el Banco Mundial) 11 , Pobreza 37 NA
1.0.PGap.1.90usd Brecha de Pobreza ($1.90 al día) NA La Brecha de Pobreza captura el déficit del ingreso o consumo promedio agregado relativo a la línea de pobreza a través de toda la población. Mide el total de recursos necesarios para traer a todos os pobres al nivel de la línea de pobreza (promediado sobre la población total). Tabulaciones del LAC Equity Lab con datos de SEDLAC (CEDLAS y el Banco Mundial) 11 , Pobreza 37 NA
1.0.PGap.2.5usd Brecha de Pobreza ($2.50 al día) NA La Brecha de Pobreza captura el déficit del ingreso o consumo promedio agregado relativo a la línea de pobreza a través de toda la población. Mide el total de recursos necesarios para traer a todos os pobres al nivel de la línea de pobreza (promediado sobre la población total). Tabulaciones del LAC Equity Lab con datos de SEDLAC (CEDLAS y el Banco Mundial) 11 , Pobreza 37 NA
1.0.PGap.Poor4uds Brecha de Pobreza ($4 al día) NA La Brecha de Pobreza captura el déficit del ingreso o consumo promedio agregado relativo a la línea de pobreza a través de toda la población. Mide el total de recursos necesarios para traer a todos os pobres al nivel de la línea de pobreza (promediado sobre la población total). Tabulaciones del LAC Equity Lab con datos de SEDLAC (CEDLAS y el Banco Mundial) 11 , Pobreza 37 NA
1.0.PSev.1.90usd Severidad de la Pobreza ($1.90 al día) NA El índice de severidad de la pobreza combina información tanto de pobreza como de desigualdad entre los pobres, al promediar los cuadrados de las brechas de pobreza relativas a la línea de pobreza Tabulaciones del LAC Equity Lab con datos de SEDLAC (CEDLAS y el Banco Mundial) 11 , Pobreza 37 NA
* Tomado de la API del BM
# Consulta a la API
PIB_Percapita<-wb_data(indicator = "NY.GDP.PCAP.KD.ZG",country = c("SLV", "GTM", "HND", "NIC", "CRI", "PAN", "CHN", "USA"),start_date = 2014, end_date = 2023,lang = "es")
PIB_Percapita %>% 
  head(10) %>% 
  kable(caption = "Crecimiento del PIB per cápita (% anual)") %>%  
  kable_classic(html_font = "Times New Roman", font_size = 14) %>% 
  add_footnote(label="Tomado de la API del BM",
               notation="symbol") %>%  kable_styling() 
Crecimiento del PIB per cápita (% anual)
iso2c iso3c country date NY.GDP.PCAP.KD.ZG unit obs_status footnote last_updated
CN CHN China 2014 6.750760 NA NA NA 2024-11-13
CN CHN China 2015 6.420737 NA NA NA 2024-11-13
CN CHN China 2016 6.238215 NA NA NA 2024-11-13
CN CHN China 2017 6.301863 NA NA NA 2024-11-13
CN CHN China 2018 6.251701 NA NA NA 2024-11-13
CN CHN China 2019 5.575317 NA NA NA 2024-11-13
CN CHN China 2020 1.995558 NA NA NA 2024-11-13
CN CHN China 2021 8.351720 NA NA NA 2024-11-13
CN CHN China 2022 3.002576 NA NA NA 2024-11-13
CN CHN China 2023 5.309248 NA NA NA 2024-11-13
* Tomado de la API del BM


Ejemplo No.2: A través de la API del BM accede a datos de El Salvador y presenta un indicador por cada tema: Economico, Educación, Salud, Desigualdad y Ambiental, para el periodo del 2015-2019.

indicadores %>% filter(indicator_id%in% c("NE.GDI.TOTL.ZS","SE.ADT.1524.LT.ZS","SH.MED.PHYS.ZS", "SI.POV.GINI")) %>% 
  kable(caption = "Descripción de los Indicadores") %>%  
  kable_classic(html_font = "Times New Roman", font_size = 14) %>% 
  add_footnote(label="Tomado de la API del BM",
               notation="symbol") %>%  kable_styling() 
Descripción de los Indicadores
indicator_id indicator unit indicator_desc source_org topics source_id source
NE.GDI.TOTL.ZS Formación bruta de capital (% del PIB) NA La formación bruta de capital (anteriormente, inversión interna bruta) comprende los desembolsos en concepto de adiciones a los activos fijos de la economía más las variaciones netas en el nivel de los inventarios. Los activos fijos incluyen los mejoramientos de terrenos (cercas, zanjas, drenajes, etc.); las adquisiciones de planta, maquinaria y equipo, y la construcción de carreteras, ferrocarriles y obras afines, incluidas las escuelas, oficinas, hospitales, viviendas residenciales privadas, y los edificios comerciales e industriales. Los inventarios son las existencias de bienes que las empresas mantienen para hacer frente a fluctuaciones temporales o inesperadas de la producción o las ventas, y los “productos en elaboración”. De acuerdo con el SCN de 1993, las adquisiciones netas de objetos de valor también constituyen formación de capital. Datos sobre las cuentas nacionales del Banco Mundial y archivos de datos sobre cuentas nacionales de la OCDE. 3 , Economía y crecimiento 2 Indicadores del desarrollo mundial
SE.ADT.1524.LT.ZS Tasa de alfabetización, total de jóvenes (% de personas entre 15 y 24 años) NA Tasa de alfabetización juvenil (15-24) (%), total. Corresponde al número de personas de entre 15 y 24 años que son capaces de leer y escribir, con entendimiento, una proposición simple y breve sobre su vida diaria, dividido por la población en dicho grupo etáreo. En general, el término “alfabetización” incluye también las habilidades aritméticas, es decir la capacidad de hacer cálculos matemáticos sencillos. Instituto de Estadística de la Organización de las Naciones Unidas para la Educación, la Ciencia y la Cultura (UNESCO). 4 , Educación 2 Indicadores del desarrollo mundial
SH.MED.PHYS.ZS Médicos (por cada 1.000 personas) NA Los médicos incluyen médicos generalistas y especialistas. Estadísticas mundiales sobre el personal sanitario de la Organización Mundial de la Salud, OCDE, complementadas con datos de los países. 8 , Salud 2 Indicadores del desarrollo mundial
SI.POV.GINI Índice de Gini NA El índice de Gini mide el grado en que la distribución del ingreso (o, en algunos casos, el gasto de consumo) entre individuos u hogares dentro de una economía se desvía de una distribución perfectamente equitativa. Una curva de Lorenz traza los porcentajes acumulados del ingreso total recibido frente al número acumulado de beneficiarios, comenzando con el individuo o el hogar más pobre. El índice de Gini mide el área entre la curva de Lorenz y una línea hipotética de igualdad absoluta, expresada como porcentaje del área máxima bajo la línea. Así, un índice de Gini de 0 representa una igualdad perfecta, mientras que un índice de 100 implica una desigualdad perfecta. Banco Mundial, Plataforma sobre Pobreza y Desigualdad. Los datos se basan en datos de encuestas primarias de hogares obtenidos de agencias estadísticas gubernamentales y departamentos nacionales del Banco Mundial. Los datos de las economías de altos ingresos provienen principalmente de la base de datos del Estudio de Ingresos de Luxemburgo. Para obtener más información y metodología, consulte http://pip.worldbank.org. 11 , Pobreza 2 Indicadores del desarrollo mundial
* Tomado de la API del BM
Seccion_indicadores<-wb_data(indicator = c("NE.GDI.TOTL.ZS","SE.ADT.1524.LT.ZS","SH.MED.PHYS.ZS", "SI.POV.GINI"),country = "SLV",start_date = 1990,end_date = 2019 ,lang = "es")
Seccion_indicadores %>% 
  head(10) %>% 
  kable(caption = "Bateria de Indicadores") %>%  
  kable_classic(html_font = "Times New Roman", font_size = 14) %>% 
  add_footnote(label="Tomado de la API del BM",
               notation="symbol") %>%  kable_styling() 
Bateria de Indicadores
iso2c iso3c country date NE.GDI.TOTL.ZS SE.ADT.1524.LT.ZS SH.MED.PHYS.ZS SI.POV.GINI
SV SLV El Salvador 1990 13.81290 NA 0.840 NA
SV SLV El Salvador 1991 15.45549 NA NA 53.8
SV SLV El Salvador 1992 18.83297 85 NA NA
SV SLV El Salvador 1993 18.95763 NA 0.660 NA
SV SLV El Salvador 1994 20.35812 NA NA NA
SV SLV El Salvador 1995 20.94422 NA 0.910 49.8
SV SLV El Salvador 1996 15.35496 NA NA 51.0
SV SLV El Salvador 1997 15.08320 NA 1.071 NA
SV SLV El Salvador 1998 18.65106 NA NA 54.4
SV SLV El Salvador 1999 17.30148 NA 1.227 52.1
* Tomado de la API del BM

Bibliografia

Bochtler, P.; 2024. “Interface with the United Nations Comtrade API.” https://cran.r-project.org/web/packages/comtradr/comtradr.pdf.
Caballero, Alberto Ramírez. 2022. “APRENDE a TRABAJAR CON WEB APIS.” https://cosasdedevs.com/static/dist/files/guia-para-aprender-a-trabajar-con-apis-version-1.pdf.
datos.gob.es. n.d. “Guía Práctica Para La Publicación de Datos Abiertos Usando APIs.” https://datos.gob.es/sites/default/files/doc/file/guia_publicacion_apis.pdf.
eurostat. 2024. “Tutorial for the Eurostat r Package.” https://ropengov.github.io/eurostat/articles/eurostat_tutorial.html.
FMI. n.d. “How to Use the API (Python and r).” Statistics Department. https://datahelp.imf.org/knowledgebase/articles/1968408-how-to-use-the-api-python-and-r.
OCDE. 2024. “OECD Data API Documentation.” https://gitlab.algobank.oecd.org/public-documentation/dotstat-migration/-/raw/main/OECD_Data_API_documentation.pdf.
Services, Amazon Web. 2023. “¿Qué Es Una Interfaz de Programación de Aplicaciones (API)?” https://aws.amazon.com/es/what-is/api/.

h1,h2,h3,h4{
    font-size: 20px;
    font-weight: bold;
    font-family: 'Times New Roman', Times, serif;
    line-height:2;
}
h1 {
   
}
h4{
    text-align:justify;
    font-weight: bold
}
p, li{
    font-size:12 px;
    font-family: 'Times New Roman', Times, serif;
}