# OECD SDMX Statistics Scraper (`parseforge/oecd-sdmx-scraper`) Actor

Scrape OECD statistics via the public SDMX-JSON endpoint. Supply a dataset ID (QNA, MEI, EO, SNA\_TABLE1, KEI...) and a series key (dot-separated dimension values) to get a flat row-per-observation dataset with full dimension labels.

- **URL**: https://apify.com/parseforge/oecd-sdmx-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Business, Education, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $28.87 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

![ParseForge Banner](https://github.com/ParseForge/apify-assets/blob/main/banners/banner-default.jpg?raw=true)

## 📊 OECD Statistics Scraper

> 🚀 **Export OECD economic and social statistics in seconds.** Pull observations from **1,500+ OECD datasets** including Quarterly National Accounts, Economic Outlook, Main Economic Indicators, and the Better Life Index. No sign-up needed.

> 🕒 **Last updated:** 2026-05-15 · **📊 Flat row-per-observation** · **🌐 1,500+ datasets** · **📅 Decades of historical coverage** · **🌍 38 OECD members + key partners**

The **OECD Statistics Scraper** pulls flat, row-per-observation data from the official OECD statistics catalogue. Every observation row carries the dataset identifier, series key, full set of dimension codes plus their human-readable labels, the time period, the value, and any series- or observation-level attributes. The underlying catalogue is the gold-standard source for cross-country economic and social comparisons and is cited by central banks, finance ministries, and academic researchers worldwide.

Coverage spans **1,500+ datasets** across national accounts, prices, productivity, labour, education, health, environment, R&D, and well-being. Use the **catalogue mode** to enumerate every dataset (id, agency, version, name) in a single run, then switch to **data mode** with a dataset id and series key to pull observations. Download as CSV, Excel, JSON, or XML in under three minutes.

| 🎯 Target Audience | 💡 Primary Use Cases |
|---|---|
| Macro economists, central-bank researchers, finance ministries, ESG analysts, academics, data journalists, policy think tanks | Cross-country GDP comparisons, inflation tracking, productivity benchmarks, well-being index dashboards, time-series forecasting inputs |

---

### 📋 What the OECD Statistics Scraper does

Two operating modes share a single input form:

- 📚 **Catalogue mode.** Enumerate every OECD dataset (id, agency, version, English name) so you can discover what's available before drilling into the data.
- 📈 **Data mode.** Supply a dataset id (QNA, EO, MEI, KEI, SNA_TABLE1, BLI, EMP_LF, PPP, PRICES_CPI, GBARD, MSTI_PUB and more) plus an optional series key, start time, and end time to pull observations.

Each observation row carries the dataset id, series key, time identifier and label, derived year/quarter/month, the numeric value, plus every dimension as a code+label pair, and any series or observation attributes (status, unit multiplier, base year). One row per observation, ready to load straight into a dataframe.

> 💡 **Why it matters:** OECD data is the standard reference for cross-country macro and social comparisons. Building your own pipeline means parsing complex hierarchical envelopes, joining dimension lookups, and refreshing manually. This Actor flattens everything into a plain table on every run.

---

### 🎬 Full Demo

_🚧 Coming soon: a 3-minute walkthrough showing how to go from sign-up to a downloaded OECD time series._

---

### ⚙️ Input

<table>
<thead>
<tr><th>Input</th><th>Type</th><th>Default</th><th>Behavior</th></tr>
</thead>
<tbody>
<tr><td><code>maxItems</code></td><td>integer</td><td><code>10</code></td><td>Records to return. Free plan caps at 10, paid plan at 1,000,000.</td></tr>
<tr><td><code>mode</code></td><td>string</td><td><code>"data"</code></td><td><code>data</code> = pull observations. <code>catalogue</code> = list every available dataset.</td></tr>
<tr><td><code>datasetId</code></td><td>string</td><td><code>"QNA"</code></td><td>OECD dataset id (QNA, EO, MEI, KEI, SNA_TABLE1, BLI...). Use catalogue mode to discover.</td></tr>
<tr><td><code>seriesKey</code></td><td>string</td><td><code>""</code></td><td>Dot-separated dimension values. Empty positions = all. Empty string = entire dataset.</td></tr>
<tr><td><code>startTime</code></td><td>string</td><td><code>null</code></td><td>Earliest period (e.g. <code>2020-Q1</code>, <code>2018</code>, <code>2020-01</code>).</td></tr>
<tr><td><code>endTime</code></td><td>string</td><td><code>null</code></td><td>Latest period (e.g. <code>2024-Q4</code>, <code>2025</code>, <code>2025-03</code>).</td></tr>
</tbody>
</table>

**Example: USA quarterly real GDP from 2020 to 2024.**

```json
{
    "maxItems": 100,
    "mode": "data",
    "datasetId": "QNA",
    "seriesKey": "USA.B1_GE.CUR.Q",
    "startTime": "2020-Q1",
    "endTime": "2024-Q4"
}
````

**Example: list every available OECD dataset.**

```json
{
    "maxItems": 1000,
    "mode": "catalogue"
}
```

> ⚠️ **Good to Know:** series keys are positional and dot-separated. Each dataset has its own dimension order, so if you're unsure of the structure, run a small unfiltered query first (empty `seriesKey`) and inspect the dimension code/label fields in the result. Some legacy dataset ids have been retired or renamed in newer OECD releases.

***

### 📊 Output

Each observation is a flat row with dataset metadata, the time period, the value, and full dimension labels. Download the dataset as CSV, Excel, JSON, or XML.

#### 🧾 Schema

| Field | Type | Example |
|---|---|---|
| 🆔 `datasetId` | string | `"QNA"` |
| 🔑 `seriesKey` | string | `"0:1:0:0"` |
| 📅 `time` | string | `"2023-Q4"` |
| 🏷️ `timeLabel` | string | null | `"Q4-2023"` |
| 📅 `year` | number | null | `2023` |
| 📅 `quarter` | number | null | `4` |
| 📊 `value` | number | null | `27360.5` |
| 🏳️ `LOCATION_code` | string | `"USA"` |
| 🏳️ `LOCATION_label` | string | `"United States"` |
| 📋 `SUBJECT_code` | string | `"B1_GE"` |
| 📋 `SUBJECT_label` | string | `"Gross domestic product, expenditure approach"` |
| 💱 `MEASURE_code` | string | `"CUR"` |
| 💱 `MEASURE_label` | string | `"Current prices"` |
| ⏱️ `FREQUENCY_code` | string | `"Q"` |
| ⏱️ `FREQUENCY_label` | string | `"Quarterly"` |
| 🏛️ `datasource` | string | `"OECD"` |
| 🔗 `url` | string | `"https://stats.oecd.org/..."` |
| 🕒 `scrapedAt` | ISO 8601 | `"2026-05-15T00:00:00.000Z"` |

(Plus dataset-specific dimension and attribute columns. Each dataset emits its own dimension set as `<DIMENSION>_code` and `<DIMENSION>_label` pairs.)

#### 📦 Sample records

<details>
<summary><strong>📊 Data mode: USA Q4 2023 GDP observation</strong></summary>

```json
{
    "datasetId": "QNA",
    "seriesKey": "0:1:0:0",
    "time": "2023-Q4",
    "timeLabel": "Q4-2023",
    "year": 2023,
    "quarter": 4,
    "value": 27360.5,
    "LOCATION_code": "USA",
    "LOCATION_label": "United States",
    "SUBJECT_code": "B1_GE",
    "SUBJECT_label": "Gross domestic product, expenditure approach",
    "MEASURE_code": "CUR",
    "MEASURE_label": "Current prices",
    "FREQUENCY_code": "Q",
    "FREQUENCY_label": "Quarterly",
    "datasource": "OECD",
    "url": "https://data-explorer.oecd.org/?dsId=QNA&loc=USA",
    "scrapedAt": "2026-05-15T00:00:00.000Z"
}
```

</details>

<details>
<summary><strong>📚 Catalogue mode: dataset entry</strong></summary>

```json
{
    "datasetId": "QNA",
    "agency": "OECD",
    "version": "1.0",
    "name": "Quarterly National Accounts",
    "url": "https://stats.oecd.org/Index.aspx?DataSetCode=QNA",
    "scrapedAt": "2026-05-15T00:00:00.000Z"
}
```

</details>

***

### ✨ Why choose this Actor

| | Capability |
|---|---|
| 📚 | **1,500+ datasets.** Every OECD dataset across national accounts, prices, productivity, labour, education, health, environment, and well-being. |
| 🔍 | **Built-in discovery.** Catalogue mode lists every available dataset in a single run so you don't have to guess identifiers. |
| 🧾 | **Flat output.** One row per observation, with every dimension expanded into code+label columns. Ready for any dataframe library. |
| 🌍 | **Country-level coverage.** 38 OECD members plus key partners and observers across most datasets. |
| ⏰ | **Time-series ready.** Year, quarter, and month are derived automatically from the period identifier. |
| ⚡ | **Fast.** Hundreds of observations in seconds, multi-decade pulls in under a minute. |
| 🚫 | **No authentication.** Works against the public OECD statistics catalogue. No login or registration needed. |

> 📊 OECD data is the canonical cross-country macro reference and is cited in every serious comparative-economics study, central-bank report, and finance-ministry briefing.

***

### 📈 How it compares to alternatives

| Approach | Cost | Coverage | Refresh | Filters | Setup |
|---|---|---|---|---|---|
| **⭐ OECD Statistics Scraper** *(this Actor)* | $5 free credit, then pay-per-use | **1,500+ datasets** | **Live per run** | dataset, series key, time range | ⚡ 2 min |
| Official OECD web portal | Free | All datasets | Manual | Web form, manual export | 🐢 Hours per query |
| Commercial macro-data platforms | $10,000+/year | Multi-source | Daily | Many | ⏳ License + onboarding |
| Manual CSV downloads | Free | One dataset at a time | Manual | Few | 🕒 Hours of cleanup |

Pick this Actor when you need clean, structured OECD observations on demand without writing a parser.

***

### 🚀 How to use

1. 📝 **Sign up.** [Create a free account with $5 credit](https://console.apify.com/sign-up?fpr=vmoqkp) (takes 2 minutes).
2. 🌐 **Open the Actor.** Go to the OECD Statistics Scraper page on the Apify Store.
3. 🎯 **Set input.** Pick a mode, supply a dataset id and optional series key plus time range.
4. 🚀 **Run it.** Click **Start** and let the Actor collect your observations.
5. 📥 **Download.** Grab your results in the **Dataset** tab as CSV, Excel, JSON, or XML.

> ⏱️ Total time from sign-up to downloaded dataset: **3-5 minutes.** No coding required.

***

### 💼 Business use cases

<table>
<tr>
<td width="50%" valign="top">

#### 📊 Macro Research & Forecasting

- Cross-country GDP and inflation comparisons
- Quarterly nowcasts using OECD leading indicators
- Productivity and unit-labour-cost benchmarks
- Long-run growth and convergence studies

</td>
<td width="50%" valign="top">

#### 💰 Investment & Sovereign Risk

- Country macro overlays for fixed-income strategy
- Real-effective-exchange-rate signals
- Capital-account and trade-balance monitoring
- ESG country scoring with well-being indicators

</td>
</tr>
<tr>
<td width="50%" valign="top">

#### 🏛️ Policy & Public Sector

- International benchmarking for finance-ministry briefings
- Health, education, and environment cross-country dashboards
- Better Life Index comparisons for civic communications
- Evidence-based policy briefs for parliamentarians

</td>
<td width="50%" valign="top">

#### 🎓 Consulting & Advisory

- Client-facing macro slide decks
- Industry productivity benchmarks via STAN
- R\&D intensity comparisons via MSTI
- Pricing-power scans across PRICES\_CPI

</td>
</tr>
</table>

***

### 🔌 Automating OECD Statistics Scraper

Control the scraper programmatically for scheduled runs and pipeline integrations:

- 🟢 **Node.js.** Install the `apify-client` NPM package.
- 🐍 **Python.** Use the `apify-client` PyPI package.
- 📚 See the [Apify documentation](https://docs.apify.com/api/v2) for full details.

The [Apify Schedules feature](https://docs.apify.com/platform/schedules) lets you trigger this Actor on any cron interval. Quarterly or monthly refreshes keep downstream macro dashboards in sync automatically.

***

### 🌟 Beyond business use cases

OECD statistics power more than commercial workflows. The same flat observation rows support research, education, civic projects, and personal initiatives.

<table>
<tr>
<td width="50%">

#### 🎓 Research and academia

- Empirical macro and labour-economics papers
- Cross-country panel datasets for econometrics courses
- Reproducible studies with cited, versioned dataset pulls
- Open-data exercises on OECD well-being indicators

</td>
<td width="50%">

#### 🎨 Personal and creative

- Data-journalism visualisations of cross-country indicators
- Personal portfolios with macro-time-series dashboards
- Better Life Index comparisons for blog posts
- Hobbyist analyses of long-run economic history

</td>
</tr>
<tr>
<td width="50%">

#### 🤝 Non-profit and civic

- NGO research on inequality and well-being
- Civic transparency around national vs OECD-average benchmarks
- Investigative journalism on macro and social trends
- OpenData community contributions

</td>
<td width="50%">

#### 🧪 Experimentation

- Train ML models on macro-indicator forecasting
- Validate macro-tech product hypotheses with real data
- Prototype agent pipelines that resolve OECD dataset ids
- Test dashboard concepts with live cross-country feeds

</td>
</tr>
</table>

***

### 🤖 Ask an AI assistant about this scraper

Open a ready-to-send prompt about this ParseForge actor in the AI of your choice:

- 💬 [**ChatGPT**](https://chat.openai.com/?q=How%20do%20I%20use%20the%20OECD%20Statistics%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🧠 [**Claude**](https://claude.ai/new?q=How%20do%20I%20use%20the%20OECD%20Statistics%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🔍 [**Perplexity**](https://perplexity.ai/search?q=How%20do%20I%20use%20the%20OECD%20Statistics%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🅒 [**Copilot**](https://copilot.microsoft.com/?q=How%20do%20I%20use%20the%20OECD%20Statistics%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)

***

### ❓ Frequently Asked Questions

#### 🧩 How does it work?

Pick a mode (data or catalogue), supply a dataset id (and optional dot-separated series key plus time range), click Start, and the Actor returns a flat row per observation with every dimension expanded into code+label columns.

#### 🔍 How do I find the right dataset id?

Run the Actor in `catalogue` mode. It returns every dataset id, agency, version, and English name in a single run, so you can browse the full catalogue without leaving Apify.

#### 📐 What is a series key?

A dot-separated list of dimension values that filters the data, where each position maps to a specific dataset dimension. For QNA, a key like `USA.B1_GE.CUR.Q` selects USA, GDP-expenditure-approach, current prices, quarterly. Empty positions (e.g. `..CUR.Q`) match every value at that position. Leave the field empty to pull the entire dataset.

#### 📅 What time formats are supported?

Annual (`2024`), quarterly (`2024-Q3`), and monthly (`2024-09`). The Actor derives `year`, `quarter`, and `month` automatically from the time identifier.

#### 🌍 Which countries are covered?

All 38 OECD member countries plus key partners and observers (Brazil, China, India, Indonesia, South Africa, and others) across most datasets. Country lists vary by dataset.

#### 🔁 How often is the dataset refreshed?

The official OECD catalogue updates as releases publish (typically monthly or quarterly per dataset). Every run of this Actor pulls live data, so your dataset reflects the current state at run time.

#### ⏰ Can I schedule regular runs?

Yes. Use Apify Schedules to run this Actor on any cron interval (monthly, quarterly, annually) and keep downstream macro dashboards in sync.

#### ⚖️ Is this data legal to use?

The OECD publishes statistics under a permissive open-data licence that allows free use including for commercial purposes, with attribution. Review the OECD terms for your specific use case.

#### 💳 Do I need a paid Apify plan to use this Actor?

No. The free Apify plan is enough for testing and small runs (10 records per run). A paid plan lifts the limit and gives you access to scheduling, higher concurrency, and larger datasets.

#### 🔁 What happens if a run fails or gets interrupted?

Apify automatically retries transient errors. If a run still fails, you can inspect the log in the Runs tab, fix the input, and re-run. Partial datasets from failed runs are preserved so you never lose progress.

#### 🆘 What if I need help?

Our support team is here to help. Contact us through the Apify platform or use the Tally form linked below.

***

### 🔌 Integrate with any app

OECD Statistics Scraper connects to any cloud service via [Apify integrations](https://apify.com/integrations):

- [**Make**](https://docs.apify.com/platform/integrations/make) - Automate multi-step workflows
- [**Zapier**](https://docs.apify.com/platform/integrations/zapier) - Connect with 5,000+ apps
- [**Slack**](https://docs.apify.com/platform/integrations/slack) - Get run notifications in your channels
- [**n8n**](https://docs.apify.com/platform/integrations/n8n) - Self-hosted automation pipelines
- [**Pipedream**](https://docs.apify.com/platform/integrations/pipedream) - Event-driven workflow automation
- [**Airbyte**](https://docs.apify.com/platform/integrations/airbyte) - Pipe macro data into your warehouse
- [**GitHub**](https://docs.apify.com/platform/integrations/github) - Trigger runs from commits and releases
- [**Google Drive**](https://docs.apify.com/platform/integrations/drive) - Export datasets straight to Sheets

You can also use webhooks to trigger downstream actions when a run finishes. Push fresh OECD data into your product backend, or alert your team in Slack.

***

### 🔗 Recommended Actors

- [**🌐 UN Comtrade Scraper**](https://apify.com/parseforge/un-comtrade-scraper) - Bilateral trade flows by HS commodity code
- [**📈 Indexmundi Scraper**](https://apify.com/parseforge/indexmundi-scraper) - Global demographic and economic indicators
- [**📊 World Bank Open Data Scraper**](https://apify.com/parseforge/world-bank-data-scraper) - Cross-country development indicators
- [**🌍 Eurostat Scraper**](https://apify.com/parseforge/eurostat-scraper) - European Union official statistics
- [**🏛️ FRED Economic Data Scraper**](https://apify.com/parseforge/fred-economic-data-scraper) - U.S. Federal Reserve economic time series

> 💡 **Pro Tip:** browse the complete [ParseForge collection](https://apify.com/parseforge) for more reference-data scrapers.

***

**🆘 Need Help?** [**Open our contact form**](https://tally.so/r/BzdKgA) to request a new scraper, propose a custom data project, or report an issue.

***

> **⚠️ Disclaimer:** this Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by the OECD. All trademarks mentioned are the property of their respective owners. Only publicly available open OECD statistics are collected.

# Actor input Schema

## `mode` (type: `string`):

data = fetch observations from a dataset. catalogue = list every available OECD dataset (id, agency, version, name).

## `datasetId` (type: `string`):

OECD dataset identifier. Popular: QNA (Quarterly National Accounts), SNA\_TABLE1 (National Accounts), EO (Economic Outlook), MEI (Main Economic Indicators), KEI (Key Economic Indicators), STAN (Structural Analysis), EMP\_LF (Employment), BLI (Better Life Index), PPP, PRICES\_CPI, GBARD, MSTI\_PUB. OECD has 1,500+ datasets — use mode 'catalogue' to list them all.

## `seriesKey` (type: `string`):

Dot-separated dimension values. Empty positions = all (use leading/trailing or repeated dots). For QNA try 'USA.B1\_GE.CUR.Q' or leave empty.

## `startTime` (type: `string`):

Earliest period (e.g. 2020-Q1, 2018, 2020-01).

## `endTime` (type: `string`):

Latest period (e.g. 2024-Q4, 2025, 2025-03).

## `maxItems` (type: `integer`):

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000

## Actor input object example

```json
{
  "mode": "data",
  "datasetId": "QNA",
  "seriesKey": "",
  "maxItems": 10
}
```

# Actor output Schema

## `overview` (type: `string`):

Overview of scraped data

## `fullData` (type: `string`):

Complete dataset

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "mode": "data",
    "datasetId": "QNA",
    "seriesKey": "",
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/oecd-sdmx-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "mode": "data",
    "datasetId": "QNA",
    "seriesKey": "",
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/oecd-sdmx-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "mode": "data",
  "datasetId": "QNA",
  "seriesKey": "",
  "maxItems": 10
}' |
apify call parseforge/oecd-sdmx-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=parseforge/oecd-sdmx-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "OECD SDMX Statistics Scraper",
        "description": "Scrape OECD statistics via the public SDMX-JSON endpoint. Supply a dataset ID (QNA, MEI, EO, SNA_TABLE1, KEI...) and a series key (dot-separated dimension values) to get a flat row-per-observation dataset with full dimension labels.",
        "version": "0.0",
        "x-build-id": "lGYlzvypzjAPpPrra"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/parseforge~oecd-sdmx-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-parseforge-oecd-sdmx-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/parseforge~oecd-sdmx-scraper/runs": {
            "post": {
                "operationId": "runs-sync-parseforge-oecd-sdmx-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/parseforge~oecd-sdmx-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-parseforge-oecd-sdmx-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "data",
                            "catalogue"
                        ],
                        "type": "string",
                        "description": "data = fetch observations from a dataset. catalogue = list every available OECD dataset (id, agency, version, name).",
                        "default": "data"
                    },
                    "datasetId": {
                        "title": "Dataset ID",
                        "type": "string",
                        "description": "OECD dataset identifier. Popular: QNA (Quarterly National Accounts), SNA_TABLE1 (National Accounts), EO (Economic Outlook), MEI (Main Economic Indicators), KEI (Key Economic Indicators), STAN (Structural Analysis), EMP_LF (Employment), BLI (Better Life Index), PPP, PRICES_CPI, GBARD, MSTI_PUB. OECD has 1,500+ datasets — use mode 'catalogue' to list them all.",
                        "default": "QNA"
                    },
                    "seriesKey": {
                        "title": "Series Key",
                        "type": "string",
                        "description": "Dot-separated dimension values. Empty positions = all (use leading/trailing or repeated dots). For QNA try 'USA.B1_GE.CUR.Q' or leave empty.",
                        "default": ""
                    },
                    "startTime": {
                        "title": "Start Time",
                        "type": "string",
                        "description": "Earliest period (e.g. 2020-Q1, 2018, 2020-01)."
                    },
                    "endTime": {
                        "title": "End Time",
                        "type": "string",
                        "description": "Latest period (e.g. 2024-Q4, 2025, 2025-03)."
                    },
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000"
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
