شروع سریع
شروع به هر زبانی
API در FXMacroData یک JSON REST API استاندارد است. هر زبانی با پشتیبانی از HTTP کار میکند. نقاط انتهایی سریهای زمانی freemium برای اخیرترین 90 روز بدون کلید در دسترس هستند. یک کلید Individual API اضافه کنید تا تاریخچه کامل و خانوادههای نقاط انتهایی پولی باز شوند.
پایه URL
https://api.fxmacrodata.com
احراز هویت
X-API-Key: YOUR_API_KEY
Authorization: Bearer YOUR_API_KEY
?api_key=YOUR_API_KEY
قالب پاسخ
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 زمانی که فقط به ردیفهای اخیر نیاز دارید. مشاهده مرجع کامل →
core_pce برای USD وجود دارد اما برای هر ارزی نیست. لیست تمام slugهایی که یک ارز پشتیبانی میکند را با GET /v1/data_catalogue/{currency}، برای مثال /v1/data_catalogue/usd. یک 404 با error_code: NO_DATA_IN_REQUESTED_WINDOW به این معنی است که slug معتبر است و فقط پنجره تاریخ درخواست شده خالی است — گسترش دادن start_date/end_date به جای تغییر دادن URL.
data_quality شیء. برای بکتستها و گزارشهای سازمانی، بررسی کنید point_in_time_safe, has_announcement_datetime, source_type، و is_stale.
اولین فراخوانی API
درخواست سریع
با یک نقطه انتهایی اعلامیه زنده شروع کنید. احراز هویت در باقی میماند api_key پارامتر پرسوجو برای تست مستقیم مرورگر و اسکریپت.
curl "https://api.fxmacrodata.com/v1/announcements/eur/inflation?api_key=YOUR_API_KEY"
درخواستهای Python
درخواستهای Python قابل کپی API
زمانی که به جای یک wrapper از SDK، درخواست خام API را میخواهید، از این مثالهای مستقیم REST استفاده کنید. YOUR_API_KEY را فقط در مسیرهای محافظتشده جایگزین کنید.
اجماع بازار تورم USD
پیشبینیهای اجماع، نظرسنجی، بانک مرکزی، IMF و FXMacroData متصل به اعلامیههای تحقق یافته.
import requests
url = "https://api.fxmacrodata.com/v1/predictions/usd/inflation"
response = requests.get(url, timeout=20)
response.raise_for_status()
payload = response.json()
print(payload.get("data", payload))
تورم USD با برچسبهای زمانی known-at
سوابق تورم عمومی 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"
params = {
"api_key": "YOUR_API_KEY",
}
response = requests.get(url, params=params, timeout=20)
response.raise_for_status()
payload = response.json()
print(payload.get("data", payload))
تاریخچه نرخ سیاست پولی AUD
تاریخچه تصمیمات بانک مرکزی با زمانبندی انتشار برای تحقیقات بدون نگاه به آینده (no-lookahead).
import requests
url = "https://api.fxmacrodata.com/v1/announcements/aud/policy_rate"
params = {
"api_key": "YOUR_API_KEY",
}
response = requests.get(url, params=params, 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",
"api_key": "YOUR_API_KEY",
}
response = requests.get(url, params=params, timeout=20)
response.raise_for_status()
payload = response.json()
print(payload.get("data", payload))
قیمتهای کالای طلا
سریهای زمانی رسمی فلزات گرانبها با مقادیر روزانه و فیلدهای تغییرات.
import requests
url = "https://api.fxmacrodata.com/v1/commodities/gold"
params = {
"api_key": "YOUR_API_KEY",
}
response = requests.get(url, params=params, timeout=20)
response.raise_for_status()
payload = response.json()
print(payload.get("data", payload))
Python
نصب نسخه رسمی fxmacrodata بسته از PyPI. کلاینتهای همزمان (sync) و ناهمزمان (async)، خروجی آماده برای pandas.
استفاده از SDK
from fxmacrodata import Client client = Client(api_key="YOUR_API_KEY") # USD inflation — no-key evaluation, up to 100 requests/day data = client.get_indicator("usd", "inflation") # 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])
کلاینت Async
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())
پیشبینیها & پیشبینیها
The /v1/predictions/{currency}/{indicator} اندپوینت دادههای پیشبینی را از نظرسنجیهای اجماع بازار، پیشبینیهای بانک مرکزی، چشمانداز اقتصادی جهان IMF و نظرسنجیهای پیشبینان حرفهای ارائه میدهد. پیشبینیها برای یک ارز و اندیکاتور خاص درخواست میشوند، مانند https://api.fxmacrodata.com/v1/predictions/usd/inflation؛ درخواستهای پیشبینی فقط برای ارز پشتیبانی نمیشوند. هر پیشبینی از طریق به اعلامیه خود مرتبط است announcement_id، تا بتوانید پیشبینیها را با مشاهدات تحقق یافته ترکیب کنید.
prediction_type="fxmacrodata" یک تخمین تولید شده توسط FXMacroData است؛ اجماع واقعی تدوین شده با برچسب دارد market_consensus. در دسترس بودن پیشبینی بسته به انتشار متفاوت است — بررسی کنید ماتریس پوشش. برای تحقیقات بدون نگاه به آینده (look-ahead-free)، دنبال کنید راهنمای backtesting point-in-time.
Python — واکشی پیشبینیها و اتصال با مقادیر واقعی
import requests # Predictions for USD inflation — no-key evaluation, up to 100 requests/day preds = requests.get( "https://api.fxmacrodata.com/v1/predictions/usd/inflation", 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"}, timeout=30, ).json() # Join predictions with actuals using announcement_id actuals = requests.get( "https://api.fxmacrodata.com/v1/announcements/usd/inflation", 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 — دریافت پیشبینیها بر اساس نوع
# All USD inflation predictions — free curl "https://api.fxmacrodata.com/v1/predictions/usd/inflation" # Filter by prediction type: market_consensus, imf_weo, central_bank_forecast, survey curl "https://api.fxmacrodata.com/v1/predictions/usd/inflation?prediction_type=market_consensus" # EUR predictions — requires API key curl "https://api.fxmacrodata.com/v1/predictions/eur/inflation?api_key=YOUR_API_KEY" # USD policy-rate predictions curl "https://api.fxmacrodata.com/v1/predictions/usd/policy_rate"
مرجع انواع پیشبینی
| prediction_type | توضیحات |
|---|---|
| market_consensus | اجماع رویدادهای بازار یا اقتصاددانان، در صورت موجود بودن |
| market_prediction | پیشبینی نقطهای پیشبین حرفهای |
| model_nowcast | پیشبینی کوتاهمدت (nowcast) مدل بانک مرکزی یا بانک ذخیره |
| survey | نظرسنجی بانک مرکزی از پیشبینان حرفهای (مثلاً ECB SPF) |
| central_bank_forecast | پیشبینی رسمی بانک مرکزی (به عنوان مثال RBNZ MPS، BoC MPR) |
| central_bank_projection | پیشبینی رسمی بانک مرکزی |
| imf_weo | پیشبینی چشمانداز اقتصادی جهان IMF |
| 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 — pass your API key as a query parameter curl "https://api.fxmacrodata.com/v1/announcements/eur/policy_rate?api_key=YOUR_API_KEY" # Release calendar for Australia curl "https://api.fxmacrodata.com/v1/calendar/aud?api_key=YOUR_API_KEY" # 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 "https://api.fxmacrodata.com/v1/forex/usd/jpy?api_key=YOUR_API_KEY" # Data catalogue (discover available indicators for USD) curl "https://api.fxmacrodata.com/v1/data_catalogue/usd"
JavaScript / TypeScript
در Node.js (18+)، Deno، Bun و مرورگرهای مدرن با Fetch API کار میکند.
کلاینت رسمی 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 = "YOUR_API_KEY"; const eur = await fetch( `https://api.fxmacrodata.com/v1/announcements/eur/policy_rate?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", query = list(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
استفاده میکند از built-in webread function.
% 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); url = 'https://api.fxmacrodata.com/v1/announcements/eur/policy_rate?api_key=YOUR_API_KEY'; 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 درخواست در روز پشتیبانی میکنند. برای محدودیتهای بالاتر و دسترسی به چندین ارز، مشترک شوید.