Overview
Posts are the primary content units in Metaculus. Each post can contain:- Individual Questions - Single binary, multiple choice, numeric, date, or discrete questions
- Groups of Questions - Multiple related questions displayed together
- Conditional Questions - “If Yes” / “If No” scenario pairs
- Notebooks - Long-form content without forecasting components
List Posts
GET /api/posts/
Retrieve a paginated feed of posts with extensive filtering and sorting options.
Query Parameters
Status & Lifecycle Filters
Filter by post status. Multiple values allowed:
open, closed, resolved, upcomingExample: ?statuses=open&statuses=closedFilter posts suitable for the main feed (excludes drafts, rejected, etc.)
Project & Category Filters
Filter by tournament slug. Multiple values allowed.Example:
?tournaments=metaculus-cup&tournaments=aibq3Filter by category slug. Multiple values allowed.Example:
?categories=nuclear&categories=health-pandemicsFilter by a single topic slug
Filter by community slug
Forecaster Filters
Show only posts where this user has submitted a forecast
Show only posts where this user has NOT submitted a forecast
Question Type Filters
Filter by question type:
binary, multiple_choice, numeric, discrete, date, conditional, group_of_questions, notebookExample: ?forecast_type=binary&forecast_type=numericTimestamp Filters
Posts opened after this timestamp. Also supports:
__gte, __lt, __lteExample: ?open_time__gt=2024-01-01Posts published after this timestamp. Also supports:
__gte, __lt, __ltePosts scheduled to resolve after this timestamp. Also supports:
__gte, __lt, __ltePagination
Number of posts to return per page
Number of posts to skip
Data Inclusion
Include community predictions. For groups, only returns CP for top 3 subquestions.
Include full aggregation history. Significantly increases response size.
Include description, fine_print, and resolution_criteria fields
Sorting
Sort posts by field. Prefix with
- for descending order.Options:published_at- Publication dateopen_time- Opening datescheduled_close_time- Close datescheduled_resolve_time- Resolution datevote_score- Community votescomment_count- Number of commentsforecasts_count- Number of forecastshotness- Trending score (decay function based on engagement)weekly_movement- Community prediction changedivergence- Spread of user predictionsscore- User performance (requiresforecaster_id)
?order_by=-hotnessResponse
URL for the next page of results, or null if no more pages
URL for the previous page of results, or null if on first page
Array of post objects
Post Object Structure
Unique post identifier
Post title
Shortened title for URLs
URL-friendly slug
User ID of the post author
Username of the post author
When the post was created
When the post was published
When forecasting opened
When forecasting is scheduled to close
When the question is scheduled to resolve
Current status:
open, closed, resolved, upcoming, draft, pending, rejectedCuration state:
draft, pending, rejected, approvedNumber of comments on this post
Number of unique forecasters
Total number of forecasts submitted
Current user’s permission level:
forecaster or viewerQuestion data (if post contains a single question). See Questions endpoint for full schema.
Group of questions data (if post contains multiple questions)
Group identifier
Group description
How questions in this group will be resolved
The variable that changes across questions (e.g., “Date”, “Country”)
Visualization type:
multiple_choice_graph or fan_graphArray of question objects in this group
Get Post Details
GET /api/posts/{postId}/
Retrieve detailed information about a specific post, including all associated questions and community predictions.
Path Parameters
The unique identifier of the post
Response
Returns a single post object with the same structure as the list endpoint, but with more complete data including:- Full community prediction history for all questions
- Complete descriptions and resolution criteria
- All subquestions in groups (not limited to top 3)
