> ## Documentation Index
> Fetch the complete documentation index at: https://grow-hub.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Post tools

> Create, read, edit, and delete drafts.

## list\_posts

Lists posts in the studio, newest first, each with its attached assets and studio
`url`.

<ParamField body="status" type="enum">
  Optional filter: `draft`, `scheduled`, `queued`, `posted`, or `failed`. Omit
  for everything.
</ParamField>

```text Prompt theme={null}
Show me my scheduled posts.
```

Returns an array of [post objects](/concepts/posts#fields).

## get\_post

Fetches one post by id.

<ParamField body="id" type="string" required>
  Post id.
</ParamField>

Returns the post, or `not_found` if the id belongs to another studio or does not
exist.

## create\_draft

Creates a draft.

<ParamField body="content" type="string" required>
  Body text. Up to 10,000 characters — per-platform limits are checked at publish
  time, not here.
</ParamField>

<ParamField body="targetPlatforms" type="string[]">
  Platforms to target. Omit, or pass an empty array, to target every supported
  platform.
</ParamField>

```json Input theme={null}
{
  "content": "We just shipped scheduling in Studio.",
  "targetPlatforms": ["linkedin"]
}
```

Returns the new draft including its `url`. Give that link to the user rather than
the raw id.

## update\_draft

Patches a draft in place. Only the fields you pass change.

<ParamField body="id" type="string" required>
  Post id.
</ParamField>

<ParamField body="content" type="string">
  Replacement body text. Allowed while the post is `draft` **or** `scheduled`; on
  a scheduled post the new text must still fit the platform it is aimed at.
</ParamField>

<ParamField body="targetPlatforms" type="string[]">
  Replacement target list. **Draft only** — unschedule first, or you get
  `cannot_edit_scheduled_post`.
</ParamField>

## delete\_draft

Deletes a post permanently.

<ParamField body="id" type="string" required>
  Post id.
</ParamField>

Returns `{ "deleted": "<id>" }`.

<Warning>
  A post mid-dispatch (`queued`) can't be deleted — you get
  `dispatch_in_progress`. Wait for it to settle to `posted` or `failed`.
  Deleting a `posted` post removes Studio's record only; the post stays live on
  the platform.
</Warning>
