Skip to content

API

Instagram scheduling API

SkedCast's REST API schedules feed image, carousel, Reel, story, and video to Instagram with one authenticated POST call. The request has the same shape as for every other connected platform, plus any fields specific to Instagram.

All platforms

Scheduling to Instagram through SkedCast's API#

SkedCast's /v1 REST API schedules feed image, carousel, Reel, story, and video to Instagram the same way it does every other platform: one POST https://api.skedcast.com/v1/posts call with a content caption and a targets block naming the connected accounts.

You need an Instagram professional (Business or Creator) account connected through Meta’s login (Instagram or Facebook sign-in), connected once through the console or through a connect link that POST /v1/clients/{id}/connect-invites creates.

The request is one contract for every connected platform. The fields that are specific to Instagram are listed below.

Example: schedule a post to Instagram#

json
{
  "clientId": "00000000-0000-4000-8000-000000000001",
  "content": "Scientists just made the unmakeable crystal.\n#nanotech",
  "mediaIds": ["00000000-0000-4000-8000-000000000003"],
  "targets": { "mode": "accounts", "accountIds": ["00000000-0000-4000-8000-000000000002"] },
  "schedule": { "type": "at", "scheduledAt": "2030-01-15T15:00:00Z" }
}
POST https://api.skedcast.com/v1/posts — send Authorization: Bearer sked_live_… and an Idempotency-Key header. Replace the example ids with your own.

Instagram facts#

FactValue
Max caption length2,200 characters
Media per postup to 10 media items per post (a carousel).
Native platform schedulingNo. SkedCast holds the timer and publishes at the scheduled time.
SkedCast's default pacing80 / day, with at least 15 min between posts, per account. This is SkedCast's per-account pacing, not Instagram's own published limit. See the rate limits reference.
Published-post URL (permalink)Available once the target is published. Instagram's URL cannot be built from the post id, so SkedCast reads it from Instagram when you fetch the target.

Reading status and results#

GET https://api.skedcast.com/v1/post-targets/{id} returns the Instagram target's status (for example scheduled, on_hold, published, failed or missed). Once the post is published, externalId and permalink point at the live post (see the table above).

  • on_hold: holdReason says why (pacing, a platform limit, media still processing, your plan, or a channel that needs reconnecting) and retryAt says when the next try is.
  • missed: the scheduled time passed while the post waited. outcomeReason says why; reschedule it.
  • failed: failureReason says why. When the post may already be live, outcomeReason is delivery_unconfirmed: check the account, because a retry is refused.
  • requiredAction says what you must do (reconnect_channel, change_plan, contact_support, reschedule, retry or check_platform), or is null when nothing is needed.
  • Instead of polling, subscribe to the target.published and target.failed webhooks (one per destination; post.published and post.failed report the whole post). See the webhooks reference below.
  • Or connect an MCP client and ask an agent to check. See the MCP hub below.
Instagramapischedulingrest

FAQ

Does the Instagram API need a Business or Creator account?
Yes. Instagram only publishes through a professional account, so a personal account cannot be connected. Connect it once in the console or with POST /v1/clients/{id}/connect-invites, then schedule with POST /v1/posts like any other platform.

Ready to broadcast everywhere?

Sign up free — no credit card. You land on the Free plan, and you can start a one-time 7-day Studio trial from your workspace whenever you are ready. Connect your first accounts, import a batch, and watch one post fan out across every platform.