FXMacroData ahora ofrece un punto final de flujo de eventos enviados por el servidor (SSE) en tiempo real. Conecte una vez y su aplicación recibirá una notificación de empuje en vivo en el momento en que se ingere cualquier versión económica que cubre todas las monedas soportadas 18, incluidas Reserva Federal decisiones de política, El BCE Los datos de los bancos centrales de los Estados miembros son los siguientes:
¿Qué hay de nuevo?
- En vivo en el punto final de transmisión de SSE
api.fxmacrodata.com/v1/stream/events - Plan gratuito: eventos de anuncio en USD, sin necesidad de clave API
- Plan profesional: las 18 monedas, filtrable por moneda y indicador
- Latidos cardíacos automáticos cada ~ 30 segundos para mantener las conexiones vivas a través de proxies
- Reproduce el apoyo a través de
Last-Event-IDCabecera reanudar eventos perdidos después de una desconexión
El punto final
El flujo SSE está disponible en la siguiente URL. Esta es una conexión directa al servidor FXMacroData API No use el fxmacrodata.com/api/...
ruta para la EES, ya que esa ruta pasa a través de la capa CDN que amortiguará la respuesta y romperá la transmisión en vivo.
https://api.fxmacrodata.com/v1/stream/events
Los parámetros de consulta opcionales permiten reducir el feed:
currencieslista separada por comas:usd,eur,gbpindicatorslista separada por comas:inflation,policy_rateapi_keySe requiere una clave API profesional para monedas distintas del USD
curl -N "https://api.fxmacrodata.com/v1/stream/events?currencies=usd&indicators=inflation,policy_rate"
Formato del evento
Cada versión económica publicada produce un marco estándar de EventSource W3C:
id: usd_inflation_1772109000
event: announcement
data: {"event_id": "usd_inflation_1772109000", "currency": "usd", "indicator": "inflation", "records_written": 1, "timestamp": 1772109002}
El mensaje SSE es un activador operativo, no la carga útil completa de datos. Documento de datos de la API Para recuperar la serie temporal completa incluyendo el nuevo valor.
Ejemplo de navegador
En un navegador, nativo. EventSource El siguiente ejemplo se suscribe a Las nóminas no agrícolas en dólares
¿ Qué ? Inflación en dólares usando el nivel libre no autenticado:
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);
Ejemplo de Python
Para un trabajador del lado del servidor, use requests En modo de transmisión.
Last-Event-ID En la recon conexión para reproducir cualquier evento perdido:
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()
Disponibilidad del plan
Plan gratuito
Solo eventos de anuncio en USD. No se requiere clave API. Conecta directamente a api.fxmacrodata.com/v1/stream/events sin ningún parámetro de autenticación.
Plan profesional
Todas las 18 monedas. Filtrar por cualquier combinación de monedas e indicadores. Pasar su clave de API como ?api_key=YOUR_KEY en la cadena de consulta.
¿Qué construir después?
El flujo SSE funciona mejor como una capa de activación en la parte superior de su flujo de trabajo REST existente.
- Actualizaciones de tarjetas de panel en tiempo real actualizar un panel en el momento en que llegan nuevos datos en lugar de hacer encuestas cada N minutos.
- Alertas de operaciones comparar la última versión con sus umbrales y disparar una notificación Slack o webhook inmediatamente.
- Invalidación de la caché utilizar el evento SSE como señal para recuperar y almacenar el registro de indicadores actualizado.
- Combinado con el calendario de liberación saber qué está programado a continuación y utilizar SSE como confirmación en vivo cuando realmente publica.
Para una descripción completa de la implementación paso a paso, véase el Guía de instrucciones para la transmisión de SSE- ¿ Qué ?
El equipo de FXMacroData