Publishing API

One publish job. Instagram and X, scheduled, tracked, retried safely.

POST /publishing/jobs creates the job. We run the provider steps and you poll the status until published.

POST /publishing/jobs

{
  "targets": ["ig_acme", "x_acme"],
  "mediaItems": ["https://cdn.acme.co/launch.png"],
  "caption": "Launch day.",
  "requestedPublishAt": "2026-09-01T10:00Z",
  "clientRequestId": "post-001"
}

Scheduling.

Set requestedPublishAt and cancel any job before it is dispatched.

Idempotent retries.

A clientRequestId makes retries safe: never a duplicate post.

Per-target deliveries.

One job targets many accounts, with a delivery outcome per target.

Classified failures.

Every failure carries a category, a code and what to do next.

// endpoints

  • POST /publishing/jobs
  • GET /publishing/jobs
  • GET /publishing/jobs/{id}
  • POST /publishing/jobs/{id}/cancel
  • POST /publishing/jobs/{id}/retry

// platform rules, validated before anything is sent

  • ● Instagram: images, mixed carousels, and videos. Videos publish as Reels.
  • ● X: text up to 280 characters, up to 4 images or a single video. Carousels are images only.
  • ● Media is passed as public URLs in the job. There is no upload endpoint.
Publishing FAQ

Things developers ask first.

How does media upload work?

You host the file and pass its public URL in the publish job. One media item makes a single post, several images make a carousel. We fetch the media, create the provider container, poll it and publish.

Can I schedule posts?

Yes. Set requestedPublishAt on the job and it publishes at that time. You can list scheduled jobs at any time and cancel any job before it is dispatched.

What happens when a publish fails?

Every failure is classified: a category, a code, and an instruction that tells you whether it is retryable. Retryable jobs can be retried up to 5 times, and a retry never produces a duplicate post. We also email you when a job fails.

What are the limits?

Each connected account can publish 100 posts per billing period. The limits endpoint shows the configured limit, current usage and remaining allowance live, so your code can check before it publishes.

Ship your first publish job today.

7-day free trial. Instagram and X, one API, MCP included.

Or talk to a human. support@invisibleapi.ai