Skip to content
reelspanDocs

After you post

Retry

Send a post again to only the networks that failed, now or at a set time, with the media it already has, after fixing a caption or setting if needed.

POSTapi.reelspan.com/v1/posts/retryTry it →

When some networks fail, retry just those. Reelspan reuses the media it already stored, so nothing is uploaded again, and the networks that went live are never touched.

Retry the failed networks

curl -X POST https://api.reelspan.com/v1/posts/retry \
  -H "Authorization: Bearer $REELSPAN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"request_id": "9b1f6c2e8a3d4f50b7e1c9a2d6f3e8b1"}'
{
  "success": true,
  "request_id": "9b1f6c2e8a3d4f50b7e1c9a2d6f3e8b1",
  "message": "Failed platforms re-enqueued for retry",
  "platforms": ["instagram"]
}

platforms lists the networks sent again. They start straight away; follow them with Post status or a webhook, as for a new post. A scheduled post's job_id works in place of request_id.

Only some networks

Send platforms to retry only those. Networks you don't name stay as they are.

curl -X POST https://api.reelspan.com/v1/posts/retry \
  -H "Authorization: Bearer $REELSPAN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"request_id": "9b1f6c2e8a3d4f50b7e1c9a2d6f3e8b1", "platforms": ["tiktok"]}'

Fix a setting first

If a network failed because of what you sent (a caption too long, a privacy level the account can't use, a video too big for Bluesky), change it in fields and retry in one call. The names are the same as the post's own fields; an empty string removes a field.

curl -X POST https://api.reelspan.com/v1/posts/retry \
  -H "Authorization: Bearer $REELSPAN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "request_id": "9b1f6c2e8a3d4f50b7e1c9a2d6f3e8b1",
    "platforms": ["tiktok", "bluesky"],
    "fields": { "privacy_level": "SELF_ONLY", "bluesky_compress": "true", "tiktok_title": "" }
  }'

The change is saved on the post, so it also applies to any later retry. The profile (user), the networks (platform[]) and the media can't be changed: fields for them are ignored. To post different media, make a new post.

Retry later

Send scheduled_date (ISO 8601, in the future and within 365 days) to retry at a set time instead of now, with timezone (an IANA zone such as Europe/London; UTC by default) when the date has no offset. The post becomes a scheduled post again: it gets a job_id and shows in Scheduled posts, where you can move, edit or cancel it like any other.

curl -X POST https://api.reelspan.com/v1/posts/retry   -H "Authorization: Bearer $REELSPAN_API_KEY"   -H "Content-Type: application/json"   -d '{
    "request_id": "9b1f6c2e8a3d4f50b7e1c9a2d6f3e8b1",
    "platforms": ["instagram"],
    "scheduled_date": "2026-11-08T09:00:00",
    "timezone": "Europe/London"
  }'
{
  "success": true,
  "request_id": "9b1f6c2e8a3d4f50b7e1c9a2d6f3e8b1",
  "message": "Failed platforms scheduled to retry at 2026-11-08T09:00:00.000Z",
  "platforms": ["instagram"],
  "job_id": "sched_3c7a1e9b5d2f48a6b0c4e8d2",
  "scheduled_date": "2026-11-08T09:00:00.000Z"
}

A post that was scheduled the first time keeps its job_id. A date in the past, more than 365 days ahead, not a date, or an unknown timezone gets 400. Unlike a new scheduled post, the workspace's default time zone isn't used here: without timezone the date is read in UTC.

What gets retried

  • Networks that failed, and networks that were skipped (for example because no account was connected yet, or it needed reconnecting). Connect or reconnect the account first, then retry.
  • Not networks that went live, networks still working, or networks of a scheduled post that was cancelled.

Credits

A network that failed was charged when the post was made, so retrying it costs nothing more. A network that was skipped when the post was made was never charged, so retrying it counts as a new upload, as if you had posted to it now. On a plan with a monthly limit, a retry that would go over it gets 429.

When a retry is refused

Status error_code Why
400 Neither request_id nor job_id was sent, or scheduled_date or timezone is invalid.
404 No post with that id (or your key can't use its profile).
404 retry_media_expired The post's media has been deleted. Post it again as new.
409 The post is still scheduled, or was cancelled.
409 NOTHING_TO_RETRY Every network went live or is still working, or none of the platforms you named failed.
429 The retry would go over your monthly upload limit.

A post's media is kept for a few days after it finishes (7 by default), then deleted unless it is in the media library. Retry within that time, or keep the file in the library if you may need it later.

Request body

application/json

  • request_idstring
  • job_idstring
  • platformsstring[]

    Retry only these platforms

  • fieldsobject

    Settings to change before retrying (same names as the upload fields); an empty string removes one

  • scheduled_datestring

    Retry later instead of now (ISO-8601, within 365 days): the post becomes a scheduled post with a job_id

  • timezonestring

    IANA zone for scheduled_date (default UTC)

Responses

200 Re-queued

{
  "success": true,
  "request_id": "string",
  "message": "string",
  "platforms": [
    "string"
  ],
  "job_id": "string",
  "scheduled_date": "string"
}

400 Invalid input

{
  "success": false,
  "message": "string",
  "error": "string",
  "error_code": "string"
}

404 Not found

{
  "success": false,
  "message": "string",
  "error": "string",
  "error_code": "string"
}

Something unclear or missing? Write to [email protected] and we’ll fix the page.