---
title: "Retrieve posts feed"
method: GET
path: "/api/posts/"
tags: ["Feed"]
---

# Retrieve posts feed

`GET /api/posts/`

Retrieves a feed of posts with various filters.

## Query parameters

- `tournaments` string[]
- `statuses` string[]
- `forecaster_id` integer
- `with_cp` boolean
- `include_cp_history` boolean
- `include_descriptions` boolean
- `not_forecaster_id` integer
- `open_time__gt` string, date-time
- `published_at__gt` string, date-time
- `scheduled_resolve_time__gt` string, date-time
- `forecast_type` string[]
- `limit` integer
- `offset` integer
- `for_main_feed` boolean
- `categories` string[]
- `order_by` 'published_at' | 'open_time' | 'vote_score' | 'comment_count' | 'forecasts_count' | 'scheduled_close_time' | 'scheduled_resolve_time' | 'user_last_forecasts_date' | 'unread_comment_count' | 'weekly_movement' | 'divergence' | 'hotness' | 'score'

## Response `200`

A paginated list of posts

- object
  - `next` string, nullable
  - `previous` string, nullable
  - `results` Post[]
    - `id` integer
    - `title` string
    - `short_title` string
    - `slug` string
    - `author_id` integer
    - `author_username` string
    - `projects` object
      - `site_main` Project[]
        - `id` integer
        - `type` string
        - `name` string
        - `slug` string, nullable
        - `prize_pool` string
        - `start_date` string, date-time, nullable
        - `close_date` string, date-time, nullable
        - `html_metadata_json` string
        - `is_ongoing` boolean, nullable
        - `user_permission` string, nullable
        - `created_at` string, date-time
        - `edited_at` string, date-time
        - `default_permission` string
        - `visibility` 'normal' | 'not_in_main_feed' | 'unlisted'
      - `tournament` Project[]
        - `id` integer
        - `type` string
        - `name` string
        - `slug` string, nullable
        - `prize_pool` string
        - `start_date` string, date-time, nullable
        - `close_date` string, date-time, nullable
        - `html_metadata_json` string
        - `is_ongoing` boolean, nullable
        - `user_permission` string, nullable
        - `created_at` string, date-time
        - `edited_at` string, date-time
        - `default_permission` string
        - `visibility` 'normal' | 'not_in_main_feed' | 'unlisted'
      - `category` Category[]
        - `id` integer
        - `name` string
        - `slug` string
        - `description` string
      - `tag` Tag[]
        - `name` string
      - `question_series` Project[]
        - `id` integer
        - `type` string
        - `name` string
        - `slug` string, nullable
        - `prize_pool` string
        - `start_date` string, date-time, nullable
        - `close_date` string, date-time, nullable
        - `html_metadata_json` string
        - `is_ongoing` boolean, nullable
        - `user_permission` string, nullable
        - `created_at` string, date-time
        - `edited_at` string, date-time
        - `default_permission` string
        - `visibility` 'normal' | 'not_in_main_feed' | 'unlisted'
      - `default_project` Project
        - `id` integer
        - `type` string
        - `name` string
        - `slug` string, nullable
        - `prize_pool` string
        - `start_date` string, date-time, nullable
        - `close_date` string, date-time, nullable
        - `html_metadata_json` string
        - `is_ongoing` boolean, nullable
        - `user_permission` string, nullable
        - `created_at` string, date-time
        - `edited_at` string, date-time
        - `default_permission` string
        - `visibility` 'normal' | 'not_in_main_feed' | 'unlisted'
    - `created_at` string, date-time
    - `published_at` string, date-time, nullable
    - `open_time` string, date-time, nullable
    - `edited_at` string, date-time
    - `curation_status` 'draft' | 'pending' | 'rejected' | 'approved'
    - `comment_count` integer
    - `status` 'open' | 'upcoming' | 'closed' | 'resolved' | 'draft' | 'pending' | 'rejected' — Combination of curation status and post lifecycle statuses
    - `nr_forecasters` integer
    - `question` Question
      - `id` integer
      - `title` string
      - `description` string
      - `created_at` string, date-time
      - `open_time` string, date-time
      - `scheduled_resolve_time` string, date-time
      - `actual_resolve_time` string, date-time, nullable
      - `resolution_set_time` string, date-time, nullable
      - `scheduled_close_time` string, date-time
      - `actual_close_time` string, date-time
      - `type` 'binary' | 'multiple_choice' | 'numeric' | 'discrete' | 'date'
      - `options` string[] — List of options for multiple_choice questions
      - `all_options_ever` string[] — List of all options ever for multiple_choice questions
      - `options_history` array[] — List of [iso format time, options] pairs for multiple_choice questions
        - union[]
          - union
            - string — ISO 8601 timestamp when the options became active
            - string[] — Options list active from this timestamp onward
      - `status` 'upcoming' | 'open' | 'closed' | 'resolved'
      - `possibilities` union — WARNING: this is a deprecated field and may be removed without notice.
        - object
          - `type` 'binary'
        - object
          - `type` 'continuous'
          - `low` string
          - `high` string
          - `scale` object
            - `max` number, float
            - `min` number, float
            - `deriv_ratio` number, float
          - `format` string
      - `resolution` string, nullable
      - `open_upper_bound` boolean
      - `open_lower_bound` boolean
      - `inbound_outcome_count` integer, nullable
      - `resolution_criteria` string
      - `fine_print` string
      - `label` string, nullable
      - `unit` string
      - `scaling` QuestionScaling
        - `range_max` number, float, nullable — The lower boundary of the input range. If the question is Discrete, it will be 1/2 a bucket width below the nominal lowest inbound outcome.
        - `range_min` number, float, nullable — The upper boundary of the input range. If the question is Discrete, it will be 1/2 a bucket width above the nominal highest inbound outcome.
        - `zero_point` number, float, nullable — Only populated if the question has logarithmic scaling. See 'continuous_range' for exact locations where the CDF gets evaluated.
        - `open_upper_bound` boolean, nullable — Whether the upper bound is open.
        - `open_lower_bound` boolean, nullable — Whether the lower bound is open.
        - `inbound_outcome_count` integer, nullable — Total number of possible outcomes within the question's range (does not include out of bounds).
        - `continuous_range` string[], nullable — List of real-value locations corresponding to where the CDF is evaluated
    - `conditional` Conditional
      - `id` integer
      - `condition` Question
        - `id` integer
        - `title` string
        - `description` string
        - `created_at` string, date-time
        - `open_time` string, date-time
        - `scheduled_resolve_time` string, date-time
        - `actual_resolve_time` string, date-time, nullable
        - `resolution_set_time` string, date-time, nullable
        - `scheduled_close_time` string, date-time
        - `actual_close_time` string, date-time
        - `type` 'binary' | 'multiple_choice' | 'numeric' | 'discrete' | 'date'
        - `options` string[] — List of options for multiple_choice questions
        - `all_options_ever` string[] — List of all options ever for multiple_choice questions
        - `options_history` array[] — List of [iso format time, options] pairs for multiple_choice questions
          - union[]
            - union
              - …
        - `status` 'upcoming' | 'open' | 'closed' | 'resolved'
        - `possibilities` union — WARNING: this is a deprecated field and may be removed without notice.
          - object
            - `type` 'binary'
          - object
            - `type` 'continuous'
            - `low` string
            - `high` string
            - `scale` object
              - …
            - `format` string
        - `resolution` string, nullable
        - `open_upper_bound` boolean
        - `open_lower_bound` boolean
        - `inbound_outcome_count` integer, nullable
        - `resolution_criteria` string
        - `fine_print` string
        - `label` string, nullable
        - `unit` string
        - `scaling` QuestionScaling
          - `range_max` number, float, nullable — The lower boundary of the input range. If the question is Discrete, it will be 1/2 a bucket width below the nominal lowest inbound outcome.
          - `range_min` number, float, nullable — The upper boundary of the input range. If the question is Discrete, it will be 1/2 a bucket width above the nominal highest inbound outcome.
          - `zero_point` number, float, nullable — Only populated if the question has logarithmic scaling. See 'continuous_range' for exact locations where the CDF gets evaluated.
          - `open_upper_bound` boolean, nullable — Whether the upper bound is open.
          - `open_lower_bound` boolean, nullable — Whether the lower bound is open.
          - `inbound_outcome_count` integer, nullable — Total number of possible outcomes within the question's range (does not include out of bounds).
          - `continuous_range` string[], nullable — List of real-value locations corresponding to where the CDF is evaluated
      - `condition_child` Question
        - `id` integer
        - `title` string
        - `description` string
        - `created_at` string, date-time
        - `open_time` string, date-time
        - `scheduled_resolve_time` string, date-time
        - `actual_resolve_time` string, date-time, nullable
        - `resolution_set_time` string, date-time, nullable
        - `scheduled_close_time` string, date-time
        - `actual_close_time` string, date-time
        - `type` 'binary' | 'multiple_choice' | 'numeric' | 'discrete' | 'date'
        - `options` string[] — List of options for multiple_choice questions
        - `all_options_ever` string[] — List of all options ever for multiple_choice questions
        - `options_history` array[] — List of [iso format time, options] pairs for multiple_choice questions
          - union[]
            - union
              - …
        - `status` 'upcoming' | 'open' | 'closed' | 'resolved'
        - `possibilities` union — WARNING: this is a deprecated field and may be removed without notice.
          - object
            - `type` 'binary'
          - object
            - `type` 'continuous'
            - `low` string
            - `high` string
            - `scale` object
              - …
            - `format` string
        - `resolution` string, nullable
        - `open_upper_bound` boolean
        - `open_lower_bound` boolean
        - `inbound_outcome_count` integer, nullable
        - `resolution_criteria` string
        - `fine_print` string
        - `label` string, nullable
        - `unit` string
        - `scaling` QuestionScaling
          - `range_max` number, float, nullable — The lower boundary of the input range. If the question is Discrete, it will be 1/2 a bucket width below the nominal lowest inbound outcome.
          - `range_min` number, float, nullable — The upper boundary of the input range. If the question is Discrete, it will be 1/2 a bucket width above the nominal highest inbound outcome.
          - `zero_point` number, float, nullable — Only populated if the question has logarithmic scaling. See 'continuous_range' for exact locations where the CDF gets evaluated.
          - `open_upper_bound` boolean, nullable — Whether the upper bound is open.
          - `open_lower_bound` boolean, nullable — Whether the lower bound is open.
          - `inbound_outcome_count` integer, nullable — Total number of possible outcomes within the question's range (does not include out of bounds).
          - `continuous_range` string[], nullable — List of real-value locations corresponding to where the CDF is evaluated
      - `question_yes` Question
        - `id` integer
        - `title` string
        - `description` string
        - `created_at` string, date-time
        - `open_time` string, date-time
        - `scheduled_resolve_time` string, date-time
        - `actual_resolve_time` string, date-time, nullable
        - `resolution_set_time` string, date-time, nullable
        - `scheduled_close_time` string, date-time
        - `actual_close_time` string, date-time
        - `type` 'binary' | 'multiple_choice' | 'numeric' | 'discrete' | 'date'
        - `options` string[] — List of options for multiple_choice questions
        - `all_options_ever` string[] — List of all options ever for multiple_choice questions
        - `options_history` array[] — List of [iso format time, options] pairs for multiple_choice questions
          - union[]
            - union
              - …
        - `status` 'upcoming' | 'open' | 'closed' | 'resolved'
        - `possibilities` union — WARNING: this is a deprecated field and may be removed without notice.
          - object
            - `type` 'binary'
          - object
            - `type` 'continuous'
            - `low` string
            - `high` string
            - `scale` object
              - …
            - `format` string
        - `resolution` string, nullable
        - `open_upper_bound` boolean
        - `open_lower_bound` boolean
        - `inbound_outcome_count` integer, nullable
        - `resolution_criteria` string
        - `fine_print` string
        - `label` string, nullable
        - `unit` string
        - `scaling` QuestionScaling
          - `range_max` number, float, nullable — The lower boundary of the input range. If the question is Discrete, it will be 1/2 a bucket width below the nominal lowest inbound outcome.
          - `range_min` number, float, nullable — The upper boundary of the input range. If the question is Discrete, it will be 1/2 a bucket width above the nominal highest inbound outcome.
          - `zero_point` number, float, nullable — Only populated if the question has logarithmic scaling. See 'continuous_range' for exact locations where the CDF gets evaluated.
          - `open_upper_bound` boolean, nullable — Whether the upper bound is open.
          - `open_lower_bound` boolean, nullable — Whether the lower bound is open.
          - `inbound_outcome_count` integer, nullable — Total number of possible outcomes within the question's range (does not include out of bounds).
          - `continuous_range` string[], nullable — List of real-value locations corresponding to where the CDF is evaluated
      - `question_no` Question
        - `id` integer
        - `title` string
        - `description` string
        - `created_at` string, date-time
        - `open_time` string, date-time
        - `scheduled_resolve_time` string, date-time
        - `actual_resolve_time` string, date-time, nullable
        - `resolution_set_time` string, date-time, nullable
        - `scheduled_close_time` string, date-time
        - `actual_close_time` string, date-time
        - `type` 'binary' | 'multiple_choice' | 'numeric' | 'discrete' | 'date'
        - `options` string[] — List of options for multiple_choice questions
        - `all_options_ever` string[] — List of all options ever for multiple_choice questions
        - `options_history` array[] — List of [iso format time, options] pairs for multiple_choice questions
          - union[]
            - union
              - …
        - `status` 'upcoming' | 'open' | 'closed' | 'resolved'
        - `possibilities` union — WARNING: this is a deprecated field and may be removed without notice.
          - object
            - `type` 'binary'
          - object
            - `type` 'continuous'
            - `low` string
            - `high` string
            - `scale` object
              - …
            - `format` string
        - `resolution` string, nullable
        - `open_upper_bound` boolean
        - `open_lower_bound` boolean
        - `inbound_outcome_count` integer, nullable
        - `resolution_criteria` string
        - `fine_print` string
        - `label` string, nullable
        - `unit` string
        - `scaling` QuestionScaling
          - `range_max` number, float, nullable — The lower boundary of the input range. If the question is Discrete, it will be 1/2 a bucket width below the nominal lowest inbound outcome.
          - `range_min` number, float, nullable — The upper boundary of the input range. If the question is Discrete, it will be 1/2 a bucket width above the nominal highest inbound outcome.
          - `zero_point` number, float, nullable — Only populated if the question has logarithmic scaling. See 'continuous_range' for exact locations where the CDF gets evaluated.
          - `open_upper_bound` boolean, nullable — Whether the upper bound is open.
          - `open_lower_bound` boolean, nullable — Whether the lower bound is open.
          - `inbound_outcome_count` integer, nullable — Total number of possible outcomes within the question's range (does not include out of bounds).
          - `continuous_range` string[], nullable — List of real-value locations corresponding to where the CDF is evaluated
    - `group_of_questions` GroupOfQuestions
      - `id` integer
      - `description` string
      - `resolution_criteria` string
      - `fine_print` string
      - `group_variable` string
      - `graph_type` 'multiple_choice_graph' | 'fan_graph'
      - `questions` Question[]
        - `id` integer
        - `title` string
        - `description` string
        - `created_at` string, date-time
        - `open_time` string, date-time
        - `scheduled_resolve_time` string, date-time
        - `actual_resolve_time` string, date-time, nullable
        - `resolution_set_time` string, date-time, nullable
        - `scheduled_close_time` string, date-time
        - `actual_close_time` string, date-time
        - `type` 'binary' | 'multiple_choice' | 'numeric' | 'discrete' | 'date'
        - `options` string[] — List of options for multiple_choice questions
        - `all_options_ever` string[] — List of all options ever for multiple_choice questions
        - `options_history` array[] — List of [iso format time, options] pairs for multiple_choice questions
          - union[]
            - union
              - …
        - `status` 'upcoming' | 'open' | 'closed' | 'resolved'
        - `possibilities` union — WARNING: this is a deprecated field and may be removed without notice.
          - object
            - `type` 'binary'
          - object
            - `type` 'continuous'
            - `low` string
            - `high` string
            - `scale` object
              - …
            - `format` string
        - `resolution` string, nullable
        - `open_upper_bound` boolean
        - `open_lower_bound` boolean
        - `inbound_outcome_count` integer, nullable
        - `resolution_criteria` string
        - `fine_print` string
        - `label` string, nullable
        - `unit` string
        - `scaling` QuestionScaling
          - `range_max` number, float, nullable — The lower boundary of the input range. If the question is Discrete, it will be 1/2 a bucket width below the nominal lowest inbound outcome.
          - `range_min` number, float, nullable — The upper boundary of the input range. If the question is Discrete, it will be 1/2 a bucket width above the nominal highest inbound outcome.
          - `zero_point` number, float, nullable — Only populated if the question has logarithmic scaling. See 'continuous_range' for exact locations where the CDF gets evaluated.
          - `open_upper_bound` boolean, nullable — Whether the upper bound is open.
          - `open_lower_bound` boolean, nullable — Whether the lower bound is open.
          - `inbound_outcome_count` integer, nullable — Total number of possible outcomes within the question's range (does not include out of bounds).
          - `continuous_range` string[], nullable — List of real-value locations corresponding to where the CDF is evaluated
    - `user_permission` 'forecaster' | 'viewer'
    - `vote` Vote
      - `score` integer
      - `user_vote` string, nullable
    - `forecasts_count` integer

## Changes

- **2026-01-24** `68c13c142eb0` — 12 info
  - added the optional property `results/items/conditional/condition/all_options_ever` to the response with the `200` status
  - added the optional property `results/items/conditional/condition/options_history` to the response with the `200` status
  - added the optional property `results/items/conditional/condition_child/all_options_ever` to the response with the `200` status
  - added the optional property `results/items/conditional/condition_child/options_history` to the response with the `200` status
  - …8 more
- **2025-11-07** `2982c170720b` — 4 info
  - added the new optional `query` request parameter `categories`
  - added the new optional `query` request parameter `for_main_feed`
  - added the new optional `query` request parameter `limit`
  - added the new optional `query` request parameter `offset`
- **2025-09-01** `70f77582bda4` — 4 warning, 4 info
  - removed the optional property `results/items/projects/default_project/meta_description` from the response with the `200` status
  - removed the optional property `results/items/projects/question_series/items/meta_description` from the response with the `200` status
  - removed the optional property `results/items/projects/site_main/items/meta_description` from the response with the `200` status
  - removed the optional property `results/items/projects/tournament/items/meta_description` from the response with the `200` status
  - …4 more
- …earlier changes not shown

[Full history](https://skmtc.dev/metaculus/apis/metaculus-api/changes/api/posts/get.md)

---

[API](https://skmtc.dev/metaculus/apis/metaculus-api.md) · [All operations](https://skmtc.dev/metaculus/apis/metaculus-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/metaculus/metaculus-api/revisions/f1b9a08e1da2/schema)
