Tony Wang7 分で読めますMetaculusのスクレイピング方法【2026年版】(API & Python)
Metaculusは質問と予測向けにほぼキー不要の公式APIを公開している一方、利用規約はサイト自体のスクレイピングを禁じています。その使い方を解説します。
Metaculus はすでに自前の公式 API を公開しており、質問、予測の集計値、コメント、カテゴリなど、読みたいものの大半は API キーなしで取得できます。したがって、2026 年の「Metaculus をどうスクレイピングするか」への率直な答えは、Kalshi の場合とおおむね同じです — 読み取りにはプラットフォーム自身の API を使い、その上にレンダリング済みサイトをスクレイピングしないこと。ここで重要な違いは、Metaculus が実際に「何であるか」です。Metaculus はトレーディングマーケットではなく予測コミュニティです — 予測者は実世界の質問に対して確率の見積もりを提出し、精度に応じて評判ポイントを獲得しますが、賭け金が動くことも支払いが発生することもありません。Kalshi の非金銭版の親戚だと考えるとわかりやすいでしょう — 「群衆が織り込んだ確率」という概念は同じですが、ビッド/アスクも、ドル建ての決済もありません。本ガイドでは Metaculus 自身の API、その利用規約、そして構造化 API を追加する価値がある場面を扱います。
Metaculus のデータをスクレイピングする理由
- 群衆予測のリサーチ — Metaculus のコミュニティ予測は、数千件の解決済み質問にまたがる評判で重み付けされた集計値であり、他の予測手法のキャリブレーションベンチマークとして有用です。
- 世論調査や専門家予測との比較 — Metaculus の群衆確率を、同じ出来事に関する政治的な世論調査、専門家調査、あるいは Kalshi や Polymarket のマーケットが織り込んだオッズと並べる。
- 予測精度とキャリブレーションのリサーチ — Metaculus は既知の結果を持つ解決済み質問を追跡しており、これはキャリブレーションやスーパーフォーキャスティングの研究がまさに必要とする種類のデータセットです。
- AI/LLM 予測ベンチマーク — Metaculus は公開の AI 予測トーナメントを運営しており、質問・予測履歴データは LLM の確率見積もりを人間の群衆と比較評価するための自然なベンチマークセットになります。
- ジャーナリズムとリサーチでの利用 — 静的な世論調査の数字の代わりに、オープンな質問に対するライブでソースが明確な確率を引用できます。
Metaculus のスクレイピングは合法か
選択肢 1: Metaculus 自身の API(とその限界)
Metaculus 自身の /api2/ API がまず手を伸ばすべきものであり、このシリーズのほとんどのプラットフォームより開かれています。
curl "https://www.metaculus.com/api2/questions/?limit=10"
ほとんどの読み取りには API キーが不要です。カバーする範囲となお存在する限界は次のとおりです。
- 読み取りはほぼキー不要、書き込みにはトークンが必要。 質問、コメント、カテゴリ、プロジェクトの一覧取得・個別取得は未認証で動作します。予測の投稿やコメントの投稿、ユーザー固有のエンドポイントへのアクセスには API トークンが必要です — Metaculus は
api-requests@metaculus.comへのメールでの申請に応じてこれを発行するほか、ログイン済みアカウントの上に構築する場合は Cookie/セッション認証でも対応します。 - 公開されたセルフサーブのレート制限値がない。 Metaculus は一部の API のように固定の「1 分あたりのリクエスト数」を公開していません。未認証での大量ポーリングはそれでもスロットリングやブロックの対象になり得るため、
429に対してはバックオフし、取得頻度を適度に保ちましょう。 - スキーマは安定した製品 API ではなく、稼働中のリサーチ API。
/api2/はバージョン管理された公開契約としてではなく、Metaculus 自身の Django バックエンドから育ってきたものなので、フィールド名やページネーションの形はリリースごとに変わり得ます — スキーマを固定されたものとして扱うのではなく、定期的にレスポンスを再確認することを想定してください。 - 規約が制限するのはダウンストリームの利用であり、読み取りそのものではない。 一回限りのリサーチではなく、モデル学習用のベンチマークやデータセットを構築するつもりなら、上記の AI/ML 学習に関する制限を計画に織り込んでおくべきです。
選択肢 2: Python での DIY(そしてなぜほとんど不要か)
Metaculus 自身の JSON API がすでにクリーンで構造化された読み取りを提供しているため、レンダリング済みの metaculus.com の質問ページをパースする理由はほとんどありません — しかもそれをやると、利用規約がまさに想定している API の例外を迂回することになります。公式 API に対する最小限の DIY プルは次のようになります。
import requests
r = requests.get(
"https://www.metaculus.com/api2/questions/",
params={"limit": 10, "status": "open"},
).json()
questions = r["results"]
これは 1 つのプラットフォームに対する 1 本のスクリプトとしては問題ありません。トレードオフが現れるのは、Metaculus が追跡する複数の予測・マーケットデータソースの 1 つになったときです。
- Metaculus のスキーマは Metaculus 独自のもの — フィールド名、質問タイプ(二値、数値、選択式)、ページネーションは
/api2/固有のもので、他に取得しているものと並行して維持すべき別の統合になります。 - ソース間で統一された認証や正規化がない。 Kalshi、Polymarket、あるいは従来のマーケットデータも取得しているなら、それぞれに独自のクライアント、スキーマ、スロットリングの挙動があり、これらを調整する必要があります。
- ポーリング、ストレージ、変更処理は自分で持つことになる — Metaculus はプルの重複排除もタイムスタンプ付けもリトライもしてくれません。先方でのスキーマの変化も、あなた自身が見つけて対処すべきバグになります。
選択肢 3: 構造化された Metaculus API
Metaculus スクレイピング APIの価値は、Metaculus が隠しているデータを解放することではありません — ほとんどはすでに公開されています — その価値は、Metaculus とカタログ内の他のあらゆるプラットフォームにまたがる 1 つの正規化されたスキーマと 1 つの x-api-key にあり、これにより予測データがマーケットデータの隣に、2 つ目のクライアントを維持することなく並びます。質問を一覧するには次のようにします。
curl "https://api.crawlora.net/api/v1/metaculus/questions?limit=10" \
-H "x-api-key: $CRAWLORA_API_KEY"
Python での質問、予測、履歴の取得は次のとおりです。
import requests
h = {"x-api-key": "YOUR_API_KEY"}
base = "https://api.crawlora.net/api/v1/metaculus"
questions = requests.get(f"{base}/questions", headers=h, params={"limit": 10}).json()["data"]
question = requests.get(f"{base}/question/43612", headers=h).json()["data"]
forecasts = requests.get(f"{base}/question/43612/forecasts", headers=h).json()["data"]
質問の予測レスポンスは、そのまま保存できる正規化された JSON です(実際のフィールド)。
{
"code": 200,
"msg": "OK",
"data": {
"question": {
"id": 43612,
"title": "Tampa sulphur price in June 2026?",
"public_page_derived": true
},
"methods_count": 1,
"methods": [
{
"method": "recency_weighted",
"forecaster_count": 54,
"center": 0.52,
"lower": 0.37,
"upper": 0.66,
"history_points": 25
}
]
}
}
予測履歴、選択式質問の選択肢、質問メタデータも同じキーの背後にあります。
history = requests.get(f"{base}/question/43612/forecast-history", headers=h,
params={"max_points": 500}).json()["data"]
options = requests.get(f"{base}/question/43731/options", headers=h).json()["data"]
metadata = requests.get(f"{base}/question/43731/metadata", headers=h).json()["data"]
特定の質問 ID を指定せずに閲覧するためのフィード形式のプルもあります — カテゴリ別、トーナメント別、あるいはサイトのコメントフィード。
category_qs = requests.get(f"{base}/category/artificial-intelligence/questions",
headers=h, params={"limit": 10}).json()["data"]
tournament_qs = requests.get(f"{base}/tournament/ai-benchmarking/questions",
headers=h, params={"limit": 10}).json()["data"]
top_comments = requests.get(f"{base}/top-comments", headers=h, params={"limit": 10}).json()["data"]
すべてのレスポンスには source_url と fetched_at が含まれるので、予測値と一緒に取得タイムスタンプを各行に保存しましょう — コミュニティ予測は移動平均であり、昨日の数字は今日の数字ではありません。
何を収集できるか
- 質問 — タイトル、ステータス(オープン/クローズ/解決済み)、質問タイプ(二値、数値、選択式)、予測者数・コメント数を、一覧または ID 指定で。
- 予測の集計値 — 質問ごとの、コミュニティによる直近重視で重み付けされた確率と、信頼区間・予測者数。
- 予測履歴 — 集計確率がどう推移したかを示す時系列のポイント。ポイント密度は設定可能。
- 選択肢とメタデータ — 選択式質問やグループ質問における選択肢ごとの確率、およびグルーピング変数などの質問メタデータ。
- カテゴリ・プロジェクト・トーナメントフィード — トピック領域、Metaculus のプロジェクト、予測トーナメントで絞り込んだ質問。
- コメント — サイトのコメントフィードと、質問ごとの週間トップコメント。
制約
- 本当のゲートは API アクセスではなく利用規約。 読み取りはおおむねオープンですが、API の外でレンダリング済みサイトをスクレイピングすることと、Metaculus のコンテンツで AI/ML モデルを学習させることの両方に、何かを構築する前に注意が必要です — 規約を直接読んでください。
- 群衆による確率であり、確実性ではない。 Metaculus のコミュニティ予測は評判で重み付けされた見積もりであり、保証ではありません — キャリブレーションシグナルとして有用ですが、事実の予言ではありません。
- お金は動かない。 Kalshi や Polymarket と異なり、ビッド/アスクも出来高もなく、Metaculus の予測を支える金銭的インセンティブもありません — 精度は評判によるものであり、これはシグナルの重み付け方に影響します。
- スキーマは稼働中の API であり、バージョン管理された製品ではない。 Metaculus 自身の
/api2/のフィールド構造はサイトのリリースごとに変わり得ます — 安定した契約ではなくリサーチ API として扱ってください。 - 投資助言ではない。 すべてのプルに
fetched_atを保存し、値は予測リサーチの入力として扱い、トレーディングや金融シグナルとしては決して扱わないでください — そもそも Metaculus に対して取れるポジションはありません。
どこで使われるか
- 予測とキャリブレーションのダッシュボード — ある質問についてコミュニティが織り込んだ確率が、解決に向けてどう動くかを追跡。
- 群衆 vs マーケットの比較 — 比較可能な実世界の出来事について、Metaculus の予測を Kalshi や Polymarket のマーケットが織り込んだオッズと並べる。
- AI 予測ベンチマーク — LLM の確率見積もりを、Metaculus の解決済み質問の履歴と比較評価する。
- リサーチとジャーナリズム — 専門家一人の推測ではなく、ソースが明確で評判に基づいて重み付けされた確率を引用する。
ソース
データ収集を始める
まずは無料で試す: 任意の公開 URL を無料ウェブスクレイパーで実行するか、アンチボットチェッカーでサイトがボットをブロックしているか確認しましょう。サインアップは不要です。
questions エンドポイントをプレイグラウンドで試し、API ドキュメントでスキーマを確認し、料金を確認してください。Metaculus は群衆が織り込んだ確率の非金銭版の読みです。同じ考え方のトレーディングマーケット側については、実際の yes/no 価格を持つ規制対象の取引所を扱うKalshi のスクレイピング方法、暗号資産マーケットを扱うCoinGecko のスクレイピング方法が、同じ出来事に関する Metaculus の予測と並べて比較するのに役立ちます。この分野全般の法的な基礎についてはウェブスクレイピングは合法かを参照してください。
よくある質問
MetaculusはKalshiやPolymarketのような予測マーケットですか?
いいえ。Metaculusはトレーディングマーケットではなく予測コミュニティです — 予測者は実世界の質問に対して確率の見積もりを提出し、精度に応じて評判ポイントを獲得しますが、賭け金が動くことも支払いが発生することもありません。KalshiやPolymarketと異なり、板情報もビッド/アスク価格もドル建ての決済もありません。
Metaculusには公式APIがありますか?
はい。Metaculusはmetaculus.com/api2/で自前のAPIを運営しており、質問・コメント・カテゴリ・プロジェクトなど、ほとんどの読み取りエンドポイントはAPIキーなしで動作します。予測の投稿など認証が必要な操作にはトークンが必要で、Metaculusはapi-requests@metaculus.comへの申請に応じてこれを発行します。
Metaculusをスクレイピングするのは合法ですか?
Metaculusの利用規約は、自前のAPIを経由しない自動化手段(ボット、スクリプト、クローラー)によるサイトのスクレイピングを禁止していますが、そのAPIを通じた自動利用は明示的に許可しています。規約はさらに、事前の書面での許可なくMetaculusのコンテンツをAI/MLモデルの学習・開発に利用することも別途禁止しています。これは法的助言ではありません — 商用の何かを構築する前に規約を直接確認してください。
Metaculusからどのようなデータを取得できますか?
質問(タイトル、ステータス、質問タイプ、予測者数・コメント数)、予測の集計値(信頼区間付きのコミュニティ確率)、時系列の予測履歴、選択式質問の選択肢ごとの確率、カテゴリ/プロジェクト/トーナメント別の質問フィード、コメントを取得できます。
Metaculusは公開されたAPIレート制限を持っていますか?
Metaculusは一部のプラットフォームのように固定の「1分あたりのリクエスト数」を公開していません。未認証での大量ポーリングはそれでもスロットリングの対象になり得るため、429レスポンスに対してはバックオフし、無制限の予算があると仮定せず取得頻度を適度に保つべきです。
MetaculusのフォーキャストはKalshiのマーケット価格とどう違いますか?
Kalshiの「yes」価格は実際のお金に裏付けられたマーケットが織り込んだ確率であり、トレーダーは結果に応じて利益や損失を得ます。Metaculusのコミュニティ予測は、金銭的な利害を伴わない、確率見積もりの評判で重み付けされた集計値です。どちらも有用な確率シグナルですが、異なるインセンティブ構造から生まれています。
他のプラットフォームと並行してMetaculusのデータを取得する一番簡単な方法は何ですか?
Metaculus自身のAPIはほとんどの読み取りをカバーしていますが、Kalshi、Polymarket、その他のマーケット/予測データも追跡しているなら、Crawloraのような構造化APIがMetaculusの質問・予測・履歴を、カタログ内の他のすべてのプラットフォームと同じスキーマと認証(x-api-key)に正規化してくれます。