import requests
url = "https://sdmx.oecd.org/public/rest/data/OECD.SDD.TPS,DSD_LFS@DF_IALFS_UNE_M,1.0/USA.UNE_LF._T._T.._Z.M"
params = {"format": "jsondata", "lastNObservations": 6}
headers = {"Accept": "application/json"}
r = requests.get(url, params=params, headers=headers)
data = r.json()
print(data["data"]["dataSets"][0]["series"]) Cost
Free
Access type
open
Signup required
No
Update alerts
Not offered
Coverage
global
Update frequency
monthly
Source Documentation
What You're Getting
OECD.Stat covers 40+ member countries across economics, education, health, agriculture, environment, and trade — 900+ datasets. Key datasets: MEI (Main Economic Indicators), National Accounts, Health Statistics, PISA education data. Data follows SDMX conventions with dataset codes (e.g. QNA for quarterly national accounts). The new OECD Data Explorer API (launched 2024) uses SDMX 2.1.
Ingestion Strategy
Use the OECD Data Explorer SDMX 2.1 REST API (replacing legacy OECD.Stat API). No auth required. Filter by country and time to limit response size. For bulk loads, request CSV format — it's more predictable than JSON for large datasets.
import requests
# OECD quarterly GDP for US and Germany
url = "https://sdmx.oecd.org/public/rest/data/OECD.SDD.NAD,DSD_NAMAIN10@DF_TABLE1_EXPENDITURE_HCPC,1.0/Q.USA+DEU.B1GQ.V.........."
params = {"startPeriod": "2015-Q1", "format": "csvfilewithlabels"}
r = requests.get(url, params=params)
# parse CSV response
Rate Limits & API Details
- No authentication; soft limit — add 1s delay between requests for bulk jobs
- SDMX 2.1 base:
sdmx.oecd.org/public/rest - Dataflow list:
/dataflow/OECD.SDD.NAD/all/latest - Legacy OECD.Stat API (
stats.oecd.org/sdmx-json) still works but is being phased out
Schema Stability
Dataset codes change between major OECD catalog revisions. The 2024 migration to the new API introduced new dataflow codes — update your series registry if you were using the old API. Country codes follow ISO 3166 for members. Time coverage varies significantly by dataset.
Data Quality Gotchas
- OECD vs non-OECD: some datasets include partner/observer countries with lower data quality
- Methodology breaks: OECD harmonizes national data but underlying national methodology changes propagate as breaks
- Estimation flags: flagged values (estimates, provisional) embedded in the data — check the
OBS_STATUSattribute - Education data (PISA): triennial, not annual — don't expect annual updates
Tool Compatibility
- Python:
pandasdmxhandles SDMX responses;oecdPyPI package wraps the legacy API - R:
OECDCRAN package (being updated for new API) - dbt: load from CSV/warehouse, apply standard SQL transformations
- Bulk CSV download works for Snowflake COPY
Benchmarking Approach
Quarterly National Accounts: expect ~40 countries × 40+ years × 4 quarters = 6,400+ rows per indicator. Spot-check US GDP growth rate against BEA figures — should match within rounding. Alert if OECD release lags 90+ days past expected date (they publish a release calendar). Track OBS_STATUS flag rate — alert if it exceeds 15% for a country.
Notable Datasets
1 total- ▸ OECD Geographical Definitions\nOECD Definition of Cities and Functional Urban Areas\nOECD employment and labor force participation rates stable at record highs in the third quarter of 2024\n100+ Data Sets
Access
- Cost
- Free
- Access type
- Open
- Update alerts
- Not offered
Data Profile
- Coverage
- Global
- Frequency
- Monthly
- History from
- 1960
- Source updated
- Jan 2025
Data Formats
How to Access
- 🌐 Browser/UI
- ⚡ Automation Ready programmable
Index entry
Added: Apr 30, 2026
Last indexed: May 2, 2026
~ Community-sourced entry