API Basic Call Structures
The Indicators API supports two basic ways to build queries: a URL based structure and an argument based structure. For example, the following two requests will return the same data, a list of countries with income level classified as low income:
- Argument based: https://api.worldbank.org/V2/country?incomeLevel=LIC
- URL based: https://api.worldbank.org/V2/incomeLevel/LIC/country
Query Strings
The API support the following query strings in requests.
Date and Date-Range: Date-range by year, month or quarter that scopes the result-set.
Examples:
- https://api.worldbank.org/v2/country/all/indicator/SP.POP.TOTL?date=2000
- https://api.worldbank.org/v2/country/chn;bra/indicator/DPANUSSPB?date=2012M01
A range is indicated using the colon (:
) separator.
Examples:
- https://api.worldbank.org/v2/country/all/indicator/SP.POP.TOTL?date=2000:2001
- https://api.worldbank.org/v2/country/chn;bra/indicator/DPANUSSPB?date=2012M01:2012M08
- https://api.worldbank.org/v2/country/CHL/indicator/DP.DOD.DECD.CR.BC.CD?date=2013Q1:2013Q4
Requests additionally support year-to-date values (YTD), which is useful for querying high frequency data.
Output Format: The API supports the following four output formats.
- XML format: https://api.worldbank.org/v2/country/all/indicator/SP.POP.TOTL?format=xml
- JSON format: https://api.worldbank.org/v2/country/all/indicator/SP.POP.TOTL?format=json
- JSONP format: https://api.worldbank.org/v2/country/all/indicator/SP.POP.TOTL?format=jsonP&prefix=Getdata
- Note: For JSONP format,
prefix
parameter must be specified. - JSON-stat format: https://api.worldbank.org/v2/country/all/indicator/SP.POP.TOTL?format=jsonstat
- Note: Refer https://json-stat.org/ for more details.
Download Format: The API supports the following three download formats.
- CSV Download (Downloads to ZIP file): https://api.worldbank.org/v2/country/ind/indicator/SI.POV.DDAY?source=2&downloadformat=csv
- XML Download (Downloads to ZIP file): https://api.worldbank.org/v2/country/ind/indicator/SI.POV.DDAY?source=2&downloadformat=xml
- EXCEL Download (Downloads to ZIP file): https://api.worldbank.org/v2/country/ind/indicator/SI.POV.DDAY?source=2&downloadformat=excel
Page: For paging through large result-sets. This allows users to indicate the page number requested from the record-set.
Per_page: For determining the number of results per page. The default setting is 50 results per page.
MRV: Fetches most recent values based on the number specified.
MRNEV: For fetching most recent non-empty values based on the number specified.
Gap-fill: (Y/N) Works with MRV. Fills values, if not available, by back tracking to the next available period (max number of periods back tracked will be limited by MRV number)
Frequency: For fetching quarterly (Q), monthly (M) or yearly (Y) values. This feature currently works along with MRV. This query string is useful for querying high frequency data.
Multiple Indicators: Data for multiple indicators can be queried from a single data source by providing the indicator codes separated by ";"
(semicolon), as well as the source ID.
Note: A maximum of 60 indicators can be used. A maximum of 1,500 characters are allowed between two back-slashes (/). A maximum of 4,000 characters are allowed in the entire URL.
Footnote: For fetching footnote detail in data calls. "footnote=y"
gives the footnote value for country, indicator and year.
Languages
The following query returns all the languages supported by the World bank API v2: https://api.worldbank.org/v2/languages
When no language is specified English is assumed. The following languages are available:
Code | Language |
---|---|
en | English |
es | Spanish |
fr | French |
ar | Arabic |
zh | Chinese |
Local Languages
Local language translations are available for some countries. Any call to the API can be prefixed with a language code to retrieve localized results where available. The following local languages are available:
Code | Language |
---|---|
bg | Bulgarian |
de | German |
hi | Hindi |
id | Indonesian |
ja | Japanese |
km | Khmer |
ko | Korean |
mk | Macedonian |
mn | Mongolian |
pl | Polish |
pt | Portuguese |
ro | Romanian |
ru | Russian |
sq | Albanian |
th | Thai |
tr | Turkish |
uk | Ukrainian |
vi | Vietnamese |
A backslash followed by the country code after http://api.worldbank.org/v2/
in an API call gives localized results.
For example, to retrieve the country name of Vietnam in Vietnamese language you would use the following query: https://api.worldbank.org/v2/vi/country/vn
Note: The translated local language country and region names are not available for all countries.
Delimiters
Range: Use a colon :
to indicate a range (for numeric values only). For example, 5:10
specifies the numeric value range from 5 to 10.
Logical AND: Use a semicolon ;
to represent logical “AND”. For example, us;ge
specifies the United States AND Georgia.
Responses
Retrieving indicator data about countries is one common use of the API.
For example, the following is a call for 2006 data on the GDP of Brazil: https://api.worldbank.org/v2/country/br/indicator/NY.GDP.MKTP.CD?date=2006
Response Format
By default, all requests will respond with valid XML. To receive the response in JSON format, provide format=json
in any request.
Sample valid request response:
<wb:sources xmlns:wb="http://www.worldbank.org" page="1" pages="1" per_page="50" total="30">
<wb:source id="11">
<wb:name>Africa Development Indicators</wb:name>
<wb:description/>
<wb:url/>
<wb:dataavailability>Y</wb:dataavailability>
<wb:metadataavailability>Y</wb:metadataavailability>
</wb:source>
Sample invalid request response:
1.
<wb:error xmlns:wb="http://www.worldbank.org">
<wb:message id="150" key="Language is not yet supported in the API">Response requested in an unsupported language.</wb:message>
</wb:error>
2.
<wb:error xmlns:wb="http://www.worldbank.org">
<wb:message id="120" key="Invalid value">The provided parameter value is not valid</wb:message>
</wb:error>
Note: See Error Codes for a full listing of possible errors.
Limitations
You cannot currently sort any requests. Generally results are returned in a reasonable order (i.e. alpha), but that order cannot be controlled.