FXMacroData sekarang menawarkan real-time Server-Sent Events (SSE) stream endpoint. Connect once and your application receives a live push notification the moment any economic release is ingested covering all 18 supported currencies including Federal Reserve keputusan kebijakan, ECB Pengumuman suku bunga, dan data dari setiap bank sentral utama lainnya.
Apa yang baru?
- Live streaming SSE di
api.fxmacrodata.com/v1/stream/events - Rencana gratis: acara pengumuman USD, tidak diperlukan kunci API
- Rencana profesional: semua 18 mata uang, dapat disaring berdasarkan mata uang dan indikator
- Detak jantung otomatis setiap ~ 30 detik untuk menjaga koneksi hidup melalui proxy
- Pergi ke dukungan via
Last-Event-IDheader melanjutkan acara yang terlewatkan setelah pemutusan
Titik akhir
Aliran SSE tersedia di URL berikut. Ini adalah koneksi langsung ke server FXMacroData API Jangan gunakan fxmacrodata.com/api/...
jalur untuk SSE, karena rute itu melewati lapisan CDN yang buffer respon dan memutus live stream.
https://api.fxmacrodata.com/v1/stream/events
Parameter kueri opsional memungkinkan Anda mempersempit umpan:
currenciesdaftar terpisah dengan koma:usd,eur,gbpindicatorsdaftar terpisah dengan koma:inflation,policy_rateapi_keyKunci API profesional diperlukan untuk mata uang non-USD
curl -N "https://api.fxmacrodata.com/v1/stream/events?currencies=usd&indicators=inflation,policy_rate"
Format acara
Setiap rilis ekonomi yang diterbitkan menghasilkan kerangka kerja W3C EventSource standar:
id: usd_inflation_1772109000
event: announcement
data: {"event_id": "usd_inflation_1772109000", "currency": "usd", "indicator": "inflation", "records_written": 1, "timestamp": 1772109002}
Pesan SSE adalah pemicu operasional, bukan muatan data penuh. Dokumen data API untuk mengambil seri waktu lengkap termasuk nilai baru.
Contoh browser
Di browser, asli EventSource menangani koneksi ulang secara otomatis. contoh berikut berlangganan USD non-perhutanan gaji
Dan Inflasi USD menggunakan tingkat gratis yang tidak terverifikasi:
const streamUrl = new URL("https://api.fxmacrodata.com/v1/stream/events");
streamUrl.searchParams.set("currencies", "usd");
streamUrl.searchParams.set("indicators", "non_farm_payrolls,inflation");
const source = new EventSource(streamUrl);
source.addEventListener("announcement", async (event) => {
const payload = JSON.parse(event.data);
console.log("Release received:", payload.currency, payload.indicator);
// Fetch the full record now that we know new data is available
const resp = await fetch(
`https://api.fxmacrodata.com/v1/announcements/${payload.currency}/${payload.indicator}`
);
const records = await resp.json();
console.log("Latest record:", records[records.length - 1]);
});
source.onerror = (err) => console.error("SSE error", err);
Contoh Python
Untuk pekerja sisi server, gunakan requests di mode streaming.
Last-Event-ID pada koneksi kembali untuk memutar ulang acara yang hilang:
import json, time, requests
API_KEY = "YOUR_API_KEY"
STREAM_URL = (
"https://api.fxmacrodata.com/v1/stream/events"
"?currencies=usd,eur&indicators=inflation,policy_rate&api_key=" + API_KEY
)
def consume():
last_id = None
while True:
headers = {"Accept": "text/event-stream"}
if last_id:
headers["Last-Event-ID"] = last_id
try:
with requests.get(STREAM_URL, headers=headers, stream=True, timeout=90) as r:
r.raise_for_status()
event = {}
for line in r.iter_lines(decode_unicode=True):
if not line:
if event.get("event") == "announcement" and event.get("data"):
payload = json.loads(event["data"])
last_id = event.get("id") or payload["event_id"]
print("New release:", payload)
event = {}
continue
if not line.startswith(":"):
field, _, value = line.partition(":")
event[field] = value.lstrip()
except requests.RequestException as e:
print(f"Disconnected: {e}. Retrying...")
time.sleep(3)
consume()
Ketersediaan rencana
Rencana gratis
Hanya acara pengumuman USD. Tidak diperlukan kunci API. Hubungkan langsung ke api.fxmacrodata.com/v1/stream/events tanpa parameter otentikasi.
Rencana profesional
Semua 18 mata uang. filter dengan kombinasi mata uang dan indikator. ?api_key=YOUR_KEY dalam string query.
Apa yang akan dibangun selanjutnya
SSE stream bekerja dengan baik sebagai lapisan pemicu di atas alur kerja REST yang ada.
- Pembaruan kartu dashboard real-time memperbarui satu panel pada saat data baru tiba alih-alih jajak pendapat setiap N menit.
- Tanda perdagangan bandingkan rilis terbaru dengan ambang batas Anda dan tembak pemberitahuan Slack atau webhook segera.
- Invalidasi cache menggunakan peristiwa SSE sebagai sinyal untuk mengambil kembali dan menyimpan catatan indikator yang diperbarui.
- Digabungkan dengan Kalender rilis tahu apa yang dijadwalkan selanjutnya dan menggunakan SSE sebagai konfirmasi langsung ketika benar-benar menerbitkan.
Untuk langkah demi langkah implementasi lengkap, lihat Panduan SSE streaming.
Tim FXMacroData