Швидкий старт
Почніть будь-якою мовою
The FXMacroData API є стандартним JSON REST API для використання на стороні сервера. Працює будь-яка мова з підтримкою HTTP. Дані про оголошення USD, календар релізів USD та каталог даних є безкоштовними без ключа: за останні 90 днів, із затримкою релізу 15 хвилин, до 100 запитів на день. Прогнозні значення (включаючи USD), всі інші валюти, релізи в реальному часі та повна історія потребують ключа API, що надсилається в X-API-Key header. Дивіться, що є безкоштовним
Базовий URL
https://api.fxmacrodata.com
Автентифікація
X-API-Ключ: YOUR_API_KEY
Authorization: Bearer YOUR_API_KEY
Застарілий ?api_key= параметр запиту застарів: ключі в URL-адресах потрапляють у журнали.
Формат відповіді
JSON (Content-Type: application/json)
openapi-generator-cli для автоматичної генерації клієнтів мовами 40+
Accept-Encoding: gzip на кожен запит (8–12× менші корисні навантаження), повторно використовуйте ETag заголовок відповіді в If-None-Match при повторних опитуваннях (повертає 304 Not Modified без тіла), і передати ?limit=50 у кінцеві точки одного індикатора, такі як /v1/announcements/usd/inflation або /v1/predictions/usd/inflation коли вам потрібні лише нещодавні рядки. Переглянути повний довідник →
limit приймає до 100.. Щоб зібрати повний діапазон, повторіть запит з offset встановлено на pagination.next_offset until pagination.has_more is false. Дивіться Python цикл ↓
fetch() з вебсторінки заблоковано браузером. Викликайте FXMacroData зі свого бекенду та тримайте ключ API поза кодом на стороні клієнта.
core_pce існує для USD, але не для кожної валюти. Перелічіть кожен slug, який підтримує валюта, за допомогою GET /v1/data_catalogue/{currency}, наприклад /v1/data_catalogue/usd. 200, чий data масив порожній і який несе no_data.error_code: NO_DATA_IN_REQUESTED_WINDOW означає, що slug є дійсним і лише запитуване вікно дат є порожнім — розширити start_date/end_date замість зміни URL або повторної спроби. 404 означає, що ідентифікатор валюти або індикатора неправильний.
data_quality об'єкт. Для бектестів та інституційної звітності перевірте point_in_time_safe, has_announcement_datetime, source_type, та is_stale. point_in_time_safe є false щоразу, коли будь-який рядок у вікні має час публікації, отриманий з виміряного лагу випуску серії, тому перевірте assumed_release_time_count та за кожен рядок release_time_assumed позначте перед тим, як вважати помилковий за непридатний.
Доступ до маркетплейсу
Використовуйте FXMacroData через RapidAPI
RapidAPI є необов'язковим каналом маркетплейсу для FXMacroData REST API. FXMacroData постачає дані; RapidAPI керує вашою підпискою на маркетплейс, ключем API, квотою запитів та виставленням рахунків. Для запитів через цей канал не потрібен окремий обліковий запис або ключ FXMacroData.
- Відкрити офіційний лістинг FXMacroData та оберіть план. Перевірте вкладку цін для отримання актуальної інформації про охоплення, квоти та ліміти запитів.
- Скопіюйте свій ключ RapidAPI з endpoint playground і збережіть його у середовищі вашого сервера як
RAPIDAPI_KEY. - Надсилати запити на
https://fxmacrodata1.p.rapidapi.comз обома заголовками RapidAPI, як показано нижче.
curl --request GET \ --url "https://fxmacrodata1.p.rapidapi.com/v1/announcements/usd/inflation?limit=3" \ --header "X-RapidAPI-Key: $RAPIDAPI_KEY" \ --header "X-RapidAPI-Host: fxmacrodata1.p.rapidapi.com"
Охоплення кінцевих точок маркетплейсу
Перелік включає оголошення, календарі релізів, каталог даних, щоденні ставки FX, позиціювання COT, новини центральних банків, ринкові сесії та перевірку стану. Доступ до валют та історії залежить від вашого плану RapidAPI. Використовуйте каталог, щоб знайти підтримувані ярлики індикаторів.
Прямий доступ FXMacroData
Інші приклади на цій сторінці використовують api.fxmacrodata.com та FXMacroData X-API-Key коли це необхідно. Ключі та підписки розділені між каналами. Підписка RapidAPI охоплює перелічені кінцеві точки REST; підписки на вебсайти, MCP, прогнози, стрімінг та вебхуки є окремими пропозиціями.
Тримайте свій ключ поза межами коду браузера та публічних репозиторіїв. Для довших наборів результатів, дотримуйтесь pagination.next_offset until pagination.has_more є хибним. Ніколи не надсилайте свій ключ API у службу підтримки.
Перший виклик API
Швидкий запит
Перший фрагмент працює як є: ключ не потрібен для даних USD, надається через 15 хвилин після релізу. Додати X-API-Key для всіх валют 22 та доставки в реальному часі, надісланої з сервера, скрипта або блокнота.
# USD inflation, no key: 15-minute delay, most recent 90 days
curl "https://api.fxmacrodata.com/v1/announcements/usd/inflation?limit=5"
# EUR inflation: add X-API-Key for all 22 currencies and real-time releases
curl -H "X-API-Key: YOUR_API_KEY" "https://api.fxmacrodata.com/v1/announcements/eur/inflation"
Запити Python
Копійовані Python запити API
Використовуйте ці прямі приклади REST, коли вам потрібен сирий запит API замість обгортки SDK. Замінюйте YOUR_API_KEY лише на захищених маршрутах.
ринковий консенсус щодо інфляції USD
Консенсус, опитування, дані центральних банків, IMF та прогнози FXMacroData, приєднані до фактичних оголошень.
import requests
url = "https://api.fxmacrodata.com/v1/predictions/usd/inflation"
headers = {"X-API-Key": "YOUR_API_KEY"}
response = requests.get(url, headers=headers, timeout=20)
response.raise_for_status()
payload = response.json()
print(payload.get("data", payload))
інфляція USD з мітками часу відомості
Публічні записи інфляції USD для бектестів у конкретний момент часу.
import requests
url = "https://api.fxmacrodata.com/v1/announcements/usd/inflation"
response = requests.get(url, timeout=20)
response.raise_for_status()
payload = response.json()
print(payload.get("data", payload))
спотова історія EUR/USD FX
Щоденна історія цін FX для графіків пар, моделей та накладень релізів.
import requests
url = "https://api.fxmacrodata.com/v1/forex/eur/usd"
headers = {"X-API-Key": "YOUR_API_KEY"}
response = requests.get(url, headers=headers, timeout=20)
response.raise_for_status()
payload = response.json()
print(payload.get("data", payload))
історія ставки політики AUD
Історія рішень центральних банків із часом релізу для досліджень без заглядання вперед.
import requests
url = "https://api.fxmacrodata.com/v1/announcements/aud/policy_rate"
headers = {"X-API-Key": "YOUR_API_KEY"}
response = requests.get(url, headers=headers, timeout=20)
response.raise_for_status()
payload = response.json()
print(payload.get("data", payload))
графік майбутніх публікацій JPY
Майбутні макроподії з полями UTC, локальними для ринку та в запитуваному часовому поясі для планування сповіщень, оновлення моделей та оглядів трейдингу.
import requests
url = "https://api.fxmacrodata.com/v1/calendar/jpy"
params = {
"timezone": "Asia/Tokyo",
}
headers = {"X-API-Key": "YOUR_API_KEY"}
response = requests.get(url, params=params, headers=headers, timeout=20)
response.raise_for_status()
payload = response.json()
print(payload.get("data", payload))
Ціни на золото як товар
Офіційні часові ряди дорогоцінних металів із щоденними значеннями та полями змін.
import requests
url = "https://api.fxmacrodata.com/v1/commodities/gold"
headers = {"X-API-Key": "YOUR_API_KEY"}
response = requests.get(url, headers=headers, timeout=20)
response.raise_for_status()
payload = response.json()
print(payload.get("data", payload))
Python
Встановіть офіційний fxmacrodata пакет із PyPI (1.2.x). Синхронні та асинхронні клієнти повертають звичайні словники JSON, які завантажуються безпосередньо в pandas. Client() без ключа зчитує безкоштовний рівень USD; пройде api_key для кожної іншої валюти та доставки в реальному часі.
Використання SDK
from fxmacrodata import Client # USD inflation — no key needed: 15-minute delay, most recent 90 days data = Client().get_indicator("usd", "inflation") print(data["data"][0]) # Add X-API-Key for all 22 currencies and real-time releases client = Client(api_key="YOUR_API_KEY") # EUR policy rate — requires API key rate = client.get_indicator("eur", "policy_rate") # Forex price data — requires API key fx = client.get_fx_price("usd", "jpy")
Використання REST API безпосередньо
import requests resp = requests.get( "https://api.fxmacrodata.com/v1/announcements/usd/inflation", timeout=30, ) resp.raise_for_status() payload = resp.json() print(payload["data_quality"]["point_in_time_safe"], payload["data"][0])
Посторінковий перегляд повної історії
import requests URL = "https://api.fxmacrodata.com/v1/announcements/eur/inflation" HEADERS = {"X-API-Key": "YOUR_API_KEY"} rows, offset = [], 0 while True: resp = requests.get( URL, params={"limit": 100, "offset": offset}, headers=HEADERS, timeout=30, ) resp.raise_for_status() page = resp.json() rows.extend(page["data"]) if not page["pagination"]["has_more"]: break offset = page["pagination"]["next_offset"] print(len(rows), "rows")
Асинхронний клієнт
import asyncio from fxmacrodata import AsyncClient async def main(): async with AsyncClient(api_key="YOUR_API_KEY") as client: data = await client.get_indicator("eur", "inflation") print(data) asyncio.run(main())
Прогнози & Прогнози
Цей /v1/predictions/{currency}/{indicator} ендпоінт надає прогнозні дані з опитувань ринкового консенсусу, прогнозів центральних банків, IMF World Economic Outlook та опитувань професійних прогнозистів. Прогнози запитуються для конкретної валюти та індикатора, наприклад https://api.fxmacrodata.com/v1/predictions/usd/inflation; запити прогнозів лише для валют не підтримуються. Кожен прогноз пов'язаний зі своїм оголошенням через announcement_id, щоб ви могли об'єднати прогнози з фактичними спостереженнями.
prediction_type="fxmacrodata" є оцінкою, створеною FXMacroData; справжній скомпільований консенсус позначений як market_consensus. Доступність прогнозів залежить від релізу — перевірте матриця покриття. Для досліджень без заглядання вперед дотримуйтесь посібник із бектестингу point-in-time.
/v1/predictions/coverage/{currency}. Пробний або платний ключ повертає прогнозні значення.
Python — отримати прогнози та об'єднати з фактичними даними
import requests HEADERS = {"X-API-Key": "YOUR_API_KEY"} # Predictions for USD inflation — requires API key preds = requests.get( "https://api.fxmacrodata.com/v1/predictions/usd/inflation", headers=HEADERS, timeout=30, ).json() for group in preds["data"]: print(group["announcement_id"], group["date"]) for p in group["predictions"]: print(f" {p['prediction_source_label']}: {p['predicted_value']}") # Filter by prediction type market = requests.get( "https://api.fxmacrodata.com/v1/predictions/usd/inflation", params={"prediction_type": "market_consensus"}, headers=HEADERS, timeout=30, ).json() # Join predictions with actuals using announcement_id actuals = requests.get( "https://api.fxmacrodata.com/v1/announcements/usd/inflation", headers=HEADERS, timeout=30, ).json() actuals_by_id = {row["announcement_id"]: row for row in actuals["data"]} for group in preds["data"]: actual = actuals_by_id.get(group["announcement_id"]) if actual: print(f"{group['date']}: actual={actual['val']}, forecast={group['predictions'][0]['predicted_value']}")
cURL — отримати прогнози за типом
# Which sources forecast USD indicators — free, no key curl "https://api.fxmacrodata.com/v1/predictions/coverage/usd" # All USD inflation predictions — requires API key curl -H "X-API-Key: YOUR_API_KEY" "https://api.fxmacrodata.com/v1/predictions/usd/inflation" # Filter by prediction type: market_consensus, imf_weo, central_bank_forecast, survey curl -H "X-API-Key: YOUR_API_KEY" "https://api.fxmacrodata.com/v1/predictions/usd/inflation?prediction_type=market_consensus" # EUR policy-rate predictions curl -H "X-API-Key: YOUR_API_KEY" "https://api.fxmacrodata.com/v1/predictions/eur/policy_rate"
Довідник типів прогнозів
| prediction_type | Опис |
|---|---|
| market_consensus | Скомпільований консенсус ринку або економістів, якщо доступно |
| market_prediction | Точковий прогноз професійного прогнозиста |
| model_nowcast | Nowcast моделі центрального або резервного банку |
| опитування | Опитування професійних прогнозистів центральним банком (наприклад, ECB SPF) |
| central_bank_forecast | Офіційний прогноз центрального банку (наприклад, RBNZ MPS, BoC MPR) |
| central_bank_projection | Офіційний прогноз центрального банку |
| imf_weo | прогноз IMF World Economic Outlook |
| fxmacrodata | Прогноз, створений FXMacroData, що поєднує настанови центрального банку, опитування та історичні тенденції |
cURL
Встановлення не потрібне. Працює з будь-якого термінала.
# USD inflation — no-key evaluation, up to 100 requests/day curl "https://api.fxmacrodata.com/v1/announcements/usd/inflation" # EUR policy rate — send your API key in the X-API-Key header curl -H "X-API-Key: YOUR_API_KEY" "https://api.fxmacrodata.com/v1/announcements/eur/policy_rate" # Release calendar for Australia — requires API key curl -H "X-API-Key: YOUR_API_KEY" "https://api.fxmacrodata.com/v1/calendar/aud" # Release calendar converted to a requested IANA timezone curl "https://api.fxmacrodata.com/v1/calendar/usd?indicator=gdp&timezone=America/Sao_Paulo" # Forex price history — requires API key curl -H "X-API-Key: YOUR_API_KEY" "https://api.fxmacrodata.com/v1/forex/usd/jpy" # Data catalogue (discover available indicators for USD) curl "https://api.fxmacrodata.com/v1/data_catalogue/usd"
JavaScript / TypeScript
Працює на стороні сервера в Node.js (18+), Deno та Bun. API не надсилає заголовки CORS, тому викликайте його зі свого бекенду, а не з коду браузера.
Офіційний npm клієнт
import { FXMacroDataClient } from "@fxmacrodata/client"; const client = new FXMacroDataClient({ apiKey: "YOUR_API_KEY", }); // Public endpoint example const usdInflation = await client.announcements("usd", "inflation"); // Non-USD endpoint example (requires paid key) const eurRate = await client.announcements("eur", "policy_rate"); console.log(usdInflation, eurRate);
Використання Fetch безпосередньо
// USD inflation — no-key evaluation, up to 100 requests/day const res = await fetch( "https://api.fxmacrodata.com/v1/announcements/usd/inflation" ); const data = await res.json(); console.log(data); // With API key for non-USD const API_KEY = process.env.FXMD_API_KEY; const eur = await fetch( "https://api.fxmacrodata.com/v1/announcements/eur/policy_rate", { headers: { "X-API-Key": API_KEY } } ); console.log(await eur.json());
Перейти
Зовнішні пакети не потрібні — стандартна бібліотека обробляє все.
package main import ( "encoding/json" "fmt" "net/http" "io" ) func main() { // USD inflation — no-key evaluation, up to 100 requests/day resp, err := http.Get("https://api.fxmacrodata.com/v1/announcements/usd/inflation") if err != nil { panic(err) } defer resp.Body.Close() body, _ := io.ReadAll(resp.Body) var result map[string]interface{} json.Unmarshal(body, &result;) fmt.Println(result) }
R
Потребує httr та jsonlite.
library(httr) library(jsonlite) # USD inflation — no-key evaluation, up to 100 requests/day res <- GET("https://api.fxmacrodata.com/v1/announcements/usd/inflation") data <- fromJSON(content(res, "text", encoding = "UTF-8")) # Convert to data frame df <- as.data.frame(data$data) head(df) # With API key for non-USD eur <- GET( "https://api.fxmacrodata.com/v1/announcements/eur/policy_rate", add_headers(`X-API-Key` = "YOUR_API_KEY") ) print(fromJSON(content(eur, "text")))
Java
Використання java.net.http (Java 11+). Зовнішні бібліотеки не потрібні.
import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; public class FXMacroDataExample { public static void main(String[] args) throws Exception { var client = HttpClient.newHttpClient(); var request = HttpRequest.newBuilder() .uri(URI.create("https://api.fxmacrodata.com/v1/announcements/usd/inflation")) .build(); var response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.body()); } }
C# / .NET
Використання HttpClient (.NET 6+).
using System.Net.Http; using System.Text.Json; var client = new HttpClient(); // USD inflation — no-key evaluation, up to 100 requests/day var json = await client.GetStringAsync( "https://api.fxmacrodata.com/v1/announcements/usd/inflation" ); var doc = JsonDocument.Parse(json); Console.WriteLine(doc.RootElement);
MATLAB
Використовує вбудований webread функція.
% USD inflation — no-key evaluation, up to 100 requests/day data = webread('https://api.fxmacrodata.com/v1/announcements/usd/inflation'); disp(data); % With API key for non-USD opts = weboptions('Timeout', 30, 'HeaderFields', {'X-API-Key', 'YOUR_API_KEY'}); url = 'https://api.fxmacrodata.com/v1/announcements/eur/policy_rate'; eur = webread(url, opts); disp(eur);
Згенеруйте типізованого клієнта для будь-якої мови
FXMacroData API публікує повний Специфікація OpenAPI 3.1. Використовуйте його з openapi-generator для створення повністю типізованих клієнтів для Kotlin, Swift, Rust, Dart, Ruby, PHP, та 40+ інших мов.
# Install the openapi-generator CLI npm install @openapitools/openapi-generator-cli -g # Generate a Go client openapi-generator-cli generate \ -i https://api.fxmacrodata.com/openapi.json \ -g go \ -o ./fxmacrodata-go-client # Generate a Java client openapi-generator-cli generate \ -i https://api.fxmacrodata.com/openapi.json \ -g java \ -o ./fxmacrodata-java-client
Готові будувати?
Дані релізів USD працюють без ключа, до 100 запитів/день і з затримкою 15 хвилин після публікації. Підпишіться для отримання релізів у реальному часі, прогнозних значень, повної історії, вищих лімітів та всіх валют.