Our World In Data (OWID) Global Indicators & Insights API
Pricing
$8.00 / 1,000 results
Our World In Data (OWID) Global Indicators & Insights API
Fast, stateless API proxy for Our World In Data. Access 30+ curated global topics, climate, economy, health time-series data, and insights in JSON/CSV.
Pricing
$8.00 / 1,000 results
Rating
0.0
(0)
Developer
RD.Galih Rakasiwi
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
2 days ago
Last modified
Categories
Share
High-performance, stateless REST API proxy for Our World In Data — query global indicators across demographics, climate, economy, public health, energy, and education as clean JSON or CSV. Ready for data scientists, academic researchers, journalists, and AI/LLM agents needing factual macro-environmental and socio-economic data.
Backed by the Pipeworx OWID MCP Gateway — no database, no caching, no persistence.
Why use OWID API?
- 37 curated popular indicators across 10 categories — population, GDP, CO₂ emissions, life expectancy, and more
- Time-series data for 200+ countries and regions with parameters for entity, year range, and format
- JSON and CSV output — stream large datasets directly as CSV without memory pressure
- Full Data Insights from OWID's feed — chart images, body text, CTA links, related chart references
- No API key required — the upstream OWID data is public and open
- Apify-native — deploy in one click, auto-scaling, with scheduling, API access, and webhook integrations
- LLM & RAG ready — clean structured payloads for AI agent tools, function calling, and RAG pipelines
What data can OWID API provide?
| Category | Example indicators | Data points |
|---|---|---|
| Climate | CO₂ emissions, methane, temperature anomalies | ~60+ years |
| Demographics | Population, fertility rate, median age | Centuries |
| Economy | GDP per capita, inflation, government debt | ~60+ years |
| Energy | Electricity mix, fossil fuel consumption, renewables | ~60+ years |
| Health | Life expectancy, child mortality, COVID vaccinations | ~60+ years |
| Education | Literacy rate, years of schooling | Decades |
| Food | Cereal yields, fertilizer use, food supply | ~60+ years |
| Environment | Forest area, biodiversity, protected areas | Decades |
| Politics | Women in parliament, trust in government | Decades |
| Tech | Internet users, mobile phones | Decades |
Sample output
GET /api/v1/indicators/gdp-per-capita-worldbank/data?entity=Indonesia&since_year=2015
{"data": [{ "entity": "Indonesia", "year": 2015, "value": 10992.73 },{ "entity": "Indonesia", "year": 2016, "value": 11382.53 },{ "entity": "Indonesia", "year": 2017, "value": 11819.33 }],"pagination": { "cursor": null, "limit": 100, "has_more": false }}
CSV output (?format=csv):
entity,year,valueIndonesia,2015,10992.73Indonesia,2016,11382.53Indonesia,2017,11819.33
How to use OWID API
1. Run the Actor
Click Start in Apify Console. The Actor starts a FastAPI server on the configured port.
2. Access the API
Once running, the API is available at the Actor's container URL:
https://<container-id>.runs.apify.net/api/v1/
3. Browse available indicators
# List all curated indicatorscurl https://<container-id>.runs.apify.net/api/v1/indicators/popular# Search for an indicatorcurl "https://<container-id>.runs.apify.net/api/v1/indicators/search?q=gdp"# Browse by topiccurl https://<container-id>.runs.apify.net/api/v1/topics
4. Fetch data
# Get indicator metadata and datacurl "https://<container-id>.runs.apify.net/api/v1/indicators/population?include_data=true"# Filter by country and year rangecurl "https://<container-id>.runs.apify.net/api/v1/indicators/co2-emissions/data?entity=World&since_year=2000&format=csv"# Get data insightscurl "https://<container-id>.runs.apify.net/api/v1/insights?limit=5"
5. Explore with OpenAPI docs
Open /docs in your browser for interactive Swagger UI — try every endpoint without writing code.
How much does it cost to use OWID API?
The Actor runs as a lightweight web server. Compute unit consumption is proportional to how long the server stays running and how many requests it handles.
- Minimal memory: 256 MB
- Small footprint: single Python process, ~70 MB RAM idle
- No storage costs: stateless proxy — zero disk, zero database
- Rate limited upstream: the Pipeworx MCP Gateway allows ~50 requests/hour; budget your API calls accordingly
For long-running API access, schedule the Actor to run continuously. For ad-hoc queries, run on demand.
Input
The Actor starts a configurable HTTP API server. Full input schema is available in the Input tab in Apify Console.
| Field | Type | Default | Description |
|---|---|---|---|
apiPort | integer | 8000 | Port the API server listens on (1024–65535) |
docsEnabled | boolean | true | Whether to expose /docs (Swagger UI) and /redoc |
Output
The Actor provides a live REST API at the container URL. Every response carries:
X-Request-ID— unique request identifier (UUIDv4)X-Response-Time-Ms— server-side latency in milliseconds
The full API contract — all routes, parameters, response schemas, and error codes — is in docs/api-contract.md.
Output schema
The Actor's output is the API itself, accessible at:
https://<container-id>.runs.apify.net/
| Output | Description |
|---|---|
| API | Live REST API at {{run.containerUrl}} |
Interactive OpenAPI docs are at /docs and /redoc when docsEnabled is set to true.
API endpoints summary
| Endpoint | Description |
|---|---|
GET /api/v1/health | Health check — MCP gateway + search API probes |
GET /api/v1/meta | API metadata and timestamp |
GET /api/v1/stats | Available endpoints listing |
GET /api/v1/topics | List 10 indicator categories |
GET /api/v1/topics/{slug} | Single category with indicator count |
GET /api/v1/topics/{slug}/indicators | Indicators under a category |
GET /api/v1/indicators/popular | 37 curated popular indicators |
GET /api/v1/indicators/search?q= | Search OWID indicator catalog |
GET /api/v1/indicators/{slug} | Indicator metadata + optional time-series data |
GET /api/v1/indicators/{slug}/data | Time-series data — JSON or CSV |
GET /api/v1/indicators/{slug}/entities | Distinct countries/regions for an indicator |
GET /api/v1/indicators/{slug}/years | Year range for an indicator |
GET /api/v1/insights | Data insights with charts, text, related links |
GET /api/v1/insights/{slug} | Single insight by URL slug |
GET /api/v1/search?q= | Global indicator search |
Full contract with request/response schemas, field types, and examples: docs/api-contract.md.
Tips
- Use
include_data=falseon/indicators/{slug}when you only need metadata — saves a second upstream MCP call - Prefer CSV for large datasets —
?format=csvstreams directly without holding all rows in memory - Use entity filters — narrow
/indicators/{slug}/datawith?entity=Indonesiato avoid fetching unnecessary rows - Rate-limit awareness — the upstream MCP gateway is capped at ~50 req/hour; plan your request volume accordingly
- Watch
X-Response-Time-Ms— MCP calls typically take 300–800ms; OWID search API ~90ms
FAQ
Do I need an API key?
No. The upstream OWID data is public. The Pipeworx MCP Gateway does not require authentication.
What's the difference between /indicators/search and /search?
/indicators/search returns Pydantic-validated schema objects with indicator_id, title, catalog_path, and score. /search mirrors the raw OWID search API response shape. Use either — same underlying data.
Why does the API return 502 sometimes?
502 means the upstream MCP gateway returned an error or the indicator slug wasn't found. This can also happen when the MCP rate limit (50 req/hour) is exceeded.
Can I use this API with LLM function calling?
Yes. The /stats endpoint lists all available routes, and /openapi.json provides a full OpenAPI 3.1 spec suitable for tool registration in frameworks like LangChain, CrewAI, or custom function-calling agents.
Where is the full API documentation?
See docs/api-contract.md for every endpoint, query parameter, response field, error code, and schema reference.
Source and acknowledgements
All data originates from Our World In Data — a scientific online publication making research and data on global problems accessible to everyone. Data is proxied via the Pipeworx OWID MCP Gateway.
This Actor does not scrape, cache, or store any OWID data. It is a stateless proxy — every request fetches fresh data from upstream.
Feedback? Open an issue in the Issues tab. For programmatic access, see the API tab.