# Open Exchange Rates Scraper (166 Currencies) (`parseforge/openexchangerates-free-scraper`) Actor

Get live foreign exchange rates against USD across 170+ currencies from Open Exchange Rates free tier. Capture rate, base, timestamp, currency code, currency name. Export FX data to JSON, CSV, or Excel for finance dashboards, accounting, ecommerce pricing, and treasury analytics.

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

## Pricing

from $11.00 / 1,000 result items

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/ad35ccc13ddd068b9d6cba33f323962e39aed5b2/banner.jpg?raw=true)

## 💵 Open Exchange Rates Scraper

> 🚀 **Export daily FX rates for 166 currencies in seconds.** Pull live spot rates and inverse rates against any base currency, refreshed daily. No API key, no registration, no per-call billing.

> 🕒 **Last updated:** 2026-05-23 · **📊 9 fields** per record · **💵 166 currencies** · **📅 Daily refresh** · **🔁 Live per run**

The **Open Exchange Rates Scraper** queries the public ExchangeRate open feed, an open, no-auth alternative to subscription FX providers. It returns **9 structured fields per record**, including the base currency, target currency, rate, inverse rate, last-update timestamp (UTC and Unix), next-update timestamp (UTC and Unix), and the scrape timestamp.

The catalog covers **166 currencies including USD, EUR, GBP, JPY, CNY, CHF, AUD, CAD, plus most G20 currencies, frontier-market fiat, and select stable currencies**. That dwarfs the 30 currencies offered by the ECB-derived Frankfurter feed and includes non-EU centric markets that European reference series often omit. This Actor returns one record per quote currency, downloadable as CSV, Excel, JSON, or XML.

| 🎯 Target Audience | 💡 Primary Use Cases |
|---|---|
| Forex analysts, fintech engineers, accounting and ERP teams, travel and booking platforms, e-commerce checkout, treasury teams, crypto-adjacent products, remittance startups | Spot-rate lookups, multi-currency dashboards, FX risk reports, base-currency conversion in checkouts, emerging-market price feeds, frontier-currency analytics |

---

### 📋 What the Open Exchange Rates Scraper does

A single lookup workflow with full control over the base and targets:

- 💵 **166 currencies.** Pull spot rates against any base currency in the catalog.
- 🎯 **Target filter.** Restrict the output to only the ISO codes you care about.
- 🔁 **Inverse rate.** Each record also exposes the reverse rate (1/rate) so you can convert either direction without recompute.
- 📅 **Update windows.** Both last-update and next-update timestamps are returned in UTC ISO 8601 and Unix epoch.

Each record bundles the base currency, target currency, the numeric rate, the inverse rate, the feed's last-update and next-update timestamps, and the scrape timestamp.

> 💡 **Why it matters:** the most popular open FX feeds are European (ECB, Frankfurter) and cap out at 30-32 currencies. Anyone running an e-commerce checkout in Latin America, remittance to Africa, or a dashboard covering Asia-Pacific frontier markets needs broader coverage. This Actor delivers it without a paid API tier.

---

### 🎬 Full Demo

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

---

### ⚙️ Input

<table>
<thead>
<tr><th>Input</th><th>Type</th><th>Default</th><th>Behavior</th></tr>
</thead>
<tbody>
<tr><td>maxItems</td><td>integer</td><td>10</td><td>Records to return. Free plan caps at 10, paid plan at 1,000,000.</td></tr>
<tr><td>baseCurrency</td><td>string</td><td>"USD"</td><td>ISO 4217 code for the base currency. 166 supported.</td></tr>
<tr><td>targetCurrencies</td><td>array</td><td>[]</td><td>Optional ISO 4217 codes (e.g. ["EUR", "GBP", "JPY"]). Empty returns all 166.</td></tr>
</tbody>
</table>

**Example: USD as base, all 166 target currencies.**

```json
{
    "maxItems": 200,
    "baseCurrency": "USD"
}
````

**Example: EUR as base, restricted to G7 quote currencies.**

```json
{
    "maxItems": 10,
    "baseCurrency": "EUR",
    "targetCurrencies": ["USD", "GBP", "JPY", "CAD", "CHF"]
}
```

> ⚠️ **Good to Know:** the feed refreshes once per day. The `lastUpdateUtc` and `nextUpdateUtc` fields tell you exactly when the rates were published and when the next refresh is due. For intraday trading, a real-time commercial feed is the right choice; for daily dashboards, accounting close, and checkout conversion, this Actor is enough.

***

### 📊 Output

Each rate record contains **9 fields**. Download the dataset as CSV, Excel, JSON, or XML.

#### 🧾 Schema

| Field | Type | Example |
|---|---|---|
| 🏦 `baseCurrency` | string | `"USD"` |
| 💱 `targetCurrency` | string | `"EUR"` |
| 💯 `rate` | number | `0.92145` |
| 🔁 `inverseRate` | number | `1.08526` |
| 📅 `lastUpdateUtc` | ISO 8601 | `"2026-05-23T00:00:01+00:00"` |
| 📆 `nextUpdateUtc` | ISO 8601 | `"2026-05-24T00:00:01+00:00"` |
| ⏰ `lastUpdateUnix` | number | `1779494401` |
| ⏰ `nextUpdateUnix` | number | `1779580801` |
| 🕒 `scrapedAt` | ISO 8601 | `"2026-05-23T10:00:00.000Z"` |

#### 📦 Sample records

<details>
<summary><strong>💵 USD to EUR spot rate</strong></summary>

```json
{
    "baseCurrency": "USD",
    "targetCurrency": "EUR",
    "rate": 0.92145,
    "inverseRate": 1.08526,
    "lastUpdateUtc": "2026-05-23T00:00:01+00:00",
    "nextUpdateUtc": "2026-05-24T00:00:01+00:00",
    "lastUpdateUnix": 1779494401,
    "nextUpdateUnix": 1779580801,
    "scrapedAt": "2026-05-23T10:00:00.000Z"
}
```

</details>

<details>
<summary><strong>🇳🇬 USD to NGN frontier-market rate</strong></summary>

```json
{
    "baseCurrency": "USD",
    "targetCurrency": "NGN",
    "rate": 1583.21,
    "inverseRate": 0.00063,
    "lastUpdateUtc": "2026-05-23T00:00:01+00:00",
    "nextUpdateUtc": "2026-05-24T00:00:01+00:00",
    "lastUpdateUnix": 1779494401,
    "nextUpdateUnix": 1779580801,
    "scrapedAt": "2026-05-23T10:00:00.000Z"
}
```

</details>

<details>
<summary><strong>🇯🇵 EUR to JPY cross rate</strong></summary>

```json
{
    "baseCurrency": "EUR",
    "targetCurrency": "JPY",
    "rate": 168.74,
    "inverseRate": 0.00593,
    "lastUpdateUtc": "2026-05-23T00:00:01+00:00",
    "nextUpdateUtc": "2026-05-24T00:00:01+00:00",
    "lastUpdateUnix": 1779494401,
    "nextUpdateUnix": 1779580801,
    "scrapedAt": "2026-05-23T10:00:00.000Z"
}
```

</details>

***

### ✨ Why choose this Actor

| | Capability |
|---|---|
| 💵 | **166 currencies.** ~5x the coverage of the ECB-derived Frankfurter feed. |
| 🌍 | **Frontier & emerging markets.** NGN, KES, GHS, PKR, IDR, VND, ARS, COP and many more. |
| 🔁 | **Inverse rate included.** No need to compute 1/rate downstream. |
| 📅 | **Daily refresh.** UTC and Unix timestamps for both last and next update. |
| ⚡ | **Fast.** All 166 currencies for a single base in under 3 seconds. |
| 🚫 | **No authentication.** Works against the public open feed. No login or API key needed. |
| 🔁 | **Always fresh.** Each run pulls the live feed. |

> 📊 Broad currency coverage is the bottleneck for non-US-centric, non-EU-centric fintech products. This Actor removes that bottleneck.

***

### 📈 How it compares to alternatives

| Approach | Cost | Coverage | Refresh | Setup |
|---|---|---|---|---|
| **⭐ Open Exchange Rates Scraper** *(this Actor)* | $5 free credit, then pay-per-use | **166 currencies** | **Daily** | ⚡ 2 min |
| Frankfurter (ECB-derived) | Free | 30 currencies | Daily | 🛠️ Build it |
| Commercial FX APIs | $50+/month | 170+ currencies | Real-time | ⏳ Hours |
| Hard-coded snapshot in code | Free | One snapshot | Manual | 🐢 Tech debt |

Pick this Actor when you want broad currency coverage with zero parser maintenance and zero per-call billing.

***

### 🚀 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 Open Exchange Rates Scraper page on the Apify Store.
3. 🎯 **Set input.** Pick a base currency and an optional target list. Set `maxItems`.
4. 🚀 **Run it.** Click **Start** and let the Actor collect your data.
5. 📥 **Download.** Grab your results in the **Dataset** tab as CSV, Excel, JSON, or XML.

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

***

### 💼 Business use cases

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

#### 🏦 Fintech & Treasury

- Daily FX rate refresh into trading dashboards
- Multi-currency conversion calculators
- Frontier-market exposure reports
- Cross-border payment FX normalization

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

#### 📊 Accounting & ERP

- Daily mark-to-market rates
- Multi-currency invoice translation
- Foreign-subsidiary consolidation
- Audit-ready FX rate trail

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

#### 🛒 E-commerce & Travel

- Checkout conversion to local currency
- Hotel and flight pricing in user currency
- Marketplace seller payouts in base currency
- Subscription billing FX normalization

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

#### 📈 Analytics & BI

- KPI dashboards normalized to a single currency
- Cross-border revenue reporting
- Country-by-country attribution
- Reproducible historical conversion datasets

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

***

### 🔌 Automating Open Exchange Rates 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 API 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. A daily cron after midnight UTC keeps downstream FX tables in sync automatically.

***

### 🌟 Beyond business use cases

FX data powers more than enterprise finance. The same structured records support research, education, civic projects, and personal initiatives.

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

#### 🎓 Research and academia

- Frontier and emerging-market FX studies
- Reproducible time-series datasets for papers
- International economics coursework
- Open-data exercises with global rates

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

#### 🎨 Personal and creative

- Travel budget calculators
- Personal finance dashboards in any base currency
- Currency-themed data visualizations
- Hobbyist trading backtests

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

#### 🤝 Non-profit and civic

- Cross-border donation reporting
- Humanitarian aid budget normalization
- Remittance corridor transparency
- Investigative journalism on currency moves

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

#### 🧪 Experimentation

- Train FX prediction models on broad coverage
- Prototype agents that quote in any base
- Build currency converter browser extensions
- Test e-commerce checkout flows with live rates

</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%20Open%20Exchange%20Rates%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%20Open%20Exchange%20Rates%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%20Open%20Exchange%20Rates%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%20Open%20Exchange%20Rates%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 base currency, optionally pass a target list, click Start, and the Actor reads the live feed and emits one clean structured record per quote currency.

#### 📏 How accurate is the data?

The open feed aggregates rates from central banks and major financial institutions, refreshed once per day. For accounting, dashboards, and checkout conversion this is the standard. For tick-level intraday trading, a commercial real-time feed is the right call.

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

Once per day, around 00:00 UTC. Each record exposes `lastUpdateUtc` and `nextUpdateUtc` (plus Unix-epoch equivalents) so downstream systems know exactly when to re-query.

#### 🌍 How many currencies are supported?

166 ISO 4217 currencies, including all G20, most frontier markets, and select stable currencies. The Actor's input enum lists every supported base; the same set is available as target.

#### ⏰ Can I schedule regular runs?

Yes. Use Apify Schedules to run this Actor on any cron interval. A daily run just after 00:00 UTC keeps downstream FX tables fresh.

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

The open feed is published for commercial reuse. You are responsible for any downstream compliance with regulatory requirements specific to your industry.

#### 💼 Can I use this data commercially?

Yes. The feed is openly licensed for commercial use. Attribution is appreciated but not required.

#### 💳 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 unlocks scheduling, higher concurrency, and full-catalog pulls of all 166 currencies.

#### 🆚 How is this different from Frankfurter?

Frankfurter is ECB-derived and capped at 30 currencies, mostly G20 + EU. This feed covers 166 currencies including frontier markets (NGN, KES, GHS, PKR, VND, ARS, COP, EGP) that ECB-derived series omit. Both are open and free.

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

Open Exchange Rates 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
- [**Airbyte**](https://docs.apify.com/platform/integrations/airbyte) - Pipe FX 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 refresh accounting tables or alert your team on FX threshold breaches.

***

### 🔗 Recommended Actors

- [**💱 Frankfurter FX Rates Scraper**](https://apify.com/parseforge/frankfurter-fx-rates-scraper) - ECB-derived foreign-exchange rates
- [**🏦 IBAN Bank Codes Scraper**](https://apify.com/parseforge/iban-com-bank-codes-scraper) - IBAN structures, SEPA membership, ISO codes
- [**🇬🇧 GOV.UK Bank Holidays Scraper**](https://apify.com/parseforge/gov-uk-bank-holidays-scraper) - Official UK bank-holiday calendar
- [**📈 Indexmundi Scraper**](https://apify.com/parseforge/indexmundi-scraper) - Global demographic and economic indicators
- [**🌐 Nominatim OSM Scraper**](https://apify.com/parseforge/nominatim-osm-scraper) - Geocode addresses via OpenStreetMap

> 💡 **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 any FX data provider, central bank, or financial institution. All trademarks mentioned are the property of their respective owners. Only publicly available open foreign-exchange data is collected.

# Actor input Schema

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

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

## `baseCurrency` (type: `string`):

Currency to express all rates against. The open feed supports 166 currencies. Most popular: USD, EUR, GBP, JPY, CNY.

## `targetCurrencies` (type: `array`):

Optional. ISO 4217 codes (e.g. EUR, GBP, JPY). Leave empty to return all 166 supported currencies for the base.

## Actor input object example

```json
{
  "maxItems": 10,
  "baseCurrency": "USD"
}
```

# Actor output Schema

## `overview` (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 = {
    "maxItems": 10,
    "baseCurrency": "USD"
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/openexchangerates-free-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 = {
    "maxItems": 10,
    "baseCurrency": "USD",
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/openexchangerates-free-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 '{
  "maxItems": 10,
  "baseCurrency": "USD"
}' |
apify call parseforge/openexchangerates-free-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Open Exchange Rates Scraper (166 Currencies)",
        "description": "Get live foreign exchange rates against USD across 170+ currencies from Open Exchange Rates free tier. Capture rate, base, timestamp, currency code, currency name. Export FX data to JSON, CSV, or Excel for finance dashboards, accounting, ecommerce pricing, and treasury analytics.",
        "version": "1.0",
        "x-build-id": "qC8KeAuY6YV8ylUSf"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/parseforge~openexchangerates-free-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-parseforge-openexchangerates-free-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~openexchangerates-free-scraper/runs": {
            "post": {
                "operationId": "runs-sync-parseforge-openexchangerates-free-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~openexchangerates-free-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-parseforge-openexchangerates-free-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": {
                    "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"
                    },
                    "baseCurrency": {
                        "title": "Base Currency",
                        "enum": [
                            "USD",
                            "AED",
                            "AFN",
                            "ALL",
                            "AMD",
                            "ANG",
                            "AOA",
                            "ARS",
                            "AUD",
                            "AWG",
                            "AZN",
                            "BAM",
                            "BBD",
                            "BDT",
                            "BGN",
                            "BHD",
                            "BIF",
                            "BMD",
                            "BND",
                            "BOB",
                            "BRL",
                            "BSD",
                            "BTN",
                            "BWP",
                            "BYN",
                            "BZD",
                            "CAD",
                            "CDF",
                            "CHF",
                            "CLF",
                            "CLP",
                            "CNH",
                            "CNY",
                            "COP",
                            "CRC",
                            "CUP",
                            "CVE",
                            "CZK",
                            "DJF",
                            "DKK",
                            "DOP",
                            "DZD",
                            "EGP",
                            "ERN",
                            "ETB",
                            "EUR",
                            "FJD",
                            "FKP",
                            "FOK",
                            "GBP",
                            "GEL",
                            "GGP",
                            "GHS",
                            "GIP",
                            "GMD",
                            "GNF",
                            "GTQ",
                            "GYD",
                            "HKD",
                            "HNL",
                            "HRK",
                            "HTG",
                            "HUF",
                            "IDR",
                            "ILS",
                            "IMP",
                            "INR",
                            "IQD",
                            "IRR",
                            "ISK",
                            "JEP",
                            "JMD",
                            "JOD",
                            "JPY",
                            "KES",
                            "KGS",
                            "KHR",
                            "KID",
                            "KMF",
                            "KRW",
                            "KWD",
                            "KYD",
                            "KZT",
                            "LAK",
                            "LBP",
                            "LKR",
                            "LRD",
                            "LSL",
                            "LYD",
                            "MAD",
                            "MDL",
                            "MGA",
                            "MKD",
                            "MMK",
                            "MNT",
                            "MOP",
                            "MRU",
                            "MUR",
                            "MVR",
                            "MWK",
                            "MXN",
                            "MYR",
                            "MZN",
                            "NAD",
                            "NGN",
                            "NIO",
                            "NOK",
                            "NPR",
                            "NZD",
                            "OMR",
                            "PAB",
                            "PEN",
                            "PGK",
                            "PHP",
                            "PKR",
                            "PLN",
                            "PYG",
                            "QAR",
                            "RON",
                            "RSD",
                            "RUB",
                            "RWF",
                            "SAR",
                            "SBD",
                            "SCR",
                            "SDG",
                            "SEK",
                            "SGD",
                            "SHP",
                            "SLE",
                            "SLL",
                            "SOS",
                            "SRD",
                            "SSP",
                            "STN",
                            "SYP",
                            "SZL",
                            "THB",
                            "TJS",
                            "TMT",
                            "TND",
                            "TOP",
                            "TRY",
                            "TTD",
                            "TVD",
                            "TWD",
                            "TZS",
                            "UAH",
                            "UGX",
                            "UYU",
                            "UZS",
                            "VES",
                            "VND",
                            "VUV",
                            "WST",
                            "XAF",
                            "XCD",
                            "XCG",
                            "XDR",
                            "XOF",
                            "XPF",
                            "YER",
                            "ZAR",
                            "ZMW",
                            "ZWG",
                            "ZWL"
                        ],
                        "type": "string",
                        "description": "Currency to express all rates against. The open feed supports 166 currencies. Most popular: USD, EUR, GBP, JPY, CNY."
                    },
                    "targetCurrencies": {
                        "title": "Target Currencies",
                        "type": "array",
                        "description": "Optional. ISO 4217 codes (e.g. EUR, GBP, JPY). Leave empty to return all 166 supported currencies for the base.",
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
