Wednesday, July 8, 2026
高度なフィルタリング:finlight API で精密なクエリを組む
高度なフィルタリング:finlight API で精密なクエリを組む
幅広いニュースフィードはノイズです。価値は、あなたが本当に気にかける記事を正確に取得することに あります。finlight はそのための方法を 2 つ用意しており、両者は組み合わせて使えます。
- 一般的なケース(ティッカー、国、カテゴリ、ソース、日付)向けの構造化フィルター。
- ブール論理と全文マッチングのための、
queryフィールドに記述するクエリ言語。
本ガイドでは、POST /v2/articles を使ってこの両方を解説します。まだ最初の呼び出しをしていない場合は、
まずクイックスタートガイドから
始めてください。
構造化フィルター
これらは最も頻繁に使うことになるパラメータです。
tickers— 企業。例:["AAPL", "NVDA"]countries— ISO 3166-1 alpha-2 コード。例:["US", "GB"]categories— 13 カテゴリのうち 1 つ以上。例:["markets", "regulation"]sources/excludeSources/optInSources— 特定のメディアを含める・除外する・追加で選び入れるfrom/to— 日付範囲。YYYY-MM-DDまたは ISO 8601 形式order(ASC/DESC)とorderBy(publishDate、createdAt、revisedDate)
シンプルな構造化リクエストの例です。
curl -X POST https://api.finlight.me/v2/articles \
-H "X-API-KEY: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"tickers": ["AAPL", "NVDA"],
"categories": ["markets"],
"from": "2026-01-01",
"pageSize": 50
}'
クエリ言語
ブール論理やテキストマッチングが必要なときは、query フィールドを使います。フィールドフィルター、
ブール演算子、グループ化、完全一致フレーズ、ワイルドカードに対応しています。
対応フィールド
| フィールド | マッチ対象 | 例 |
|---|---|---|
ticker | 企業のティッカー | ticker:AAPL |
exchange | 上場している取引所 | exchange:NASDAQ |
isin | ISIN コード | isin:US0378331005 |
openfigi | OpenFIGI ID | openfigi:BBG000B9XRY4 |
source | ソースのドメイン | source:www.reuters.com |
country | 国コード | country:US |
category | カテゴリ | category:regulation |
title | タイトル中の単語 | title:"rate cut" |
summary | 要約中の単語 | summary:merger |
演算子
- 条件を組み合わせる
AND/OR/NOT。 - グループ化する括弧
( )。例:(ticker:AAPL OR ticker:NVDA)。 - 完全一致フレーズのための引用符
" "。例:"interest rates"。 ticker、source、exchangeに使えるワイルドカード*。例:ticker:BRK*。- 条件を必須にする・除外する
+/-。例:+ticker:AAPL -category:crypto。
組み合わせる
Apple または Nvidia に関する決算記事を探しつつ、特定のソースは除外します。
(ticker:AAPL OR ticker:NVDA) AND "earnings" AND NOT source:www.example.com
構造化フィルターとクエリ文字列は組み合わされます(AND で連結)。そのため両者を併用できます。
たとえば、ブール論理は query で表現し、categories / from を構造化フィルターとして送ります。
// TypeScript
import { FinlightApi } from 'finlight-client';
const client = new FinlightApi({ apiKey: 'YOUR_API_KEY' });
const response = await client.articles.fetchArticles({
query: '(ticker:AAPL OR ticker:NVDA) AND "earnings"',
categories: ['markets'],
from: '2026-01-01',
pageSize: 50,
});
# Python
from finlight_client import FinlightApi, ApiConfig
from finlight_client.models import GetArticlesParams
client = FinlightApi(config=ApiConfig(api_key="YOUR_API_KEY"))
params = GetArticlesParams(
query='(ticker:AAPL OR ticker:NVDA) AND "earnings"',
categories=["markets"],
from_="2026-01-01",
pageSize=50,
)
response = client.articles.fetch_articles(params)
ページネーションと深い履歴
page と pageSize(1 ページあたり最大 100 件)でページをめくります。知っておくべきルールが
ひとつあります。オフセット(page * pageSize)の上限は 10,000 です。より古い履歴をたどるには、
page をひたすら増やすのではなく、from と to で時間ウィンドウを狭め、各ウィンドウ内でページを
めくってください。こうすることでクエリは高速に保たれ、どれだけ長い履歴でも歩いて回れます。
次に読むべきもの
- ティッカーと取引所を正しく扱う — 複数市場に上場する企業を正確にフィルタリングします。
- 国とカテゴリで取得する世界のニュース。
- 完全なドキュメント。
