Title: Client for the 'World Bank' APIs
Version: 0.8.0
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.
License: MIT + file LICENSE
URL: https://m-muecke.github.io/worldbank/, https://github.com/m-muecke/worldbank
BugReports: https://github.com/m-muecke/worldbank/issues
Depends: R (≥ 4.1.0)
Imports: httr2 (≥ 1.1.0), stats, tools
Suggests: ggplot2, scales, testthat (≥ 3.3.0), withr
Config/testthat/edition: 3
Encoding: UTF-8
RoxygenNote: 7.3.3
NeedsCompilation: no
Packaged: 2026-03-15 12:23:50 UTC; mmuecke
Author: Maximilian Mücke ORCID iD [aut, cre]
Maintainer: Maximilian Mücke <muecke.maximilian@gmail.com>
Repository: CRAN
Date/Publication: 2026-03-15 12:40:02 UTC

worldbank: 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.

Author(s)

Maintainer: Maximilian Mücke muecke.maximilian@gmail.com (ORCID)

See Also

Useful links:


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))
Id of the associated resource.

...

(any)
Additional arguments passed to the request.

limit

(NULL | integer(1))
The maximum number of rows to return. Default is 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() containing 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 data.frame() 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 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:

Source

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

See Also

Other indicators data: wb_income_level(), wb_indicator(), wb_language(), wb_lending_type(), wb_region(), 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:

Source

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

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:

Source

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

See Also

Other indicators data: wb_country(), wb_indicator(), wb_language(), wb_lending_type(), wb_region(), 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:

Source

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

See Also

Other indicators data: wb_country(), wb_income_level(), wb_language(), wb_lending_type(), wb_region(), 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:

Source

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

See Also

Other indicators data: wb_country(), wb_income_level(), wb_indicator(), wb_lending_type(), wb_region(), 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:

Source

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

See Also

Other indicators data: wb_country(), wb_income_level(), wb_indicator(), wb_language(), wb_region(), 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:

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:

Source

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

See Also

Other indicators data: wb_country(), wb_income_level(), wb_indicator(), wb_language(), wb_lending_type(), 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:

Source

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

See Also

Other indicators data: wb_country(), wb_income_level(), wb_indicator(), wb_language(), wb_lending_type(), wb_region(), 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:

Source

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

See Also

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

Examples



topic <- wb_topic()
head(topic)