Mula Pantas
Mulakan dalam mana-mana bahasa
FXMacroData API adalah JSON REST API standard untuk kegunaan sebelah pelayan. Mana-mana bahasa dengan sokongan HTTP boleh digunakan. Data pengumuman USD, kalendar keluaran USD, dan katalog data adalah percuma tanpa kunci: 90 hari terkini, dengan kelewatan keluaran 15 minit, sehingga 100 permintaan setiap hari. Nilai ramalan (termasuk USD), setiap mata wang lain, keluaran masa nyata, dan sejarah penuh memerlukan kunci API, yang dihantar dalam X-API-Key header. Lihat apa yang percuma
Asas URL
https://api.fxmacrodata.com
Pengesahan
X-API-Kunci: YOUR_API_KEY
Authorization: Bearer YOUR_API_KEY
Warisan ?api_key= parameter pertanyaan telah usang: kunci dalam URL berakhir dalam log.
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 →
limit menerima sehingga 100. Untuk mengumpul julat penuh, ulangi permintaan dengan offset ditetapkan kepada pagination.next_offset until pagination.has_more is false. Lihat gelung Python ↓
fetch() dari halaman web disekat oleh pelayar. Panggil FXMacroData dari bahagian belakang anda dan pastikan kunci API berada di luar kod bahagian klien.
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. Satu 200 yang mana data tatasusunan adalah kosong dan yang membawa no_data.error_code: NO_DATA_IN_REQUESTED_WINDOW bermaksud slug adalah sah dan hanya tetingkap tarikh yang diminta adalah kosong — luaskan start_date/end_date berbanding menukar URL atau mencuba semula. 404 bermaksud slug mata wang atau penunjuk adalah salah.
data_quality objek. Untuk backtest dan pelaporan institusi, periksa point_in_time_safe, has_announcement_datetime, source_type, dan is_stale. point_in_time_safe adalah palsu apabila mana-mana baris dalam tetingkap membawa masa penerbitan yang diperoleh daripada lengah pelepasan yang diukur siri tersebut, jadi semak assumed_release_time_count dan setiap baris release_time_assumed tandakan sebelum melayan yang palsu sebagai tidak boleh digunakan.
Akses pasaran
Gunakan FXMacroData melalui RapidAPI
RapidAPI adalah saluran pasaran pilihan untuk FXMacroData REST API. FXMacroData membekalkan data; RapidAPI menguruskan langganan pasaran anda, kunci API, kuota permintaan dan pengebilan. Tiada akaun FXMacroData atau kunci berasingan diperlukan untuk permintaan melalui saluran ini.
- Buka senarai rasmi FXMacroData dan pilih pelan. Semak tab harga untuk liputan, kuota dan had kadar semasa.
- Salin kunci RapidAPI anda daripada playground titik akhir dan simpan ia dalam persekitaran pelayan anda sebagai
RAPIDAPI_KEY. - Hantar permintaan ke
https://fxmacrodata1.p.rapidapi.comdengan kedua-dua pengepala RapidAPI, seperti yang ditunjukkan di bawah.
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"
Liputan titik akhir Marketplace
Senarai tersebut merangkumi pengumuman, kalendar pelepasan, katalog data, kadar FX harian, kedudukan COT, berita bank pusat, sesi pasaran dan semakan kesihatan. Akses mata wang dan sejarah bergantung pada pelan RapidAPI anda. Gunakan katalog untuk mencari slug penunjuk yang disokong.
Akses FXMacroData secara langsung
Contoh-contoh lain pada halaman ini menggunakan api.fxmacrodata.com dan sebuah FXMacroData X-API-Key apabila diperlukan. Kunci dan langganan adalah berasingan antara saluran. Langganan RapidAPI merangkumi endpoint REST yang disenaraikan; langganan laman web, MCP, ramalan, penstriman dan webhook adalah tawaran berasingan.
Pastikan kunci anda jauh daripada kod pelayar dan repositori awam. Untuk set hasil yang lebih panjang, ikuti pagination.next_offset until pagination.has_more adalah palsu. Jangan sesekali hantar kunci API anda kepada sokongan.
Panggilan API pertama
Permintaan Pantas
Petikan pertama berjalan seadanya: tiada kunci diperlukan untuk data USD, dihantar 15 minit selepas pelepasan. Tambah X-API-Key untuk semua mata wang 22 dan penghantaran masa nyata, dihantar dari pelayan, skrip, atau buku nota.
# 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"
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"
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))
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"
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))
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"
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))
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",
}
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))
Harga komoditi emas
Siri masa logam berharga rasmi dengan nilai harian dan medan perubahan.
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
Pasang yang rasmi fxmacrodata pakej daripada PyPI (1.2.x). Klien sinkron dan asinkron mengembalikan kamus JSON biasa yang dimuatkan terus ke dalam pandas. Client() tanpa bacaan kunci menggunakan tier percuma USD; lulus api_key untuk setiap mata wang lain dan penghantaran masa nyata.
Menggunakan 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")
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])
Halaman melalui sejarah penuh
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")
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.
/v1/predictions/coverage/{currency}. Kunci percubaan atau berbayar mengembalikan nilai ramalan.
Python — ambil ramalan dan gabungkan dengan nilai sebenar
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 — ambil ramalan mengikut jenis
# 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"
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 — 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
Berfungsi di bahagian pelayan dalam Node.js (18+), Deno, dan Bun. API tidak menghantar pengepala CORS, jadi panggil ia dari bahagian belakang anda berbanding dari kod pelayar.
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 = 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());
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", add_headers(`X-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, 'HeaderFields', {'X-API-Key', 'YOUR_API_KEY'}); url = 'https://api.fxmacrodata.com/v1/announcements/eur/policy_rate'; 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?
Data keluaran USD berfungsi tanpa kunci, sehingga 100 permintaan/hari dan 15 minit di belakang penerbitan. Langgan untuk keluaran masa nyata, nilai ramalan, sejarah penuh, had yang lebih tinggi, dan setiap mata wang.