finlight Logo
+

API de Notícias para Sistemas de Trading

Dois streams, um artigo. O stream bruto entrega a manchete no momento em que o finlight a ingere. O stream enriquecido segue com sentimento, tickers e entidades cerca de 28 segundos depois. Seu sistema reage primeiro e refina depois.

Como funciona

O mesmo artigo, duas vezes

Isto é o que o padrão dual-stream parece na prática. Primeiro a mensagem bruta, depois a versão enriquecida do mesmo artigo, correspondida pelo link.

Raw stream, wss://wss.finlight.me/raw
{
  "title": "S&P 500, Dow futures inch up as MidEast hopes offset SpaceX, AMD drag",
  "link": "https://www.reuters.com/business/...",
  "source": "www.reuters.com",
  "summary": "Contracts tracking the S&P 500 and the Dow edged up on Wednesday ...",
  "language": "en",
  "publishDate": "2026-08-05T09:32:26.959Z",
  "createdAt": "2026-08-05T09:32:41.103Z"
}
Enriched stream, ~28s later, same link
{
  "title": "S&P 500, Dow futures inch up as MidEast hopes offset SpaceX, AMD drag",
  "link": "https://www.reuters.com/business/...",
  "sentiment": "positive",
  "confidence": "0.9702919721603394",
  "categories": ["business", "markets"],
  "countries": ["US"],
  "companies": [
    {
      "ticker": "NVDA",
      "name": "NVIDIA Corporation",
      "exchange": "XNAS",
      "isin": "US67066G1040"
    },
    {
      "ticker": "AMD",
      "name": "Advanced Micro Devices, Inc.",
      "exchange": "XNAS",
      "isin": "US0079031078"
    }
  ]
}

Payloads abreviados. Cada entidade empresarial carrega uma listagem primária mais listagens cruzadas por bolsa (códigos MIC), então um artigo mapeia instrumentos em múltiplos mercados. Referência completa dos campos na documentação. documentação.

Comece agora

O padrão dual-stream na sua linguagem

Assine ambos os streams com um único cliente. Reaja à mensagem bruta, enriqueça quando os dados completos chegarem. Só falta a chave de API.

import { FinlightApi } from 'finlight-client'

const api = new FinlightApi(
  { apiKey: process.env.FINLIGHT_API_KEY! },
  { takeover: true },
)

const seen = new Map<string, number>()

// Raw stream: instant delivery, react immediately
api.rawWebsocket.connect({ language: 'en' }, (raw) => {
  seen.set(raw.link, Date.now())
  if (/earnings|acquisition|merger|FDA|rate decision/i.test(raw.title)) {
    console.log(`[SIGNAL] ${raw.title} (${raw.source})`)
    // your reaction logic here
  }
})

// Enriched stream: sentiment, entities, tickers
api.websocket.connect({ language: 'en', includeEntities: true }, (article) => {
  const t = seen.get(article.link)
  const delta = t ? `${((Date.now() - t) / 1000).toFixed(1)}s after raw` : 'new'
  console.log(`[ENRICHED] ${article.title} (${delta})`)
  console.log(
    `  sentiment=${article.sentiment} confidence=${article.confidence}`,
  )
  console.log(`  tickers=${article.companies?.map((c) => c.ticker).join(',')}`)
  seen.delete(article.link)
})

Os SDKs gerenciam reconexão, heartbeats e rotação de conexões. Instale com npm install finlight-client ou pip install finlight-client.

Comparação honesta

Se você fosse construir isso por conta própria

Uma frota de scrapers mais um poller de RSS entrega manchetes, e para uma única fonte sem necessidade de deduplicação, essa pode ser a decisão certa. O custo aparece depois: a mesma notícia chegando cinco vezes de cinco agregadores, mudanças na marcação do publisher quebrando parsers às 3 da manhã, e um modelo de sentimento que agora você mantém junto com sua estratégia. APIs de notícias genéricas eliminam o scraping mas mantêm o ruído, já que mapeamento de tickers e curadoria de fontes relevantes para finanças são exatamente as partes que elas pulam. O trabalho do finlight é essa camada intermediária: ingestão deduplicada, marcação de entidades e tickers, sentimento, e uma arquitetura de stream que separa velocidade de reação de profundidade de dados.

Latência

O que "cerca de 28 segundos" significa, precisamente

Alegações de latência neste mercado misturam quatro relógios diferentes: quando o publisher publicou, quando um provedor descobriu o artigo, quando ele foi indexado e quando chegou até você. Nós publicamos um número, e ele é medido internamente: em média, o stream bruto entrega um artigo cerca de 28 segundos antes da versão enriquecida do mesmo artigo. Esse é o custo do pipeline de enriquecimento (análise de sentimento, resolução de entidades, correspondência de tickers), que o stream bruto ignora completamente. Não publicamos um número de ponta a ponta da publicação à entrega, porque esse número depende de timestamps do publisher que não controlamos. Se um fornecedor apresenta um número único em milissegundos sem dizer qual relógio ele mede, pergunte.

O padrão dual-stream transforma esse delta em vantagem: a mensagem bruta informa ao seu sistema que um artigo existe e permite que um filtro de manchetes dispare imediatamente. A mensagem enriquecida chega enquanto sua lógica de posição ainda está ativa e adiciona sentimento, confiança e instrumentos marcados. Se você só precisa de enriquecimento para um subconjunto de artigos, ignore o stream enriquecido e chame GET /v2/articles/by-link sob demanda para os que importam.

Leia a história de engenharia por trás do stream bruto: How I Cut 28 Seconds Off Financial News Delivery

Linguagem de consulta

Filtre na origem, não no seu código

O stream e a REST API compartilham uma linguagem de consulta. Filtre por ticker:NVDA, exchange:NASDAQ, isin:US0378331005, por domínio da fonte, por idioma, com lógica booleana completa (AND, OR, NOT, parênteses, exclusões como -source:finance.yahoo.com). Filtragem no servidor significa que seu sistema só processa mensagens sobre as quais teria agido de qualquer forma.

Example query
(+ticker:TSLA OR +ticker:NVDA) AND ("earnings" OR "guidance") AND NOT crypto

Confiabilidade

Projetado para sistemas que rodam sem supervisão

Conexões rotacionam em um cronograma, então os SDKs gerenciam heartbeats e reconexão para você. Limites de taxa são aplicados na borda, então um cliente com mau comportamento falha rapidamente em vez de degradar seu feed. O acesso REST cobre consultas históricas e backfill, então a mesma consulta que alimenta seu stream ao vivo também alimenta seu notebook de pesquisa.

Gerenciando uma implantação no nível de mesa? Fontes personalizadas, faturamento anual e onboarding prioritário estão disponíveis. Você indica a fonte, nós a integramos como parte do seu contrato. Entre em contato

Preços

Planos projetados para streaming

O acesso a streaming começa no plano Pro Standard. Os planos diferem em volume de requisições, conexões WebSocket e cotas de despacho.

Pro Standard

1 conexão WebSocket simultânea, acesso a streaming incluído

Pro Scale

3 conexões WebSocket simultâneas para configurações multi-stream

Compare todos os planos na página de preços

Perguntas Frequentes

Perguntas sobre a API para Sistemas de Trading

Perguntas comuns sobre o uso do finlight para integrações com sistemas de trading.

O acesso a streaming começa no plano Pro Standard. Os planos diferem em volume de requisições, conexões WebSocket e cotas de despacho. Preços e limites atuais estão na página de preços.

Teste contra sua própria lógica de sinais

A forma mais rápida de avaliar um feed de notícias é apontar seu filtro para ele. Obtenha uma chave, execute o exemplo dual-stream e observe o delta em artigos ao vivo.

Gerenciando uma implantação no nível de mesa? Fale conosco.