Mulai Cepat
Mulai dalam bahasa apa pun
API FXMacroData adalah REST JSON API standar. Bahasa apa pun dengan dukungan HTTP dapat digunakan. Endpoint deret waktu freemium tersedia untuk 90 hari terakhir tanpa kunci. Tambahkan kunci API Individual untuk membuka riwayat lengkap dan keluarga endpoint berbayar.
Dasar URL
https://api.fxmacrodata.com
Autentikasi
X-API-Key: YOUR_API_KEY
Otorisasi: Bearer YOUR_API_KEY
?api_key=YOUR_API_KEY
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 →
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 404 dengan 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.
data_quality objek. Untuk backtest dan pelaporan institusional, periksa point_in_time_safe, has_announcement_datetime, source_type, dan is_stale.
Panggilan API pertama
Permintaan Cepat
Mulailah dengan endpoint pengumuman langsung. Autentikasi tetap berada di api_key parameter kueri untuk pengujian browser dan skrip langsung.
curl "https://api.fxmacrodata.com/v1/announcements/eur/inflation?api_key=YOUR_API_KEY"
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"
response = requests.get(url, 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"
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))
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"
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))
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",
"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 komoditas emas
Deret waktu logam mulia resmi dengan nilai harian dan bidang 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
Instal yang resmi fxmacrodata paket dari PyPI. Klien sinkron dan asinkron, output siap 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 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])
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.
Python — ambil prediksi dan gabungkan dengan data aktual
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 prakiraan berdasarkan tipe
# 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"
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 — 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
Bekerja di Node.js (18+), Deno, Bun, dan browser modern dengan Fetch API.
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 = "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
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", query = list(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); url = 'https://api.fxmacrodata.com/v1/announcements/eur/policy_rate?api_key=YOUR_API_KEY'; 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?
Endpoint USD mendukung evaluasi tanpa kunci hingga 100 permintaan/hari. Berlanggananlah untuk batas yang lebih tinggi dan akses multi-mata uang.