Skip to main content

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
The Posts endpoint is your main entry point for discovering and filtering forecasting questions.

List Posts

curl -X GET "https://www.metaculus.com/api/posts/?statuses=open&limit=20" \
  -H "Authorization: Token YOUR_TOKEN"
GET /api/posts/ Retrieve a paginated feed of posts with extensive filtering and sorting options.

Query Parameters

Status & Lifecycle Filters

statuses
array
Filter by post status. Multiple values allowed: open, closed, resolved, upcomingExample: ?statuses=open&statuses=closed
for_main_feed
boolean
Filter posts suitable for the main feed (excludes drafts, rejected, etc.)

Project & Category Filters

tournaments
array
Filter by tournament slug. Multiple values allowed.Example: ?tournaments=metaculus-cup&tournaments=aibq3
categories
array
Filter by category slug. Multiple values allowed.Example: ?categories=nuclear&categories=health-pandemics
topic
string
Filter by a single topic slug
community
string
Filter by community slug

Forecaster Filters

forecaster_id
integer
Show only posts where this user has submitted a forecast
not_forecaster_id
integer
Show only posts where this user has NOT submitted a forecast

Question Type Filters

forecast_type
array
Filter by question type: binary, multiple_choice, numeric, discrete, date, conditional, group_of_questions, notebookExample: ?forecast_type=binary&forecast_type=numeric

Timestamp Filters

open_time__gt
string (datetime)
Posts opened after this timestamp. Also supports: __gte, __lt, __lteExample: ?open_time__gt=2024-01-01
published_at__gt
string (datetime)
Posts published after this timestamp. Also supports: __gte, __lt, __lte
scheduled_resolve_time__gt
string (datetime)
Posts scheduled to resolve after this timestamp. Also supports: __gte, __lt, __lte

Pagination

limit
integer
default:"20"
Number of posts to return per page
offset
integer
default:"0"
Number of posts to skip

Data Inclusion

with_cp
boolean
default:"false"
Include community predictions. For groups, only returns CP for top 3 subquestions.
include_cp_history
boolean
default:"false"
Include full aggregation history. Significantly increases response size.
include_descriptions
boolean
default:"false"
Include description, fine_print, and resolution_criteria fields

Sorting

order_by
string
Sort posts by field. Prefix with - for descending order.Options:
  • published_at - Publication date
  • open_time - Opening date
  • scheduled_close_time - Close date
  • scheduled_resolve_time - Resolution date
  • vote_score - Community votes
  • comment_count - Number of comments
  • forecasts_count - Number of forecasts
  • hotness - Trending score (decay function based on engagement)
  • weekly_movement - Community prediction change
  • divergence - Spread of user predictions
  • score - User performance (requires forecaster_id)
Example: ?order_by=-hotness

Response

next
string
URL for the next page of results, or null if no more pages
previous
string
URL for the previous page of results, or null if on first page
results
array
Array of post objects

Post Object Structure

id
integer
Unique post identifier
title
string
Post title
short_title
string
Shortened title for URLs
slug
string
URL-friendly slug
author_id
integer
User ID of the post author
author_username
string
Username of the post author
created_at
string (datetime)
When the post was created
published_at
string (datetime)
When the post was published
open_time
string (datetime)
When forecasting opened
scheduled_close_time
string (datetime)
When forecasting is scheduled to close
scheduled_resolve_time
string (datetime)
When the question is scheduled to resolve
status
string
Current status: open, closed, resolved, upcoming, draft, pending, rejected
curation_status
string
Curation state: draft, pending, rejected, approved
comment_count
integer
Number of comments on this post
nr_forecasters
integer
Number of unique forecasters
forecasts_count
integer
Total number of forecasts submitted
user_permission
string
Current user’s permission level: forecaster or viewer
vote
object
Voting information
score
integer
Total vote score
user_vote
integer
Current user’s vote: 1 (upvote), -1 (downvote), or null
projects
object
Associated projects, categories, and tournaments
site_main
array
Main site projects
tournament
array
Associated tournaments
category
array
Associated categories
tag
array
Associated tags
default_project
object
The primary project for this post
question
object
Question data (if post contains a single question). See Questions endpoint for full schema.
conditional
object
Conditional question data (if post contains conditional questions)
condition
object
The parent condition question (binary)
condition_child
object
The conditional child question
question_yes
object
Question for “If Yes” scenario
question_no
object
Question for “If No” scenario
group_of_questions
object
Group of questions data (if post contains multiple questions)
id
integer
Group identifier
description
string
Group description
resolution_criteria
string
How questions in this group will be resolved
group_variable
string
The variable that changes across questions (e.g., “Date”, “Country”)
graph_type
string
Visualization type: multiple_choice_graph or fan_graph
questions
array
Array of question objects in this group
notebook
object
Notebook content (if post is a notebook)
markdown
string
The notebook content in markdown
image_url
string
Featured image URL

Get Post Details

curl -X GET "https://www.metaculus.com/api/posts/3530/" \
  -H "Authorization: Token YOUR_TOKEN"
GET /api/posts/{postId}/ Retrieve detailed information about a specific post, including all associated questions and community predictions.

Path Parameters

postId
integer
required
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)

Example Response

{
  "next": "https://www.metaculus.com/api/posts/?limit=1&offset=1",
  "previous": null,
  "results": [
    {
      "id": 3530,
      "title": "How many people will die as a result of COVID-19 before 2021?",
      "short_title": "COVID-19 Related Deaths before 2021",
      "slug": "covid-19-related-deaths-before-2021",
      "author_id": 101465,
      "author_username": "Jgalt",
      "created_at": "2020-01-25T04:09:23.208127Z",
      "published_at": "2020-01-27T00:00:00Z",
      "open_time": "2020-01-27T00:00:00Z",
      "scheduled_close_time": "2020-11-01T00:00:00Z",
      "scheduled_resolve_time": "2022-05-06T16:00:00Z",
      "status": "resolved",
      "curation_status": "approved",
      "comment_count": 270,
      "nr_forecasters": 546,
      "forecasts_count": 2760,
      "user_permission": "forecaster",
      "vote": {
        "score": 172,
        "user_vote": null
      },
      "question": {
        "id": 3530,
        "title": "How many people will die as a result of COVID-19 before 2021?",
        "type": "numeric",
        "status": "resolved",
        "resolution": "77289125.94957079",
        "scaling": {
          "range_min": 200.0,
          "range_max": 100000000.0,
          "zero_point": 0.0,
          "open_upper_bound": true,
          "open_lower_bound": true
        }
      },
      "projects": {
        "category": [
          {
            "id": 3685,
            "name": "Health & Pandemics",
            "slug": "health-pandemics"
          }
        ],
        "default_project": {
          "id": 144,
          "name": "Metaculus Community",
          "type": "site_main"
        }
      }
    }
  ]
}

Build docs developers (and LLMs) love