O FXMacroData agora oferece um ponto final de fluxo de eventos enviados pelo servidor (SSE) em tempo real. Conecte-se uma vez e seu aplicativo receberá uma notificação de push ao vivo no momento em que qualquer versão econômica for ingerida cobrindo todas as 18 moedas suportadas, incluindo Reserva Federal decisões políticas, Banco Central Europeu Anúncios de taxas e dados de todos os outros grandes bancos centrais.
O que há de novo?
- Transmissão ao vivo do SSE no terminal
api.fxmacrodata.com/v1/stream/events - Plano gratuito: eventos de anúncio de USD, sem necessidade de chave API
- Plano profissional: todas as 18 moedas, filtráveis por moeda e por indicador
- Batimento cardíaco automático a cada ~ 30 segundos para manter as conexões vivas através de proxies
- Reinicie o suporte via
Last-Event-IDcabeçalho retomar eventos perdidos após uma desconexão
O ponto final
O fluxo SSE está disponível na seguinte URL. Esta é uma ligação direta ao servidor FXMacroData API Não use o fxmacrodata.com/api/...
caminho para a EES, como essa rota passa através da camada CDN que amortece a resposta e quebra o fluxo ao vivo.
https://api.fxmacrodata.com/v1/stream/events
Parâmetros de consulta opcionais permitem-lhe restringir o feed:
currencieslista separada por vírgulas:usd,eur,gbpindicatorslista separada por vírgulas:inflation,policy_rateapi_keyChave API profissional necessária para moedas que não sejam USD
curl -N "https://api.fxmacrodata.com/v1/stream/events?currencies=usd&indicators=inflation,policy_rate"
Formato do evento
Cada versão econômica publicada produz um framework padrão do W3C EventSource:
id: usd_inflation_1772109000
event: announcement
data: {"event_id": "usd_inflation_1772109000", "currency": "usd", "indicator": "inflation", "records_written": 1, "timestamp": 1772109002}
A mensagem SSE é um gatilho operacional, não a carga útil completa de dados. Documentação de dados da API para recuperar a série temporal completa, incluindo o novo valor.
Exemplo de navegador
Num navegador, nativo. EventSource O exemplo a seguir subscreve Lista de salários não agrícolas em USD
E ... Inflação em USD usando o nível livre não 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);
Exemplo de Python
Para um trabalhador do lado do servidor, use requests Em modo de transmissão.
Last-Event-ID Quando voltar a ligar para reproduzir eventuais eventos perdidos:
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()
Disponibilidade do plano
Plano gratuito
Apenas eventos de anúncios em USD. Não é necessária chave API. Conecte-se diretamente para api.fxmacrodata.com/v1/stream/events sem qualquer parâmetro de autenticação.
Plano profissional
Todas as 18 moedas. Filtrar por qualquer combinação de moedas e indicadores. Passe sua chave API como ?api_key=YOUR_KEY na cadeia de consulta.
O que construir a seguir
O fluxo SSE funciona melhor como uma camada de gatilho em cima do seu fluxo de trabalho REST existente.
- Atualizações de cartões do painel em tempo real atualizar um painel no momento em que novos dados chegam em vez de fazer uma sondagem a cada N minutos.
- Alertas de negociação compare a versão mais recente com os seus limiares e dispare uma notificação Slack ou webhook imediatamente.
- Invalidação do cache utilizar o evento SSE como sinal para recuperar e armazenar o registo do indicador actualizado.
- Combinado com o Calendário de lançamento saber o que está programado a seguir e utilizar o SSE como confirmação ao vivo quando ele realmente publicar.
Para uma descrição completa da implementação passo a passo, consulte o Guia de instruções para o streaming da SSE- Não .
A equipa FXMacroData