Skip to content
reelspanDocs

After you post

History

List every post Reelspan has published or tried, one row per network, filtered by network, outcome, profile, id or date, newest first.

GETapi.reelspan.com/v1/postsTry it →

History has one row per network post: a video sent to three networks is three rows. Use it to build a "recent posts" view, to find failures, or to look up a post by your own id.

List recent posts

curl "https://api.reelspan.com/v1/posts?profile_username=my-brand&limit=20" \
  -H "Authorization: Bearer $REELSPAN_API_KEY"
{
  "history": [
    {
      "profile_username": "my-brand",
      "platform": "youtube",
      "media_type": "video",
      "upload_timestamp": "2026-12-01T09:01:12.000Z",
      "success": true,
      "status": "completed",
      "platform_post_id": "aB3…",
      "post_url": "https://youtube.com/shorts/aB3…",
      "error_message": null,
      "post_title": "Launch day",
      "post_caption": "Launch day, in 60 seconds",
      "is_async": false,
      "request_id": "9b1f6c2e8a3d4f50b7e1c9a2d6f3e8b1",
      "job_id": null,
      "external_id": "campaign-42",
      "request_total_platforms": 3,
      "post_id_resolved_late": false,
      "video_was_transcoded": false
    }
  ],
  "in_progress": [],
  "total": 57,
  "page": 1,
  "limit": 20
}

What a row holds

  • status is completed, failed or skipped; success is true only for completed.
  • media_type is video, photo, text or document.
  • upload_timestamp is when that network finished.
  • post_title is the post's title; post_caption is the text this network got (its {network}_title, else title).
  • is_async is true for posts that were scheduled, queued or sent with async_upload.
  • request_id, job_id and external_id tie the row to the post. Pass request_id to Post status or Retry.
  • post_id_resolved_late and video_was_transcoded are kept for Upload-Post compatibility and are false.

history holds finished network posts only. Networks still working are listed separately under in_progress, with the same fields: up to 100 of them, from posts made in the last 24 hours. The filters below don't apply to in_progress. Scheduled posts that haven't run yet are in Scheduled posts instead.

Filters

Parameter What it does
platform One network, like tiktok.
status success for live posts; failed for failed and skipped ones (cancelled scheduled posts show here as skipped).
profile_username One profile. profile works too.
request_id, job_id, external_id Exact match: every network of that post.
start, end A time range on when each network post last changed (normally when it finished). Send both, as dates (2026-12-01) or date-times with an offset (2026-12-01T00:00:00Z). end is not included, and the range can be at most 2 months.

Find every network of one post sent with your own id:

curl "https://api.reelspan.com/v1/posts?external_id=campaign-42" \
  -H "Authorization: Bearer $REELSPAN_API_KEY"

Wrong filters get 400: an unknown status, a limit other than the allowed values, only one of start and end, or a range that is backwards or longer than 2 months.

Pages

Rows come newest first, by when each network post last changed. page starts at 1 and limit is 10 (the default), 20, 50 or 100. There are more pages while page × limit is less than total.

The SDKs walk every page for you:

for await (const row of reelspan.posts.all({ platform: 'tiktok', status: 'failed' })) {
  console.log(row.request_id, row.error_message);
}

A key limited to some profiles only sees their posts.

Parameters

  • pageinteger · query
  • limitnumber · query
  • platformstring · query
  • statusstring · query

    successfailed

  • profile_usernamestring · query
  • profilestring · query
  • request_idstring · query
  • job_idstring · query
  • external_idstring · query
  • startstring · query
  • endstring · query

Responses

200 History

{
  "history": [
    {}
  ],
  "in_progress": [
    {}
  ],
  "total": 0,
  "page": 0,
  "limit": 0
}

400 Invalid filters

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

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