Skip to content

Guides

How to schedule posts to Instagram through the SkedCast API

Instagram publishing goes through the same POST /v1/posts call as every other platform — this is how to schedule posts to Instagram via the API, whether that's a feed post, Reel, or Story. A single video with no contentType set publishes as a Reel by default — everything else (feed, Story, tags, collaborators) is an explicit override.

Browse docs

6 min read

Before you publish#

You need one already-connected account for the platform. Connect it yourself in the Agency Console, or — if a client owns the account — mint a self-serve connect link with POST /clients/:id/connect-invites and send it to them; they authorize from that page without ever getting a SkedCast login.

GET /v1/accounts lists what's connected, with each account's id — that id is what you pass in targets.accountIds below.

Compose and schedule#

bash
curl -X POST https://api.skedcast.com/v1/posts \
  -H "Authorization: Bearer sked_live_YOUR_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "clientId": "<clientId>",
    "content": "Launch day is here 🚀",
    "mediaIds": ["<mediaAssetId>"],
    "targets": { "mode": "selection", "accountIds": ["<instagramAccountId>"] },
    "schedule": { "type": "at", "scheduledAt": "2026-07-01T15:00:00Z" }
  }'
A minimal instagram post, scheduled for a specific time.

Schedule posts to Instagram: the API fields#

Everything platform-specific goes in one variants entry with "platform": "instagram" and an overrides object. The adapter reads only the keys it declares (below) and ignores the rest — send instagram keys on a instagram variant, nothing more.

FieldTypeValues / defaultNotes
contentTypeenumfeed \| reel \| storyDefaults to feed; a single video with no contentType publishes as a reel.
firstCommentstringNeeds the Instagram comment-management permission (pending Meta App Review). Posted right after publish. Best-effort: a failed comment never fails the post and is not reported, so verify on the published post.
userTagsstring[] or [{username,x?,y?}]≤20People/photo tags. A comma-separated @username string also works.
collaboratorsstring[]≤3Collaborator usernames.
shareToFeedbooleanplatform defaultReels only: also show the Reel in the main feed grid.
coverUrlstring (url)Reels only: a public URL for the Reel's cover frame (separate from post-level coverMediaId).
locationIdstringInstagram location page id.
paidPartnershipbooleanfalseAdds Instagram's "Paid partnership" disclosure label.

Verbatim from the REST API reference's Instagram table.

With the platform-specific overrides#

json
{
  "clientId": "<clientId>",
  "content": "Behind the scenes 🎬",
  "mediaIds": ["<videoAssetId>"],
  "targets": { "mode": "selection", "accountIds": ["<instagramAccountId>"] },
  "variants": [
    {
      "platform": "instagram",
      "overrides": { "contentType": "reel", "shareToFeed": true, "collaborators": ["studio_handle"] }
    }
  ],
  "schedule": { "type": "at", "scheduledAt": "2026-07-01T15:00:00Z" }
}
The same POST /posts body, with a variants entry added.

Checking the result#

Publishing fans out into one post target per account. GET /post-targets/:id (or GET /posts/:id) reports status, plus externalId (instagram's own post id) and permalink (its public URL) once published. Subscribe to the target.published / target.failed webhooks instead of polling if you can accept inbound HTTP — see the webhooks guide.

instagramapipublishreels

FAQ

Will my video publish as a Reel or a feed post by default?
A single video with no `contentType` set publishes as a Reel — that's Instagram's own default for video content, not a SkedCast choice. Set `contentType: "feed"` explicitly if you want it in the grid as a regular video post instead.
Can the API post an Instagram carousel?
Yes — pass more than one id in the base `mediaIds` array (no `contentType` override needed); the adapter publishes a multi-image/video carousel. Per-slide alt text is set via the post-level `mediaAltTexts` map, keyed by media asset id.
Is SkedCast an Instagram API scheduling tool, or do I still need Instagram's own tools?
SkedCast is an Instagram API scheduling tool built on Meta's Graph API — you connect the account once in the Agency Console and then compose, schedule, and publish entirely through SkedCast; you don't need Meta's own Creator Studio for anything covered by the override fields above.

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.