Mula Pantas
Mulakan dalam mana-mana bahasa
FXMacroData API adalah JSON REST API standard. Mana-mana bahasa dengan sokongan HTTP boleh berfungsi. Titik akhir siri masa freemium tersedia untuk 90 hari terkini tanpa kunci. Tambah kunci API Individu untuk membuka kunci sejarah penuh dan keluarga titik akhir berbayar.
Asas URL
https://api.fxmacrodata.com
Pengesahan
X-API-Kunci: YOUR_API_KEY
Authorization: Bearer YOUR_API_KEY
?api_key=YOUR_API_KEY
Format respons
JSON (Content-Type: application/json)
openapi-generator-cli untuk menjana klien secara automatik dalam bahasa 40+.
Accept-Encoding: gzip pada setiap permintaan (8–12× beban muatan lebih kecil), gunakan semula ETag header respons dalam If-None-Match pada undian berulang (memulangkan 304 Not Modified tanpa badan), dan hantar ?limit=50 pada endpoint penunjuk tunggal seperti /v1/announcements/usd/inflation atau /v1/predictions/usd/inflation apabila anda hanya memerlukan baris terbaru. Lihat rujukan penuh →
core_pce wujud untuk USD tetapi bukan untuk setiap mata wang. Senaraikan setiap slug yang disokong oleh mata wang dengan GET /v1/data_catalogue/{currency}, sebagai contoh /v1/data_catalogue/usd. 404 dengan error_code: NO_DATA_IN_REQUESTED_WINDOW bermaksud slug adalah sah dan hanya tetingkap tarikh yang diminta adalah kosong — luaskan start_date/end_date daripada menukar URL.
data_quality objek. Untuk backtest dan pelaporan institusi, periksa point_in_time_safe, has_announcement_datetime, source_type, dan is_stale.
Panggilan API pertama
Permintaan Pantas
Mulakan dengan endpoint pengumuman live. Pengesahan kekal dalam api_key parameter pertanyaan untuk ujian pelayar dan skrip terus.
curl "https://api.fxmacrodata.com/v1/announcements/eur/inflation?api_key=YOUR_API_KEY"
permintaan Python
Permintaan API Python yang boleh disalin
Gunakan contoh REST terus ini apabila anda mahukan permintaan API mentah dan bukannya pembungkus SDK. Gantikan YOUR_API_KEY hanya pada laluan dilindungi.
konsensus pasaran inflasi USD
Konsensus, tinjauan, bank pusat, IMF, dan ramalan FXMacroData yang digabungkan dengan pengumuman sebenar.
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))
inflasi USD dengan cap masa known-at
Rekod inflasi USD awam untuk backtest point-in-time.
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))
sejarah spot EUR/USD FX
Sejarah harga harian FX untuk carta pasangan, model, dan tindanan siaran.
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))
sejarah kadar-polisi AUD
Sejarah keputusan bank pusat dengan masa keluaran untuk penyelidikan tanpa pandangan hadapan.
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))
jadual keluaran akan datang JPY
Acara makro akan datang dengan medan UTC, tempatan-pasaran, dan zon-masa-diminta untuk perancangan amaran, penyegaran model, dan semakan perdagangan.
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))
Harga komoditi emas
Siri masa logam berharga rasmi dengan nilai harian dan medan perubahan.
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
Pasang yang rasmi fxmacrodata pakej daripada PyPI. Klien sync dan async, output sedia-pandas.
Menggunakan 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")
Menggunakan REST API secara terus
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])
Klien 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())
Ramalan & Ramalan
The /v1/predictions/{currency}/{indicator} endpoint memaparkan data ramalan daripada tinjauan konsensus pasaran, unjuran bank pusat, World Economic Outlook IMF, dan tinjauan peramal profesional. Ramalan diminta untuk mata wang dan penunjuk tertentu, seperti https://api.fxmacrodata.com/v1/predictions/usd/inflation; permintaan ramalan hanya-mata wang tidak disokong. Setiap ramalan dipautkan ke pengumumannya melalui announcement_id, jadi anda boleh menggabungkan ramalan dengan pemerhatian yang direalisasikan.
prediction_type="fxmacrodata" adalah anggaran yang dijana FXMacroData; konsensus kompilasi sebenar dilabelkan market_consensus. Ketersediaan ramalan berbeza mengikut keluaran — semak matriks liputan. Untuk penyelidikan bebas pandang-depan, ikuti panduan backtesting point-in-time.
Python — ambil ramalan dan gabungkan dengan nilai sebenar
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 — ambil ramalan mengikut jenis
# 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"
Rujukan jenis ramalan
| prediction_type | Keterangan |
|---|---|
| market_consensus | Konsensus acara pasaran atau ahli ekonomi yang dikumpulkan, jika ada |
| market_prediction | Ramalan titik peramal profesional |
| model_nowcast | Nowcast model bank pusat atau bank rizab |
| tinjauan | Tinjauan bank pusat terhadap peramal profesional (cth. ECB SPF) |
| central_bank_forecast | Unjuran rasmi bank pusat (cth. RBNZ MPS, BoC MPR) |
| central_bank_projection | Unjuran rasmi bank pusat |
| imf_weo | Unjuran World Economic Outlook IMF |
| fxmacrodata | Ramalan yang dijana FXMacroData menggabungkan panduan bank pusat, tinjauan, dan trend sejarah |
cURL
Tiada pemasangan diperlukan. Berfungsi dari mana-mana terminal.
# 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
Berfungsi dalam Node.js (18+), Deno, Bun, dan pelayar moden dengan API Fetch.
Klien npm rasmi
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);
Menggunakan Fetch secara terus
// 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());
Pergi
Tiada pakej luaran diperlukan — perpustakaan standard mengendalikan semuanya.
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
Memerlukan httr dan 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
Kegunaan java.net.http (Java 11+). Tiada perpustakaan luaran diperlukan.
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
Kegunaan 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
Menggunakan binaan dalam webread fungsi.
% 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);
Jana klien bertaip untuk mana-mana bahasa
FXMacroData API menerbitkan satu yang lengkap Spesifikasi OpenAPI 3.1. Gunakannya dengan openapi-generator untuk menghasilkan klien bertaip penuh untuk Kotlin, Swift, Rust, Dart, Ruby, PHP, dan 40+ bahasa lain.
# 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
Sedia untuk membina?
endpoint USD menyokong penilaian tanpa kunci sehingga 100 permintaan/hari. Langgan untuk had yang lebih tinggi dan akses berbilang mata wang.