# Post statuses

Each target (one account) has its own status, and the post's status sums them up.

## Target statuses

| Status | Meaning | What to do |
|---|---|---|
| `draft` | Saved, not scheduled. | Schedule or publish it. |
| `scheduled` | Waiting for its time. | |
| `queued`, `publishing` | Being sent to the platform. Can't be edited or deleted for now. | Wait a minute. |
| `published` | Live. `permalink` links to it. | |
| `handed_off` | Sent to the creator's TikTok inbox to finish in the app. | They post it in TikTok; PostFlow finds it and marks it published. |
| `failed` | Didn't publish after retries. `errorMessage` says why. | Fix the cause, then [retry](/api/operations/retrypost/). |
| `paused` | Held while the subscription isn't active. | Resumes when it's active again, or moves to `needs_reschedule` if its time passed. |
| `needs_reschedule` | Its time passed while it was paused. | [Reschedule](/api/operations/reschedulepost/) it. |

## Post statuses

`draft`, `scheduled`, `publishing`, `published`, `partial` (some accounts published, some failed), `failed`, `paused`,
`needs_reschedule`, and `action_required` (waiting in the TikTok inbox).

## Lists

`GET /posts?status=` groups them like the app's tabs:

| `status` | Includes |
|---|---|
| `scheduled` (default) | `scheduled`, `publishing`, `paused` |
| `published` | `published` |
| `failed` | `failed`, `partial` |
| `attention` | `action_required`, `failed`, `partial`, `needs_reschedule` |
| `drafts` | `draft` |

## Retries

Temporary platform errors (timeouts, rate limits, outages) are retried automatically, up to five attempts in total, with
growing delays. Permanent ones (an expired login, a removed permission, a file the platform rejects) fail right away.
Expired logins also mark the account `needs_reconnect` and send an [`account.needs_reconnect`](/guides/webhooks/) event.