OECD Data Explorer API
Free OECD SDMX API with no key: composite leading indicators, CPI, GDP, employment and the full OECD statistical catalogue as SDMX-JSON or CSV. Tested example.
Endpoint tested and returned HTTP 200 on 2026-08-21
What is the OECD Data Explorer API?
The OECD serves its statistical database through a free SDMX REST API at sdmx.oecd.org with no key. A request names an agency, dataflow and version, then filters with a dot-separated dimension key.
The OECD rebuilt its data platform around SDMX, and the addressing scheme reflects that: `OECD.SDD.STES,DSD_STES@DF_CLI,4.1` names the owning unit, the data structure, the dataflow and the version. It looks forbidding, but it is copy-pasteable straight out of the Data Explorer UI, which is the practical way to get a working URL rather than deriving one from documentation.
The dimension key is positional and dots are significant. `USA.M.LI...AA...H` has empty positions that act as wildcards, matching every value of those dimensions — so miscounting the dots silently changes which series you get rather than raising an error. Unlike the BIS API, this one accepts `format=jsondata` as a query parameter, and `format=csvfile` returns a flat table that is far quicker to work with when you do not need the full metadata.
Quick facts
- Base URL
https://sdmx.oecd.org/public/rest/data- Authentication
- No key or registration for the public endpoint. Data is subject to the OECD's terms of use.
- Rate limit
- No published limit. Very large unfiltered extractions may be refused.
- Pricing
- Free.
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the OECD Data Explorer API
Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.
1. US composite leading indicator, monthly from January 2026
GET https://sdmx.oecd.org/public/rest/data/OECD.SDD.STES,DSD_STES@DF_CLI,4.1/USA.M.LI...AA...H?startPeriod=2026-01&format=jsondata
curl 'https://sdmx.oecd.org/public/rest/data/OECD.SDD.STES,DSD_STES@DF_CLI,4.1/USA.M.LI...AA...H?startPeriod=2026-01&format=jsondata'const res = await fetch("https://sdmx.oecd.org/public/rest/data/OECD.SDD.STES,DSD_STES@DF_CLI,4.1/USA.M.LI...AA...H?startPeriod=2026-01&format=jsondata");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://sdmx.oecd.org/public/rest/data/OECD.SDD.STES,DSD_STES@DF_CLI,4.1/USA.M.LI...AA...H?startPeriod=2026-01&format=jsondata", timeout=20)
res.raise_for_status()
print(res.json()){
"meta": {
"schema": "https://raw.githubusercontent.com/sdmx-twg/sdmx-json/master/data-message/tools/schemas/2.0.0/sdmx-json-data-schema.json",
"id": "IREF008693",
"prepared": "2026-08-21T07:45:42Z",
"test": false,
"contentLanguages": [
"en",
"en-US"
],
"sender": {
"id": "Disseminate_Final_DMZ",
"name": "unknown",
"names": {
"en-US": "unknown"
}
}
},
"data": {
"dataSets": [
{
"structure": 0,
"action": "Information",
"links": [
{
"urn": "urn:sdmx:org.sdmx.infomodel.datastructure.DataStructure=OECD.SDD.STES:DSD_STES(4.1)",
"rel": "DataStructure"
}
],
"annotations": [
0,
1,
2,
3,
4,
5,
6
],
"dimensionGroupAttributes": {
"~:~:0:~:~:0:~:~:~:~": [
7
],
"~:~:~:~:~:~:~:~:~:~": [
7
],
"0:~:0:~:~:~:~:~:~:~": [
7
],
"~:~:0:~:~:~:~:~:~:~": [
7
]
},
"series": {
"0:0:0:0:0:0:0:0:0": {
"attributes": [
0,
0,
null
],
"annotations": [],
"observations": {
"0": [
100.7588,
0
],
"1": [
100.7113,
0
],
"2": [
100.6396,
0
]Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
{agency},{dataflow},{version} | path | Required | Dataflow address, copyable from the OECD Data Explorer. OECD.SDD.STES,DSD_STES@DF_CLI,4.1 |
{key} | path | Required | Dot-separated dimension values. Empty positions are wildcards, and the number of dots is significant. USA.M.LI...AA...H |
startPeriod / endPeriod | query | Optional | Period bounds in the dataflow's own format, such as `2026-01` for monthly. 2026-01 |
format | query | Optional | `jsondata` for SDMX-JSON, `csvfile` for a flat CSV. jsondata |
dimensionAtObservation | query | Optional | Controls how observations are nested. `AllDimensions` gives a flatter structure. AllDimensions |
Response fields
meta.preparedstring- When the OECD generated this response.
meta.contentLanguagesarray- Languages the labels are available in.
data.dataSets[]array- The observations, addressed by positional dimension keys.
data.dataSets[].annotationsarray- Indices into a shared annotation list held in the structure block.
data.structures[]array- Dimension and attribute definitions that positional keys index into.
dimensionGroupAttributesobject- Attributes attached to groups of series, keyed by partially wildcarded dimension patterns.
What you can build with the OECD Data Explorer API
- Track OECD composite leading indicators for a set of countries
- Compare CPI or unemployment across OECD members on a consistent basis
- Pull productivity or trade statistics for research
- Export a dataflow as CSV for spreadsheet analysis
Common errors and how to fix them
404 with a dataflow message
The dataflow id or version is wrong.
Fix: Versions change and old ones are withdrawn. Copy the current address from the Data Explorer rather than hard-coding one from a blog post.
Wrong series returned
The dimension key has the wrong number of dots.
Fix: Positions are significant and empty ones are wildcards. Count them against the dataflow's dimension list.
Enormous response
Too many wildcards.
Fix: Each empty position multiplies the result set. Pin the dimensions you know and add `startPeriod`.
OECD Data Explorer API — frequently asked questions
Is the OECD data API free?
Yes. The public SDMX endpoint at sdmx.oecd.org requires no key or registration, subject to the OECD's terms of use for the data itself.
How do I build the URL for a dataset?
Find the table in the OECD Data Explorer and use its developer API link, which gives the full agency, dataflow, version and key. Deriving one by hand is error-prone because of the positional dimension key.
What do the empty positions in the key mean?
They are wildcards matching every value of that dimension. Because they are positional, adding or removing a dot changes which dimensions you are filtering without producing an error.
Can I get CSV instead of SDMX-JSON?
Yes, with `format=csvfile`. It returns a flat table with one row per observation, which is much less work than decoding positional SDMX-JSON when you do not need the metadata.
Tools that pair with this API
CSV to JSON Converter
Convert CSV to a JSON array of objects online. Header-row detection, comma/semicolon/tab delimiters and pretty-printed output — 100% in your browser.
JSON Path Finder
Evaluate a dot/bracket path against your JSON and list every leaf path for discovery. Free online JSON path finder that runs 100% in your browser.
Percentage Change Calculator
Work out the percentage increase or decrease between an old and a new value. See the absolute change and whether it went up or down, instantly and privately.
OECD Data Explorer is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.