トレーディングシステム向けニュースAPI
2つのストリーム、1つの記事。Rawストリームはfinlightが取り込んだ瞬間に見出しを配信します。エンリッチドストリームは約28秒後にセンチメント、ティッカー、エンティティを付与して続きます。システムはまず反応し、次に精緻化します。
仕組み
同じ記事が2回届く
デュアルストリームパターンの実際の通信内容です。最初にRawメッセージ、次に同じ記事のエンリッチド版がlinkで紐付けられて届きます。
{
"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"
}{
"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コード)を持つため、1つの記事が複数市場の銘柄にマッピングされます。完全なフィールドリファレンスはドキュメントをご覧ください。 docs.
はじめに
デュアルストリームパターンをあなたの言語で
1つのクライアントで両方のストリームをサブスクライブ。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秒」の正確な意味
この市場のレイテンシーに関する主張は、4つの異なる時計を混同しています:パブリッシャーが公開した時刻、プロバイダーが記事を発見した時刻、インデックスされた時刻、そしてあなたに届いた時刻。私たちが公開する数値は1つであり、内部計測値です:平均して、Rawストリームは同じ記事のエンリッチド版より約28秒早く配信します。これはエンリッチメントパイプラインのコスト(センチメント分析、エンティティ解決、ティッカーマッチング)であり、Rawストリームはこれを完全にスキップします。エンドツーエンドの公開から配信までの数値は公表しません。その数値は私たちが制御できないパブリッシャーのタイムスタンプに依存するためです。ベンダーが計測対象の時計を明示せずに単一のミリ秒値を提示してきたら、確認してください。
デュアルストリームパターンはそのデルタを優位性に変えます:Rawメッセージは記事の存在をシステムに伝え、見出しフィルターを即座に発火させます。エンリッチドメッセージはポジションロジックがまだ稼働している間に届き、センチメント、信頼度、タグ付き銘柄を追加します。記事の一部のみエンリッチメントが必要な場合は、エンリッチドストリームをスキップし、必要な記事に対してGET /v2/articles/by-linkをオンデマンドで呼び出してください。
Rawストリームの技術的背景を読む: How I Cut 28 Seconds Off Financial News Delivery
クエリ言語
コード内ではなくソース側でフィルタリング
ストリームとREST APIは同じクエリ言語を共有します。ticker:NVDA、exchange:NASDAQ、isin:US0378331005、ソースドメイン、言語でフィルタリングでき、完全なブーリアンロジック(AND、OR、NOT、括弧、-source:finance.yahoo.comのような除外)に対応。サーバーサイドフィルタリングにより、システムは実際にアクションを取るメッセージのみを処理します。
(+ticker:TSLA OR +ticker:NVDA) AND ("earnings" OR "guidance") AND NOT crypto信頼性
無人稼働するシステムのために構築
接続はスケジュールに従ってローテーションされるため、SDKがハートビートと再接続を管理します。レート制限はエッジで適用されるため、不正なクライアントはフィードを劣化させる代わりに即座に失敗します。RESTアクセスは過去データのクエリとバックフィルに対応しており、ライブストリームと同じクエリがリサーチノートブックでも使用できます。
デスクレベルの導入をお考えですか?カスタムソース、年間請求、優先オンボーディングが利用可能です。ソースをご指定いただければ、契約の一環としてオンボーディングいたします。 お問い合わせ
その他の接続方法
WebSocketストリーミング以外の方法
デュアルストリームパターンは1つの連携方法です。finlightはRESTとWebhook配信も提供しています。
よくある質問
トレーディングシステムAPIに関する質問
finlightをトレーディングシステムに統合する際のよくある質問。
ストリーミングアクセスはPro Standardプランから利用可能です。プランはリクエスト量、WebSocket接続数、ディスパッチクォータで異なります。現在の料金と制限は料金ページをご確認ください。
その他のご質問はありますか?
開発者ファーストのサポートチームが、連携とスケーリングをサポートします。
あなたのシグナルロジックで検証する
ニュースフィードを評価する最速の方法は、フィルターを当てることです。キーを取得し、デュアルストリームの例を実行し、ライブ記事でのデルタを確認してください。
