# IMF Economic Data Search (`ryanclinton/imf-economic-data`) Actor

Access macroeconomic data from the International Monetary Fund's World Economic Outlook (WEO) database covering 190+ countries.

- **URL**: https://apify.com/ryanclinton/imf-economic-data.md
- **Developed by:** [Ryan Clinton](https://apify.com/ryanclinton) (community)
- **Categories:** AI, Developer tools
- **Stats:** 8 total users, 0 monthly users, 95.8% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 data fetcheds

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/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

## IMF Economic Data Search

Access macroeconomic data from the International Monetary Fund's World Economic Outlook (WEO) database covering 190+ countries. Retrieve GDP growth, inflation, unemployment, government debt, trade balances, and dozens of other fiscal and economic indicators -- all through a simple, structured API with no authentication required.

---

### Why use this actor?

- **Authoritative source** -- the IMF World Economic Outlook is one of the most trusted cross-country economic datasets used by governments, central banks, financial institutions, and academic researchers worldwide.
- **No API key needed** -- the IMF DataMapper API is free and public, so you pay zero for the underlying data. This actor handles the fetching, parsing, normalization, and structuring for you.
- **Multi-country bulk extraction** -- fetch data for dozens of countries in a single run using comma-separated ISO codes, or use `ALL` to pull every available country at once.
- **Forecasts included** -- the IMF projects data 2--5 years into the future. Toggle a single checkbox to include or exclude projected values alongside historical actuals.
- **Ready for automation** -- run on a schedule with Apify's built-in cron, trigger webhooks on completion, and pipe structured JSON directly into dashboards, spreadsheets, or downstream APIs.

---

### Key features

- **15 preset indicators** in a dropdown -- Real GDP growth, GDP per capita, inflation, unemployment, population, current account balance, government debt, fiscal balance, PPP share, and more.
- **40+ additional indicators** via custom codes -- government revenue, expenditure, corporate debt, household debt, trade balance, real effective exchange rates, AI Preparedness Index, and others.
- **190+ countries** supported using standard ISO alpha-3 codes (USA, GBR, DEU, JPN, CHN, IND, BRA, etc.).
- **Historical data from 1980** through the present year, with optional IMF forecast projections out to 2029--2030.
- **Bulk "ALL" mode** -- fetch every available country for a given indicator in a single run.
- **Year-range filtering** -- narrow results to exactly the time period you need, reducing noise and dataset size.
- **Clean, normalized output** -- each row includes the country name, indicator label, unit of measurement, dataset source, and extraction timestamp.
- **Built-in rate limiting** -- 500ms delay between country requests to respect IMF API limits.
- **Automatic retry with exponential backoff** -- recovers gracefully from transient 403 errors without manual intervention.
- **Values rounded to 3 decimal places** -- eliminates floating-point artifacts for clean downstream processing.

---

### How to use

#### From the Apify Console

1. Navigate to [ryanclinton/imf-economic-data](https://apify.com/ryanclinton/imf-economic-data) on the Apify Store.
2. Click **Try for free** to open the actor in the Apify Console.
3. Select an indicator from the dropdown (e.g., "Real GDP growth (%)").
4. Enter one or more ISO alpha-3 country codes (e.g., `USA,GBR,DEU,JPN`).
5. Optionally set a start year, end year, and toggle forecasts.
6. Click **Start** and wait for the run to complete.
7. Download your results as JSON, CSV, or Excel from the **Dataset** tab.

#### Via the Apify API (JavaScript)

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

const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });

const run = await client.actor('gc3sx9TauOIK8qzuC').call({
    indicator: 'NGDP_RPCH',
    country: 'USA,GBR,DEU,JPN,CHN',
    startYear: '2020',
    endYear: '2025',
    includeForecasts: true,
    maxResults: 200,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
````

#### Via the Apify API (Python)

```python
from apify_client import ApifyClient

client = ApifyClient('YOUR_API_TOKEN')

run = client.actor('gc3sx9TauOIK8qzuC').call(run_input={
    'indicator': 'NGDP_RPCH',
    'country': 'USA,GBR,DEU,JPN,CHN',
    'startYear': '2020',
    'endYear': '2025',
    'includeForecasts': True,
    'maxResults': 200,
})

items = client.dataset(run['defaultDatasetId']).list_items().items
for item in items:
    print(f"{item['countryName']} ({item['period']}): {item['value']} {item['unit']}")
```

***

### Input parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `indicator` | string (select) | Yes | `NGDP_RPCH` | IMF WEO indicator code. Choose from 15 preset indicators in the dropdown. |
| `customIndicator` | string | No | -- | Override the dropdown with any valid IMF indicator code (e.g., `rev`, `exp`, `d`, `NFC_ALL`, `HH_ALL`, `AI_PI`). |
| `country` | string | Yes | `USA` | Comma-separated ISO alpha-3 country codes. Use `ALL` for every available country. |
| `startYear` | string | No | -- | Start year for data range. Data available from 1980. Leave empty for all years. |
| `endYear` | string | No | -- | End year for data range. Leave empty for all available years. |
| `includeForecasts` | boolean | No | `false` | Include IMF forecast/projected values (typically 2--5 years into the future). |
| `maxResults` | integer | No | `100` | Maximum number of data points to return (1--1000). |

#### Example input JSON

```json
{
    "indicator": "NGDP_RPCH",
    "country": "USA,GBR,DEU,JPN",
    "startYear": "2020",
    "endYear": "2026",
    "includeForecasts": true,
    "maxResults": 100
}
```

**Tips:**

- Use ISO alpha-3 codes. Common examples: USA, GBR, DEU, FRA, JPN, CHN, IND, BRA, CAN, AUS, KOR, MEX, ZAF, SGP, ARE.
- The `customIndicator` field overrides the dropdown when both are set.
- Visit [imf.org/external/datamapper](https://www.imf.org/external/datamapper) to browse the full list of available indicator codes.
- Without year filters, the actor returns data from 1980 onward, which can be large for multi-country queries.

***

### Output

Each data point in the output dataset contains one row per country-year observation:

```json
[
    {
        "country": "USA",
        "countryName": "United States",
        "indicator": "NGDP_RPCH",
        "indicatorName": "Real GDP growth (annual %)",
        "period": "2022",
        "value": 1.943,
        "unit": "percent",
        "dataset": "WEO",
        "extractedAt": "2026-02-19T12:00:00.000Z"
    },
    {
        "country": "GBR",
        "countryName": "United Kingdom",
        "indicator": "NGDP_RPCH",
        "indicatorName": "Real GDP growth (annual %)",
        "period": "2022",
        "value": 4.344,
        "unit": "percent",
        "dataset": "WEO",
        "extractedAt": "2026-02-19T12:00:00.000Z"
    },
    {
        "country": "DEU",
        "countryName": "Germany",
        "indicator": "NGDP_RPCH",
        "indicatorName": "Real GDP growth (annual %)",
        "period": "2023",
        "value": -0.264,
        "unit": "percent",
        "dataset": "WEO",
        "extractedAt": "2026-02-19T12:00:00.000Z"
    }
]
```

#### Output fields

| Field | Type | Description |
|-------|------|-------------|
| `country` | string | ISO alpha-3 country code (e.g., `USA`, `GBR`, `DEU`) |
| `countryName` | string | Full human-readable country name |
| `indicator` | string | IMF indicator code used in the query |
| `indicatorName` | string | Human-readable indicator label (e.g., "Real GDP growth (annual %)") |
| `period` | string | Year of the observation or forecast |
| `value` | number | The data value, rounded to 3 decimal places |
| `unit` | string | Unit of measurement (e.g., "percent", "USD billions", "percent of GDP") |
| `dataset` | string | Source dataset identifier (always `WEO` -- World Economic Outlook) |
| `extractedAt` | string | ISO 8601 timestamp of when the data was extracted |

***

### Use cases

- **Macroeconomic research** -- pull GDP growth, inflation, and unemployment time series for cross-country comparative studies or academic papers.
- **Sovereign risk analysis** -- monitor government debt-to-GDP ratios, fiscal balances, and current account balances across emerging and developed markets.
- **Investment analysis** -- compare GDP per capita, PPP exchange rates, and growth trajectories to identify attractive markets for foreign direct investment.
- **Economic dashboards** -- schedule daily or weekly runs to feed live data into Tableau, Power BI, Google Sheets, or custom web dashboards.
- **Journalism and reporting** -- quickly retrieve authoritative economic figures for news stories, fact-checking, or data-driven articles.
- **Policy benchmarking** -- compare fiscal indicators (government revenue, expenditure, primary balance) across peer countries to evaluate policy effectiveness.
- **Trade analysis** -- track exports, imports, trade balance, and current account data to understand bilateral and multilateral trade dynamics.
- **AI and automation pipelines** -- feed structured economic data into LLM-based analysis, automated report generation, or alert systems that trigger on threshold breaches.
- **Academic datasets** -- build longitudinal economic datasets spanning 40+ years for econometric modeling, regression analysis, or machine learning training.
- **Forecasting validation** -- compare IMF forecast projections against actuals to evaluate prediction accuracy over time.

***

### API & integration

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient('YOUR_API_TOKEN')
run = client.actor('gc3sx9TauOIK8qzuC').call(run_input={
    'indicator': 'GGXWDG_NGDP',
    'country': 'USA,JPN,ITA,GRC',
    'startYear': '2015',
    'endYear': '2025',
    'includeForecasts': True,
})
for item in client.dataset(run['defaultDatasetId']).list_items().items:
    print(f"{item['countryName']} {item['period']}: {item['value']}% of GDP")
```

#### JavaScript

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

const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('gc3sx9TauOIK8qzuC').call({
    indicator: 'PCPIPCH',
    country: 'ARG,TUR,VEN',
    startYear: '2018',
    endYear: '2025',
    includeForecasts: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach(i => console.log(`${i.countryName} ${i.period}: ${i.value}%`));
```

#### cURL

```bash
curl "https://api.apify.com/v2/acts/gc3sx9TauOIK8qzuC/runs" \
  -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -d '{
    "indicator": "NGDPD",
    "country": "USA,CHN,JPN,DEU,IND",
    "startYear": "2020",
    "endYear": "2025",
    "maxResults": 500
  }'
```

#### Integrations

This actor works with all Apify platform integrations, including:

- **Webhooks** -- trigger downstream processing when a run completes.
- **Google Sheets** -- export results directly to a spreadsheet for live dashboards.
- **Slack / Email** -- receive notifications when new data is available.
- **Zapier / Make** -- connect to 5000+ apps for automated workflows.
- **Amazon S3 / Google Cloud Storage** -- push datasets to cloud storage for archival or further processing.

***

### How it works

1. **Parse input** -- validate the indicator code, country list, year range, and forecast toggle.
2. **Resolve indicator** -- if a custom indicator code is provided, it overrides the dropdown selection.
3. **Fetch metadata** -- retrieve indicator labels and country names from the IMF API in parallel.
4. **Query the IMF DataMapper API** -- for each country, fetch time-series data from `imf.org/external/datamapper/api/v1/{indicator}/{country}`. When `ALL` is specified, a single bulk request retrieves all countries.
5. **Filter and process** -- apply year-range filters, exclude forecast years if toggled off, round values to 3 decimal places.
6. **Sort and limit** -- sort results by country code then year, trim to the `maxResults` cap.
7. **Push to dataset** -- write each data point to the Apify dataset for download or API access.

```
                    +-------------------+
                    |   Parse Input     |
                    +--------+----------+
                             |
                    +--------v----------+
                    | Fetch Metadata    |
                    | (labels + names)  |
                    +--------+----------+
                             |
              +--------------+--------------+
              |                             |
     +--------v--------+          +--------v--------+
     | Single Country  |          | ALL Countries   |
     | (per-country    |          | (bulk request)  |
     |  with 500ms     |          |                 |
     |  delay + retry) |          |                 |
     +--------+--------+          +--------+--------+
              |                             |
              +--------------+--------------+
                             |
                    +--------v----------+
                    | Filter by Year    |
                    | + Forecast Toggle |
                    +--------+----------+
                             |
                    +--------v----------+
                    | Sort + Limit      |
                    +--------+----------+
                             |
                    +--------v----------+
                    | Push to Dataset   |
                    +-------------------+
```

***

### Performance & cost

| Metric | Value |
|--------|-------|
| Average run time (single country) | 5--15 seconds |
| Average run time (10 countries) | 15--30 seconds |
| Average run time (ALL countries) | 60--120 seconds |
| Memory usage | 256 MB |
| Cost per run (single country) | ~$0.001 |
| Cost per run (10 countries) | ~$0.005 |
| Cost per run (ALL countries) | ~$0.01--0.02 |
| API rate limit delay | 500ms between country requests |
| Retry strategy | Exponential backoff on 403 (max 3 attempts) |
| Max results per run | 1,000 data points |

Apify's free tier includes $5 of monthly platform credits -- enough for hundreds of runs of this actor.

***

### Limitations

- **WEO data only** -- this actor queries the IMF DataMapper's World Economic Outlook dataset. Other IMF databases (International Financial Statistics, Balance of Payments, etc.) are not covered.
- **Update frequency** -- WEO data is updated twice per year (April and October). Between updates, the data reflects the most recent publication.
- **Indicator coverage varies** -- not all indicators have data for all countries or all years. Newer indicators or smaller countries may have gaps.
- **Maximum 1,000 results** -- the `maxResults` cap is 1,000 data points per run. For very large extractions, run multiple queries with different country subsets.
- **Forecast accuracy** -- IMF projections are estimates and can differ significantly from actual outcomes. Always distinguish forecast years from historical actuals in your analysis.
- **No sub-annual data** -- all data is annual. Monthly or quarterly economic data is not available through this endpoint.
- **Rate limiting** -- the actor enforces a 500ms delay between country requests. Bulk "ALL" queries use a single request but may be slower to return from the IMF server.

***

### Responsible use

- **Cite your source** -- when publishing or sharing data obtained through this actor, credit the International Monetary Fund and the World Economic Outlook database as the original source.
- **Respect IMF terms** -- the IMF DataMapper API is free for public use. Avoid excessive request volumes that could strain the service. This actor includes built-in rate limiting to help with this.
- **Distinguish forecasts from actuals** -- always clearly label projected values as IMF estimates when presenting data to audiences who may not understand the difference.
- **Verify critical figures** -- for high-stakes decisions (investment, policy, legal), cross-check IMF data against primary national statistics offices or other authoritative sources.
- **Keep data current** -- schedule runs after the April and October WEO publications to ensure you are working with the latest available data.

***

### FAQ

**What data source does this actor use?**
This actor queries the IMF DataMapper API, which serves data from the World Economic Outlook (WEO) database. The WEO is published twice per year (April and October) and covers macroeconomic indicators for 190+ IMF member countries.

**Do I need an API key?**
No. The IMF DataMapper API is free and publicly accessible. No registration or authentication is required.

**What countries are available?**
All 190+ IMF member countries are available using their ISO alpha-3 codes (e.g., USA, GBR, DEU, JPN, CHN). Use `ALL` as the country parameter to fetch data for every available country.

**How far back does the data go?**
Most indicators have data from 1980 onward, though coverage varies by country and indicator. Some newer indicators may have shorter time series.

**What are the forecast years?**
The IMF typically projects data 2--5 years into the future from the current WEO publication. For example, the October 2025 WEO includes projections through 2029--2030. Enable the "Include Forecasts" toggle to retrieve these projected values.

**Can I get data that is not in the dropdown?**
Yes. Use the "Custom Indicator Code" field to enter any valid IMF indicator code. Browse the full list at [imf.org/external/datamapper](https://www.imf.org/external/datamapper). Examples include `rev` (government revenue), `exp` (government expenditure), `d` (gross public debt), `NFC_ALL` (corporate debt), `HH_ALL` (household debt), and `AI_PI` (AI Preparedness Index).

**How often is the data updated?**
The IMF publishes WEO updates in April and October each year. The DataMapper API reflects these updates shortly after publication.

**Can I fetch data for multiple countries at once?**
Yes. Enter comma-separated ISO alpha-3 codes in the country field (e.g., `USA,GBR,DEU,JPN,CHN`). The actor fetches data for each country sequentially with a 500ms delay between requests.

**What does the "ALL" country option do?**
Setting the country field to `ALL` fetches data for every available country in a single bulk API request. This is efficient but produces a large dataset -- combine it with year filtering and a reasonable `maxResults` limit.

**Why are some values null or missing?**
The IMF does not have complete data for every country-year-indicator combination. Data gaps are common for smaller countries, conflict zones, or newer indicators. Missing values are excluded from the output.

**How do I tell forecasts apart from historical data?**
Compare the `period` field against the current year. Values with a period greater than the current year are IMF forecasts. The actor only includes these when `includeForecasts` is set to `true`.

**What is the maximum number of results?**
The `maxResults` parameter caps output at 1,000 data points per run. For larger extractions, run the actor multiple times with different country subsets or year ranges.

***

### Related actors

| Actor | Description |
|-------|-------------|
| [World Bank Development Indicators](https://apify.com/ryanclinton/world-bank-indicators) | Access World Bank development data for 200+ countries |
| [FRED Economic Data Search](https://apify.com/ryanclinton/fred-economic-data) | Query Federal Reserve economic time series |
| [OECD Economic Statistics](https://apify.com/ryanclinton/oecd-statistics-search) | Search OECD economic statistics |
| [BLS US Economic Data](https://apify.com/ryanclinton/bls-economic-data) | Search Bureau of Labor Statistics data |
| [ECB Exchange Rates](https://apify.com/ryanclinton/ecb-exchange-rates) | European Central Bank exchange rate data |
| [Eurostat EU Statistics](https://apify.com/ryanclinton/eurostat-eu-statistics) | Search Eurostat European Union statistics |

# Actor input Schema

## `indicator` (type: `string`):

IMF World Economic Outlook indicator. Select a common indicator from the dropdown or enter a custom code below.

## `customIndicator` (type: `string`):

Override the dropdown with a custom IMF indicator code. Full list at imf.org/external/datamapper. Examples: rev (govt revenue), exp (govt expenditure), d (gross public debt), NFC\_ALL (corporate debt), HH\_ALL (household debt)

## `country` (type: `string`):

Comma-separated ISO alpha-3 country codes (e.g. USA,GBR,DEU,JPN,CHN). Use 'all' for all countries.

## `startYear` (type: `string`):

Start year for data range (data available from 1980). Leave empty for all available years.

## `endYear` (type: `string`):

End year for data range. Leave empty for all available years including forecasts.

## `includeForecasts` (type: `boolean`):

Include IMF forecast/projected values (typically 2-5 years into the future)

## `maxResults` (type: `integer`):

Maximum number of data points to return

## Actor input object example

```json
{
  "indicator": "NGDP_RPCH",
  "country": "USA",
  "startYear": "2020",
  "endYear": "2024",
  "includeForecasts": false,
  "maxResults": 100
}
```

# 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 = {
    "indicator": "NGDP_RPCH",
    "country": "USA",
    "startYear": "2020",
    "endYear": "2024",
    "maxResults": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("ryanclinton/imf-economic-data").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 = {
    "indicator": "NGDP_RPCH",
    "country": "USA",
    "startYear": "2020",
    "endYear": "2024",
    "maxResults": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("ryanclinton/imf-economic-data").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 '{
  "indicator": "NGDP_RPCH",
  "country": "USA",
  "startYear": "2020",
  "endYear": "2024",
  "maxResults": 100
}' |
apify call ryanclinton/imf-economic-data --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=ryanclinton/imf-economic-data",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "IMF Economic Data Search",
        "description": "Access macroeconomic data from the International Monetary Fund's World Economic Outlook (WEO) database covering 190+ countries.",
        "version": "1.0",
        "x-build-id": "MdSLfYtInVtnDOIU7"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/ryanclinton~imf-economic-data/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-ryanclinton-imf-economic-data",
                "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/ryanclinton~imf-economic-data/runs": {
            "post": {
                "operationId": "runs-sync-ryanclinton-imf-economic-data",
                "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/ryanclinton~imf-economic-data/run-sync": {
            "post": {
                "operationId": "run-sync-ryanclinton-imf-economic-data",
                "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",
                "required": [
                    "indicator",
                    "country"
                ],
                "properties": {
                    "indicator": {
                        "title": "Indicator",
                        "enum": [
                            "NGDP_RPCH",
                            "NGDPD",
                            "NGDPDPC",
                            "PPPGDP",
                            "PPPPC",
                            "PCPIPCH",
                            "PCPIEPCH",
                            "LUR",
                            "LP",
                            "BCA",
                            "BCA_NGDPD",
                            "GGXCNL_NGDP",
                            "GGXWDG_NGDP",
                            "PPPSH",
                            "PPPEX"
                        ],
                        "type": "string",
                        "description": "IMF World Economic Outlook indicator. Select a common indicator from the dropdown or enter a custom code below.",
                        "default": "NGDP_RPCH"
                    },
                    "customIndicator": {
                        "title": "Custom Indicator Code",
                        "type": "string",
                        "description": "Override the dropdown with a custom IMF indicator code. Full list at imf.org/external/datamapper. Examples: rev (govt revenue), exp (govt expenditure), d (gross public debt), NFC_ALL (corporate debt), HH_ALL (household debt)"
                    },
                    "country": {
                        "title": "Country Codes",
                        "type": "string",
                        "description": "Comma-separated ISO alpha-3 country codes (e.g. USA,GBR,DEU,JPN,CHN). Use 'all' for all countries.",
                        "default": "USA"
                    },
                    "startYear": {
                        "title": "Start Year",
                        "type": "string",
                        "description": "Start year for data range (data available from 1980). Leave empty for all available years.",
                        "default": "2020"
                    },
                    "endYear": {
                        "title": "End Year",
                        "type": "string",
                        "description": "End year for data range. Leave empty for all available years including forecasts.",
                        "default": "2024"
                    },
                    "includeForecasts": {
                        "title": "Include Forecasts",
                        "type": "boolean",
                        "description": "Include IMF forecast/projected values (typically 2-5 years into the future)",
                        "default": false
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum number of data points to return",
                        "default": 100
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
