> ## Documentation Index
> Fetch the complete documentation index at: https://docs.postlybee.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Managing posts

> Create, list, update, repair, and delete posts from JSON workflows.

## List posts

```bash theme={null}
postlybee posts:list
postlybee posts:list \
  --start 2026-08-01T00:00:00.000Z \
  --end 2026-08-31T23:59:59.999Z
```

Without dates, the CLI requests the previous 30 days through the next 30 days. Results include root posts, publication state, integration data, provider release IDs, and URLs.

## Create a post

Create `post.json`:

```json theme={null}
{
  "type": "schedule",
  "date": "2030-01-15T09:00:00.000Z",
  "shortLink": false,
  "tags": [],
  "posts": [
    {
      "integration": { "id": "CONNECTED_ACCOUNT_ID" },
      "value": [
        {
          "content": "Scheduled from the PostlyBee CLI",
          "image": []
        }
      ],
      "settings": {}
    }
  ]
}
```

Then run:

```bash theme={null}
postlybee posts:create --file post.json
```

You can also use `--data '<json>'` or `--stdin`. Multiple items in `value` create thread segments for platforms that support threads.

## Change status and settings

```bash theme={null}
postlybee posts:status POST_ID --status draft
postlybee posts:status POST_ID --status schedule
```

Moving a post to draft terminates its active publishing workflow. Moving it to schedule queues it for its stored publication date.

Merge provider-specific settings without replacing unrelated keys:

```bash theme={null}
postlybee posts:settings POST_ID \
  --data '{"content_posting_method":"DIRECT_POST"}'
```

Only unpublished DRAFT or QUEUE posts can be updated. Pass the root post ID, not a thread segment ID.

## Repair missing release IDs

Some providers publish successfully without immediately returning a usable post ID.

```bash theme={null}
postlybee posts:missing POST_ID
postlybee posts:connect POST_ID --release-id PROVIDER_POST_ID
```

After connecting the correct provider content, post analytics can use the release ID.

## Delete a post

```bash theme={null}
postlybee posts:delete POST_ID
```

Deleting the root post also deletes all of its thread segments. The CLI does not ask for confirmation so scripts remain non-interactive; validate the ID before invoking destructive commands.
