morningstar について
morningstarは、Morningstarのスクリーナーで使われるJSONエンドポイントから世界の株式データを取得するスキルです。市場、国、項目を指定した検索や抽出、エクスポートに利用できますが、エンドポイントは非公式です。
主な機能
- 01銘柄名で株式を検索
- 02複数市場のデータを抽出・ダウンロード
- 03取得する項目を選択
- 04結果をJSONまたはCSVで出力
- 05項目と市場コードのリファレンスを確認
活用シーン
- 01指定市場の株式を検索
- 02複数市場の銘柄一覧を一括出力
- 03評価指標やリターンで株式を抽出
- 04分析用のCSVファイルを作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ gauss314/ skills --skill morningstarインストール後、Claude Code で/morningstarを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/DATA_POINTS.mdUNIVERSES.mdreferences/REFERENCE.mdscripts/fetch_morningstar.py詳細
Morningstar — API JSON 経由のスクリーナー
リバースエンジニアリングによって発見された内部 JSON エンドポイントを使って、Morningstar の世界株式データベースをダウンロードするスキルです。API キー不要、認証不要、厳しいレート制限もありません。
⚠️ 法的注意事項
- このエンドポイントは公式ではありません。Morningstar のスクリーナー Web UI の XHR トラフィックを傍受して発見されました。
- データは Morningstar の公開サイトから取得されます。サイトの利用規約を遵守してください。
- 認証なしでアクセスできるのはエンドポイント
/security/screenerのみです。Morningstar のその他のエンドポイント(api-global、global、lt など)では AWS WAF チャレンジの解決が必要です(このスキルではサポートされていません)。 - 集中的に使用する場合は、リクエストの間に 0.5~1 秒の間隔を空けてください。
スクリプト
| スクリプト | 説明 |
|---|---|
| fetch_morningstar.py | メインスクリプト:情報、フィールド、検索、スクリーナー、ダウンロード |
依存関係のインストール
pip install requests
requestsのみを使用し、追加の依存関係はありません。
クイックスタート
# === INFO ===
python scripts/fetch_morningstar.py info # Stats del skill
python scripts/fetch_morningstar.py fields # 33 campos disponibles
# === BUSCAR TICKERS (por nombre, multi-universe) ===
python scripts/fetch_morningstar.py search Apple --universe XNAS
python scripts/fetch_morningstar.py search Apple --universe XNAS XFRA XBUE
python scripts/fetch_morningstar.py search YPF --universe XBUE
python scripts/fetch_morningstar.py search "MercadoLibre" --universe XNAS BVMF
# === DESCARGA MASIVA (screener) ===
python scripts/fetch_morningstar.py screener --universe XNAS
python scripts/fetch_morningstar.py screener --universe XBUE
python scripts/fetch_morningstar.py screener --universe XNAS XLON XTKS
# === DESCARGA POR PAIS ===
python scripts/fetch_morningstar.py screener --country AR
python scripts/fetch_morningstar.py screener --country US
python scripts/fetch_morningstar.py screener --country DE
# === DESCARGA COMPLETA (53 universes, 100K+ listings) ===
python scripts/fetch_morningstar.py screener --all
# === GUARDAR A ARCHIVO ===
python scripts/fetch_morningstar.py screener --universe XBUE -o argentina.json
python scripts/fetch_morningstar.py screener --universe XNAS -o nasdaq.csv
python scripts/fetch_morningstar.py screener --country AR -o ar.csv
python scripts/fetch_morningstar.py search "YPF" --universe XBUE -o ypf_results.json
# === DOWNLOAD (alias de screener) ===
python scripts/fetch_morningstar.py download --universe XBUE -o ar.csv
# === MODO SILENCIOSO (solo JSON, sin logs) ===
python scripts/fetch_morningstar.py search Apple --universe XNAS -q
python scripts/fetch_morningstar.py screener --universe XBUE -q -o ar.json
# === CAMPOS ESPECIFICOS (--fields) ===
python scripts/fetch_morningstar.py screener --universe XNAS --fields Ticker Name ClosePrice MarketCap PERatio
利用可能なモード
| モード | 説明 | 例 |
|---|---|---|
info | スキルの統計情報、ドメイン、トークン、ユニバース数、フィールド数 | python fetch_morningstar.py info |
fields | 利用可能な 33 個の securityDataPoints を説明付きで一覧表示します | python fetch_morningstar.py fields |
search | 1 つまたは複数のユニバース内で、名前からティッカーを検索します | python fetch_morningstar.py search Apple --universe XNAS |
screener | 1 つまたは複数のユニバースを一括ダウンロードします(データベース全体) | python fetch_morningstar.py screener --universe XNAS |
download | screener の別名です | python fetch_morningstar.py download --universe XNAS |
フラグ
| フラグ | 説明 | 例 |
|---|---|---|
--universe XNAS | 1 つまたは複数のユニバースコード(E0EXG$ の接頭辞なし) | --universe XNAS XBUE |
--country AR | ISO 国コード(39 か国に対応) | --country AR US DE |
--all | 53 の全ユニバース(約 10 万件の上場銘柄、所要時間は約 1~2 分) | --all |
--fields Ticker Name | フィールドのサブセット(デフォルト:33 個すべて) | --fields Ticker Name ClosePrice |
--output archivo.json | JSON 形式で保存します | -o data.json |
--output archivo.csv | CSV 形式で保存します(フラット形式) | -o data.csv |
-q / --quiet | ログを表示せず、JSON のみを出力します | -q |
カバレッジ
53 のユニバース、102,093 件の上場銘柄、39 か国 — assets/UNIVERSES.md を参照してください。
上位 10 のユニバース
| ユニバース | 取引所 | 国 | 上場銘柄数 |
|---|---|---|---|
XFRA | フランクフルト(Tradegate) | ドイツ | 14,082 |
XSTU | シュトゥットガルト | ドイツ | 9,971 |
XMUN | ミュンヘン | ドイツ | 8,425 |
XDUS | デュッセルドルフ | ドイツ | 8,297 |
XBOM | ボンベイ(BSE) | インド | 5,192 |
XTKS | 東京 | 日本 | 3,989 |
XNAS | Nasdaq | 米国 | 3,741 |
XNSE | NSE India | インド | 3,018 |
XSHE | 深圳 | 中国 | 2,934 |
XKRX | 韓国取引所 | 韓国 | 2,877 |
アルゼンチン
XBUE(BCBA)→ 469 件の CEDEAR(外国株式の預託証書)。価格は ARS 建てです。
python fetch_morningstar.py screener --universe XBUE -o ar.csv
各 CEDEAR は、元の ADR とは異なる
PerformanceIdを持ちます。例:Apple Inc CEDEAR(0P0000TFNY)≠ Apple Inc NASDAQ(0P000000GY)。
ブラジル
BVMF(B3)→ 2,070 件の BDR/株式。価格は BRL 建てです。
メキシコ
XMEX(BMV)→ 2,233 件の株式。価格は MXN 建てです。
フィールド(合計33)
メタデータ5項目: Ticker、Name、PerformanceId、Universe、MarketCountryName
カテゴリ項目5つ: SectorName、IndustryName、EquityStyleBox(1~9)、QuantitativeStarRating(1~5)
数値項目23個:
- 価格/規模(2):
ClosePrice、MarketCap - バリュエーション(3):
PERatio、PEGRatio、DividendYield - 品質(7):
DebtEquityRatio、NetMargin、EBTMarginYear1、ROATTM、ROETTM、ROEYear1、ROICYear1 - 成長(2):
EPSGrowth3YYear1、RevenueGrowth3Y - リターン(9):
ReturnD1、ReturnW1、ReturnM0、ReturnM1、ReturnM3、ReturnM6、ReturnM12、ReturnM36、ReturnM60、ReturnM120
詳細はassets/DATA_POINTS.mdを参照してください。
出力例
search Apple --universe XNAS(1件)
{
"_meta": {
"query": "Apple",
"universe_count": 1,
"total_results": 1
},
"results": [
{
"Ticker": "AAPL",
"PerformanceId": "0P000000GY",
"Name": "Apple Inc",
"ClosePrice": 311.23,
"MarketCap": 4571145807880,
"MarketCountryName": "United States",
"SectorName": "Technology",
"IndustryName": "Consumer Electronics",
"_universe_code": "XNAS",
"_universe_name": "Nasdaq"
}
]
}
screener --universe XBUE -o ar.csv(469行)
_universe_code,Ticker,Name,PerformanceId,Universe,ClosePrice,MarketCap,SectorName,IndustryName,EquityStyleBox,...
XBUE,MMM,3M Co Cedear,0P0000D5UB,E0EXG$XBUE,23100,Industrials,Conglomerates,4,...
XBUE,A3,A3 Mercados SA Ordinary Shares,0P0000WJD7,E0EXG$XBUE,2215,Financial Services,Financial Data & Stock Exchanges,,...
XBUE,YPFD,YPF SA Class D,0P0000BS4D,E0EXG$XBUE,83850,Energy,Oil & Gas Integrated,9,...
search YPF --universe XBUE(4件)
{
"_meta": {"query": "YPF", "universe_count": 1, "total_results": 4},
"results": [
{"Ticker": "YPFD", "PerformanceId": "0P0000BS4D", "Name": "YPF SA Class D", "ClosePrice": 83850, "SectorName": "Energy", "IndustryName": "Oil & Gas Integrated", "_universe_code": "XBUE"},
{"Ticker": "YPFD1", "PerformanceId": "0P0001NX4I", "Name": "YPF SA Class D Cedear", ...},
{"Ticker": "YPF", "PerformanceId": "...", "Name": "YPF SA", ...},
...
]
}
技術上の考慮事項
共通トークン
同じトークンklr5zyak8xが、tools.morningstar.*の5つのサブドメインで機能します。
| ドメイン | デフォルト言語 |
|---|---|
tools.morningstar.co.uk | 英語(英国) |
tools.morningstar.de | ドイツ語 |
tools.morningstar.fr | フランス語 |
tools.morningstar.it | イタリア語 |
tools.morningstar.es | スペイン語 |
どのドメインからも同じデータが返されます。スクリプトは、いずれかが200を返すまで5つすべてを試します。
機能しないドメイン:
tools.morningstar.com(米国)、.com.au、.br、.jpなど(ジオフェンシング、IPブロック、またはエンドポイントが存在しないため)。
エンコーディング
APIは、languageId(es-AR、de-DEなど)の言語でセクター名/業種名を返します。問題: アクセント付き文字のエンコーディングが誤っています(Energ�aのように、Energíaではありません)。
スクリプトによる解決策: すべてのユニバースでlanguageId=en-GBを使用します。企業名(Apple、YPFなど)はそのままで、セクター名/業種名のみ英語で返されます(定量スクリーナーの標準です)。
レート制限
厳しいレート制限は確認されていません。ただし、次の点に注意してください。
- 数秒間に50件以上リクエストすると、CDNによるスロットリングが発生する場合があります
- スクリプトはユニバース間で0.5~1秒待機します(
get()で設定可能) - 積極的な再試行は行いません
PerformanceId
各上場銘柄(特定の取引所に上場している金融商品)には、一意のPerformanceIdがあります。同じ「Apple Inc」でも、次のようになります。
- NASDAQ(XNAS)では
0P000000GY - XFRA(フランクフルト)では
0P0000EEDJ - BVMF(ブラジルBDR)では
0P0000VE8R - XBUE(アルゼンチンCEDEAR)では
0P0000TFNY
PerformanceIdは取引所間で引き継がれません。特定の上場銘柄を識別するための唯一の安定したキーです。
スキルの構成
skills/morningstar/
├── SKILL.md # Este archivo (guia rapida)
├── assets/
│ ├── UNIVERSES.md # Lista completa de 53 universes
│ └── DATA_POINTS.md # Lista de 33 campos disponibles
├── references/
│ └── REFERENCE.md # Documentacion tecnica detallada
└── scripts/
└── fetch_morningstar.py # Script principal
詳細なドキュメント: エンドポイント、JSONスキーマ、例、トラブルシューティングに関する包括的な技術ドキュメントは、references/REFERENCE.mdを参照してください。