# Курсы валют ЕЦБ — FX с 1999 г. | No API Key | $0.50/1K (`bovi/ecb-exchange-rates-scraper-ru`) Actor

Курсы валют ЕЦБ через открытый API Frankfurter — без ключа, без прокси, без лимитов, история с 1999 г. Под расчёты и параллельный импорт СНГ-бизнеса: USD, EUR, TRY, CNY. ЕЦБ не публикует прямой курс RUB — только эти ~30 валют. Режимы: latest / historical / timeseries. $0.50 за 1000 строк.

- **URL**: https://apify.com/bovi/ecb-exchange-rates-scraper-ru.md
- **Developed by:** [Vitalii Bondarev](https://apify.com/bovi) (community)
- **Categories:** Developer tools, MCP servers, AI
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.94 / 1,000 курсы валют ецб — fx с 1999 г. | no api key | $0.50/1ks

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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

## Курсы валют ЕЦБ — FX-данные с 1999 г. | No API Key | from $0.50/1K

Для финансовых команд, бухгалтеров и дата-инженеров, которым нужны чистые исторические курсы валют аудиторского качества для конвертации счетов, оценки портфеля или управленческой отчетности — с околонулевой стоимостью.

**Без API-ключа. Без прокси. Без лимитов.** Открытые данные ЕЦБ начиная с 1999 года. **$0.50 за 1 000 строк** (Pay Per Event). Типичный запуск: все валюты на сегодня = ~30 строк ≈ $0.02. Полный 2025 год EUR/USD ежедневно = 252 строки ≈ $0.13.

Получайте текущие и исторические обменные курсы валют от Европейского центрального банка (ЕЦБ) через бесплатный публичный API [Frankfurter](https://www.frankfurter.app/). Никаких API-ключей, прокси или авторизации. Неограниченная история с 1999 года.

**Важное примечание для расчетов в СНГ (ВЭД и параллельный импорт):**
ЕЦБ публикует курсы для ключевых валют международных расчетов: **USD, EUR, TRY (турецкая лира) и CNY (китайский юань)**.
⚠️ **Прямой курс RUB (российского рубля) ЕЦБ не публикует.** Данный инструмент охватывает только ~30 валют, транслируемых Центробанком Европы.

### Возможности

- **Три режима:** latest (курс ЕЦБ на сегодня), historical (на конкретную дату), timeseries (за период)
- **Плоская структура вывода (Flat output):** одна строка на тройку `(date, base, quote)` — готово для таблиц, баз данных и пайплайнов
- **30 валют ЕЦБ**, включая основные для импорта/экспорта: USD, EUR, TRY, CNY (а также GBP, JPY и другие)
- **Уровень достоверности парсинга (parse confidence)** в каждой строке — метрика качества для машинной обработки
- **Оплата за результат** — вы не платите за заголовки или метаданные

### Входные параметры (Input)

| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
| `baseCurrency` | string | `USD` | Базовая валюта (ISO 4217) |
| `symbols` | string\[] | `["USD", "EUR", "TRY", "CNY"]` | Валюты котировки, которые нужно получить (оставьте пустым для всех ~30 валют) |
| `mode` | select | `latest` | Режим работы: `latest` / `historical` / `timeseries` |
| `startDate` | string | — | ГГГГ-ММ-ДД (обязательно для historical/timeseries) |
| `endDate` | string | сегодня | ГГГГ-ММ-ДД (конец периода для timeseries) |
| `maxResults` | integer | 0 (без лимита) | Ограничение количества строк для контроля расходов |

### Формат вывода (Output)

Одна строка датасета на каждую тройку `(дата, базовая_валюта, валюта_котировки)`:

| Поле | Тип | Пример |
|---|---|---|
| `date` | string (ISO date) | `2026-05-29` |
| `base_currency` | string | `USD` |
| `quote_currency` | string | `TRY` |
| `rate` | float | `34.1250` |
| `amount` | float | `1.0` |
| `mode` | string | `latest` |
| `scraped_at` | string (ISO UTC) | `2026-05-29T12:00:00Z` |
| `parse_confidence` | float \[0–1] | `1.0` |
| `warnings` | string\[] | `[]` |

**Пример интерпретации:** `1 USD = 34.1250 TRY` на 2026-05-29.

### Пример ценообразования (Pricing)

Оплата за результат (Pay Per Event). **$0.50 за 1 000 строк.**

| Запрос | Количество записей | Стоимость |
|---|---|---|
| Текущие курсы, все 30 валют | ~30 строк | ~$0.02 |
| 1 месяц USD/CNY ежедневно | ~22 строки | ~$0.01 |
| 1 год USD → EUR, TRY, CNY | ~750 строк | ~$0.38 |
| Полный 2025 год по всем валютам (timeseries) | ~7 500 строк | ~$3.75 |

### FAQ (Частые вопросы)

**Нужен ли мне API-ключ или аккаунт?**
Нет. API Frankfurter — это бесплатный публичный сервис данных ЕЦБ. Без регистрации, без ключей, без задокументированных лимитов.

**Какие валюты поддерживаются?**
30 валют, отслеживаемых ЕЦБ: AUD, BRL, CAD, CHF, CNY, CZK, DKK, EUR, GBP, HKD, HUF, IDR, ILS, INR, ISK, JPY, KRW, MXN, MYR, NOK, NZD, PHP, PLN, RON, SEK, SGD, THB, TRY, USD, ZAR. ЕЦБ не публикует курсы абсолютно всех мировых валют. В частности, курс RUB (российского рубля) не предоставляется.

**Можно ли настроить автоматический запуск?**
Да. Вы можете настроить расписание в Apify Console (например, ежедневно в 16:30 CET, после публикации курсов ЕЦБ) или запускать через вебхук из n8n / Make для автоматической загрузки данных в вашу финансовую систему.

**Что если на указанную дату нет данных?**
Выходные и праздничные дни автоматически сдвигаются на предыдущий рабочий день ЕЦБ. Если API недоступен, актер фиксирует ошибку в логах и ничего не сохраняет — плата не взимается.

### Источник данных

[Frankfurter](https://www.frankfurter.app/) — open-source API, работающий на основе эталонных обменных курсов ЕЦБ. Публикация происходит ежедневно около 16:00 CET по рабочим дням. Запросы за выходные или праздничные дни автоматически переносятся на предыдущий рабочий день.

### Поддерживаемые валюты

AUD, BRL, CAD, CHF, CNY, CZK, DKK, EUR, GBP, HKD, HUF, IDR, ILS, INR, ISK, JPY, KRW, MXN, MYR, NOK, NZD, PHP, PLN, RON, SEK, SGD, THB, TRY, USD, ZAR.

### Примеры использования (Use cases)

- Автоматизация финансовых пайплайнов для ВЭД и параллельного импорта (в электронных таблицах, BI-системах, базах данных)
- Оценка портфеля или остатков на счетах на исторические даты
- Анализ трендов и бэктестинг курсов (USD, EUR, TRY, CNY)
- Создание аудиторского следа конвертации валют для счетов-фактур
- Формирование наборов данных для аналитики

### Сравнение с конкурентами

| Источник | Стоимость | Глубина истории | Валюты |
|---|---|---|---|
| **Этот актер** (ЕЦБ/Frankfurter) | $0.50/1K строк | 1999–настоящее время | 30 валют ЕЦБ |
| Open Exchange Rates | $12–97/мес | 1999–настоящее время | 170 валют |
| Fixer.io | $13–97/мес | 2000–настоящее время | 170 валют |
| exchangerate-api.com | Бесплатно (1500/мес), далее платно | 6 мес | 162 валюты |

Данные ЕЦБ бесплатны, соответствуют стандартам аудита и публикуются ежедневно. Этот актер упаковывает 27 лет истории в чистые плоские строки — по одной на каждую комбинацию `(дата, базовая_валюта, валюта_котировки)`.

### Использование с ИИ-агентами (MCP)

Этот актер может вызываться в качестве **инструмента ИИ-агентами** (Claude Desktop, Cursor, VS Code, n8n, LangGraph, CrewAI или любым MCP-совместимым клиентом) через hosted-сервер Model Context Protocol от Apify. Агент использует его для **поиска исторических или текущих курсов прямо в процессе диалога** — например, "конвертируй 500 USD в CNY по курсу на 31 декабря 2024 года" или "какой был курс USD/TRY на прошлой неделе".

Подключите ваш MCP-клиент к этому инструменту:

```json
{
  "mcpServers": {
    "apify": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://mcp.apify.com/?tools=bovi/ecb-exchange-rates-scraper-ru",
        "--header",
        "Authorization: Bearer <YOUR_APIFY_TOKEN>"
      ]
    }
  }
}
```

Минимальные входные данные, которые может отправить агент:

```json
{ "mode": "latest", "baseCurrency": "USD", "symbols": ["EUR", "TRY", "CNY"] }
```

### Также в финансовой линейке

- [Yahoo Finance Scraper](https://apify.com/bovi/yahoo-finance-scraper) — акции, ETF, крипта, индексы, форекс
- [CoinGecko Scraper](https://apify.com/bovi/coingecko-scraper) — текущие цены криптовалют, капитализация, все монеты
- [Binance Scraper](https://apify.com/bovi/binance-scraper) — спот цены + свечи (OHLCV) для 3500+ пар
- [Dexscreener Scraper](https://apify.com/bovi/dexscreener-scraper) — DEX-пары, цены токенов on-chain в 50+ сетях
- [DefiLlama Scraper](https://apify.com/bovi/defillama-scraper) — TVL DeFi протоколов + доходность пулов (APY)

### Интеграции

Создано для финансовых отделов и дата-инженеров, которым требуются достоверные исторические курсы ЕЦБ для отчетов. JSON/датасет выгружается в используемые вами инструменты без дополнительного кода:

- **n8n / Make / Zapier** — запускайте парсинг или передавайте каждый новый элемент датасета в 500+ приложений (Google Sheets, Airtable, Telegram, базы данных) без написания кода: [n8n](https://docs.apify.com/platform/integrations/n8n), [Make](https://docs.apify.com/platform/integrations/make), [Zapier](https://docs.apify.com/platform/integrations/zapier).
- **Webhooks** — отправляйте данные на свой эндпоинт в момент завершения запуска для прямой интеграции в ваш пайплайн ([docs](https://docs.apify.com/platform/integrations/webhooks)).
- **MCP server** — подключите актера как инструмент к Claude, Cursor или любому [MCP-клиенту](https://mcp.apify.com), чтобы ИИ-агент мог использовать эти данные ([guide](https://blog.apify.com/how-to-use-mcp/)).
- **API и SDK** — получайте датасет в форматах JSON, CSV или Excel через Apify REST API или SDK для Python/JS.

Посмотреть все [интеграции Apify](https://apify.com/integrations).

# Actor input Schema

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

ISO 4217 currency code to use as the base (denominator). Example: USD, EUR, GBP. Defaults to EUR.

## `symbols` (type: `array`):

ISO 4217 currency codes to convert to. Leave empty to get all ~30 ECB currencies. Example: EUR, GBP, JPY.

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

latest: today's ECB rate (1 date). historical: rates on a single past date (startDate required). timeseries: rates for a date range (startDate + endDate required, one row per business day per currency pair).

## `startDate` (type: `string`):

Required for mode=historical and mode=timeseries. ISO 8601 date: YYYY-MM-DD. ECB data goes back to 1999-01-04. Weekend/holiday dates snap to the previous business day. Example: 2025-01-01

## `endDate` (type: `string`):

End date for mode=timeseries. ISO 8601 date: YYYY-MM-DD. Must be >= startDate. Defaults to today if omitted. Example: 2025-12-31

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

Maximum total rows to return (across all dates and currency pairs). 0 = no limit. Useful for cost control on wide time series.

## Actor input object example

```json
{
  "baseCurrency": "USD",
  "symbols": [
    "USD",
    "EUR",
    "TRY",
    "CNY"
  ],
  "mode": "latest",
  "startDate": "2025-01-01",
  "endDate": "2025-12-31"
}
```

# Actor output Schema

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

Dataset containing Exchange Rates Scraper records (date, base\_currency, quote\_currency, rate, amount, mode, scraped\_at, parse\_confidence, warnings).

# 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 = {
    "baseCurrency": "USD",
    "symbols": [
        "USD",
        "EUR",
        "TRY",
        "CNY"
    ],
    "mode": "latest",
    "startDate": "2025-01-01",
    "endDate": "2025-12-31",
    "maxResults": 0
};

// Run the Actor and wait for it to finish
const run = await client.actor("bovi/ecb-exchange-rates-scraper-ru").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 = {
    "baseCurrency": "USD",
    "symbols": [
        "USD",
        "EUR",
        "TRY",
        "CNY",
    ],
    "mode": "latest",
    "startDate": "2025-01-01",
    "endDate": "2025-12-31",
    "maxResults": 0,
}

# Run the Actor and wait for it to finish
run = client.actor("bovi/ecb-exchange-rates-scraper-ru").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 '{
  "baseCurrency": "USD",
  "symbols": [
    "USD",
    "EUR",
    "TRY",
    "CNY"
  ],
  "mode": "latest",
  "startDate": "2025-01-01",
  "endDate": "2025-12-31",
  "maxResults": 0
}' |
apify call bovi/ecb-exchange-rates-scraper-ru --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,bovi/ecb-exchange-rates-scraper-ru"
        }
    }
}

```

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/tAl6ec1KwOWSdAH9N/builds/HaeJ0vytl7IAcyaxj/openapi.json
