Metaculus API endpoint
Returns Metaculus question rows. The endpoint fails closed, returning an error instead of partial data, when the source responds with an authenticated-only response or a challenge page.
/metaculus/questionsQuery parameters:
limit: rows to return. Defaults to 10; maximum 25.topic: optional Metaculus topic slug, for example top-50.Notable response behavior:
data.questions contains public page-derived rows, not the authenticated Metaculus API payload.| Field | Filled in, of 20 checked | Values in the sample |
|---|---|---|
| id | 20 | |
| question_id | 20 | |
| title | 20 | |
| question_title | 20 | |
| slug | 20 | |
| url | 20 | metaculus.com |
| status | 20 | |
| question_type | 20 | |
| comment_count | 17 | 2 to 676, median 8 |
| forecaster_count | 20 | 2 to 1,781, median 41 |
| forecasts_count | 20 | 2 to 5,851, median 372 |
| latest_forecast_center | 20 | 0 to 1, median 0.34 |
| latest_forecast_lower | 20 | 0 to 1, median 0.25 |
| latest_forecast_upper | 20 | 0.01 to 1, median 0.5 |
| open_time | 20 | 2020-01-18 to 2026-10-08 |
| scheduled_close_time | 20 | 2026-10-16 to 2200-01-01 |
| scheduled_resolve_time | 20 | 2026-10-26 to 2200-01-01 |
| published_at | 20 | 2020-01-18 to 2026-10-07 |
| edited_at | 20 | 2026-07-19 to 2026-10-13 |
| categories | 19 | median 1 entry |
| projects | 20 | median 1 entry |
| public_page_derived | 20 | |
| unit | 6 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| limit | integer | No | Rows to return, default 10, max 25 | ||
| topic | string | No | Optional Metaculus topic slug | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/metaculus/questions?limit=10" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"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
}
]
}
}Request schema
No body schema
Response schema
#/definitions/metaculus.questionsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | metaculus.QuestionsResponse | No | ||||
| data.feed | string | No | questions | Feed the questions came from, for example `questions`. | ||
| data.fetched_at | string | No | 2026-06-07T14:00:00Z | Time the data was fetched, in UTC (RFC 3339). | ||
| data.limit | integer | No | 10 | Maximum number of questions requested. | ||
| data.questions | array | No | Questions in the feed, one item per question. QuestionRow record, 34 fields: categories, comment_count, edited_at, forecaster_count, forecasts_count, id, latest_forecast_center, latest_forecast_lower, latest_forecast_upper, open_time, projects, public_page_derived and 12 more. Described under Metaculus top comments feed API. | |||
| data.source_url | string | No | https://www.metaculus.com/questions/ | URL the data was read from. | ||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 500 | Internal Server Error | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/metaculus/questions?limit=10" \
-H "x-api-key: $CRAWLORA_API_KEY"