以规范化 JSON 采集 Metaculus 的问题、社区预测及预测历史、问题元数据、期权和评论动态,用于研究与跟踪。不构成投资、预测或决策建议。
Structured output
使用 Crawlora 的 Metaculus API,无需自建采集器或响应规范化流程,即可获取公开的预测问题、社区预测、预测历史、元数据、期权、分类和锦标赛问题列表以及评论动态。
预测研究工作流
在作为公开研究数据使用时,公开的 Metaculus 问题和预测可以支撑研究仪表盘、主题监控、锦标赛跟踪、预测历史快照以及 AI 智能体的背景信息。
规划预测市场数据工作流Request schema
These parameters come from the active Metaculus questions catalog entry.
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| topic | string | No | Optional Metaculus topic slug | - |
| limit | integer | No | Rows to return, default 10, max 25 | - |
Example JSON
This example is rendered from the active endpoint catalog so the page stays aligned with Docs and Playground.
{
"code": 200,
"msg": "OK",
"data": {
"limit": 1,
"source_url": "https://www.metaculus.com/questions/",
"fetched_at": "2026-06-07T14:00:00Z",
"questions": [
{
"id": 43612,
"question_id": 43609,
"title": "Tampa sulphur price in June 2026?",
"status": "open",
"question_type": "numeric",
"forecaster_count": 54,
"comment_count": 16,
"public_page_derived": true
}
]
}
}Endpoint catalog
/metaculus/questionsReturns normalized Metaculus question rows from credential-free public page data. The endpoint fails closed on authenticated API responses or Cloudflare challenge pages.
Response notes
- `data.questions` contains public page-derived rows, not the authenticated Metaculus API payload. - Forecast values are extracted from the public aggregate payload when present. - Upstream authentication, challenge, or parser drift is returned as a typed upstream error. Example response: ```json { "code": 200, "msg": "OK", "data": { "limit": 1, "source_url": "https://www.metaculus.com/questions/", "fetched_at": "2026-06-07T14:00:00Z", "questions": [ { "id": 43612, "question_id": 43609, "title": "Tampa sulphur price in June 2026?", "status": "open", "question_type": "numeric", "forecaster_count": 54, "comment_count": 16, "public_page_derived": true } ] } } ```
MCP tool metaculus_questions
/metaculus/question/{id}Returns one normalized Metaculus question from credential-free public page data.
Response notes
- The response is derived from public page data, not from the authenticated Metaculus API. - Upstream authentication, challenge, or parser drift is returned as a typed upstream error. Example response: ```json { "code": 200, "msg": "OK", "data": { "source_url": "https://www.metaculus.com/questions/43612/", "fetched_at": "2026-06-07T14:00:00Z", "question": { "id": 43612, "question_id": 43609, "title": "Tampa sulphur price in June 2026?", "status": "open", "public_page_derived": true } } } ```
MCP tool metaculus_question
/metaculus/question/{id}/forecastsReturns compact public latest forecast summaries by aggregation method for one Metaculus question.
Response notes
- `data.public_page_derived` is `true`. - `data.methods` is parsed from public `question.aggregations` page data. - Preferred methods are ordered first when present: `recency_weighted`, `unweighted`, `single_aggregation`. - Each method exposes forecaster count, the first center/lower/upper value, raw center/bound arrays, and available history point count. - Invalid ids return invalid-parameter errors before upstream IO. - Upstream authentication, challenge pages, missing aggregation data, or parser drift is returned as a typed upstream error. Example response: ```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 } ], "public_page_derived": true } } ```
MCP tool metaculus_question_forecasts
/metaculus/question/{id}/forecast-historyReturns public aggregation forecast history points for one Metaculus question from credential-free public page data. The `method` enum accepts `recency_weighted`, `unweighted`, and `single_aggregation`.
Response notes
- `data.public_page_derived` is `true`. - `data.points` is parsed from public `aggregations.{method}.history` page data. - Each point exposes timestamp bounds, forecaster count, the first center/lower/upper value, and the raw center/bound arrays. - Invalid ids, methods, or `max_points` values return invalid-parameter errors before upstream IO. - Upstream authentication, challenge, missing history, or parser drift is returned as a typed upstream error. Example response: ```json { "code": 200, "msg": "OK", "data": { "method": "recency_weighted", "points_count": 1, "max_points": 500, "question": { "id": 43612, "title": "Tampa sulphur price in June 2026?", "public_page_derived": true }, "points": [ { "start_ts": 1780333200, "end_ts": 1780333580.206417, "start_time": "2026-06-01T17:00:00Z", "end_time": "2026-06-01T17:06:20Z", "forecaster_count": 17, "center": 0.36, "lower": 0.26, "upper": 0.61 } ], "public_page_derived": true } } ```
MCP tool metaculus_question_forecast_history
/metaculus/question/{id}/metadataReturns public metadata for one Metaculus question, including option labels, option history, scaling metadata, resolution fields, and timing fields when present.
Response notes
- `data.public_page_derived` is `true`. - `data.options`, `data.all_options_ever`, and `data.options_history` are present for public multiple-choice questions when the page exposes them. - `data.scaling`, `data.resolution`, and `data.possibilities` are returned only when public page data exposes those fields. - Invalid ids return invalid-parameter errors before upstream IO. - Upstream authentication, challenge pages, missing question payloads, or parser drift is returned as a typed upstream error. Example response: ```json { "code": 200, "msg": "OK", "data": { "question": { "id": 43731, "question_id": 43761, "title": "OpenAI or Anthropic valuation?", "question_type": "multiple_choice", "public_page_derived": true }, "group_variable": "Company", "options": ["OpenAI", "Anthropic"], "options_history": [ { "changed_at": "0001-01-01T00:00:00", "options": ["OpenAI", "Anthropic"] } ], "public_page_derived": true } } ```
MCP tool metaculus_question_metadata
/metaculus/question/{id}/optionsReturns public multiple-choice option labels and latest option-level forecast values for one Metaculus question. The `method` enum accepts `recency_weighted`, `unweighted`, and `single_aggregation`.
Response notes
- `data.public_page_derived` is `true`. - `data.options` aligns public option labels with latest aggregation arrays by index. - Each option may include center, lower, upper, mean, forecast value, and forecaster count when the public payload exposes those fields. - Invalid ids or methods return invalid-parameter errors before upstream IO. - Non-option questions, missing option labels, missing aggregation data, upstream authentication, challenge pages, or parser drift are returned as typed upstream errors. Example response: ```json { "code": 200, "msg": "OK", "data": { "question": { "id": 43731, "question_id": 43761, "title": "OpenAI or Anthropic valuation?", "question_type": "multiple_choice", "public_page_derived": true }, "method": "recency_weighted", "options_count": 2, "options": [ { "index": 0, "label": "OpenAI", "center": 0.42, "lower": 0.31, "upper": 0.43, "mean": 0.39, "forecast_value": 0.42, "forecaster_count": 5 } ], "public_page_derived": true } } ```
MCP tool metaculus_question_options
/metaculus/category/{slug}/questionsReturns normalized Metaculus question rows from a credential-free public category feed page. Allowed category slugs: artificial-intelligence, computing-and-math, cryptocurrencies, economy-business, elections, environment-climate, geopolitics, health-pandemics, law, metaculus, natural-sciences, nuclear, politics, social-sciences, space, sports-entertainment, technology.
Response notes
- `data.feed` is `category`. - `data.source_url` uses `/questions/?categories={slug}&for_main_feed=false`. - Unsupported category slugs return invalid-parameter errors before upstream IO. - Upstream authentication, challenge, or parser drift is returned as a typed upstream error. Example response: ```json { "code": 200, "msg": "OK", "data": { "limit": 1, "feed": "category", "source_url": "https://www.metaculus.com/questions/?categories=artificial-intelligence&for_main_feed=false", "fetched_at": "2026-06-07T14:00:00Z", "questions": [ { "id": 43612, "title": "Example artificial intelligence question", "comment_count": 16, "public_page_derived": true } ] } } ```
MCP tool metaculus_category_questions
/metaculus/tournament/{slug}/questionsReturns normalized Metaculus question rows for one public tournament, filtered by its slug. A slug that does not exist returns 404.
Response notes
- `data.feed` is `tournament`. - Every returned question belongs to the requested tournament; `data.questions[].projects[].slug` carries it. - A tournament slug that does not exist returns `404`, not an unfiltered feed. - A tournament that exists but currently has no questions returns `200` with an empty `data.questions`. - Invalid slugs or limits return invalid-parameter errors before upstream IO. - Upstream authentication, challenge pages, or parser drift is returned as a typed upstream error. Example response: ```json { "code": 200, "msg": "OK", "data": { "limit": 2, "feed": "tournament", "questions": [ { "id": 43612, "title": "Tampa sulphur price in June 2026?", "public_page_derived": true } ] } } ```
MCP tool metaculus_tournament_questions
/metaculus/project/{slug}/questionsReturns normalized Metaculus question rows for one public project, filtered by its slug. A slug that does not exist returns 404.
Response notes
- `data.feed` is `project`. - Every returned question belongs to the requested project; `data.questions[].projects[].slug` carries it. - A project slug that does not exist returns `404`, not an unfiltered feed. - A project that exists but currently has no questions returns `200` with an empty `data.questions`. - Invalid slugs or limits return invalid-parameter errors before upstream IO. - Upstream authentication, challenge pages, or parser drift is returned as a typed upstream error. Example response: ```json { "code": 200, "msg": "OK", "data": { "limit": 2, "feed": "project", "questions": [ { "id": 43612, "title": "Tampa sulphur price in June 2026?", "public_page_derived": true } ] } } ```
MCP tool metaculus_project_questions
/metaculus/comments-feedReturns normalized Metaculus question rows for the questions referenced by the most recent public comments, in comment recency order. Derived from credential-free public Metaculus data; upstream comment bodies are not exposed.
Response notes
- `data.feed` is `comments_feed`. - `data.questions` contains the questions referenced by the most recent public comments, ordered by most recent comment first. - Upstream authentication, challenge, or parser drift is returned as a typed upstream error. Example response: ```json { "code": 200, "msg": "OK", "data": { "limit": 1, "feed": "comments_feed", "source_url": "https://www.metaculus.com/questions/?comments_feed=true", "fetched_at": "2026-06-07T14:00:00Z", "questions": [ { "id": 43612, "title": "Tampa sulphur price in June 2026?", "comment_count": 16, "public_page_derived": true } ] } } ```
MCP tool metaculus_comments_feed
/metaculus/top-commentsReturns normalized Metaculus question rows for the questions whose recent public comments collected the highest vote scores over roughly the last week. Derived from credential-free public Metaculus data; upstream comment bodies are not exposed.
Response notes
- `data.feed` is `weekly_top_comments`. - `data.questions` contains the questions referenced by the last week's public comments, ranked by summed comment vote score. - Upstream authentication, challenge, or parser drift is returned as a typed upstream error. Example response: ```json { "code": 200, "msg": "OK", "data": { "limit": 1, "feed": "weekly_top_comments", "source_url": "https://www.metaculus.com/questions/?weekly_top_comments=true", "fetched_at": "2026-06-07T14:00:00Z", "questions": [ { "id": 43612, "title": "Tampa sulphur price in June 2026?", "comment_count": 16, "public_page_derived": true } ] } } ```
MCP tool metaculus_top_comments
Managed execution
Crawlora 将支持的公开 Metaculus 页面和信息流封装为受 API 密钥保护的端点,提供文档化的请求参数、规范化响应、Playground 示例以及基于额度的用量计费。
针对问题、预测、历史、元数据、期权、分类、锦标赛、项目和评论的端点专属请求处理
对支持的公开 Metaculus 页面提供规范化 JSON 响应
Docs 和 Playground 示例均由当前活跃的端点目录生成
以文档化的错误行为取代静默返回不可用的上游响应
基于文档化端点成本的额度计费
一个 Crawlora API 密钥即可调用 Metaculus 及相邻的预测市场端点
Build or buy
Use this comparison to decide whether to maintain scraping infrastructure internally or call a managed endpoint.
| Requirement | Building internally | Crawlora |
|---|---|---|
| 端点覆盖范围 | 需要为问题、预测、历史、元数据、分类、锦标赛和评论分别构建采集器。 | 通过一个 API 界面调用文档化的 Metaculus 端点。 |
| 架构规范化 | 需要自行规范化预测、期权、元数据和评论记录。 | 使用当前活跃目录生成的结构化 JSON 字段。 |
| 解析器维护 | 需要跟踪上游页面或信息流的变化,以及空结果的边缘情况。 | 使用 API 背后维护的端点专属采集逻辑。 |
| 开发者测试 | 需要自建示例、文档和测试控制台。 | 接入前先在 Crawlora Docs 和 Playground 中测试。 |
| 用量计费 | 需要自建计量系统和套餐限制。 | 使用基于额度的端点权重和 API 密钥用量跟踪。 |
Crawlora 并非 Metaculus,也不提供 Metaculus 官方 API 文档。Crawlora 为支持的公开 Metaculus 页面提供结构化网络公开数据提取端点。Metaculus 数据仅用于研究和监控工作流,不构成投资、预测、财务、法律或决策建议。客户需自行确保其使用符合适用法律、第三方权利、平台条款及 Crawlora 条款。
Related APIs
Connect this endpoint with adjacent Crawlora search, monitoring, docs, and pricing pages.
How to scrape Metaculus
Crawlora 的 Metaculus 端点是针对无需凭证的公开 Metaculus 页面发起的 GET 请求,遇到已认证的响应或 Cloudflare 验证页面时会直接失败,而不会返回部分数据。列表类:/metaculus/questions 支持 limit 和 topic 参数;/metaculus/category/{slug}/questions 用于获取某个分类;/metaculus/project/{slug}/questions 和 /metaculus/tournament/{slug}/questions 用于获取某个项目或锦标赛;/metaculus/comments-feed 和 /metaculus/top-comments 则返回近期及高赞公开评论所对应的问题。按问题维度:/metaculus/question/{id}、用于获取最新社区综合预测的 /metaculus/question/{id}/forecasts、支持 method(recency_weighted、unweighted 或 single_aggregation)和 max_points 参数的 /metaculus/question/{id}/forecast-history、面向多选题的 /metaculus/question/{id}/options,以及提供解析、量表和时间字段的 /metaculus/question/{id}/metadata。不构成投资、预测或决策建议。
对公开信息流调用 GET /metaculus/questions?limit=<n>&topic=<topic>,或使用 /metaculus/category/{slug}/questions(slug 如 artificial-intelligence、economy-business、elections)、/metaculus/project/{slug}/questions 或 /metaculus/tournament/{slug}/questions 获取指定集合。未知的 slug 会返回 404。
GET /metaculus/question/{id} 获取规范化的问题数据,GET /metaculus/question/{id}/forecasts 获取按方法划分的最新社区综合预测。对于多选题,/metaculus/question/{id}/options 会返回各选项标签及其最新数值。
GET /metaculus/question/{id}/forecast-history?method=recency_weighted&max_points=<n> 返回公开综合预测的历史数据点,这正是预测跟踪工具用于绘图的序列。/metaculus/question/{id}/metadata 补充解析、量表和时间字段,便于解读这些数据。
GET /metaculus/comments-feed 和 /metaculus/top-comments 返回过去一周内最新及最高赞公开评论所对应的问题,这是判断关注点转移方向的低成本信号。评论正文本身不会被返回。
FAQ
面向正在评估 Crawlora 是否适用于支持的公开 Metaculus 预测页面的开发者的解答。
是的。Crawlora 为支持的公开 Metaculus 页面提供 Metaculus 端点,并通过文档化的 API 路由返回结构化 JSON。
不是。Crawlora 并非 Metaculus,也不提供 Metaculus 官方 API 文档。如需官方平台指南,请参阅 Metaculus 自身的文档;如需 Crawlora 端点参数和响应架构,请查阅 Crawlora Docs。
当前目录包括公开问题、问题详情、预测值、预测历史、元数据、期权、分类问题列表、锦标赛问题列表、项目问题列表、评论动态记录,以及在支持范围内的高赞评论。
可以。在支持范围内使用问题预测和预测历史端点,然后按问题 ID 和时间戳存储快照,用于研究仪表盘或监控工作流。
不可以。Crawlora 仅返回公开研究数据,不构成投资、预测、财务、法律或决策建议,下游使用责任由客户自行承担。
调用 Crawlora 的 Metaculus 端点时,你使用的是以 x-api-key 请求头发送的 Crawlora API 密钥。这些 Crawlora 路由不需要单独的 Metaculus 密钥。
在当前目录支持的范围内是支持的。Metaculus 端点集合包括带 slug 和 limit 参数的分类、锦标赛和项目问题列表路由。
是的。Metaculus 端点返回规范化 JSON,并在可用时提供文档化的请求参数、响应架构、示例以及经过 Playground 测试的调用。
先通过 Crawlora 的 /metaculus/questions 端点或分类、项目、锦标赛路由列出问题,再对 /metaculus/question/{id}、/metaculus/question/{id}/forecasts 和 /metaculus/question/{id}/forecast-history 发起 GET 请求,获取当前综合预测及其历史。所有调用都是针对公开页面的 GET 请求。
recency_weighted、unweighted 和 single_aggregation,作为 method 参数传给 /metaculus/question/{id}/forecast-history 和 /metaculus/question/{id}/options 端点。
不会。comments-feed 和 top-comments 端点按评论顺序返回近期及高赞公开评论所对应的问题,但不包含上游的评论正文。
端点会直接失败:返回一个有文档说明的错误,而不是部分数据或已认证的数据,并且该次调用不会按成功计费。
不是。这些端点返回的是用于研究和跟踪的公开社区预测和元数据,不构成投资、预测或决策建议。
Guides
Read Crawlora guides and comparisons that use the Metaculus API.
在 Playground 中测试 Metaculus questions,在 Docs 中查看端点架构,并在价格页面比较基于额度的用量。