# /metaculus/questions/search

`POST /api/metaculus/questions/search`

Price: 20 credits

Search Metaculus questions by text, type, state and category

## How to use it

Search Metaculus forecasting questions. Leave query empty to browse, and narrow by question type, state and category. Each result carries the current community forecast.

## Parameters

- `access-token` (string, required)

## Request body

- `timeout` (integer) — Max scrapping execution timeout (in seconds) (default: 300; min: 20; max: 1500)
- `count` (integer, required) — Max number of questions to return (examples: 20; min: 1)
- `query` (string) — Search text (default: ""; examples: "AGI", "senate")
- `forecast_types` (array) — Question types to include (default: []; one of: "binary", "multiple_choice", "numeric", "discrete", "date", "group_of_questions", "conditional", "notebook")
- `statuses` (array) — Question states to include (default: []; one of: "upcoming", "open", "closed", "resolved")
- `category` (string, nullable) — Category alias (examples: "computing-and-math", "geopolitics"; pattern: ^[A-Za-z0-9_\-]+$)
- `order` (string) — Sort order (default: "hot"; one of: "hot", "newest", "recently_opened", "most_votes", "most_comments", "most_forecasts", "most_forecasters", "closing_soonest", "resolving_soonest", "weekly_movement")

## Response

### 200 — Successful Response

- `@type` (string) (default: "MetaculusPost")
- `id` (string, required)
- `name` (string, required)
- `short_name` (string, nullable)
- `alias` (string, nullable)
- `url` (string, required)
- `post_kind` (string, nullable)
- `author` (object, nullable)
  - `@type` (string) (default: "MetaculusUserRef")
  - `id` (string, required)
  - `alias` (string, nullable)
  - `url` (string, nullable)
  - `is_bot` (boolean, nullable)
  - `is_staff` (boolean, nullable)
  - `is_pro` (boolean, nullable)
- `coauthors` (array) (default: [])
  - `@type` (string) (default: "MetaculusUserRef")
  - `id` (string, required)
  - `alias` (string, nullable)
  - `url` (string, nullable)
  - `is_bot` (boolean, nullable)
  - `is_staff` (boolean, nullable)
  - `is_pro` (boolean, nullable)
- `status` (string, nullable)
- `curation_status` (string, nullable)
- `is_resolved` (boolean, nullable)
- `comment_count` (integer, nullable)
- `forecaster_count` (integer, nullable)
- `forecast_count` (integer, nullable)
- `vote_score` (number, nullable)
- `question` (object, nullable)
  - `@type` (string) (default: "MetaculusQuestion")
  - `id` (string, required)
  - `question` (string, required)
  - `short_name` (string, nullable)
  - `question_type` (string, nullable)
  - `status` (string, nullable)
  - `label` (string, nullable)
  - `unit` (string, nullable)
  - `group_variable` (string, nullable)
  - `group_rank` (integer, nullable)
  - `text` (string, nullable)
  - `resolution_criteria` (string, nullable)
  - `fine_print` (string, nullable)
  - `options` (array) (default: [])
  - `all_options_ever` (array) (default: [])
  - `options_history` (array) (default: [])
    - `@type` (string) (default: "MetaculusOptionsChange")
    - `changed_at` (integer, nullable)
    - `options` (array) (default: [])
  - `options_order` (string, nullable)
  - `value_format` (string, nullable)
  - `scaling` (object, nullable)
    - `@type` (string) (default: "MetaculusScaling")
    - `range_min` (number, nullable)
    - `range_max` (number, nullable)
    - `nominal_min` (number, nullable)
    - `nominal_max` (number, nullable)
    - `zero_point` (number, nullable)
    - `open_lower_bound` (boolean, nullable)
    - `open_upper_bound` (boolean, nullable)
    - `inbound_outcome_count` (integer, nullable)
    - `continuous_range` (array) (default: [])
  - `resolution` (string, nullable)
  - `include_bots_in_aggregates` (boolean, nullable)
  - `question_weight` (number, nullable)
  - `default_score_type` (string, nullable)
  - `default_aggregation_method` (string, nullable)
  - `average_coverage` (number, nullable)
  - `aggregations` (array) (default: [])
    - `@type` (string) (default: "MetaculusAggregation")
    - `method` (string, required)
    - `latest` (object, nullable)
      - `@type` (string) (default: "MetaculusForecastPoint")
      - `start_at` (integer, nullable)
      - `end_at` (integer, nullable)
      - `forecaster_count` (integer, nullable)
      - `centers` (array) (default: [])
      - `interval_lower_bounds` (array) (default: [])
      - `interval_upper_bounds` (array) (default: [])
      - `means` (array) (default: [])
      - `forecast_values` (array) (default: [])
      - `histogram` (array) (default: [])
    - `movement` (object, nullable)
      - `@type` (string) (default: "MetaculusMovement")
      - `direction` (string, nullable)
      - `movement` (number, nullable)
      - `divergence` (number, nullable)
      - `period_seconds` (number, nullable)
      - `option_index` (integer, nullable)
    - `score_data` (object, nullable)
      - `@type` (string) (default: "MetaculusScoreData")
      - `baseline_score` (number, nullable)
      - `peer_score` (number, nullable)
      - `spot_baseline_score` (number, nullable)
      - `spot_peer_score` (number, nullable)
      - `relative_legacy_score` (number, nullable)
      - `coverage` (number, nullable)
      - `weighted_coverage` (number, nullable)
    - `history` (array) (default: [])
  - `coherence_links` (array) (default: [])
    - `@type` (string) (default: "MetaculusCoherenceLink")
    - `id` (string, required)
    - `link_type` (string, nullable)
    - `question1_id` (string, nullable)
    - `question1_text` (string, nullable)
    - `question2_id` (string, nullable)
    - `question2_text` (string, nullable)
    - `direction` (integer, nullable)
    - `strength` (number, nullable)
    - `links_count` (integer, nullable)
    - `vote_count` (integer, nullable)
  - `created_at` (integer, nullable)
  - `open_at` (integer, nullable)
  - `cp_reveal_at` (integer, nullable)
  - `spot_scoring_at` (integer, nullable)
  - `scheduled_close_at` (integer, nullable)
  - `scheduled_resolve_at` (integer, nullable)
  - `actual_close_at` (integer, nullable)
  - `actual_resolve_at` (integer, nullable)
  - `resolution_set_at` (integer, nullable)
- `group` (object, nullable)
  - `@type` (string) (default: "MetaculusGroup")
  - `id` (string, required)
  - `text` (string, nullable)
  - `resolution_criteria` (string, nullable)
  - `fine_print` (string, nullable)
  - `group_variable` (string, nullable)
  - `graph_type` (string, nullable)
  - `subquestions_order` (string, nullable)
  - `questions` (array) (default: [])
    - `@type` (string) (default: "MetaculusQuestion")
    - `id` (string, required)
    - `question` (string, required)
    - `short_name` (string, nullable)
    - `question_type` (string, nullable)
    - `status` (string, nullable)
    - `label` (string, nullable)
    - `unit` (string, nullable)
    - `group_variable` (string, nullable)
    - `group_rank` (integer, nullable)
    - `text` (string, nullable)
    - `resolution_criteria` (string, nullable)
    - `fine_print` (string, nullable)
    - `options` (array) (default: [])
    - `all_options_ever` (array) (default: [])
    - `options_history` (array) (default: [])
    - `options_order` (string, nullable)
    - `value_format` (string, nullable)
    - `scaling` (object, nullable)
      - `@type` (string) (default: "MetaculusScaling")
      - `range_min` (number, nullable)
      - `range_max` (number, nullable)
      - `nominal_min` (number, nullable)
      - `nominal_max` (number, nullable)
      - `zero_point` (number, nullable)
      - `open_lower_bound` (boolean, nullable)
      - `open_upper_bound` (boolean, nullable)
      - `inbound_outcome_count` (integer, nullable)
      - `continuous_range` (array) (default: [])
    - `resolution` (string, nullable)
    - `include_bots_in_aggregates` (boolean, nullable)
    - `question_weight` (number, nullable)
    - `default_score_type` (string, nullable)
    - `default_aggregation_method` (string, nullable)
    - `average_coverage` (number, nullable)
    - `aggregations` (array) (default: [])
    - `coherence_links` (array) (default: [])
    - `created_at` (integer, nullable)
    - `open_at` (integer, nullable)
    - `cp_reveal_at` (integer, nullable)
    - `spot_scoring_at` (integer, nullable)
    - `scheduled_close_at` (integer, nullable)
    - `scheduled_resolve_at` (integer, nullable)
    - `actual_close_at` (integer, nullable)
    - `actual_resolve_at` (integer, nullable)
    - `resolution_set_at` (integer, nullable)
- `conditional` (object, nullable)
  - `@type` (string) (default: "MetaculusConditional")
  - `id` (string, required)
  - `condition` (object, nullable)
    - `@type` (string) (default: "MetaculusQuestion")
    - `id` (string, required)
    - `question` (string, required)
    - `short_name` (string, nullable)
    - `question_type` (string, nullable)
    - `status` (string, nullable)
    - `label` (string, nullable)
    - `unit` (string, nullable)
    - `group_variable` (string, nullable)
    - `group_rank` (integer, nullable)
    - `text` (string, nullable)
    - `resolution_criteria` (string, nullable)
    - `fine_print` (string, nullable)
    - `options` (array) (default: [])
    - `all_options_ever` (array) (default: [])
    - `options_history` (array) (default: [])
      - `@type` (string) (default: "MetaculusOptionsChange")
      - `changed_at` (integer, nullable)
      - `options` (array) (default: [])
    - `options_order` (string, nullable)
    - `value_format` (string, nullable)
    - `scaling` (object, nullable)
      - `@type` (string) (default: "MetaculusScaling")
      - `range_min` (number, nullable)
      - `range_max` (number, nullable)
      - `nominal_min` (number, nullable)
      - `nominal_max` (number, nullable)
      - `zero_point` (number, nullable)
      - `open_lower_bound` (boolean, nullable)
      - `open_upper_bound` (boolean, nullable)
      - `inbound_outcome_count` (integer, nullable)
      - `continuous_range` (array) (default: [])
    - `resolution` (string, nullable)
    - `include_bots_in_aggregates` (boolean, nullable)
    - `question_weight` (number, nullable)
    - `default_score_type` (string, nullable)
    - `default_aggregation_method` (string, nullable)
    - `average_coverage` (number, nullable)
    - `aggregations` (array) (default: [])
      - `@type` (string) (default: "MetaculusAggregation")
      - `method` (string, required)
      - `latest` (object, nullable) (see schema MetaculusForecastPoint)
      - `movement` (object, nullable) (see schema MetaculusMovement)
      - `score_data` (object, nullable) (see schema MetaculusScoreData)
      - `history` (array) (default: [])
    - `coherence_links` (array) (default: [])
      - `@type` (string) (default: "MetaculusCoherenceLink")
      - `id` (string, required)
      - `link_type` (string, nullable)
      - `question1_id` (string, nullable)
      - `question1_text` (string, nullable)
      - `question2_id` (string, nullable)
      - `question2_text` (string, nullable)
      - `direction` (integer, nullable)
      - `strength` (number, nullable)
      - `links_count` (integer, nullable)
      - `vote_count` (integer, nullable)
    - `created_at` (integer, nullable)
    - `open_at` (integer, nullable)
    - `cp_reveal_at` (integer, nullable)
    - `spot_scoring_at` (integer, nullable)
    - `scheduled_close_at` (integer, nullable)
    - `scheduled_resolve_at` (integer, nullable)
    - `actual_close_at` (integer, nullable)
    - `actual_resolve_at` (integer, nullable)
    - `resolution_set_at` (integer, nullable)
  - `condition_child` (object, nullable)
    - `@type` (string) (default: "MetaculusQuestion")
    - `id` (string, required)
    - `question` (string, required)
    - `short_name` (string, nullable)
    - `question_type` (string, nullable)
    - `status` (string, nullable)
    - `label` (string, nullable)
    - `unit` (string, nullable)
    - `group_variable` (string, nullable)
    - `group_rank` (integer, nullable)
    - `text` (string, nullable)
    - `resolution_criteria` (string, nullable)
    - `fine_print` (string, nullable)
    - `options` (array) (default: [])
    - `all_options_ever` (array) (default: [])
    - `options_history` (array) (default: [])
      - `@type` (string) (default: "MetaculusOptionsChange")
      - `changed_at` (integer, nullable)
      - `options` (array) (default: [])
    - `options_order` (string, nullable)
    - `value_format` (string, nullable)
    - `scaling` (object, nullable)
      - `@type` (string) (default: "MetaculusScaling")
      - `range_min` (number, nullable)
      - `range_max` (number, nullable)
      - `nominal_min` (number, nullable)
      - `nominal_max` (number, nullable)
      - `zero_point` (number, nullable)
      - `open_lower_bound` (boolean, nullable)
      - `open_upper_bound` (boolean, nullable)
      - `inbound_outcome_count` (integer, nullable)
      - `continuous_range` (array) (default: [])
    - `resolution` (string, nullable)
    - `include_bots_in_aggregates` (boolean, nullable)
    - `question_weight` (number, nullable)
    - `default_score_type` (string, nullable)
    - `default_aggregation_method` (string, nullable)
    - `average_coverage` (number, nullable)
    - `aggregations` (array) (default: [])
      - `@type` (string) (default: "MetaculusAggregation")
      - `method` (string, required)
      - `latest` (object, nullable) (see schema MetaculusForecastPoint)
      - `movement` (object, nullable) (see schema MetaculusMovement)
      - `score_data` (object, nullable) (see schema MetaculusScoreData)
      - `history` (array) (default: [])
    - `coherence_links` (array) (default: [])
      - `@type` (string) (default: "MetaculusCoherenceLink")
      - `id` (string, required)
      - `link_type` (string, nullable)
      - `question1_id` (string, nullable)
      - `question1_text` (string, nullable)
      - `question2_id` (string, nullable)
      - `question2_text` (string, nullable)
      - `direction` (integer, nullable)
      - `strength` (number, nullable)
      - `links_count` (integer, nullable)
      - `vote_count` (integer, nullable)
    - `created_at` (integer, nullable)
    - `open_at` (integer, nullable)
    - `cp_reveal_at` (integer, nullable)
    - `spot_scoring_at` (integer, nullable)
    - `scheduled_close_at` (integer, nullable)
    - `scheduled_resolve_at` (integer, nullable)
    - `actual_close_at` (integer, nullable)
    - `actual_resolve_at` (integer, nullable)
    - `resolution_set_at` (integer, nullable)
  - `question_yes` (object, nullable)
    - `@type` (string) (default: "MetaculusQuestion")
    - `id` (string, required)
    - `question` (string, required)
    - `short_name` (string, nullable)
    - `question_type` (string, nullable)
    - `status` (string, nullable)
    - `label` (string, nullable)
    - `unit` (string, nullable)
    - `group_variable` (string, nullable)
    - `group_rank` (integer, nullable)
    - `text` (string, nullable)
    - `resolution_criteria` (string, nullable)
    - `fine_print` (string, nullable)
    - `options` (array) (default: [])
    - `all_options_ever` (array) (default: [])
    - `options_history` (array) (default: [])
      - `@type` (string) (default: "MetaculusOptionsChange")
      - `changed_at` (integer, nullable)
      - `options` (array) (default: [])
    - `options_order` (string, nullable)
    - `value_format` (string, nullable)
    - `scaling` (object, nullable)
      - `@type` (string) (default: "MetaculusScaling")
      - `range_min` (number, nullable)
      - `range_max` (number, nullable)
      - `nominal_min` (number, nullable)
      - `nominal_max` (number, nullable)
      - `zero_point` (number, nullable)
      - `open_lower_bound` (boolean, nullable)
      - `open_upper_bound` (boolean, nullable)
      - `inbound_outcome_count` (integer, nullable)
      - `continuous_range` (array) (default: [])
    - `resolution` (string, nullable)
    - `include_bots_in_aggregates` (boolean, nullable)
    - `question_weight` (number, nullable)
    - `default_score_type` (string, nullable)
    - `default_aggregation_method` (string, nullable)
    - `average_coverage` (number, nullable)
    - `aggregations` (array) (default: [])
      - `@type` (string) (default: "MetaculusAggregation")
      - `method` (string, required)
      - `latest` (object, nullable) (see schema MetaculusForecastPoint)
      - `movement` (object, nullable) (see schema MetaculusMovement)
      - `score_data` (object, nullable) (see schema MetaculusScoreData)
      - `history` (array) (default: [])
    - `coherence_links` (array) (default: [])
      - `@type` (string) (default: "MetaculusCoherenceLink")
      - `id` (string, required)
      - `link_type` (string, nullable)
      - `question1_id` (string, nullable)
      - `question1_text` (string, nullable)
      - `question2_id` (string, nullable)
      - `question2_text` (string, nullable)
      - `direction` (integer, nullable)
      - `strength` (number, nullable)
      - `links_count` (integer, nullable)
      - `vote_count` (integer, nullable)
    - `created_at` (integer, nullable)
    - `open_at` (integer, nullable)
    - `cp_reveal_at` (integer, nullable)
    - `spot_scoring_at` (integer, nullable)
    - `scheduled_close_at` (integer, nullable)
    - `scheduled_resolve_at` (integer, nullable)
    - `actual_close_at` (integer, nullable)
    - `actual_resolve_at` (integer, nullable)
    - `resolution_set_at` (integer, nullable)
  - `question_no` (object, nullable)
    - `@type` (string) (default: "MetaculusQuestion")
    - `id` (string, required)
    - `question` (string, required)
    - `short_name` (string, nullable)
    - `question_type` (string, nullable)
    - `status` (string, nullable)
    - `label` (string, nullable)
    - `unit` (string, nullable)
    - `group_variable` (string, nullable)
    - `group_rank` (integer, nullable)
    - `text` (string, nullable)
    - `resolution_criteria` (string, nullable)
    - `fine_print` (string, nullable)
    - `options` (array) (default: [])
    - `all_options_ever` (array) (default: [])
    - `options_history` (array) (default: [])
      - `@type` (string) (default: "MetaculusOptionsChange")
      - `changed_at` (integer, nullable)
      - `options` (array) (default: [])
    - `options_order` (string, nullable)
    - `value_format` (string, nullable)
    - `scaling` (object, nullable)
      - `@type` (string) (default: "MetaculusScaling")
      - `range_min` (number, nullable)
      - `range_max` (number, nullable)
      - `nominal_min` (number, nullable)
      - `nominal_max` (number, nullable)
      - `zero_point` (number, nullable)
      - `open_lower_bound` (boolean, nullable)
      - `open_upper_bound` (boolean, nullable)
      - `inbound_outcome_count` (integer, nullable)
      - `continuous_range` (array) (default: [])
    - `resolution` (string, nullable)
    - `include_bots_in_aggregates` (boolean, nullable)
    - `question_weight` (number, nullable)
    - `default_score_type` (string, nullable)
    - `default_aggregation_method` (string, nullable)
    - `average_coverage` (number, nullable)
    - `aggregations` (array) (default: [])
      - `@type` (string) (default: "MetaculusAggregation")
      - `method` (string, required)
      - `latest` (object, nullable) (see schema MetaculusForecastPoint)
      - `movement` (object, nullable) (see schema MetaculusMovement)
      - `score_data` (object, nullable) (see schema MetaculusScoreData)
      - `history` (array) (default: [])
    - `coherence_links` (array) (default: [])
      - `@type` (string) (default: "MetaculusCoherenceLink")
      - `id` (string, required)
      - `link_type` (string, nullable)
      - `question1_id` (string, nullable)
      - `question1_text` (string, nullable)
      - `question2_id` (string, nullable)
      - `question2_text` (string, nullable)
      - `direction` (integer, nullable)
      - `strength` (number, nullable)
      - `links_count` (integer, nullable)
      - `vote_count` (integer, nullable)
    - `created_at` (integer, nullable)
    - `open_at` (integer, nullable)
    - `cp_reveal_at` (integer, nullable)
    - `spot_scoring_at` (integer, nullable)
    - `scheduled_close_at` (integer, nullable)
    - `scheduled_resolve_at` (integer, nullable)
    - `actual_close_at` (integer, nullable)
    - `actual_resolve_at` (integer, nullable)
    - `resolution_set_at` (integer, nullable)
- `notebook` (object, nullable)
  - `@type` (string) (default: "MetaculusNotebook")
  - `id` (string, required)
  - `text` (string, nullable)
  - `summary` (string, nullable)
  - `image` (string, nullable)
  - `created_at` (integer, nullable)
  - `edited_at` (integer, nullable)
- `key_factors` (array) (default: [])
  - `@type` (string) (default: "MetaculusKeyFactor")
  - `id` (string, required)
  - `kind` (string, nullable)
  - `text` (string, nullable)
  - `impact_direction` (integer, nullable)
  - `certainty` (number, nullable)
  - `news` (object, nullable)
    - `@type` (string) (default: "MetaculusKeyFactorNews")
    - `url` (string, nullable)
    - `headline` (string, nullable)
    - `image` (string, nullable)
    - `source` (string, nullable)
    - `article_id` (string, nullable)
    - `published_at` (integer, nullable)
  - `post_id` (string, nullable)
  - `question_id` (string, nullable)
  - `question_option` (string, nullable)
  - `comment_id` (string, nullable)
  - `author` (object, nullable)
    - `@type` (string) (default: "MetaculusUserRef")
    - `id` (string, required)
    - `alias` (string, nullable)
    - `url` (string, nullable)
    - `is_bot` (boolean, nullable)
    - `is_staff` (boolean, nullable)
    - `is_pro` (boolean, nullable)
  - `vote_score` (number, nullable)
  - `vote_count` (integer, nullable)
  - `votes` (array) (default: [])
    - `@type` (string) (default: "MetaculusVoteBucket")
    - `score` (number, nullable)
    - `count` (integer, nullable)
  - `freshness` (number, nullable)
  - `created_at` (integer, nullable)
- `categories` (array) (default: [])
  - `@type` (string) (default: "MetaculusProjectRef")
  - `id` (string, required)
  - `project_type` (string, nullable)
  - `name` (string, nullable)
  - `alias` (string, nullable)
  - `emoji` (string, nullable)
  - `image` (string, nullable)
  - `logo_image` (string, nullable)
  - `text` (string, nullable)
  - `prize_pool` (number, nullable)
  - `score_type` (string, nullable)
  - `visibility` (string, nullable)
  - `default_permission` (string, nullable)
  - `bot_leaderboard_status` (string, nullable)
  - `is_ongoing` (boolean, nullable)
  - `is_on_homepage` (boolean, nullable)
  - `display_order` (integer, nullable)
  - `followers_count` (integer, nullable)
  - `start_at` (integer, nullable)
  - `close_at` (integer, nullable)
  - `forecasting_end_at` (integer, nullable)
  - `created_at` (integer, nullable)
  - `edited_at` (integer, nullable)
- `topics` (array) (default: [])
  - `@type` (string) (default: "MetaculusProjectRef")
  - `id` (string, required)
  - `project_type` (string, nullable)
  - `name` (string, nullable)
  - `alias` (string, nullable)
  - `emoji` (string, nullable)
  - `image` (string, nullable)
  - `logo_image` (string, nullable)
  - `text` (string, nullable)
  - `prize_pool` (number, nullable)
  - `score_type` (string, nullable)
  - `visibility` (string, nullable)
  - `default_permission` (string, nullable)
  - `bot_leaderboard_status` (string, nullable)
  - `is_ongoing` (boolean, nullable)
  - `is_on_homepage` (boolean, nullable)
  - `display_order` (integer, nullable)
  - `followers_count` (integer, nullable)
  - `start_at` (integer, nullable)
  - `close_at` (integer, nullable)
  - `forecasting_end_at` (integer, nullable)
  - `created_at` (integer, nullable)
  - `edited_at` (integer, nullable)
- `tournaments` (array) (default: [])
  - `@type` (string) (default: "MetaculusProjectRef")
  - `id` (string, required)
  - `project_type` (string, nullable)
  - `name` (string, nullable)
  - `alias` (string, nullable)
  - `emoji` (string, nullable)
  - `image` (string, nullable)
  - `logo_image` (string, nullable)
  - `text` (string, nullable)
  - `prize_pool` (number, nullable)
  - `score_type` (string, nullable)
  - `visibility` (string, nullable)
  - `default_permission` (string, nullable)
  - `bot_leaderboard_status` (string, nullable)
  - `is_ongoing` (boolean, nullable)
  - `is_on_homepage` (boolean, nullable)
  - `display_order` (integer, nullable)
  - `followers_count` (integer, nullable)
  - `start_at` (integer, nullable)
  - `close_at` (integer, nullable)
  - `forecasting_end_at` (integer, nullable)
  - `created_at` (integer, nullable)
  - `edited_at` (integer, nullable)
- `question_series` (array) (default: [])
  - `@type` (string) (default: "MetaculusProjectRef")
  - `id` (string, required)
  - `project_type` (string, nullable)
  - `name` (string, nullable)
  - `alias` (string, nullable)
  - `emoji` (string, nullable)
  - `image` (string, nullable)
  - `logo_image` (string, nullable)
  - `text` (string, nullable)
  - `prize_pool` (number, nullable)
  - `score_type` (string, nullable)
  - `visibility` (string, nullable)
  - `default_permission` (string, nullable)
  - `bot_leaderboard_status` (string, nullable)
  - `is_ongoing` (boolean, nullable)
  - `is_on_homepage` (boolean, nullable)
  - `display_order` (integer, nullable)
  - `followers_count` (integer, nullable)
  - `start_at` (integer, nullable)
  - `close_at` (integer, nullable)
  - `forecasting_end_at` (integer, nullable)
  - `created_at` (integer, nullable)
  - `edited_at` (integer, nullable)
- `leaderboard_tags` (array) (default: [])
  - `@type` (string) (default: "MetaculusProjectRef")
  - `id` (string, required)
  - `project_type` (string, nullable)
  - `name` (string, nullable)
  - `alias` (string, nullable)
  - `emoji` (string, nullable)
  - `image` (string, nullable)
  - `logo_image` (string, nullable)
  - `text` (string, nullable)
  - `prize_pool` (number, nullable)
  - `score_type` (string, nullable)
  - `visibility` (string, nullable)
  - `default_permission` (string, nullable)
  - `bot_leaderboard_status` (string, nullable)
  - `is_ongoing` (boolean, nullable)
  - `is_on_homepage` (boolean, nullable)
  - `display_order` (integer, nullable)
  - `followers_count` (integer, nullable)
  - `start_at` (integer, nullable)
  - `close_at` (integer, nullable)
  - `forecasting_end_at` (integer, nullable)
  - `created_at` (integer, nullable)
  - `edited_at` (integer, nullable)
- `news_categories` (array) (default: [])
  - `@type` (string) (default: "MetaculusProjectRef")
  - `id` (string, required)
  - `project_type` (string, nullable)
  - `name` (string, nullable)
  - `alias` (string, nullable)
  - `emoji` (string, nullable)
  - `image` (string, nullable)
  - `logo_image` (string, nullable)
  - `text` (string, nullable)
  - `prize_pool` (number, nullable)
  - `score_type` (string, nullable)
  - `visibility` (string, nullable)
  - `default_permission` (string, nullable)
  - `bot_leaderboard_status` (string, nullable)
  - `is_ongoing` (boolean, nullable)
  - `is_on_homepage` (boolean, nullable)
  - `display_order` (integer, nullable)
  - `followers_count` (integer, nullable)
  - `start_at` (integer, nullable)
  - `close_at` (integer, nullable)
  - `forecasting_end_at` (integer, nullable)
  - `created_at` (integer, nullable)
  - `edited_at` (integer, nullable)
- `indexes` (array) (default: [])
  - `@type` (string) (default: "MetaculusProjectRef")
  - `id` (string, required)
  - `project_type` (string, nullable)
  - `name` (string, nullable)
  - `alias` (string, nullable)
  - `emoji` (string, nullable)
  - `image` (string, nullable)
  - `logo_image` (string, nullable)
  - `text` (string, nullable)
  - `prize_pool` (number, nullable)
  - `score_type` (string, nullable)
  - `visibility` (string, nullable)
  - `default_permission` (string, nullable)
  - `bot_leaderboard_status` (string, nullable)
  - `is_ongoing` (boolean, nullable)
  - `is_on_homepage` (boolean, nullable)
  - `display_order` (integer, nullable)
  - `followers_count` (integer, nullable)
  - `start_at` (integer, nullable)
  - `close_at` (integer, nullable)
  - `forecasting_end_at` (integer, nullable)
  - `created_at` (integer, nullable)
  - `edited_at` (integer, nullable)
- `communities` (array) (default: [])
  - `@type` (string) (default: "MetaculusProjectRef")
  - `id` (string, required)
  - `project_type` (string, nullable)
  - `name` (string, nullable)
  - `alias` (string, nullable)
  - `emoji` (string, nullable)
  - `image` (string, nullable)
  - `logo_image` (string, nullable)
  - `text` (string, nullable)
  - `prize_pool` (number, nullable)
  - `score_type` (string, nullable)
  - `visibility` (string, nullable)
  - `default_permission` (string, nullable)
  - `bot_leaderboard_status` (string, nullable)
  - `is_ongoing` (boolean, nullable)
  - `is_on_homepage` (boolean, nullable)
  - `display_order` (integer, nullable)
  - `followers_count` (integer, nullable)
  - `start_at` (integer, nullable)
  - `close_at` (integer, nullable)
  - `forecasting_end_at` (integer, nullable)
  - `created_at` (integer, nullable)
  - `edited_at` (integer, nullable)
- `default_project` (object, nullable)
  - `@type` (string) (default: "MetaculusProjectRef")
  - `id` (string, required)
  - `project_type` (string, nullable)
  - `name` (string, nullable)
  - `alias` (string, nullable)
  - `emoji` (string, nullable)
  - `image` (string, nullable)
  - `logo_image` (string, nullable)
  - `text` (string, nullable)
  - `prize_pool` (number, nullable)
  - `score_type` (string, nullable)
  - `visibility` (string, nullable)
  - `default_permission` (string, nullable)
  - `bot_leaderboard_status` (string, nullable)
  - `is_ongoing` (boolean, nullable)
  - `is_on_homepage` (boolean, nullable)
  - `display_order` (integer, nullable)
  - `followers_count` (integer, nullable)
  - `start_at` (integer, nullable)
  - `close_at` (integer, nullable)
  - `forecasting_end_at` (integer, nullable)
  - `created_at` (integer, nullable)
  - `edited_at` (integer, nullable)
- `created_at` (integer, nullable)
- `published_at` (integer, nullable)
- `edited_at` (integer, nullable)
- `curation_status_updated_at` (integer, nullable)
- `open_at` (integer, nullable)
- `scheduled_close_at` (integer, nullable)
- `scheduled_resolve_at` (integer, nullable)
- `actual_close_at` (integer, nullable)
- `actual_resolve_at` (integer, nullable)

## Errors

### 422 — Validation Error

The request body did not validate

What to do: Check the fields against this schema. A URN with the wrong prefix is the most common cause.

- `detail` (array)
  - `loc` (array, required)
  - `msg` (string, required)
  - `type` (string, required)
  - `input` (any)
  - `ctx` (object)

### 408

The request ran past its time limit

What to do: Raise `timeout` in the request body, up to the maximum this endpoint documents. Lowering `count` or turning off the `with_*` flags also helps, because less work finishes sooner.

### 412

The entity was not found, or a precondition failed

What to do: Retrying will not help: either the entity does not exist, or the input points at a different one.

### 429

Too many requests: a rate limit or a usage window is exhausted

What to do: When the response carries an X-Retry-After header, wait that many seconds and retry: the same number is in the body as `detail.retry_after`, and the limit clears once that window passes. The message in the body names the limit that was hit.

### 500

Something broke on our side

What to do: Retrying will not help. If it keeps happening, send us the X-Request-ID from the response headers.

### 529

Rate limit reached, or the endpoint is overloaded

What to do: Wait at least 30 seconds, then retry.

## Response envelope

Success: Array of objects (may be empty if no results)

Error: Error may coexist with partial results if it occurs mid-execution. Check X-Error header and status code.

Every response carries these headers:

- `X-Error` — Error message text (present only on error)
- `X-Request-ID` — Unique request identifier
- `X-Execution-Time` — Execution time in seconds
- `X-Result-Count` — How many records the body carries. 0 means an empty result, which is a normal answer and not by itself an error. A non-zero count can come back together with X-Error when the failure happened partway through — read this header and X-Error independently.
- `X-Total-Available-Results` — How many records exist for this query, when the endpoint can say. On a `dry_run` request this is the answer and the body is empty. It saturates: the endpoint's documented maximum means 'at least that many', any smaller number is exact.
- `X-Warning` — Present when the request body carried keys this endpoint does not document. They were ignored, so any filter you meant to apply through them did not apply. Check the spelling against this schema and retry.
- `X-Retry-After` — Seconds to wait before retrying. Present only on 429.

