# Metaculus

> Forecast on Metaculus: search questions and read the community's prediction, forecast yes/no, multiple-choice, numeric and date questions, withdraw forecasts, track your forecasts across a tournament, and comment.

App · 14 actions. Web page: https://docs.lodol.com/docs/integrations/metaculus

## Actions

### Delete comment

Delete one of your comments.

**Inputs**

- Comment ID (`comment_id`, text, required): The comment's id, as Post comment and List comments return it, or a link ending #comment-<id>.

**Outputs**

- `comment_id` (number)
- `deleted` (true/false)

**Example output**

```json
{
  "comment_id": 412233,
  "deleted": true
}
```

### Edit comment

Replace the text of one of your comments.

**Inputs**

- Comment ID (`comment_id`, text, required): The comment's id, as Post comment and List comments return it, or a link ending #comment-<id>.
- Comment (`text`, text, required): The comment, in Markdown.
- Show my forecast (`include_forecast`, true/false): Show your current forecast on the question with the comment. Only for a page holding one question.

**Outputs**

- `author_id` (number)
- `author_is_bot` (true/false)
- `author_is_staff` (true/false)
- `author_username` (text)
- `created_at` (text)
- `edited_at` (text)
- `id` (number)
- `included_forecast` (object): The forecast shown with the comment
- `is_private` (true/false)
- `parent_id` (number)
- `post_id` (number)
- `post_title` (text)
- `root_id` (number)
- `text` (text): Markdown
- `url` (text)
- `vote_score` (number)

**Example output**

```json
{
  "author_id": 117502,
  "author_is_bot": true,
  "author_is_staff": false,
  "author_username": "my-forecasting-bot",
  "created_at": "2026-10-14T02:00:22.580553Z",
  "edited_at": "2026-10-14T02:05:23.282749Z",
  "id": 412233,
  "included_forecast": {
    "probabilities": null,
    "probability_yes": 0.63,
    "question_type": "binary",
    "start_time": "2026-10-14T02:00:11.913740Z"
  },
  "is_private": true,
  "parent_id": null,
  "post_id": 3479,
  "post_title": "Will the first weakly general AI be announced before 2030?",
  "root_id": null,
  "text": "Base rate from the last ten launches puts this near 60%.",
  "url": "https://www.metaculus.com/questions/3479/#comment-412233",
  "vote_score": 0
}
```

### Forecast a multiple-choice question

Forecast how likely each option of a multiple-choice question is, replacing your current forecast. Every option needs a chance, and they add up to 100%.

**Inputs**

- Question (`question`, text, required): The question's id or link: the number in metaculus.com/questions/<id>/, or the whole link. Search questions returns it as post_id.
- Probabilities (%) (`probabilities`, object, required): Each option's chance as a percent, adding up to 100: an object such as {"Democratic": 55, "Republican": 44, "Other": 1}, text such as 'Democratic: 55, Republican: 44, Other: 1', or a list in the options' order. Each option needs 0.1 to 99.9.
- Subquestion (`subquestion`, text): Only for a page holding several questions. In a group, the row's label (such as 2030) or its question_id; in a conditional, 'yes' for the question if the condition resolves Yes or 'no'. A link copied from a group row picks it already.
- Withdraw automatically at (`withdraw_at`, date and time): Withdraw the forecast on its own at this time. Leave empty for it to stand until you change it or the question closes.

**Outputs**

- `forecast_at` (text)
- `post_id` (number)
- `probabilities` (object): Each option's chance sent, 0 to 1
- `question_id` (number)
- `question_type` (text)
- `title` (text)
- `url` (text)
- `withdraws_at` (text): When it will be withdrawn automatically

**Example output**

```json
{
  "forecast_at": "2026-10-14T02:00:12.209983Z",
  "post_id": 3479,
  "probabilities": {
    "Democratic": 0.55,
    "Other": 0.01,
    "Republican": 0.44
  },
  "question_id": 3479,
  "question_type": "multiple_choice",
  "title": "Will the first weakly general AI be announced before 2030?",
  "url": "https://www.metaculus.com/questions/3479/date-weakly-general-ai-is-publicly-known/",
  "withdraws_at": null
}
```

### Forecast a numeric or date question

Forecast a numeric, discrete or date question from your 25th percentile, median and 75th percentile, as on Metaculus's own table input, replacing your current forecast. The distribution is built on the question's own scale and standardised the way Metaculus documents, so it is accepted. A full CDF can be sent instead.

**Inputs**

- Question (`question`, text, required): The question's id or link: the number in metaculus.com/questions/<id>/, or the whole link. Search questions returns it as post_id.
- Subquestion (`subquestion`, text): Only for a page holding several questions. In a group, the row's label (such as 2030) or its question_id; in a conditional, 'yes' for the question if the condition resolves Yes or 'no'. A link copied from a group row picks it already.
- 25th percentile (`percentile_25`, text): The value you think there is a 25% chance of landing below, in the question's units. For a date question, a date such as 2027-06-30.
- Median (`median`, text): The value you think is as likely to be beaten as not. Give at least one of the three percentiles.
- 75th percentile (`percentile_75`, text): The value you think there is a 75% chance of landing below.
- Chance below the range (%) (`chance_below`, number): Only when the range is open at the bottom: the percent chance the outcome falls below it. Defaults to 0 (then at least 0.1% is kept there). From 0 to 100.
- Chance above the range (%) (`chance_above`, number): Only when the range is open at the top: the percent chance the outcome falls above it. Defaults to 0 (then at least 0.1% is kept there). From 0 to 100.
- CDF (advanced) (`cdf`, list): Instead of the percentiles: a full cumulative distribution from another tool, 201 values from 0 to 1 (the question's inbound_outcome_count + 1), sent as it is.
- Withdraw automatically at (`withdraw_at`, date and time): Withdraw the forecast on its own at this time. Leave empty for it to stand until you change it or the question closes.

**Outputs**

- `cdf` (list): The cumulative distribution sent
- `chance_above_range` (number): 0 to 1
- `chance_below_range` (number): 0 to 1
- `forecast_at` (text)
- `lower_quartile` (number): Its 25th percentile
- `median` (number): The median of the distribution sent
- `post_id` (number)
- `question_id` (number)
- `question_type` (text)
- `title` (text)
- `upper_quartile` (number): Its 75th percentile
- `url` (text)
- `withdraws_at` (text): When it will be withdrawn automatically

**Example output**

```json
{
  "cdf": [
    0.02076,
    0.0253579129,
    0.0299558258,
    0.9002
  ],
  "chance_above_range": 0.0998,
  "chance_below_range": 0.02076,
  "forecast_at": "2026-10-14T02:00:12.209983Z",
  "lower_quartile": "2030-12-30T23:06:46Z",
  "median": "2033-07-01T12:59:07Z",
  "post_id": 3479,
  "question_id": 3479,
  "question_type": "date",
  "title": "Will the first weakly general AI be announced before 2030?",
  "upper_quartile": "2038-03-12T09:16:09Z",
  "url": "https://www.metaculus.com/questions/3479/date-weakly-general-ai-is-publicly-known/",
  "withdraws_at": null
}
```

### Forecast a yes/no question

Forecast the chance a yes/no question resolves Yes, replacing your current forecast. Works on a row of a group or a branch of a conditional too.

**Inputs**

- Question (`question`, text, required): The question's id or link: the number in metaculus.com/questions/<id>/, or the whole link. Search questions returns it as post_id.
- Probability of Yes (%) (`probability`, number, required): A percent from 0.1 to 99.9: 63 for 63%. Metaculus never takes 0 or 100. From 0.1 to 99.9.
- Subquestion (`subquestion`, text): Only for a page holding several questions. In a group, the row's label (such as 2030) or its question_id; in a conditional, 'yes' for the question if the condition resolves Yes or 'no'. A link copied from a group row picks it already.
- Withdraw automatically at (`withdraw_at`, date and time): Withdraw the forecast on its own at this time. Leave empty for it to stand until you change it or the question closes.

**Outputs**

- `forecast_at` (text)
- `post_id` (number)
- `probability_yes` (number): The chance of Yes sent, 0 to 1
- `question_id` (number)
- `question_type` (text)
- `title` (text)
- `url` (text)
- `withdraws_at` (text): When it will be withdrawn automatically

**Example output**

```json
{
  "forecast_at": "2026-10-14T02:00:12.209983Z",
  "post_id": 3479,
  "probability_yes": 0.63,
  "question_id": 3479,
  "question_type": "binary",
  "title": "Will the first weakly general AI be announced before 2030?",
  "url": "https://www.metaculus.com/questions/3479/date-weakly-general-ai-is-publicly-known/",
  "withdraws_at": null
}
```

### Get my account

Read the account the API token belongs to: its id, username, whether it is a bot, and whether it may forecast through the API yet.

**Inputs**: None.

**Outputs**

- `api_access_tier` (text): restricted, benchmarking or unrestricted
- `api_forecasting_access` (text): enabled, pending or disabled: whether this account may forecast through the API
- `bio` (text)
- `date_joined` (text)
- `id` (number)
- `is_bot` (true/false)
- `profile_url` (text)
- `username` (text)
- `website` (text)

**Example output**

```json
{
  "api_access_tier": "restricted",
  "api_forecasting_access": "enabled",
  "bio": null,
  "date_joined": "2026-09-02T14:11:05.120931Z",
  "id": 117502,
  "is_bot": true,
  "profile_url": "https://www.metaculus.com/accounts/profile/117502/",
  "username": "my-forecasting-bot",
  "website": null
}
```

### Get question

Read one question in full: its background, resolution criteria and fine print, options or range, status and resolution, the community's prediction where your access shows it, your latest forecast, and each subquestion of a group or conditional.

**Inputs**

- Question (`question`, text, required): The question's id or link: the number in metaculus.com/questions/<id>/, or the whole link. Search questions returns it as post_id.

**Outputs**

- `actual_close_time` (text)
- `actual_resolve_time` (text)
- `author_username` (text)
- `categories` (list): Slugs of its categories
- `comments` (number)
- `community_prediction` (object): Null where your API access does not show it
- `description` (text)
- `fine_print` (text)
- `forecasters` (number)
- `forecasts` (number)
- `my_forecast` (object): Your latest forecast
- `open_lower_bound` (true/false): Whether outcomes below the range can happen
- `open_time` (text)
- `open_upper_bound` (true/false): Whether outcomes above the range can happen
- `options` (list): Multiple choice: the options
- `post_id` (number): The id in the question's link, which every action takes
- `published_at` (text)
- `question_id` (number): The question's own id, which forecasts and List my forecasts use
- `range_max` (number): Numeric and date: the high end of the range
- `range_min` (number): Numeric and date: the low end of the range
- `resolution` (text): yes, no, an option, a number, a date, ambiguous or annulled
- `resolution_criteria` (text)
- `resolved` (true/false)
- `scheduled_close_time` (text)
- `scheduled_resolve_time` (text)
- `status` (text): open, upcoming, closed or resolved
- `subquestions` (list): A group's rows, or a conditional's four questions; empty otherwise
- `title` (text)
- `tournaments` (list): Slugs of its tournaments and series
- `type` (text): binary, multiple_choice, numeric, discrete, date, group_of_questions or conditional
- `unit` (text)
- `url` (text)
- `votes` (number)

**Example output**

```json
{
  "actual_close_time": null,
  "actual_resolve_time": null,
  "author_username": "Matthew_Barnett",
  "categories": [
    "computing-and-math"
  ],
  "comments": 977,
  "community_prediction": {
    "end_time": null,
    "forecasters": 1784,
    "lower_quartile": null,
    "median": null,
    "probabilities": null,
    "probability_yes": 0.52,
    "start_time": "2026-10-14T02:21:08.882752Z",
    "upper_quartile": null
  },
  "description": "Resolves Yes if a system passing all four tests is announced.",
  "fine_print": null,
  "forecasters": 1784,
  "forecasts": 4521,
  "my_forecast": {
    "active": true,
    "end_time": null,
    "forecasters": null,
    "lower_quartile": null,
    "median": null,
    "probabilities": null,
    "probability_yes": 0.63,
    "start_time": "2026-10-14T02:20:11.913740Z",
    "upper_quartile": null
  },
  "open_lower_bound": null,
  "open_time": "2020-01-20T05:00:00Z",
  "open_upper_bound": null,
  "options": null,
  "post_id": 3479,
  "published_at": "2020-01-20T05:00:00Z",
  "question_id": 3479,
  "range_max": null,
  "range_min": null,
  "resolution": null,
  "resolution_criteria": "See the four tests in the background.",
  "resolved": false,
  "scheduled_close_time": "2050-01-01T00:00:00Z",
  "scheduled_resolve_time": "2050-01-01T00:00:00Z",
  "status": "open",
  "subquestions": [],
  "title": "When will the first weakly general AI system be devised, tested, and publicly announced?",
  "tournaments": [
    "aibq4"
  ],
  "type": "binary",
  "unit": null,
  "url": "https://www.metaculus.com/questions/3479/date-weakly-general-ai-is-publicly-known/",
  "votes": 168
}
```

### Get tournament

Read one tournament: its description, prize pool, dates, how many questions and forecasters it has, and whether you have taken part.

**Inputs**

- Tournament (`tournament`, text, required): The tournament's slug (the last part of its link, such as 'aibq4'), id or link. List tournaments returns slugs.

**Outputs**

- `all_questions_closed` (true/false)
- `all_questions_resolved` (true/false)
- `close_date` (text)
- `description` (text)
- `forecasters` (number)
- `forecasting_end_date` (text)
- `forecasts` (number)
- `has_participated` (true/false): Whether you have forecast in it
- `id` (number)
- `is_ongoing` (true/false)
- `my_permission` (text): viewer, forecaster, curator or admin
- `name` (text)
- `prize_pool` (text): In US dollars
- `questions` (number)
- `slug` (text)
- `start_date` (text)
- `type` (text): tournament, question_series or index
- `url` (text)

**Example output**

```json
{
  "all_questions_closed": false,
  "all_questions_resolved": false,
  "close_date": "2027-01-15T00:00:00Z",
  "description": "Bots forecast on hundreds of questions.",
  "forecasters": 117,
  "forecasting_end_date": "2027-01-01T00:00:00Z",
  "forecasts": 61377,
  "has_participated": true,
  "id": 32813,
  "is_ongoing": true,
  "my_permission": "forecaster",
  "name": "Fall 2026 AI Forecasting Benchmark",
  "prize_pool": "50000.00",
  "questions": 402,
  "slug": "aib-fall-2026",
  "start_date": "2026-09-01T00:00:00Z",
  "type": "tournament",
  "url": "https://www.metaculus.com/tournament/aib-fall-2026/"
}
```

### List comments

List comments on a question or across Metaculus, newest first. Accounts with the standard (restricted) API access may list their own comments and Metaculus staff's.

**Inputs**

- Question (`question`, text): Only comments on this question: its id or link.
- Whose comments (`author`, text): Defaults to yours. Anyone's needs API access beyond the standard tier. One of: `mine`, `staff` (Metaculus staff), `mine_and_staff` (Mine and Metaculus staff), `anyone` (Anyone (needs wider API access)). Default: `mine`.
- Private comments only (`private`, true/false): List your private comments instead of public ones. Default: `false`.
- Sort (`sort`, text): Defaults to newest first. One of: `newest` (Newest first), `oldest` (Oldest first), `most_votes` (Most upvoted). Default: `newest`.
- Limit (`limit`, number): How many to return, up to 100. Defaults to 20. From 1 to 100.
- Offset (`offset`, number): How many to skip, for the next page: the next_offset of the last. At least 0.

**Outputs**

- `comments` (list)
- `count` (number)
- `has_more` (true/false): Whether another page may follow
- `next_offset` (number)

**Example output**

```json
{
  "comments": [
    {
      "author_id": 117502,
      "author_is_bot": true,
      "author_is_staff": false,
      "author_username": "my-forecasting-bot",
      "created_at": "2026-10-14T02:00:22.580553Z",
      "edited_at": null,
      "id": 412233,
      "included_forecast": {
        "probabilities": null,
        "probability_yes": 0.63,
        "question_type": "binary",
        "start_time": "2026-10-14T02:00:11.913740Z"
      },
      "is_private": true,
      "parent_id": null,
      "post_id": 3479,
      "post_title": "Will the first weakly general AI be announced before 2030?",
      "root_id": null,
      "text": "Base rate from the last ten launches puts this near 60%.",
      "url": "https://www.metaculus.com/questions/3479/#comment-412233",
      "vote_score": 0
    }
  ],
  "count": 1,
  "has_more": false,
  "next_offset": null
}
```

### List my forecasts

For every question in a tournament, or for given questions: how many forecasts you have made, when the latest was, and whether it still stands. Questions you never forecast are listed too.

**Inputs**

- Tournament (`tournament`, text): Every question in this tournament: its slug, id or link. Give this or Question IDs.
- Question IDs (`question_ids`, list): Question ids (the question_id that Search questions and Get question return, not the id in the link), up to 500.

**Outputs**

- `active_count` (number)
- `count` (number)
- `never_forecast_count` (number)
- `questions` (list)

**Example output**

```json
{
  "active_count": 1,
  "count": 2,
  "never_forecast_count": 1,
  "questions": [
    {
      "active": true,
      "forecast_count": 3,
      "last_forecast_at": "2026-10-14T02:00:11.913740Z",
      "latest_values": [
        0.37,
        0.63
      ],
      "question_id": 10880,
      "withdraws_at": null
    },
    {
      "active": false,
      "forecast_count": 0,
      "last_forecast_at": null,
      "latest_values": null,
      "question_id": 10923,
      "withdraws_at": null
    }
  ]
}
```

### List tournaments

List Metaculus's tournaments and question series, most questions first, with their prize pools and dates.

**Inputs**

- Search (`search`, text): Only tournaments with all these words in their name or slug.
- Ongoing only (`ongoing_only`, true/false): Leave out finished tournaments. On by default. Default: `true`.

**Outputs**

- `count` (number)
- `tournaments` (list)

**Example output**

```json
{
  "count": 1,
  "tournaments": [
    {
      "all_questions_closed": false,
      "all_questions_resolved": false,
      "close_date": "2027-01-15T00:00:00Z",
      "forecasters": 117,
      "forecasting_end_date": "2027-01-01T00:00:00Z",
      "forecasts": 61377,
      "id": 32813,
      "is_ongoing": true,
      "my_permission": "forecaster",
      "name": "Fall 2026 AI Forecasting Benchmark",
      "prize_pool": "50000.00",
      "questions": 402,
      "slug": "aib-fall-2026",
      "start_date": "2026-09-01T00:00:00Z",
      "type": "tournament",
      "url": "https://www.metaculus.com/tournament/aib-fall-2026/"
    }
  ]
}
```

### Post comment

Comment on a question, or reply to a comment, in Markdown. A private comment is seen only by you, as a note to yourself; bot accounts post only private ones unless Metaculus allows more.

**Inputs**

- Question (`question`, text, required): The question's id or link: the number in metaculus.com/questions/<id>/, or the whole link. Search questions returns it as post_id.
- Comment (`text`, text, required): The comment, in Markdown.
- Private (`private`, true/false): Only you can see it. Replies take their thread's privacy. Default: `false`.
- Show my forecast (`include_forecast`, true/false): Show your current forecast on the question with the comment. Only for a page holding one question.
- Reply to comment ID (`reply_to_comment_id`, text): Reply to this comment on the same question.

**Outputs**

- `author_id` (number)
- `author_is_bot` (true/false)
- `author_is_staff` (true/false)
- `author_username` (text)
- `created_at` (text)
- `edited_at` (text)
- `id` (number)
- `included_forecast` (object): The forecast shown with the comment
- `is_private` (true/false)
- `parent_id` (number)
- `post_id` (number)
- `post_title` (text)
- `root_id` (number)
- `text` (text): Markdown
- `url` (text)
- `vote_score` (number)

**Example output**

```json
{
  "author_id": 117502,
  "author_is_bot": true,
  "author_is_staff": false,
  "author_username": "my-forecasting-bot",
  "created_at": "2026-10-14T02:00:22.580553Z",
  "edited_at": null,
  "id": 412233,
  "included_forecast": {
    "probabilities": null,
    "probability_yes": 0.63,
    "question_type": "binary",
    "start_time": "2026-10-14T02:00:11.913740Z"
  },
  "is_private": true,
  "parent_id": null,
  "post_id": 3479,
  "post_title": "Will the first weakly general AI be announced before 2030?",
  "root_id": null,
  "text": "Base rate from the last ten launches puts this near 60%.",
  "url": "https://www.metaculus.com/questions/3479/#comment-412233",
  "vote_score": 0
}
```

### Search questions

Find questions by words and filter them by tournament, category, kind, status and whether you have forecast them, sorted like Metaculus's question feed. Each comes with the community's prediction where your access shows it, and your own latest forecast.

**Inputs**

- Search (`search`, text): Words to find. Leave empty to browse.
- Tournament (`tournament`, text): Only questions in this tournament or series: its slug (the last part of its link, such as 'aibq4'), id or link.
- Category (`category`, text): Only questions in this category, by its slug: the categories= part of a category's link, such as 'computing-and-math' or 'health-pandemics'.
- Question type (`question_type`, text): Defaults to any question (not notebooks). One of: `any` (Any question), `binary` (Yes/no), `multiple_choice` (Multiple choice), `numeric`, `discrete`, `date`, `group_of_questions` (Group of questions), `conditional` (Conditional pair). Default: `any`.
- Status (`status`, text): Defaults to any. One of: `any`, `open` (Open for forecasting), `upcoming` (Upcoming (not open yet)), `closed` (Closed, not resolved yet), `resolved`. Default: `any`.
- My forecasts (`my_forecasts`, text): Only questions you have forecast, whose forecast stands or was withdrawn, or that you have never forecast. Defaults to any. One of: `any`, `forecast` (Questions I have forecast), `standing` (Questions where my forecast stands), `withdrawn` (Questions where I withdrew my forecast), `not_forecast` (Questions I have never forecast). Default: `any`.
- Sort (`sort`, text): Defaults to best match when searching, newest otherwise. A sort other than best match drops weak search matches. One of: `best_match` (Best match (newest when not searching)), `newest`, `recently_opened` (Recently opened), `closing_soon` (Closing soonest), `resolving_soon` (Resolving soonest), `most_forecasters` (Most forecasters), `most_forecasts` (Most forecasts), `most_comments` (Most comments), `most_votes` (Most upvoted), `hot`, `biggest_movement` (Biggest movement this week). Default: `best_match`.
- Include descriptions (`include_descriptions`, true/false): Also return each question's background, resolution criteria and fine print. Default: `false`.
- Limit (`limit`, number): How many to return, up to 100. Defaults to 20. From 1 to 100.
- Offset (`offset`, number): How many to skip, for the next page: the next_offset of the last. At least 0.

**Outputs**

- `count` (number)
- `has_more` (true/false): Whether another page may follow
- `next_offset` (number): The Offset of the next page
- `questions` (list): The matching questions

**Example output**

```json
{
  "count": 2,
  "has_more": false,
  "next_offset": null,
  "questions": [
    {
      "actual_close_time": null,
      "actual_resolve_time": null,
      "author_username": "Matthew_Barnett",
      "categories": [
        "computing-and-math"
      ],
      "comments": 977,
      "community_prediction": {
        "end_time": null,
        "forecasters": 1784,
        "lower_quartile": null,
        "median": null,
        "probabilities": null,
        "probability_yes": 0.52,
        "start_time": "2026-10-14T02:21:08.882752Z",
        "upper_quartile": null
      },
      "description": "Resolves Yes if a system passing all four tests is announced.",
      "fine_print": null,
      "forecasters": 1784,
      "forecasts": 4521,
      "my_forecast": {
        "active": true,
        "end_time": null,
        "forecasters": null,
        "lower_quartile": null,
        "median": null,
        "probabilities": null,
        "probability_yes": 0.63,
        "start_time": "2026-10-14T02:20:11.913740Z",
        "upper_quartile": null
      },
      "open_lower_bound": null,
      "open_time": "2020-01-20T05:00:00Z",
      "open_upper_bound": null,
      "options": null,
      "post_id": 3479,
      "published_at": "2020-01-20T05:00:00Z",
      "question_id": 3479,
      "range_max": null,
      "range_min": null,
      "resolution": null,
      "resolution_criteria": "See the four tests in the background.",
      "resolved": false,
      "scheduled_close_time": "2050-01-01T00:00:00Z",
      "scheduled_resolve_time": "2050-01-01T00:00:00Z",
      "status": "open",
      "subquestions": [],
      "title": "When will the first weakly general AI system be devised, tested, and publicly announced?",
      "tournaments": [
        "aibq4"
      ],
      "type": "binary",
      "unit": null,
      "url": "https://www.metaculus.com/questions/3479/date-weakly-general-ai-is-publicly-known/",
      "votes": 168
    },
    {
      "actual_close_time": null,
      "actual_resolve_time": null,
      "author_username": "Matthew_Barnett",
      "categories": [
        "computing-and-math"
      ],
      "comments": 977,
      "community_prediction": null,
      "description": "A full-scale invasion means ...",
      "fine_print": null,
      "forecasters": 1784,
      "forecasts": 4521,
      "my_forecast": null,
      "open_lower_bound": null,
      "open_time": "2020-01-20T05:00:00Z",
      "open_upper_bound": null,
      "options": null,
      "post_id": 11480,
      "published_at": "2020-01-20T05:00:00Z",
      "question_id": null,
      "range_max": null,
      "range_min": null,
      "resolution": null,
      "resolution_criteria": "Resolves Yes for each year ...",
      "resolved": false,
      "scheduled_close_time": "2050-01-01T00:00:00Z",
      "scheduled_resolve_time": "2050-01-01T00:00:00Z",
      "status": "open",
      "subquestions": [
        {
          "community_prediction": {
            "end_time": null,
            "forecasters": 1784,
            "lower_quartile": null,
            "median": null,
            "probabilities": null,
            "probability_yes": 0.52,
            "start_time": "2026-10-14T02:21:08.882752Z",
            "upper_quartile": null
          },
          "label": "2030",
          "my_forecast": null,
          "open_lower_bound": null,
          "open_upper_bound": null,
          "options": null,
          "question_id": 10880,
          "question_status": "open",
          "question_title": "Will China launch a full-scale invasion of Taiwan by the following years? (2030)",
          "question_type": "binary",
          "range_max": null,
          "range_min": null,
          "resolution": null,
          "role": "group_member",
          "scheduled_close_time": "2029-12-31T00:00:00Z",
          "scheduled_resolve_time": "2030-01-01T00:00:00Z",
          "unit": null
        },
        {
          "community_prediction": {
            "end_time": null,
            "forecasters": 1784,
            "lower_quartile": null,
            "median": null,
            "probabilities": null,
            "probability_yes": 0.52,
            "start_time": "2026-10-14T02:21:08.882752Z",
            "upper_quartile": null
          },
          "label": "2035",
          "my_forecast": null,
          "open_lower_bound": null,
          "open_upper_bound": null,
          "options": null,
          "question_id": 10923,
          "question_status": "open",
          "question_title": "Will China launch a full-scale invasion of Taiwan by the following years? (2035)",
          "question_type": "binary",
          "range_max": null,
          "range_min": null,
          "resolution": null,
          "role": "group_member",
          "scheduled_close_time": "2029-12-31T00:00:00Z",
          "scheduled_resolve_time": "2030-01-01T00:00:00Z",
          "unit": null
        }
      ],
      "title": "Will China launch a full-scale invasion of Taiwan by the following years?",
      "tournaments": [
        "aibq4"
      ],
      "type": "group_of_questions",
      "unit": null,
      "url": "https://www.metaculus.com/questions/11480/chinese-invasion-of-taiwan/",
      "votes": 168
    }
  ]
}
```

### Withdraw forecast

Withdraw your standing forecast on a question, now or at a later time. On a group, leave Subquestion empty to withdraw from every row.

**Inputs**

- Question (`question`, text, required): The question's id or link: the number in metaculus.com/questions/<id>/, or the whole link. Search questions returns it as post_id.
- Subquestion (`subquestion`, text): Only for a page holding several questions: the group row's label or question_id, or 'yes'/'no' in a conditional. Leave empty to withdraw from all of them.
- Withdraw at (`withdraw_at`, date and time): A later time to withdraw at. Leave empty for now.

**Outputs**

- `post_id` (number)
- `question_ids` (list)
- `scheduled` (true/false): True when it happens later rather than now
- `title` (text)
- `url` (text)
- `withdraws_at` (text)

**Example output**

```json
{
  "post_id": 11480,
  "question_ids": [
    10880,
    10923
  ],
  "scheduled": false,
  "title": "Will China launch a full-scale invasion of Taiwan by the following years?",
  "url": "https://www.metaculus.com/questions/11480/chinese-invasion-of-taiwan/",
  "withdraws_at": "2026-10-14T02:00:25.833989Z"
}
```
