شروع سریع
شروع به هر زبانی
FXMacroData API یک JSON REST API استاندارد برای استفاده در سمت سرور است. هر زبانی با پشتیبانی از HTTP کار میکند. دادههای اعلان USD، تقویم انتشار USD و کاتالوگ دادهها بدون کلید رایگان هستند: مربوط به 90 روز اخیر، با تأخیر انتشار 15 دقیقهای، تا سقف 100 درخواست در روز. مقادیر پیشبینی (شامل USD)، هر ارز دیگر، انتشار بهلحظه و تاریخچه کامل به یک کلید API نیاز دارند که در X-API-Key header. مشاهده موارد رایگان
پایه URL
https://api.fxmacrodata.com
احراز هویت
X-API-Key: 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 هر زمان که هر ردیف در پنجره دارای زمان انتشار مشتق شده از تأخیر انتشار اندازهگیری شده سری باشد، غلط است، بنابراین بررسی کنید assumed_release_time_count و به ازای هر ردیف release_time_assumed علامتگذاری قبل از برخورد با یک مورد نادرست به عنوان غیرقابل استفاده.
دسترسی به بازار
استفاده از FXMacroData از طریق RapidAPI
RapidAPI یک کانال بازار اختیاری برای FXMacroData REST API است. FXMacroData دادهها را تأمین میکند؛ RapidAPI اشتراک بازار، کلید API، سهمیه درخواست و صورتحساب شما را مدیریت میکند. برای درخواستها از طریق این کانال، به حساب یا کلید مجزای FXMacroData نیازی نیست.
- باز کردن لیست رسمی FXMacroData و یک طرح را انتخاب کنید. برای پوشش فعلی، سهمیهها و محدودیتهای نرخ، زبانه قیمتگذاری را بررسی کنید.
- کلید RapidAPI خود را از محیط آزمایشی نقطه پایانی کپی کرده و آن را در محیط سرور خود به این صورت ذخیره کنید:
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
زمانی که به جای یک wrapper از SDK، درخواست خام API را میخواهید، از این مثالهای مستقیم REST استفاده کنید. 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 با برچسبهای زمانی 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"
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
تاریخچه تصمیمات بانک مرکزی با زمانبندی انتشار برای تحقیقات بدون نگاه به آینده (no-lookahead).
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")
کلاینت 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.
/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) مدل بانک مرکزی یا بانک ذخیره |
| 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 — 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
استفاده میکند از 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, '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 دقیقه تأخیر پس از انتشار کار میکنند. برای انتشار بهلحظه، مقادیر پیشبینی، تاریخچه کامل، محدودیتهای بالاتر و هر ارز، مشترک شوید.