Skip to main content

Post status tracking API

Post Status Tracking API for Publishing Workflows

Publishing does not end when the request returns 200. A post can still be queued, processing, published, or failed, and a workflow that ignores those states finds out too late that a campaign did not go out. Wahdx Connection exposes single and batch status endpoints so integrations can close the loop. This page covers the states, the two check patterns, and how to design retries around them.

The problem this solves

Without status tracking, a publishing job either assumes success or builds its own unreliable guess. The API reports the real state of each post, so a team can catch a rejected video in the same hour instead of discovering a gap days later. It also separates a slow platform from a broken request, so the team knows whether to wait or to retry.

The states a post moves through

Each post reports one of four states. Queued means it is waiting to be processed. Processing means the publishing workflow is running. Published means it completed successfully. Failed means it needs attention and can be resubmitted after the issue is fixed. Scheduled posts sit in queued until their time, then move through the same states as direct posts.

  • Queued: waiting to be processed.
  • Processing: the publish is in progress.
  • Published: completed successfully.
  • Failed: needs attention; fix and resubmit.

Check one post

The single status endpoint takes an account ID and a publish ID and returns the current state plus the public post URL when one exists. For TikTok checks, include the media type so the API returns the correct URL behavior for video or photo posts. Poll on an interval that matches your tolerance, and stop once the post reaches a terminal state.

const API_BASE_URL = 'https://api.wahdx.com';
const API_KEY = process.env.WAHDX_API_KEY;

await fetch(API_BASE_URL + '/api/content/status/{accountId}/{publishId}?mediaType=video', {
  method: 'GET',
  headers: {
    'X-API-Key': API_KEY
  }
});

Check a batch

The batch endpoint checks several posts in one request, which fits a nightly job that sweeps every post from the day. It is also the right tool after a multi-platform publish, because one request can produce several posts that each need confirming. Batch polling keeps the number of requests flat as publishing volume grows.

const API_BASE_URL = 'https://api.wahdx.com';
const API_KEY = process.env.WAHDX_API_KEY;

await fetch(API_BASE_URL + '/api/content/status/batch', {
  method: 'POST',
  headers: {
    'X-API-Key': API_KEY,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    checks: [
      { accountId: 'ACCOUNT_ID_1', publishId: 'PUBLISH_ID_1', mediaType: 'video' },
      { accountId: 'ACCOUNT_ID_2', publishId: 'PUBLISH_ID_2' }
    ]
  })
});

Designing retries and monitoring

A failed post is a task, not an error to swallow. Because failed publishes do not count toward the monthly upload quota, retrying does not cost an upload credit. Log the failed state with the platform and publish ID, surface it for the team, and resubmit once the media or caption is corrected. There is no customer-registrable webhook, so the polling schedule determines how quickly a failure is noticed.

FAQ

Common questions about status tracking

Can I check more than one post status at once?

Yes. The batch status endpoint checks several posts in one request, which suits nightly sweeps and multi-platform publishes.

Why include the media type for TikTok checks?

It helps the API return the correct status and public post URL behavior for video or photo workflows.

Is there a webhook for status changes?

There is no customer-registrable webhook. Integrations poll the single or batch status endpoints after submission.

Does a failed post use up my upload quota?

No. Only successful publishes count toward the monthly quota, so a failed post can be fixed and resubmitted without costing an upload credit.