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

# Retry Post

> Retry failed or partial posts

Reset failed/partial posts so they re-enter the scheduler. This lets you retrigger multiple posts (or a subset of their accounts) after fixing upstream media/platform issues.

## Body Parameters

<ParamField body="post_ids" type="array" required>
  Array of post IDs (min 1, max 20) to retry. Each post must belong to your
  authenticated key scope; IDs outside scope are rejected per entry.
</ParamField>

<ParamField body="account_ids" type="array">
  Optional filter (max 10). When provided, only the matching account rows on
  each post are retried; otherwise, all failed/partial accounts are reset. Must
  contain at least one UUID when present.
</ParamField>

## Behavior

<RequestExample>
  ```bash cURL theme={null}
  curl --request POST \
    --url https://www.genviral.io/api/partner/v1/posts/retry \
    --header 'Authorization: Bearer <token>' \
    --header 'Content-Type: application/json' \
    --data '{
    "post_ids": [
      "11111111-1111-1111-1111-111111111111",
      "22222222-2222-2222-2222-222222222222"
    ],
    "account_ids": ["0f4f54d4-8cce-4fb7-8c7b-befbcb8af812"]
  }'
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
    "ok": true,
    "code": 200,
    "message": "Posts queued for retry",
    "data": {
      "retried": 2,
      "ids": [
        "11111111-1111-1111-1111-111111111111",
        "22222222-2222-2222-2222-222222222222"
      ],
      "failed": ["33333333-3333-3333-3333-333333333333"],
      "errors": {
        "33333333-3333-3333-3333-333333333333": "Only failed or partial posts can be retried"
      }
    }
  }
  ```
</ResponseExample>

<Note>
  The `errors` object only appears when at least one post/account could not be
  retried. Successful responses without failures omit the field entirely.
</Note>

## Error Responses

* `400 invalid_json` - body is not valid JSON
* `422 invalid_payload` - payload failed schema rules (missing IDs, too many IDs)
* `401` - authentication failed (missing/invalid/revoked token)
* `402 subscription_required` - active Creator/Professional/Business plan required
* `403 tier_not_allowed` - Scheduler tier cannot use Partner API
* `500 retry_failed` - unexpected database error (partial successes are still reported in the body)
