World Bank indicators
Thousands of development indicators for countries and years: population, income, health, education.
Address that will be called:
What it gives you
Thousands of development indicators for countries and years: population, income, health, education. The answer is a two-part list: the first part describes the page (how many results), the second holds the values by year.
Terms and limits
The World Bank's terms for using its datasets give permission subject to attribution to the World Bank Group (the terms page we read says the licence rights are conditioned on proper attribution): read the current terms before you republish data.
_Read on 14 November 2026 from worldbank.org, terms of use for datasets._
Good habits
- Cache answers that do not change often.
- Handle errors: the service may be busy or down.
- Give credit where the terms ask for it.
- Do not put secret keys into a web page: this API needs none, but many others do.
The same request in code
curl
curl -L "https://api.worldbank.org/v2/country/IN/indicator/SP.POP.TOTL?format=json&per_page=3"Python
import json, urllib.request
with urllib.request.urlopen("https://api.worldbank.org/v2/country/IN/indicator/SP.POP.TOTL?format=json&per_page=3") as r:
data = json.load(r)
print(data[0])JavaScript (browser or Node.js)
const res = await fetch("https://api.worldbank.org/v2/country/IN/indicator/SP.POP.TOTL?format=json&per_page=3");
const data = await res.json();
console.log(data[0]);A real answer
This is what the example request above returned when we called it on 14 November 2026 with the default values (it took about 1.5 s from our computer). Values such as times and temperatures change.
[
{
"page": 1,
"pages": 22,
"per_page": 3,
"total": 66,
"sourceid": "2",
"lastupdated": "2026-11-11"
},
[
{
"indicator": {
"id": "SP.POP.TOTL",
"value": "Population, total"
},
"country": {
"id": "IN",
"value": "India"
},
"countryiso3code": "IND",
"date": "2025",
"value": 1463865525,
"unit": "",
"obs_status": "",
"decimal": 0
},
{
"indicator": {
"id": "SP.POP.TOTL",
"value": "Population, total"
},
"country": {
"id": "IN",
"value": "India"
},
"countryiso3code": "IND",
"date": "2024",
"value": 1450935791,
"unit": "",
"obs_status": "",
"decimal": 0
},
{
"indicator": {
"id": "SP.POP.TOTL",
"value": "Population, total"
},
"country": {
"id": "IN",
"value": "India"
},
"countryiso3code": "IND",
"date": "2023",
"value": 1438069596,
"unit": "",
"obs_status": "",
"decimal": 0
}
]
]This is an independent directory. It is not connected with any of the services listed. Each address was called on 14 November 2026 with curl, Python, Node.js and Chrome (from a page on another site), and the answer shown is a real one. APIs change: check the service's own page before you depend on it.