---
title: "Returns the next batch of article titles, the same ones the Plan Content button shows. Each title comes with its topic, format, search and day on the calendar. Defaults to a DRY RUN: nothing goes on the calendar. When the person asked to add them, call it with confirm=true. To add only some, pass their ids in keep. Set news=true for this week's news titles, the ones Plan Content's news list shows. They are written every Monday for paid workspaces with News or Trending on, and go on the calendar one a day. To plan titles about something specific, pass it as subject with the workspace topics it fits as topics. Add the ones the person wants with commit_planned_titles. If the subject fits none of the topics, offer to add a topic first (set_topics). Capped at 5/min."
method: POST
path: "/api/v1/content/plan"
---

# Returns the next batch of article titles, the same ones the Plan Content button shows. Each title comes with its topic, format, search and day on the calendar. Defaults to a DRY RUN: nothing goes on the calendar. When the person asked to add them, call it with confirm=true. To add only some, pass their ids in keep. Set news=true for this week's news titles, the ones Plan Content's news list shows. They are written every Monday for paid workspaces with News or Trending on, and go on the calendar one a day. To plan titles about something specific, pass it as subject with the workspace topics it fits as topics. Add the ones the person wants with commit_planned_titles. If the subject fits none of the topics, offer to add a topic first (set_topics). Capped at 5/min.

`POST /api/v1/content/plan`

## Request

- Base URL: `https://api.rctrl.com`
- URL: `https://api.rctrl.com/api/v1/content/plan`
- Auth: HTTP bearer

Requires the `write:content` scope.

## Request body

- object
  - `subject` string: What the titles should be about, in the user's words (150 characters max). Needs topics.
  - `topics` string[]: The topics the subject fits, from get_topics
  - `news` boolean: true: this week's news instead of the next batch. Works with keep and confirm.
  - `keep` string[]: Ids from the dry run to add. Leave it out to add the whole batch. Titles you leave out stay for a later batch.
  - `confirm` boolean: Set true to add the titles to the calendar (default: dry run)

## Response `200`

Success; the payload is wrapped in a data envelope

- object
  - `data` unknown

## Other responses

- `400`: Bad input
- `401`: Missing or invalid API key
- `403`: API key lacks the required scope
- `404`: Not found in this workspace
- `429`: Rate limited; the body includes a retryAfterMs hint

---

[API](https://skmtc.dev/rctrl/apis/rankcontrol-api.md) · [All operations](https://skmtc.dev/rctrl/apis/rankcontrol-api/llms.txt) · [OpenAPI document](https://skmtc.dev/rctrl/apis/rankcontrol-api/revisions/98ecd236394a?raw)
