mcpField
F
finnhub

finnhub

github.com/gauss314データ・データベース252261 回インストール20 週間前に更新
リポジトリ

finnhub について

finnhubは、Finnhubの金融データを取得するスキルで、Pythonクライアントとコマンドラインスクリプトを備えています。無料・有料エンドポイント、APIキーの扱い、レート制限、データの種類を説明します。

主な機能

  1. 01株価と企業プロフィールの取得
  2. 02ニュース、決算、同業銘柄、指標
  3. 03PythonクライアントとCLIスクリプト
  4. 04無料・有料エンドポイントの説明

活用シーン

  1. 01株価と企業プロフィールの確認
  2. 02企業や市場のニュース検索
  3. 03決算とアナリスト推奨の確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/gauss314/skills --skill finnhub

インストール後、Claude Code で/finnhubを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
ENDPOINTS.md
scripts/
download_multiple.py
finnhub_cli.py
finnhub_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 キーを取得する(無料、クレジットカード不要)
  1. https://finnhub.io/register にアクセスします
  2. アカウントを作成します(メールアドレスとパスワード)
  3. ダッシュボードから API キーをコピーします:https://finnhub.io/dashboard
  4. 無料プラン:毎分 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/月)
毎分の呼び出し回数60300+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✅—
ローソク足 OHLCVcandle—🔒 プレミアム
財務諸表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 はアクセス方針を定期的に変更します。必ず公式ドキュメントで確認してください。


ベストプラクティス

  1. ハードコードする代わりに、環境変数 FINNHUB_API_KEY を使用する
  2. 結果をキャッシュする:ファンダメンタルデータはほとんど変化しません(特に企業プロフィールや財務諸表)
  3. レート制限:無料プランは 60 calls/min なので、最低でも 1 秒に 1 回の呼び出しにします
  4. 無料キーではプレミアムのエンドポイントを避けてください。"You don't have access to this resource." エラーが返されます
  5. WebSocket:API キーあたりの接続は 1 つのみで、無料プランでは 50 シンボルまでです
  6. パフォーマンス向上のため、HTTP セッションを再利用します(requests.Session())
  7. 高頻度取引には使用しないでください:公開 API であり、超低レイテンシーは保証されません

リソース

コメント