Mulai Cepat
Mulai dalam bahasa apa pun
FXMacroData API adalah JSON REST API standar untuk penggunaan sisi server. Bahasa apa pun dengan dukungan HTTP dapat berfungsi. Data pengumuman USD, kalender rilis USD, dan katalog data tersedia gratis tanpa kunci: 90 hari terakhir, dengan penundaan rilis 15 menit, hingga 100 permintaan per hari. Nilai perkiraan (termasuk USD), mata uang lainnya, rilis waktu nyata, dan riwayat lengkap memerlukan kunci API, yang dikirim dalam X-API-Key header. Lihat apa yang gratis
Dasar URL
https://api.fxmacrodata.com
Autentikasi
X-API-Key: YOUR_API_KEY
Otorisasi: Bearer YOUR_API_KEY
Warisan ?api_key= parameter kueri sudah tidak digunakan: kunci dalam URL berakhir di log.
Format respons
JSON (Content-Type: application/json)
openapi-generator-cli untuk membuat klien secara otomatis dalam 40+ bahasa.
Accept-Encoding: gzip pada setiap permintaan (8–12× payload lebih kecil), gunakan kembali ETag header respons dalam If-None-Match pada polling berulang (mengembalikan 304 Not Modified tanpa body), dan teruskan ?limit=50 pada endpoint indikator tunggal seperti /v1/announcements/usd/inflation atau /v1/predictions/usd/inflation saat Anda hanya memerlukan baris terbaru. Lihat referensi lengkap →
limit menerima hingga 100. Untuk mengumpulkan rentang lengkap, ulangi permintaan dengan offset diatur ke pagination.next_offset until pagination.has_more is false. Lihat loop Python ↓
fetch() dari halaman web diblokir oleh browser. Panggil FXMacroData dari backend Anda dan jauhkan kunci API dari kode sisi klien.
core_pce ada untuk USD tetapi tidak untuk setiap mata uang. Cantumkan setiap slug yang didukung mata uang dengan GET /v1/data_catalogue/{currency}, misalnya /v1/data_catalogue/usd. Sebuah 200 yang data larik kosong dan yang membawa no_data.error_code: NO_DATA_IN_REQUESTED_WINDOW berarti slug valid dan hanya jendela tanggal yang diminta yang kosong — melebar start_date/end_date daripada mengubah URL atau mencoba kembali. 404 berarti slug mata uang atau indikator salah.
data_quality objek. Untuk backtest dan pelaporan institusional, periksa point_in_time_safe, has_announcement_datetime, source_type, dan is_stale. point_in_time_safe adalah false kapan pun ada baris dalam jendela yang membawa waktu publikasi yang berasal dari lag rilis terukur seri tersebut, jadi periksa assumed_release_time_count dan per-baris release_time_assumed bendera sebelum menganggap false sebagai tidak dapat digunakan.
Akses Marketplace
Gunakan FXMacroData melalui RapidAPI
RapidAPI adalah saluran pasar opsional untuk FXMacroData REST API. FXMacroData menyediakan data; RapidAPI mengelola langganan pasar Anda, kunci API, kuota permintaan, dan penagihan. Tidak diperlukan akun atau kunci FXMacroData terpisah untuk permintaan melalui saluran ini.
- Buka daftar FXMacroData resmi dan pilih paket. Periksa tab harga untuk cakupan, kuota dan batas tarif saat ini.
- Salin kunci RapidAPI Anda dari playground endpoint dan simpan di lingkungan server Anda sebagai
RAPIDAPI_KEY. - Kirim permintaan ke
https://fxmacrodata1.p.rapidapi.comdengan kedua header RapidAPI, seperti yang ditunjukkan di bawah ini.
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"
Cakupan endpoint Marketplace
Daftar tersebut mencakup pengumuman, kalender rilis, katalog data, kurs FX harian, posisi COT, berita bank sentral, sesi pasar, dan pemeriksaan kesehatan. Akses mata uang dan riwayat bergantung pada paket RapidAPI Anda. Gunakan katalog untuk menemukan slug indikator yang didukung.
Akses FXMacroData langsung
Contoh lain di halaman ini menggunakan api.fxmacrodata.com dan sebuah FXMacroData X-API-Key saat diperlukan. Kunci dan langganan terpisah antar saluran. Langganan RapidAPI mencakup endpoint REST yang terdaftar; langganan situs web, MCP, prakiraan, streaming dan webhook adalah penawaran terpisah.
Jauhkan kunci Anda dari kode browser dan repositori publik. Untuk kumpulan hasil yang lebih panjang, ikuti pagination.next_offset until pagination.has_more adalah salah. Jangan pernah mengirimkan kunci API Anda ke dukungan.
Panggilan API pertama
Permintaan Cepat
Cuplikan pertama berjalan apa adanya: tidak perlu kunci untuk data USD, disajikan 15 menit setelah rilis. Tambahkan X-API-Key untuk semua mata uang 22 dan pengiriman waktu nyata, dikirim dari server, skrip, atau 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"
Permintaan Python
Permintaan Python API yang dapat disalin
Gunakan contoh REST langsung ini saat Anda menginginkan permintaan API mentah alih-alih pembungkus SDK. Ganti YOUR_API_KEY hanya pada rute yang dilindungi.
konsensus pasar inflasi USD
Konsensus, survei, bank-sentral, IMF, dan prakiraan FXMacroData yang digabungkan dengan pengumuman terealisasi.
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 stempel waktu yang diketahui
Catatan inflasi USD publik 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))
riwayat spot EUR/USD FX
Riwayat harga harian FX untuk grafik pasangan, model, dan overlay rilis.
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))
riwayat policy-rate AUD
Riwayat keputusan bank sentral dengan waktu rilis untuk riset tanpa 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))
Jadwal rilis mendatang JPY
Acara makro mendatang dengan bidang UTC, market-local, dan requested-timezone untuk perencanaan peringatan, penyegaran model, dan tinjauan 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 komoditas emas
Deret waktu logam mulia resmi dengan nilai harian dan bidang 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
Instal yang resmi fxmacrodata paket dari PyPI (1.2.x). Klien sinkron dan asinkron mengembalikan kamus JSON biasa yang dimuat langsung ke dalam pandas. Client() tanpa kunci akan membaca tingkat gratis USD; kirimkan api_key untuk setiap mata uang lainnya dan pengiriman waktu 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 langsung
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])
Penomoran halaman melalui riwayat lengkap
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())
Prediksi & Perkiraan
The /v1/predictions/{currency}/{indicator} endpoint menyediakan data prakiraan dari survei konsensus pasar, proyeksi bank sentral, IMF World Economic Outlook, dan survei pakar profesional. Prediksi diminta untuk mata uang dan indikator tertentu, seperti https://api.fxmacrodata.com/v1/predictions/usd/inflation; permintaan prediksi hanya-mata-uang tidak didukung. Setiap prediksi terkait dengan pengumumannya melalui announcement_id, sehingga Anda dapat menggabungkan prakiraan dengan observasi yang terealisasi.
prediction_type="fxmacrodata" adalah estimasi yang dihasilkan FXMacroData; konsensus kompilasi yang sebenarnya diberi label market_consensus. Ketersediaan prakiraan bervariasi berdasarkan rilis — periksa matriks cakupan. Untuk penelitian bebas look-ahead, ikuti panduan backtesting point-in-time.
/v1/predictions/coverage/{currency}. Kunci uji coba atau berbayar mengembalikan nilai prakiraan.
Python — ambil prediksi dan gabungkan dengan data aktual
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 prakiraan berdasarkan tipe
# 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"
Referensi tipe prediksi
| prediction_type | Deskripsi |
|---|---|
| market_consensus | Konsensus peristiwa pasar atau ekonom yang disusun, jika tersedia |
| market_prediction | Prediksi titik prakiraan profesional |
| model_nowcast | Nowcast model bank sentral atau bank cadangan |
| survei | Survei bank sentral terhadap peramal profesional (misalnya ECB SPF) |
| central_bank_forecast | Proyeksi bank sentral resmi (misalnya RBNZ MPS, BoC MPR) |
| central_bank_projection | Proyeksi resmi bank sentral |
| imf_weo | Proyeksi IMF World Economic Outlook |
| fxmacrodata | Prediksi yang dihasilkan FXMacroData yang menggabungkan panduan bank sentral, survei, dan tren historis |
cURL
Tidak perlu instalasi. Berjalan dari terminal mana pun.
# 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
Bekerja di sisi server dalam Node.js (18+), Deno, dan Bun. API tidak mengirim header CORS, jadi panggil dari backend Anda daripada dari kode browser.
Klien npm resmi
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 langsung
// 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
Tidak perlu paket eksternal — pustaka standar menangani 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+). Tidak memerlukan library eksternal.
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 yang terintegrasi 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);
Hasilkan klien bertipe untuk bahasa apa pun
FXMacroData API menerbitkan sebuah Spesifikasi OpenAPI 3.1. Gunakan dengan openapi-generator untuk menghasilkan klien bertipe lengkap untuk Kotlin, Swift, Rust, Dart, Ruby, PHP, dan 40+ bahasa lainnya.
# 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
Siap untuk membangun?
Data rilis USD berfungsi tanpa kunci, hingga 100 permintaan/hari dan 15 menit di belakang publikasi. Berlangganan untuk rilis waktu nyata, nilai perkiraan, riwayat lengkap, batas yang lebih tinggi, dan setiap mata uang.