finnhub について
finnhubは、Finnhubの金融データを取得するスキルで、Pythonクライアントとコマンドラインスクリプトを備えています。無料・有料エンドポイント、APIキーの扱い、レート制限、データの種類を説明します。
主な機能
- 01株価と企業プロフィールの取得
- 02ニュース、決算、同業銘柄、指標
- 03PythonクライアントとCLIスクリプト
- 04無料・有料エンドポイントの説明
活用シーン
- 01株価と企業プロフィールの確認
- 02企業や市場のニュース検索
- 03決算とアナリスト推奨の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ gauss314/ skills --skill finnhubインストール後、Claude Code で/finnhubを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/ENDPOINTS.mdscripts/download_multiple.pyfinnhub_cli.pyfinnhub_client.py詳細
Finnhub API — リアルタイム金融データ
32 個の無料エンドポイントを備えた REST API で、リアルタイム株価、OHLCV ローソク足、企業プロフィール、ファンダメンタルズ、ニュース、外国為替、暗号資産、経済データ、決算カレンダー、WebSocket をカバーします。
ベース URL: https://finnhub.io/api/v1
公式ドキュメント: finnhub.io/docs/api
料金プラン: finnhub.io/pricing
⚠️ 重要:無料エンドポイントとプレミアムエンドポイント
このスキルではすべてのエンドポイントを説明し、次のように明確に示しています。
- ✅ 無料 — 無料プランで利用できます(毎分 60 回の呼び出し、クレジットカード不要)
- 🔒 プレミアム — 有料プランが必要です(Starter $11.99/月〜、Professional $49.99/月、または Enterprise)
重要な注意: Finnhub の無料プランは、ドキュメントから受ける印象よりも大幅に制限されています。実際の無料 API キーを使ったテスト(2026 年)によると、利用できるエンドポイントは次のとおりです。
/quote(株価)、/stock/profile2(企業プロフィール)、/stock/peers(同業他社)、/stock/earnings(決算)/stock/recommendation(推奨情報)、/stock/metric(指標)、/news(市場ニュース)/company-news(企業ニュース)、/search(検索)、/stock/market-status(市場の状況)
stock/candle(OHLCV ローソク足)、stock/financials、stock/price-target、stock/dividend、forex/rates、crypto/candleなどのエンドポイントは、有料プランが必要です。references/ENDPOINTS.md の一覧表をご覧ください。
認証
API キーを取得する(無料、クレジットカード不要)
- https://finnhub.io/register にアクセスします
- アカウントを作成します(メールアドレスとパスワード)
- ダッシュボードから API キーをコピーします:https://finnhub.io/dashboard
- 無料プラン:毎分 60 回、最大毎秒 30 回の呼び出し
API キーを使用する
import os
API_KEY = os.getenv("FINNHUB_API_KEY") # Recomendado (variable de entorno)
# O directamente en tests:
# API_KEY = "tu_api_key_aqui"
# Header (recomendado)
X-Finnhub-Token: tu_api_key
# O query param
?token=tu_api_key
⚠️ 共有コードに API キーをハードコードしないでください。
レート制限
| 制限 | 無料プラン | Starter ($11.99/月) | Professional ($49.99/月) | Enterprise ($3500/月) |
|---|---|---|---|---|
| 毎分の呼び出し回数 | 60 | 300+ | 300+ | 900(市場)、300(ファンド) |
| 毎秒の呼び出し回数 | 30(全体) | 30(全体) | 30(全体) | 30(全体) |
| WebSocket のシンボル数 | 50 | 無制限 | 無制限 | 無制限 |
| OHLCV 履歴 | 制限あり | 30 年以上 | 30 年以上 | 30 年以上 |
| ニュース | 1 年 | 20 年 | 20 年 | 20 年 |
| ファンダメンタルズの対象範囲 | 米国 | グローバル | グローバル | グローバル |
ヒント: HTTP 429 が返された場合は、再試行する前に 1〜2 秒待ってください。
クイックスタート
1. リアルタイム株価
import requests
API_KEY = "tu_api_key"
BASE = "https://finnhub.io/api/v1"
r = requests.get(f"{BASE}/quote", params={"symbol": "AAPL", "token": API_KEY})
quote = r.json()
print(f"AAPL: ${quote['c']:.2f} ({quote['dp']:+.2f}%)")
2. 企業プロフィール
r = requests.get(f"{BASE}/stock/profile2", params={"symbol": "AAPL", "token": API_KEY})
profile = r.json()
print(f"{profile['name']} | {profile['finnhubIndustry']} | Market Cap: ${profile['marketCapitalization']/1000:.2f}B")
3. 企業ニュース
r = requests.get(f"{BASE}/company-news", params={
"symbol": "AAPL", "from": "2025-01-01", "to": "2025-01-15", "token": API_KEY
})
for article in r.json()[:3]:
print(f" {article['headline'][:80]}...")
4. 日次 OHLCV ローソク足
import time
end = int(time.time())
start = end - (90 * 86400) # 90 días
r = requests.get(f"{BASE}/stock/candle", params={
"symbol": "AAPL", "resolution": "D",
"from": start, "to": end, "token": API_KEY
})
candles = r.json()
print(f"Status: {candles['s']}, velas: {len(candles['c'])}")
5. シンボル検索
r = requests.get(f"{BASE}/search", params={"q": "microsoft", "token": API_KEY})
for result in r.json()["result"]:
print(f"{result['symbol']}: {result['description']} ({result['type']})")
利用可能なスクリプト
| スクリプト | 説明 | 使用するエンドポイント |
|---|---|---|
| finnhub_client.py | すべての無料エンドポイントに対応する完全版 Python クライアント | quote, candle, profile2, peers, metric, financials, earnings, recommendation, price-target, company-news, news, forex, crypto, search, economic, market-status, dividends, splits, calendar |
| finnhub_cli.py | すばやく照会するためのコマンドラインインターフェース | quote, profile2, search, news, peers, earnings, market-status |
| download_multiple.py | カテゴリごとにデータを一括ダウンロード | quote, candle, metric, financials, earnings, recommendation, company-news |
API のカバレッジ(実際の無料キーを使ったテストに基づく)
| カテゴリ | エンドポイント | 無料 | プレミアム |
|---|---|---|---|
| 株価 | quote | ✅ | — |
| 企業プロフィール | profile2, peers | ✅ | — |
| 決算 | earnings (4 quarters free) | ✅ | — |
| アナリストの推奨 | recommendation (~8 meses) | ✅ | — |
| 指標(133) | metric (sin historia, solo último valor) | ✅ | — |
| ニュース | company-news, news | ✅ | — |
| 検索 | search | ✅ | — |
| 市場状況 | market-status | ✅ | — |
| ローソク足 OHLCV | candle | — | 🔒 プレミアム |
| 財務諸表 | financials, financials-reported, price-target | — | 🔒 プレミアム |
| 配当/株式分割 | dividend, split | — | 🔒 プレミアム |
| 外国為替 | rates, candle, exchange, symbol | — | 🔒 プレミアム |
| 暗号資産 | candle, exchange, symbol | — | 🔒 プレミアム |
| 経済 | economic/code, economic, country | — | 🔒 プレミアム |
| シンボル | stock/symbol, market-holiday, ipo-calendar | — | 🔒 プレミアム |
| WebSocket | 取引(50 シンボル) | — | 🔒 プレミアム |
| インサイダー、所有状況 | insider-transactions, ownership, etc. | — | 🔒 プレミアム |
| 予測 | eps-estimate, revenue-estimate, etc. | — | 🔒 プレミアム |
| ETF、指数、債券 | etf/profile, etf/holdings, index/constituents, bond/price, etc. | — | 🔒 プレミアム |
| 代替データ | social-sentiment, covid-19, esg-score, etc. | — | 🔒 プレミアム |
⚠️ この表は、2026 年 6 月に無料 API キーを使って実施した実際のテストに基づいています。Finnhub はアクセス方針を定期的に変更します。必ず公式ドキュメントで確認してください。
ベストプラクティス
- ハードコードする代わりに、環境変数
FINNHUB_API_KEYを使用する - 結果をキャッシュする:ファンダメンタルデータはほとんど変化しません(特に企業プロフィールや財務諸表)
- レート制限:無料プランは 60 calls/min なので、最低でも 1 秒に 1 回の呼び出しにします
- 無料キーではプレミアムのエンドポイントを避けてください。
"You don't have access to this resource."エラーが返されます - WebSocket:API キーあたりの接続は 1 つのみで、無料プランでは 50 シンボルまでです
- パフォーマンス向上のため、HTTP セッションを再利用します(
requests.Session()) - 高頻度取引には使用しないでください:公開 API であり、超低レイテンシーは保証されません