finlight Logo
+

트레이딩 시스템용 뉴스 API

두 개의 스트림, 하나의 기사. Raw 스트림은 finlight가 수집하는 즉시 헤드라인을 전달합니다. Enriched 스트림은 약 28초 후에 감성 분석, 티커, 엔티티와 함께 도착합니다. 시스템이 먼저 반응하고, 이후 정제합니다.

작동 방식

같은 기사, 두 번

듀얼 스트림 패턴이 실제 전송 시 어떤 형태인지 보여줍니다. 먼저 raw 메시지가, 이어서 동일 기사의 enriched 버전이 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"
    }
  ]
}

페이로드는 축약되었습니다. 각 기업 엔티티에는 주요 상장 정보와 거래소별(MIC 코드) 교차 상장 정보가 포함되어, 하나의 기사가 여러 시장의 종목에 매핑됩니다. 전체 필드 레퍼런스는 문서를 참조하세요. 문서.

시작하기

원하는 언어로 구현하는 듀얼 스트림 패턴

하나의 클라이언트로 두 스트림을 구독하세요. Raw 메시지에 즉시 반응하고, 전체 데이터가 도착하면 보강합니다. 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)
})

SDK가 재연결, 하트비트, 커넥션 로테이션을 처리합니다. npm install finlight-client 또는 pip install finlight-client로 설치하세요.

솔직한 비교

직접 구축한다면

스크레이퍼 플릿과 RSS 폴러로 헤드라인을 수집할 수 있으며, 중복 제거가 필요 없는 단일 소스라면 합리적인 선택일 수 있습니다. 비용은 나중에 드러납니다: 5개 애그리게이터에서 같은 기사가 5번 도착하고, 퍼블리셔 마크업 변경으로 새벽 3시에 파서가 깨지며, 전략과 함께 감성 분석 모델까지 유지보수하게 됩니다. 범용 뉴스 API는 스크레이핑을 제거하지만 노이즈는 그대로입니다. 티커 매핑과 금융 관련 소스 큐레이션이 정확히 그들이 생략하는 부분이기 때문입니다. finlight의 역할은 그 중간 레이어입니다: 중복 제거된 수집, 엔티티 및 티커 태깅, 감성 분석, 그리고 반응 속도와 데이터 깊이를 분리하는 스트림 아키텍처.

지연 시간

"약 28초"의 정확한 의미

이 시장에서의 지연 시간 주장은 네 가지 다른 시계를 혼동합니다: 퍼블리셔가 게시한 시점, 제공자가 기사를 발견한 시점, 인덱싱된 시점, 그리고 여러분에게 도달한 시점. 우리는 하나의 숫자를 공개하며, 이는 내부 측정값입니다: 평균적으로 raw 스트림은 동일 기사의 enriched 버전보다 약 28초 먼저 기사를 전달합니다. 이것은 raw 스트림이 완전히 건너뛰는 보강 파이프라인 비용(감성 분석, 엔티티 해석, 티커 매칭)입니다. 우리는 종단 간 게시-전달 수치를 공개하지 않습니다. 이 숫자는 우리가 통제할 수 없는 퍼블리셔 타임스탬프에 의존하기 때문입니다. 벤더가 어떤 시계를 측정하는지 밝히지 않고 밀리초 단위 수치 하나만 제시한다면, 질문하세요.

듀얼 스트림 패턴은 이 시간차를 장점으로 전환합니다: raw 메시지는 기사가 존재한다는 것을 시스템에 알리고 헤드라인 필터가 즉시 작동하게 합니다. Enriched 메시지는 포지션 로직이 아직 활성 상태일 때 도착하여 감성 분석, 신뢰도, 태깅된 종목 정보를 추가합니다. 기사의 일부에 대해서만 보강이 필요하다면, enriched 스트림을 건너뛰고 필요한 기사에 대해 GET /v2/articles/by-link을 온디맨드로 호출하세요.

Raw 스트림 개발 이야기 읽기: 금융 뉴스 전달에서 28초를 줄인 방법

쿼리 언어

코드가 아닌 소스에서 필터링

스트림과 REST API는 하나의 쿼리 언어를 공유합니다. ticker:NVDA, exchange:NASDAQ, isin:US0378331005로 필터링하고, 소스 도메인, 언어별로, 완전한 불리언 로직(AND, OR, NOT, 괄호, -source:finance.yahoo.com 같은 제외)을 사용할 수 있습니다. 서버 사이드 필터링은 시스템이 실제로 처리할 메시지만 수신한다는 의미입니다.

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

안정성

무인 운영 시스템을 위해 설계

커넥션은 일정에 따라 로테이션되므로, SDK가 하트비트와 재연결을 관리합니다. 속도 제한은 엣지에서 적용되어, 비정상 클라이언트는 피드를 저하시키지 않고 즉시 실패합니다. REST 접근은 히스토리컬 쿼리와 백필을 지원하므로, 라이브 스트림을 구동하는 동일한 쿼리로 리서치 노트북도 구동할 수 있습니다.

데스크 레벨 배포를 운영하시나요? 맞춤 소스, 연간 청구, 우선 온보딩이 가능합니다. 소스를 지정하시면 계약의 일부로 온보딩해 드립니다. 문의하기

요금제

스트리밍을 위한 플랜

스트리밍 접근은 Pro Standard 플랜부터 시작됩니다. 플랜은 요청량, WebSocket 연결 수, 디스패치 할당량에 따라 다릅니다.

Pro Standard

동시 WebSocket 연결 1개, 스트리밍 접근 포함

Pro Scale

멀티 스트림 구성을 위한 동시 WebSocket 연결 3개

모든 플랜을 비교하려면 요금제 페이지

자주 묻는 질문

트레이딩 시스템 API 관련 질문

트레이딩 시스템 연동을 위한 finlight 사용에 대한 일반적인 질문.

스트리밍 접근은 Pro Standard 플랜부터 시작됩니다. 플랜은 요청량, WebSocket 연결 수, 디스패치 할당량에 따라 다릅니다. 현재 가격 및 제한 사항은 요금제 페이지를 참조하세요.

직접 시그널 로직에 대입해 테스트하세요

뉴스 피드를 평가하는 가장 빠른 방법은 필터를 적용해 보는 것입니다. 키를 발급받고, 듀얼 스트림 예제를 실행하고, 실시간 기사의 시간차를 확인하세요.

데스크 레벨 배포를 운영하시나요? 문의하세요.