البداية السريعة
ابدأ بأي لغة
إن 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
التفويض: 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 من الواجهة الخلفية (backend) الخاصة بك وأبقِ مفتاح API بعيداً عن كود الواجهة الأمامية (client-side).
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 إلى أن معرف (slug) العملة أو المؤشر خاطئ.
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 الخاص بك من ساحة تجربة نقطة النهاية واحفظه في بيئة server الخاصة بك كـ
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"
تغطية نقطة نهاية Marketplace
تتضمن القائمة الإعلانات، وتقاويم الإصدار، وكتالوج البيانات، وأسعار FX اليومية، وتمركز COT، وأخبار البنوك المركزية، وجلسات السوق، وفحص الحالة. يعتمد الوصول إلى العملات والتاريخ على خطة RapidAPI الخاصة بك. استخدم الكتالوج للعثور على معرفات المؤشرات المدعومة.
وصول مباشر إلى FXMacroData
تستخدم الأمثلة الأخرى في هذه الصفحة api.fxmacrodata.com و FXMacroData X-API-Key عند الحاجة. المفاتيح والاشتراكات منفصلة بين القنوات. يغطي اشتراك RapidAPI نقاط النهاية REST المدرجة؛ أما اشتراكات الموقع الإلكتروني، وMCP، والتوقعات، والبث المباشر، وwebhooks فهي عروض منفصلة.
حافظ على مفتاحك بعيداً عن كود المتصفح والمستودعات العامة. لمجموعات نتائج أطول، اتبع pagination.next_offset until pagination.has_more هو خطأ. لا ترسل مفتاح API الخاص بك إلى الدعم أبداً.
أول استدعاء لـ API
طلب سريع
يعمل المقتطف الأول كما هو: لا حاجة لمفتاح لبيانات USD، والتي يتم تقديمها بعد 15 دقيقة من الإصدار. أضف X-API-Key لكافة عملات 22 والتسليم في الوقت الفعلي، المرسل من server أو script أو notebook.
# 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")
عميل غير متزامن (Async client)
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. تختلف توفر التوقعات حسب الإصدار — تحقق من مصفوفة التغطية. للأبحاث الخالية من الاستشراف المستقبلي، اتبع دليل الاختبار الرجعي الدقيق في الوقت المحدد.
/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"
مرجع أنواع التنبؤ
| نوع_التوقع | الوصف |
|---|---|
| market_consensus | إجماع أحداث السوق أو الاقتصادي المجمع، حيثما توفر |
| market_prediction | تنبؤ نقطي من متنبئ محترف |
| model_nowcast | توقعات فورية (nowcast) لنموذج البنك المركزي أو بنك الاحتياطي |
| مسح | مسح البنك المركزي للمتنبئين المحترفين (مثل ECB SPF) |
| central_bank_forecast | توقعات البنك المركزي الرسمية (على سبيل المثال RBNZ MPS، BoC MPR) |
| توقع_البنك_المركزي | توقعات البنك المركزي الرسمية |
| 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
يعمل من جهة الخادم (server-side) في 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);
إنشاء عميل محدد النوع لأي لغة
ينشر API الخاص بـ FXMacroData بشكل كامل مواصفات 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 دقائق عن النشر. اشترك للحصول على إصدارات في الوقت الفعلي، وقيم التوقعات، والسجل الكامل، وحدود أعلى، وكل عملة.