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 an image or 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, post.failed and account.unauthorized, with no per-event filtering to configure.
Post to All Your Platforms at Once
Share to Instagram, TikTok, YouTube, X, and more with one click. Each post auto-adapts to fit the platform.
Visual Content Calendar
The AdaptlyPost calendar shows every draft, scheduled, and published post by day, so your posting slots stay filled.
Social Media Analytics in One Place
AdaptlyPost tracks views, likes, shares, and engagement for every connected account in one analytics dashboard.
API Access & OpenClaw Skill
Connect via API or let your OpenClaw AI agent manage posts for you. Automate social media with natural language commands.
AI Image Generator for Social Media
Generate scroll-stopping images in seconds. Just describe your vision and let AI bring it to life.
AI Caption Generator for Every Platform
The AdaptlyPost AI copilot writes captions, rewrites them per platform, and adds hashtags from a single prompt.
Social Media Content Planner
AdaptlyPost keeps drafts, scheduled posts, and published content in one queue, so you see what goes live and when.
Trusted by Creators and Teams
See how creators, marketers, agencies, and small businesses use AdaptlyPost to stay consistent and save hours every week.
Running 11 accounts across 8 platforms with almost zero friction
I am currently running 11 accounts spread across Facebook, Instagram, Threads, LinkedIn, Bluesky, YouTube, X, and TikTok, all connected and posting daily. Ease of use: 10/10. The learning curve is basically nonexistent. Scheduling posts across multiple platforms takes minutes instead of the hours it used to take me doing it manually. It has replaced at least two other subscriptions for me and I have zero regrets.
Simple, powerful and amazing support
It's easy to use, and connecting it with Claude lets me organize and distribute videos and images while staying true to my brand's style. What really stands out is the support: I told Taras I needed two new features, the ability to publish Instagram posts mixing images and videos, and to upload PDFs to LinkedIn via MCP, and he had both ready in just 3 hours. Fast, responsive, and truly amazing.
My Honest Experience Running My Social Media with AdaptlyPost + Claude AI
Then the part that still feels a little crazy: I told Claude to generate the full posts including images and graphics and schedule everything through AdaptlyPost. I went to my content calendar expecting to babysit the process. It was already filled. 30 days of posts, text and visuals, scheduled and ready. The whole thing took about 10 minutes. I used to lose hours every week to this.
Finally, a tool that fits a terminal-first workflow (and top-tier support!)
I've tried several social media scheduling tools in the past, and none of them quite clicked with my workflow. Adaptly completely changed that.
Responsive developer and a client-friendly connect link that solves a real agency pain point
My favorite feature is the Shareable Connect Link. You can generate a link so a client can connect their own social accounts, with no dashboard access required. Getting non-technical clients to hand over access to their accounts has been a constant pain point for me, and this removes most of that friction. I send a link, they click through and authorize, and I'm done.
Solid multi-account scheduler, we run 3 brands on it daily
We've been using AdaptlyPost to schedule Instagram, Facebook, LinkedIn (and Stories) across three brands. What I like most is that it stays out of the way once posts are queued. We schedule stills, carousels, and Reels/Stories in batches, review the calendar, and let it publish.
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. STORY takes one IMAGE or one VIDEO, and REEL takes only VIDEO. Any other pairing, including a CAROUSEL sent as a STORY, comes back as a 400. 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 seconds to 15 minutes. 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
Team collaboration
1 workspace
150 AI credits/month
AI Captions
AI Image Studio
API/MCP/CLI
Image, video & carousel posts
Direct Connector
Direct Plugin
Browser extensions
Works with
Most Popular
60 connected social accounts
Unlimited scheduled posts
3 team members
3 workspaces
400 AI credits/month
AI Captions
AI Image Studio
API/MCP/CLI
Image, video & carousel posts
Direct Connector
Direct Plugin
Browser extensions
Works with
100 connected social accounts
Unlimited scheduled posts
10 team members
10 workspaces
1000 AI credits/month
AI Captions
AI Image Studio
API/MCP/CLI
Image, video & carousel posts
Direct Connector
Direct Plugin
Browser extensions
Works with
Custom
Custom limits, white-label and priority support
Custom
Unlimited social accounts
Unlimited scheduled posts
Unlimited team members
Unlimited workspaces
Unlimited AI credits
AI Captions
AI Image Studio
API/MCP/CLI
Image, video & carousel posts
Direct Connector
Direct Plugin
Browser extensions
Works with
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 seconds to 15 minutes. 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.
Image and Video Stories
instagramConfigs.postType STORY with contentType IMAGE or VIDEO publishes one Story. A Story holds a single file, so a CAROUSEL sent as a STORY comes back as a 400. Send one call per Story 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.