# OECD Statistics Tracker (`gochujang/oecd-stats-tracker`) Actor

Collect official OECD macroeconomic data for 38 member countries via the free SDMX-JSON API. Covers GDP, unemployment (monthly/quarterly), employment, CPI, and balance of payments. Filter by country and year range. No API key required. Ideal for economic research and country benchmarking.

- **URL**: https://apify.com/gochujang/oecd-stats-tracker.md
- **Developed by:** [Hojun Lee](https://apify.com/gochujang) (community)
- **Categories:** Education
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 item trackeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### What does OECD Statistics Tracker do?

**OECD statistics tracker** collects official macroeconomic and labour market data for all 38 OECD member countries via the free OECD SDMX-JSON API — no API key, no registration required. Choose from GDP, unemployment, CPI, employment, and balance of payments datasets; specify your countries and year range; and receive flat, analysis-ready observation records covering annual, quarterly, and monthly frequencies. This **international economic data** pipeline eliminates manual OECD.stat downloads and delivers structured **OECD economic indicators** directly to your dataset.

### Why use OECD Statistics Tracker?

- **Country benchmarking** — compare GDP growth, unemployment, and inflation across G7, G20, or all OECD members in a single run to build peer-group economic scorecards.
- **Labour market analysis** — pull monthly unemployment rates for every OECD member and feed them into workforce planning models or macro strategy research.
- **Trade and balance-of-payments research** — extract structured balance-of-payments data for trade analysis without navigating the OECD.stat web interface.
- **Automated policy datasets** — build reproducible macro dashboards with scheduled runs that always reflect the latest **OECD economic indicators API** data.
- **Multi-indicator correlation studies** — combine GDP, CPI, and employment data in a single run using the `datasets` parameter to power cross-indicator econometric analysis.

### How to use OECD Statistics Tracker

1. Open the actor on Apify and click **Try for free**.
2. Set the `dataset` field to the dataset you want (e.g. `GDP`, `UNEMPLOYMENT`, `CPI`).
3. Add ISO 3-letter `countries` codes (e.g. `["USA", "DEU", "JPN"]`), or leave empty for all OECD members.
4. Set `startYear` and `endYear` to define your time range.
5. Optionally add extra datasets to the `datasets` array to fetch multiple indicators in one run.
6. Click **Start** and export results as JSON or CSV.

### Input

| Parameter | Type | Default | Description |
|---|---|---|---|
| `dataset` | `string` | `GDP` | Primary dataset ID (see available datasets below) |
| `datasets` | `string[]` | `[]` | Additional dataset IDs to fetch in parallel |
| `countries` | `string[]` | `[]` | ISO 3-letter country codes (empty = all 38 OECD members) |
| `startYear` | `integer` | `2015` | First year to include (inclusive) |
| `endYear` | `integer` | `2023` | Last year to include (inclusive) |
| `maxRecords` | `integer` | `1000` | Record cap per dataset (set to `0` for no limit) |

**Available datasets:**

| Dataset ID | Description | Frequency |
|---|---|---|
| `GDP` | GDP and components — expenditure approach | Annual |
| `UNEMPLOYMENT` | Unemployment rate (% of labour force) | Monthly |
| `UNEMPLOYMENT_Q` | Unemployment rate (% of labour force) | Quarterly |
| `EMPLOYMENT` | Employment levels and rates | Annual |
| `CPI` | Consumer Price Index | Monthly |
| `BOP` | Balance of payments by transaction | Annual |

**OECD member country codes:** `AUS`, `AUT`, `BEL`, `CAN`, `CHL`, `COL`, `CRI`, `CZE`, `DNK`, `EST`, `FIN`, `FRA`, `DEU`, `GRC`, `HUN`, `ISL`, `IRL`, `ISR`, `ITA`, `JPN`, `KOR`, `LVA`, `LTU`, `LUX`, `MEX`, `NLD`, `NZL`, `NOR`, `POL`, `PRT`, `SVK`, `SVN`, `ESP`, `SWE`, `CHE`, `TUR`, `GBR`, `USA`

### Output

One flat observation record per country-indicator-period combination:

```json
[
  {
    "dataset": "GDP",
    "dataset_name": "GDP and Components (Expenditure Approach)",
    "country": "USA",
    "country_name": "United States",
    "indicator": "B1GQ",
    "indicator_name": "Gross domestic product",
    "frequency": "A",
    "year": 2022,
    "quarter": null,
    "month": null,
    "value": 25462700.0,
    "unit": "USD_EXC",
    "unit_name": "US Dollar, exchanged",
    "source": "OECD"
  },
  {
    "dataset": "UNEMPLOYMENT",
    "dataset_name": "Monthly Unemployment Rate",
    "country": "DEU",
    "country_name": "Germany",
    "indicator": "UNR",
    "indicator_name": "Unemployment rate",
    "frequency": "M",
    "year": 2023,
    "quarter": null,
    "month": "03",
    "value": 3.1,
    "unit": "PC_LF",
    "unit_name": "Percentage of labour force",
    "source": "OECD"
  }
]
```

### Data fields

| Field | Type | Description |
|---|---|---|
| `dataset` | string | Dataset ID (e.g. `GDP`, `CPI`) |
| `dataset_name` | string | Human-readable dataset label |
| `country` | string | ISO 3-letter country code |
| `country_name` | string | Full country name |
| `indicator` | string | SDMX indicator code |
| `indicator_name` | string | Human-readable indicator name |
| `frequency` | string | `A` (annual), `Q` (quarterly), or `M` (monthly) |
| `year` | integer | Observation year |
| `quarter` | string | null | Quarter (e.g. `Q1`) for quarterly datasets |
| `month` | string | null | Month (e.g. `03`) for monthly datasets |
| `value` | float | Numeric observation value |
| `unit` | string | SDMX unit code |
| `unit_name` | string | Human-readable unit description |
| `source` | string | Always `OECD` |

### Cost estimation

Pricing is **Pay-Per-Event (PPE)** — one fixed charge per run plus $0.001 per observation.

| Scenario | Records | Cost |
|---|---|---|
| GDP for 10 countries × 8 years | ~80 | $0.005 + $0.08 = $0.085 |
| Unemployment (monthly) × 38 countries × 5 years | ~2,280 | $0.005 + $2.28 = $2.29 |
| 3 datasets × 38 countries × 8 years | ~4,000 | $0.005 + $4.00 = $4.01 |

Set `maxRecords` to `0` to remove the record cap when you need complete dataset coverage.

### FAQ

**Do I need an OECD API key?**
No. The OECD SDMX-JSON REST API is fully public and requires no authentication or registration.

**How current is the OECD data?**
Data freshness depends on each dataset's publication schedule — monthly datasets (CPI, UNEMPLOYMENT) are typically updated within weeks of the reference period; annual datasets (GDP, BOP, EMPLOYMENT) are updated annually. This **OECD statistics tracker** fetches the latest available data on each run.

**Can I fetch multiple datasets in one run?**
Yes. Populate the `datasets` array with additional dataset IDs alongside the primary `dataset` field. All datasets are fetched in parallel to minimize runtime.

***

> **Disclaimer:** Data is sourced from the publicly available OECD SDMX-JSON API. This actor is not affiliated with or endorsed by the OECD. Values reflect official OECD statistics and are subject to revision. Verify data against primary OECD publications before use in policy, regulatory, or investment contexts.

***

### Related actors

- [World Bank Data Scraper](https://apify.com/gochujang/world-bank-data) — World Bank development indicators to complement OECD member country data
- [IMF Economic Data Tracker](https://apify.com/gochujang/imf-economic-data) — IMF economic forecasts and balance of payments alongside OECD actual data
- [Eurostat Economic Data](https://apify.com/gochujang/eurostat-economic-data) — EU-specific statistics for deeper analysis of OECD European member countries

### Feedback

If this actor powers your macro research, a review helps others find it: [Leave a review on Apify Store](https://apify.com/gochujang/oecd-stats-tracker#reviews)

***

**Keywords:** OECD statistics tracker, OECD GDP data, OECD employment data, OECD trade statistics, OECD API scraper, macroeconomic indicators, OECD member countries, economic comparison tool, OECD data extractor, international economic data, GDP growth rate, unemployment rate OECD, inflation data OECD, OECD economic outlook, cross-country macro data

# Actor input Schema

## `dataset` (type: `string`):

OECD dataset to fetch. GDP = national accounts expenditure approach; UNEMPLOYMENT / UNEMPLOYMENT\_Q = monthly/quarterly unemployment rate; EMPLOYMENT = annual employment; CPI = consumer prices; BOP = balance of payments.

## `datasets` (type: `array`):

Fetch multiple datasets in one run (e.g. \["UNEMPLOYMENT", "CPI"]). Each runs in parallel.

## `countries` (type: `array`):

OECD 3-letter country codes (e.g. USA, GBR, DEU, JPN, KOR, FRA, CAN, AUS). Leave empty to fetch all available OECD members.

## `startYear` (type: `integer`):

First year to include in results

## `endYear` (type: `integer`):

Last year to include in results

## `maxRecords` (type: `integer`):

Cap on observations returned per dataset. Set 0 for no limit.

## Actor input object example

```json
{
  "dataset": "GDP",
  "datasets": [],
  "countries": [
    "USA",
    "GBR",
    "DEU",
    "JPN",
    "KOR",
    "FRA",
    "CAN",
    "AUS"
  ],
  "startYear": 2015,
  "endYear": 2023,
  "maxRecords": 1000
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# 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 = {
    "datasets": [],
    "countries": [
        "USA",
        "GBR",
        "DEU",
        "JPN",
        "KOR",
        "FRA",
        "CAN",
        "AUS"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("gochujang/oecd-stats-tracker").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 = {
    "datasets": [],
    "countries": [
        "USA",
        "GBR",
        "DEU",
        "JPN",
        "KOR",
        "FRA",
        "CAN",
        "AUS",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("gochujang/oecd-stats-tracker").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "datasets": [],
  "countries": [
    "USA",
    "GBR",
    "DEU",
    "JPN",
    "KOR",
    "FRA",
    "CAN",
    "AUS"
  ]
}' |
apify call gochujang/oecd-stats-tracker --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,gochujang/oecd-stats-tracker"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/rtYtddNMDYo7XQViZ/builds/N3q4tus8NfpcsWCa6/openapi.json
