Ship Reels and Carousels Through One Instagram Posting API Call
One POST request to the Instagram Posting API publishes a feed image, a 2-10 item carousel, a reel, or a video story to a connected business account. Send text, platforms, timezone, your media URLs, and an instagramConfigs.postType of FEED, REEL or STORY.

Instagram publishing as a REST endpoint, not a browser session
POST https://post.adaptlypost.com/post/api/v1/social-posts with a Bearer adaptly_ key. Publish now, pass scheduledAt with an IANA timezone, or save a draft and publish it later. A registered webhook receives every event we emit, post.published, post.scheduled, post.partially_failed and post.failed, with no per-event filtering to configure.
Trusted by Creators and Teams
See how creators, marketers, and small businesses use AdaptlyPost to stay consistent and save hours every week.
I'm a software engineer, not a marketer. My partner runs a TikTok page, so I help out by scheduling her posts, I batch everything in one sitting and let the AI handle the captions. Takes me about 20 minutes a week now.
Software Engineer
I run my nail art page and a personal brand. Scheduling both from one dashboard changed everything, I actually post consistently now and my engagement went up pretty noticeably within a month.
Content Creator
I'm an SWE and honestly terrible at posting consistently. I just line up a week of updates for my personal brand whenever I have a spare minute, and the AI drafts captions per platform so I'm not rewriting the same thing five different ways.
Software Engineer
I'm a software engineer, not a marketer. My partner runs a TikTok page, so I help out by scheduling her posts, I batch everything in one sitting and let the AI handle the captions. Takes me about 20 minutes a week now.
Software Engineer
I run my nail art page and a personal brand. Scheduling both from one dashboard changed everything, I actually post consistently now and my engagement went up pretty noticeably within a month.
Content Creator
I'm an SWE and honestly terrible at posting consistently. I just line up a week of updates for my personal brand whenever I have a spare minute, and the AI drafts captions per platform so I'm not rewriting the same thing five different ways.
Software Engineer
I'm a software engineer, not a marketer. My partner runs a TikTok page, so I help out by scheduling her posts, I batch everything in one sitting and let the AI handle the captions. Takes me about 20 minutes a week now.
Software Engineer
I run my nail art page and a personal brand. Scheduling both from one dashboard changed everything, I actually post consistently now and my engagement went up pretty noticeably within a month.
Content Creator
I'm an SWE and honestly terrible at posting consistently. I just line up a week of updates for my personal brand whenever I have a spare minute, and the AI drafts captions per platform so I'm not rewriting the same thing five different ways.
Software Engineer
I'm not a social media person but I need to post my work somewhere. The AI writer drafts something decent, I tweak it a bit, schedule it, done. Went from posting once a month to three times a week.
Freelance Designer
We connected our OpenClaw agent to AdaptlyPost and now our AI posts product updates across all channels automatically. It sounds futuristic but honestly it just works. The API integration was straightforward.
Startup Founder
I'm not a social media person but I need to post my work somewhere. The AI writer drafts something decent, I tweak it a bit, schedule it, done. Went from posting once a month to three times a week.
Freelance Designer
We connected our OpenClaw agent to AdaptlyPost and now our AI posts product updates across all channels automatically. It sounds futuristic but honestly it just works. The API integration was straightforward.
Startup Founder
I'm not a social media person but I need to post my work somewhere. The AI writer drafts something decent, I tweak it a bit, schedule it, done. Went from posting once a month to three times a week.
Freelance Designer
We connected our OpenClaw agent to AdaptlyPost and now our AI posts product updates across all channels automatically. It sounds futuristic but honestly it just works. The API integration was straightforward.
Startup Founder
How It Works
Connect a business or creator account, then mint a key
Instagram's Graph API only publishes on behalf of a Business or Creator account, so that is the first thing to settle: a personal profile cannot be linked at all, and the OAuth handshake runs in the dashboard rather than over HTTP. Once the account is linked, Settings > API Tokens issues a key beginning with adaptly_ that rides in the Authorization header as a Bearer credential on every request. GET /social-accounts echoes back the linked Instagram profile along with the id you pass in instagramConnectionIds. When the accounts belong to your own clients, POST /connect-links mints a white-label link they open once to finish the Business login themselves.
POST /social-posts with instagramConfigs
text (the caption, up to 2200 chars), platforms, and timezone are required on every call; there is no content field. contentType TEXT is rejected for Instagram, so every post needs media. Set contentType IMAGE, VIDEO or CAROUSEL, then instagramConfigs.postType = FEED | REEL | STORY. The postType switch is only read when contentType is VIDEO, so an IMAGE post with postType STORY silently publishes as a normal feed image: image stories are not possible. Carousels take 2-10 items, images must be jpeg, png or webp within Instagram's 8MB per-file ceiling, video must be mp4 or quicktime and 3-90 seconds. The request body is validated synchronously, so a caption past 2200 characters, a carousel outside the 2-10 range, contentType TEXT, or a second Instagram connection in the same call all come straight back as a 400 from this request. One Instagram account per call, so fan out one call per account. The same call can carry other networks alongside Instagram.
Read per-platform results and retry the Instagram entry
There are two failure modes and they surface in two different places. Anything wrong in the payload is caught while we validate the create call and returns a 400 immediately: caption length, carousel item count, an unsupported contentType, duplicate Instagram connections. No post record exists in that case, so there is nothing to retry, just fix the body and send it again. Files that are not jpeg, png, webp, mp4 or quicktime are refused earlier still, at POST /upload-urls. What GET /social-posts/:id/results reports is what happened after we accepted and dispatched the post: the Instagram Graph API refusing the media during its own ingest, an account switched back to Personal, a token the user revoked, or Instagram's own publishing limits. Each entry carries status, publishedAt, errorMessage and the native platformPostId, never a permalink to the live post, and POST /social-posts/:id/retry re-fires only the failed platformIds.
Simple, transparent pricing
Choose the perfect plan for your needs
30 connected social accounts
Unlimited scheduled posts
1 team member
3 workspaces
150 credits/month
AI Captions
AI Image Studio
API access & OpenClaw integration
Image, video & carousel posts
Most Popular
60 connected social accounts
Unlimited scheduled posts
5 team members
15 workspaces
400 credits/month
AI Captions
AI Image Studio
API access & OpenClaw integration
Image, video & carousel posts
100 connected social accounts
Unlimited scheduled posts
20 team members
50 workspaces
1000 credits/month
AI Captions
AI Image Studio
API access & OpenClaw integration
Image, video & carousel posts
All plans include a 7-day free trial
Want to see the full feature comparison? View pricing page
What the API can publish to Instagram
Feed images and 2-10 item carousels
contentType IMAGE for a single photo, CAROUSEL for 2 to 10 items in one post. Instagram takes stills as JPEG, PNG or WebP, with 8MB the ceiling on any one file. The caption field is text, capped at 2200 characters. Push files through POST /upload-urls (1-20 presigned URLs per call, each valid an hour) or pass your own hosted URLs.
Reels
contentType VIDEO with instagramConfigs.postType REEL, mp4 or quicktime, 3 to 90 seconds. Instagram deprecated standalone feed video, so a plain VIDEO post lands as a reel regardless and REEL just makes it explicit. There is no cover-image, audio-track or collaborator field.
Video stories
instagramConfigs.postType STORY with contentType VIDEO. Stories are video-only through the API: an IMAGE post carrying postType STORY does not error, it publishes to the feed instead. No stickers, polls, link stickers or mentions are exposed.
Scheduled and bulk Instagram posts
Pass scheduledAt plus a timezone such as Europe/Berlin to schedule, or saveAsDraft and later POST /social-posts/:id/publish. POST /social-posts/bulk queues 1-100 posts that share the same Instagram connection, with scheduledAt required on each item. PATCH the post before it fires to swap the caption or the media.
Publish your first reel over HTTP
Connect an Instagram Business or Creator account, generate an adaptly_ key in Settings > API Tokens, and POST to /social-posts. The OpenAPI 3.0.3 spec is public at https://post.adaptlypost.com/post/api/v1/openapi.json and imports straight into Make, n8n, or any OpenAPI client.