Package 'worldbank'

Title: Client for the 'World Bank' APIs
Description: Download and search data from the 'World Bank' APIs, including the 'Indicators' API, the 'Poverty and Inequality Platform (PIP)' API, the 'Finances One' API, and the 'Projects' API. See <https://datahelpdesk.worldbank.org/knowledgebase/articles/889386-developer-information-overview> for further details.
Authors: Maximilian Mücke [aut, cre] (ORCID: <https://orcid.org/0009-0000-9432-9795>)
Maintainer: Maximilian Mücke <[email protected]>
License: MIT + file LICENSE
Version: 0.9.0.9000
Built: 2026-06-02 10:24:04 UTC
Source: https://github.com/m-muecke/worldbank

Help Index


Get or manage the worldbank API cache

Description

wb_cache_dir() returns the path where cached API responses are stored. wb_cache_clear() clears all cached responses.

Usage

wb_cache_dir()

wb_cache_clear()

wb_cache_delete()

Details

The cache is only used when enabled with options(worldbank.cache = TRUE). Cached responses are stored for 1 day by default, but this can be customized with options(worldbank.cache_max_age = seconds).

Examples

## Not run: 
# enable caching
options(worldbank.cache = TRUE)

# view cache location
wb_cache_dir()

# clear the cache
wb_cache_clear()

## End(Not run)

Return Finances One API data

Description

Return Finances One API data

Usage

fone_dataset(dataset_id, resource_id, ..., limit = NULL)

fone_view(view_id, ..., limit = NULL)

Arguments

dataset_id

(character(1))
The ID of the associated dataset.

resource_id

(character(1))
The ID of the associated resource.

...

(any)
Additional arguments passed to the request.

limit

(NULL | integer(1))
The maximum number of rows to return. Default NULL. If NULL, all rows are returned.

view_id

(character(1))
The ID of the view.

Value

A data.frame() with the requested dataset.

Source

https://financesone.worldbank.org/data

Examples

## Not run: 
# get dataset data
dataset <- fone_dataset(dataset_id = "DS00047", resource_id = "RS00005")
head(dataset)

# get view data
view <- fone_view(view_id = "DS01538")
head(view)

## End(Not run)

Return auxiliary data tables

Description

Return auxiliary data tables

Usage

pip_aux(
  table = NULL,
  release_version = NULL,
  ppp_version = NULL,
  version = NULL
)

Arguments

table

(NULL | character(1))
Table to be returned. Default NULL.

release_version

(NULL | character(1))
Version of the data release in YYYYMMDD format. Default NULL.

ppp_version

(NULL | character(1) | numeric(1))
Version of the data. Default NULL.

version

(NULL | character(1))
Version of the data. Default NULL.

Value

A character() with the available tables, or a data.frame() with the table data.

Source

https://pip.worldbank.org/api

See Also

Other poverty and inequality statistics: pip_citation(), pip_cp(), pip_data(), pip_group(), pip_health_check(), pip_info(), pip_valid_params(), pip_versions()

Examples

# get a list of available tables
pip_aux()

# get countries
aux <- pip_aux("countries")
head(aux)

# get GDP
aux <- pip_aux("gdp")
head(aux)

# get CPI
aux <- pip_aux("cpi")
head(aux)

Return citation for a given version

Description

Return citation for a given version

Usage

pip_citation(release_version = NULL, ppp_version = NULL, version = NULL)

Arguments

release_version

(NULL | character(1))
Version of the data release in YYYYMMDD format. Default NULL.

ppp_version

(NULL | character(1) | numeric(1))
Version of the data. Default NULL.

version

(NULL | character(1))
Version of the data. Default NULL.

Value

A data.frame() with the citation.

Source

https://pip.worldbank.org/api

See Also

Other poverty and inequality statistics: pip_aux(), pip_cp(), pip_data(), pip_group(), pip_health_check(), pip_info(), pip_valid_params(), pip_versions()

Examples

pip_citation()

Return country profile data

Description

Return country profile data

Usage

pip_cp(
  country = NULL,
  povline = 2.15,
  release_version = NULL,
  ppp_version = NULL,
  version = NULL
)

Arguments

country

(NULL | character())
Countries for which statistics are to be computed, specified as ISO3 codes. Default NULL.

povline

(numeric(1))
Poverty line to be used to compute poverty measures. Poverty lines are only accepted up to 3 decimals. Default 2.15.

release_version

(NULL | character(1))
Version of the data release in YYYYMMDD format. Default NULL.

ppp_version

(NULL | character(1) | numeric(1))
Version of the data. Default NULL.

version

(NULL | character(1))
Version of the data. Default NULL.

Value

A data.frame() with country profile statistics including headcount ratios, inequality measures, and demographic breakdowns.

Source

https://pip.worldbank.org/api

See Also

Other poverty and inequality statistics: pip_aux(), pip_citation(), pip_data(), pip_group(), pip_health_check(), pip_info(), pip_valid_params(), pip_versions()

Examples

cp <- pip_cp("ZAF")
head(cp)

Return main poverty and inequality statistics

Description

Return main poverty and inequality statistics

Usage

pip_data(
  country = NULL,
  year = NULL,
  povline = 2.15,
  popshare = NULL,
  fill_gaps = FALSE,
  nowcast = FALSE,
  welfare_type = c("all", "consumption", "income"),
  reporting_level = c("all", "national", "rural", "urban"),
  additional_ind = FALSE,
  release_version = NULL,
  ppp_version = NULL,
  version = NULL
)

Arguments

country

(NULL | character())
Countries for which statistics are to be computed, specified as ISO3 codes. Default NULL.

year

(NULL | character() | numeric())
Years for which statistics are to be computed, specified as YYYY. Default NULL.

povline

(numeric(1))
Poverty line to be used to compute poverty measures. Poverty lines are only accepted up to 3 decimals. Default 2.15.

popshare

(NULL | numeric(1))
Proportion of the population living below the poverty line. Will be ignored if povline is specified. Default NULL.

fill_gaps

(logical(1))
Whether to fill gaps in the data. Default FALSE.

nowcast

(logical(1))
Whether to include nowcast estimates. Requires fill_gaps = TRUE. Default FALSE.

welfare_type

(character(1))
Type of welfare measure to be used. Default "all".

reporting_level

(character(1))
Level of reporting for the statistics. Default "all".

additional_ind

(logical(1))
Whether to include additional indicators. Default FALSE.

release_version

(NULL | character(1))
Version of the data release in YYYYMMDD format. Default NULL.

ppp_version

(NULL | character(1) | numeric(1))
Version of the data. Default NULL.

version

(NULL | character(1))
Version of the data. Default NULL.

Value

A data.frame() with the requested statistics.

Source

https://pip.worldbank.org/api

See Also

Other poverty and inequality statistics: pip_aux(), pip_citation(), pip_cp(), pip_group(), pip_health_check(), pip_info(), pip_valid_params(), pip_versions()

Examples

data <- pip_data(c("ZAF", "ZMB"))
head(data)

Return aggregation of PIP statistics

Description

Return aggregation of PIP statistics

Usage

pip_group(
  country = NULL,
  year = NULL,
  povline = 2.15,
  popshare = NULL,
  group_by = c("wb", "none"),
  fill_gaps = FALSE,
  welfare_type = c("all", "consumption", "income"),
  reporting_level = c("all", "national", "rural", "urban"),
  additional_ind = FALSE,
  release_version = NULL,
  ppp_version = NULL,
  version = NULL
)

Arguments

country

(NULL | character())
Countries for which statistics are to be computed, specified as ISO3 codes. Default NULL.

year

(NULL | character() | numeric())
Years for which statistics are to be computed, specified as YYYY. Default NULL.

povline

(numeric(1))
Poverty line to be used to compute poverty measures. Poverty lines are only accepted up to 3 decimals. Default 2.15.

popshare

(NULL | numeric(1))
Proportion of the population living below the poverty line. Will be ignored if povline is specified. Default NULL.

group_by

(character(1))
Aggregate results by pre-defined sub-groups. Default "wb".

fill_gaps

(logical(1))
Whether to fill gaps in the data. Default FALSE.

welfare_type

(character(1))
Type of welfare measure to be used. Default "all".

reporting_level

(character(1))
Level of reporting for the statistics. Default "all".

additional_ind

(logical(1))
Whether to include additional indicators. Default FALSE.

release_version

(NULL | character(1))
Version of the data release in YYYYMMDD format. Default NULL.

ppp_version

(NULL | character(1) | numeric(1))
Version of the data. Default NULL.

version

(NULL | character(1))
Version of the data. Default NULL.

Value

A data.frame() with the requested statistics.

Source

https://pip.worldbank.org/api

See Also

Other poverty and inequality statistics: pip_aux(), pip_citation(), pip_cp(), pip_data(), pip_health_check(), pip_info(), pip_valid_params(), pip_versions()

Examples

grp <- pip_group(c("AFE", "LAC"))
head(grp)

Determine if the API is running and listening as expected

Description

Determine if the API is running and listening as expected

Usage

pip_health_check()

Value

A character(1) with the health check message.

Source

https://pip.worldbank.org/api

See Also

Other poverty and inequality statistics: pip_aux(), pip_citation(), pip_cp(), pip_data(), pip_group(), pip_info(), pip_valid_params(), pip_versions()

Examples

pip_health_check()

Return information about the API

Description

Return information about the API

Usage

pip_info()

Value

A list() with the API information.

Source

https://pip.worldbank.org/api

See Also

Other poverty and inequality statistics: pip_aux(), pip_citation(), pip_cp(), pip_data(), pip_group(), pip_health_check(), pip_valid_params(), pip_versions()

Examples

pip_info()

Return valid query parameters

Description

Return valid query parameters

Usage

pip_valid_params(
  endpoint = c("all", "aux", "pip", "pip-grp", "pip-info", "valid-params"),
  release_version = NULL,
  ppp_version = NULL,
  version = NULL
)

Arguments

endpoint

(character(1))
Endpoint for which valid parameters are to be returned. Default "all".

release_version

(NULL | character(1))
Version of the data release in YYYYMMDD format. Default NULL.

ppp_version

(NULL | character(1) | numeric(1))
Version of the data. Default NULL.

version

(NULL | character(1))
Version of the data. Default NULL.

Value

A data.frame() with the valid parameters.

Source

https://pip.worldbank.org/api

See Also

Other poverty and inequality statistics: pip_aux(), pip_citation(), pip_cp(), pip_data(), pip_group(), pip_health_check(), pip_info(), pip_versions()

Examples

params <- pip_valid_params()
head(params)

Return the available data versions

Description

Return the available data versions

Usage

pip_versions()

Value

A data.frame() with the available versions.

Source

https://pip.worldbank.org/api

See Also

Other poverty and inequality statistics: pip_aux(), pip_citation(), pip_cp(), pip_data(), pip_group(), pip_health_check(), pip_info(), pip_valid_params()

Examples

vers <- pip_versions()
head(vers)

World Bank WDI bulk download

Description

Download the entire World Development Indicators dataset as a single zip and return its contents as a list of data frames. Useful for full-dataset analyses where paginating through wb_data() would be slow, and for accessing footnote and series-time metadata that the API does not expose.

Usage

wb_bulk(timeout = 600L)

Arguments

timeout

(integer(1))
Maximum download time in seconds. Default 600.

Details

The download is roughly 280 MB compressed and may take a minute or more.

Value

A named list() of data.frame()s:

  • data: indicator values in long format with columns country_name, country_code, indicator_name, indicator_code, year, value.

  • country: country metadata.

  • series: series (indicator) metadata.

  • country_series: country-series-specific notes.

  • series_time: series-year-specific notes.

  • footnote: footnotes per country, series, and year.

Source

https://databankfiles.worldbank.org/public/ddpext_download/WDI_CSV.zip

See Also

Other indicators data: wb_country(), wb_data(), wb_income_level(), wb_indicator(), wb_language(), wb_lending_type(), wb_region(), wb_search(), wb_source(), wb_topic()

Examples

## Not run: 
wdi <- wb_bulk()
head(wdi$data)

## End(Not run)

World Bank country data

Description

List all countries supported by the World Bank API.

Usage

wb_country(country = NULL, lang = "en")

Arguments

country

(NULL | character())
Country to query. Default NULL. If NULL, all countries are returned.

lang

(character(1))
Language to query. Default "en".

Value

A data.frame() with the available countries. The columns are:

  • country_id: The country ID.

  • country_code: The country code.

  • country_name: The country name.

  • region_id: The region ID.

  • region_code: The region code.

  • region_value: The region value.

  • admin_region_id: The admin region ID.

  • admin_region_code: The admin region code.

  • admin_region_value: The admin region value.

  • income_level_id: The income level ID.

  • income_level_code: The income level code.

  • income_level_value: The income level value.

  • lending_type_id: The lending type ID.

  • lending_type_code: The lending type code.

  • lending_type_value: The lending type value.

  • capital_city: The capital city.

  • longitude: The longitude.

  • latitude: The latitude.

Source

https://api.worldbank.org/v2/country

See Also

Other indicators data: wb_bulk(), wb_data(), wb_income_level(), wb_indicator(), wb_language(), wb_lending_type(), wb_region(), wb_search(), wb_source(), wb_topic()

Examples

country <- wb_country()
head(country)

World Bank country indicator data

Description

List all country indicators supported by the World Bank API.

Usage

wb_data(
  indicator = "NY.GDP.MKTP.CD",
  country = NULL,
  lang = "en",
  start_date = NULL,
  end_date = NULL,
  mrv = NULL,
  gapfill = FALSE
)

wb_country_indicator(
  indicator = "NY.GDP.MKTP.CD",
  country = NULL,
  lang = "en",
  start_date = NULL,
  end_date = NULL,
  mrv = NULL,
  gapfill = FALSE
)

Arguments

indicator

(character())
Indicators to query.

country

(NULL | character())
Countries to query. Default NULL. If NULL, all countries are returned.

lang

(character(1))
Language to query. Default "en".

start_date

(NULL | character(1) | integer(1))
Start date to query. Default NULL. Supported formats:

  • YYYY for yearly data (e.g. 2020 or "2020")

  • YYYYQ[1-4] for quarterly data (e.g. "2020Q1")

  • YYYYM[1-12] for monthly data (e.g. "2020M02")

end_date

(NULL | character(1) | integer(1))
End date to query, in the same format as start_date. Default NULL.

mrv

(NULL | integer(1))
Most recent values to return. An alternative to start_date/end_date. Default NULL.

gapfill

(logical(1))
Whether to fill missing values by carrying forward the last available value. Only used when mrv is set. Default FALSE.

Value

A data.frame() with the available country indicators. The columns are:

  • date: The date

  • indicator_id: The indicator ID.

  • indicator_name: The indicator name.

  • country_id: The country ID.

  • country_name: The country name.

  • country_code: The country code.

  • value: The indicator value.

  • unit: The indicator unit.

  • obs_status: The observation status.

  • decimal: The decimal.

Source

https://api.worldbank.org/v2/country/{country}/indicator/{indicator}

See Also

Other indicators data: wb_bulk(), wb_country(), wb_income_level(), wb_indicator(), wb_language(), wb_lending_type(), wb_region(), wb_search(), wb_source(), wb_topic()

Examples

# single indicator for a single country (all available years)
ind <- wb_data("NY.GDP.MKTP.CD", "US")
head(ind)

# multiple indicators for multiple countries (2015-2023)
ind <- wb_data(
  indicator = c("NY.GDP.MKTP.CD", "FP.CPI.TOTL.ZG"),
  country = c("US", "DE", "FR", "CH", "JP"),
  start_date = 2015, end_date = 2023
)
head(ind)

World Bank income level data

Description

List all income levels supported by the World Bank API.

Usage

wb_income_level(income = NULL, lang = "en")

Arguments

income

(NULL | character())
Income level to query. Default NULL. If NULL, all levels are returned.

lang

(character(1))
Language to query. Default "en".

Value

A data.frame() with the available income levels. The columns are:

  • id: The income level ID.

  • iso2code: The ISO 2 code of the income level.

  • value: The income level value.

Source

https://api.worldbank.org/v2/incomeLevels

See Also

Other indicators data: wb_bulk(), wb_country(), wb_data(), wb_indicator(), wb_language(), wb_lending_type(), wb_region(), wb_search(), wb_source(), wb_topic()

Examples

wb_income_level()

World Bank indicator data

Description

List all indicators supported by the World Bank API.

Usage

wb_indicator(indicator = NULL, lang = "en")

Arguments

indicator

(NULL | character(1))
Indicator to query. Default NULL. If NULL, all indicators are returned.

lang

(character(1))
Language to query. Default "en".

Value

A data.frame() with the available indicators. The columns are:

  • id: The indicator ID.

  • name: The indicator name.

  • unit: The indicator unit.

  • source_id: The source ID.

  • source_value: The source value.

  • source_note: The source note.

  • source_organization: The source organization.

  • topic_id: The topic ID.

  • topic_value: The topic value.

Source

https://api.worldbank.org/v2/indicator

See Also

Other indicators data: wb_bulk(), wb_country(), wb_data(), wb_income_level(), wb_language(), wb_lending_type(), wb_region(), wb_search(), wb_source(), wb_topic()

Examples

wb_indicator("NY.GDP.MKTP.CD")

World Bank available languages

Description

List all languages supported by the World Bank API.

Usage

wb_language()

Value

A data.frame() with the available languages. The columns are:

  • code: The language code.

  • name: The language name.

  • native_form: The native form of the language name.

Source

https://api.worldbank.org/v2/languages

See Also

Other indicators data: wb_bulk(), wb_country(), wb_data(), wb_income_level(), wb_indicator(), wb_lending_type(), wb_region(), wb_search(), wb_source(), wb_topic()

Examples

wb_language()

World Bank lending type data

Description

List all lending types supported by the World Bank API.

Usage

wb_lending_type(type = NULL, lang = "en")

Arguments

type

(NULL | character())
Lending type to query. Default NULL. If NULL, all types are returned.

lang

(character(1))
Language to query. Default "en".

Value

A data.frame() with the available lending types. The columns are:

  • id: The lending type ID.

  • iso2code: The ISO 2 code of the lending type.

  • value: The lending type value.

Source

https://api.worldbank.org/v2/lendingTypes

See Also

Other indicators data: wb_bulk(), wb_country(), wb_data(), wb_income_level(), wb_indicator(), wb_language(), wb_region(), wb_search(), wb_source(), wb_topic()

Examples

wb_lending_type()

World Bank project data

Description

Query World Bank project data from the Projects API.

Usage

wb_project(
  id = NULL,
  country = NULL,
  status = NULL,
  region = NULL,
  search = NULL,
  start_date = NULL,
  end_date = NULL
)

Arguments

id

(NULL | character(1))
Project ID to query, e.g. "P163868". Default NULL. If provided, other filters are ignored.

country

(NULL | character())
ISO country code(s) to filter by, e.g. "BR" or c("BR", "IN"). Default NULL.

status

(NULL | character(1))
Project status to filter by. One of "Active", "Closed", "Dropped", or "Pipeline". Default NULL.

region

(NULL | character(1))
Region name to filter by, e.g. "South Asia". Default NULL.

search

(NULL | character(1))
Free-text search term. Default NULL.

start_date

(NULL | character(1))
Board approval start date in "YYYY-MM-DD" format. Default NULL.

end_date

(NULL | character(1))
Board approval end date in "YYYY-MM-DD" format. Default NULL.

Value

A data.frame() with World Bank project data. The columns are:

  • id: The project ID.

  • project_name: The project name.

  • status: The project status.

  • approval_date: The board approval date.

  • closing_date: The closing date.

  • country_code: The ISO country code.

  • country: The country name.

  • region: The region name.

  • total_commitment: The total commitment amount in millions USD.

  • ibrd_commitment: The IBRD commitment amount in millions USD.

  • ida_commitment: The IDA commitment amount in millions USD.

  • lending_instrument: The lending instrument type.

  • borrower: The borrower name.

  • implementing_agency: The implementing agency name.

  • url: The project URL.

Source

https://search.worldbank.org/api/v2/projects

Examples

# active projects in Brazil related to education
wb_project(country = "BR", status = "Active", search = "education")

# look up a specific project
wb_project(id = "P163868")

World Bank region data

Description

List all regions supported by the World Bank API.

Usage

wb_region(region = NULL, lang = "en")

Arguments

region

(NULL | character())
Region to query. Default NULL. If NULL, all regions are returned.

lang

(character(1))
Language to query. Default "en".

Value

A data.frame() with the available regions. The columns are:

  • id: The region ID.

  • code: The region code.

  • iso2code: The ISO 2 code of the region.

  • name: The region name.

Source

https://api.worldbank.org/v2/region

See Also

Other indicators data: wb_bulk(), wb_country(), wb_data(), wb_income_level(), wb_indicator(), wb_language(), wb_lending_type(), wb_search(), wb_source(), wb_topic()

Examples

region <- wb_region()
head(region)

World Bank source data

Description

List all sources supported by the World Bank API.

Usage

wb_source(source = NULL, lang = "en")

Arguments

source

(NULL | character())
Source to query. Default NULL. If NULL, all sources are returned.

lang

(character(1))
Language to query. Default "en".

Value

A data.frame() with the available sources. The columns are:

  • id: The source ID.

  • last_updated: The date the source was last updated.

  • name: The source name.

  • code: The source code.

  • description: The source description.

  • url: The source URL.

  • data_availability: Whether the source has data available.

  • metadata_availability: Whether the source has metadata available.

  • concepts: The concepts associated with the source.

Source

https://api.worldbank.org/v2/sources

See Also

Other indicators data: wb_bulk(), wb_country(), wb_data(), wb_income_level(), wb_indicator(), wb_language(), wb_lending_type(), wb_region(), wb_search(), wb_topic()

Examples

src <- wb_source()
head(src)

World Bank topic data

Description

List all topics supported by the World Bank API.

Usage

wb_topic(topic = NULL, lang = "en")

Arguments

topic

(NULL | character())
Topic to query. Default NULL. If NULL, all topics are returned.

lang

(character(1))
Language to query. Default "en".

Value

A data.frame() with the available topics. The columns are:

  • id: The topic ID.

  • value: The topic value.

  • source_note: The source note.

Source

https://api.worldbank.org/v2/topics

See Also

Other indicators data: wb_bulk(), wb_country(), wb_data(), wb_income_level(), wb_indicator(), wb_language(), wb_lending_type(), wb_region(), wb_search(), wb_source()

Examples

topic <- wb_topic()
head(topic)