Instagram API proxy: what it is, what it handles, and how to post through one
POST /api/post with platforms: ["instagram"], a photo_url or video_url and the caption, and the proxy does the rest, on the free plan (1 business, 10 posts a month, 2 networks per post, no card). It is not a network proxy for scraping Instagram or for automating likes and follows: it publishes to an Instagram professional (Business or Creator) account you connect, through Meta's official API, and nothing else.Posting to Instagram directly means a Meta developer app, App Review for the publishing permission, long-lived tokens to renew, JPEG-only images, a two-step publish and a rate limit to watch. A proxy takes those on once, for every account you connect. Here is what that means in practice, and the request it leaves you with.
Updated . Written from PostWire's own code; vendor prices read on Oct 22, 2026. Live networks: TikTok, Instagram, YouTube, LinkedIn (personal profiles), Facebook Pages, Bluesky, Mastodon, Telegram, Discord, and X on paid plans.
Post to Instagram through the proxy, step by step
Five minutes, no Meta developer account. The example is cURL; the same JSON works from any language, n8n, Make or an AI agent.
- Create a free PostWire account
Open the dashboard and sign in with your email: a 6-digit code, no password, no card. The free plan is 1 business, 10 posts a month, 2 networks per post, no card, with the REST API and the MCP server in it.
- Connect the Instagram account
Accounts → Connect on Instagram. Choose Log in with Instagram (works with any Business or Creator account, no Facebook Page) or Through a Facebook Page you manage. The account must be a professional one (Business or Creator): Meta's API does not publish to personal accounts. PostWire stores the long-lived token Meta returns and renews it; you never handle a token yourself.
- Copy your API key
Under API & MCP press Create key. The key is shown once; it is sent as
Authorization: Bearer. The free plan allows 60 requests a minute and 2 publishes at once. - Send one request
A photo with a caption. Any public https link to a JPEG, PNG, WebP or AVIF works: PostWire converts what Instagram will not take to JPEG before Meta fetches it.
curl -X POST https://postwire.io/api/post \ -H "Authorization: Bearer $POSTWIRE_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "platforms": ["instagram"], "photo_url": "https://cdn.example.com/launch.png", "text": "New colour, same price. Link in bio. #launch" }' - A Reel, a Story or a carousel
Send
video_urlinstead ofphoto_urland Instagram gets a Reel (MP4 or MOV, H.264 video and AAC audio, 3 to 90 seconds, 9:16).options.instagram.post_typetakesfeed,reelsorstory, andtrial_reel: truepublishes a trial Reel (shown to non-followers first) when the account can use them.photo_urlswith 2 to 10 links makes a carousel. The network options page lists every field. - Read the result, and the status
The response carries the Instagram media id and, once Meta has it, the public link. A video Instagram is still transcoding comes back as
processing: PostWire finishes the publish on its own when Instagram is ready, andGET /api/post/status?platform=instagram&id=<id>tells you when it went out, and a webhook can tell your server the same (see the webhooks guide).
Rather let an AI agent send the request? The same proxy is an MCP server at https://postwire.io/api/mcp: post_to_social with platforms: ["instagram"] does the call above. Step by step: Instagram MCP server.
Hosted Instagram APIs, side by side
Three services that stand in front of Meta's API for you, with what each costs to start, read on its own pricing page on Oct 22, 2026.
| Service | Free to start | Cheapest paid plan | What it meters | Instagram on the free plan | Writes the caption |
|---|---|---|---|---|---|
| PostWire | Free plan: 1 business, 10 posts a month, 2 networks per post, no card | $9/mo — 3 businesses, every network in each | A business (one brand, all its networks) | Yes | Yes — generate_posts writes the Instagram caption and each other network's post from one idea |
| Ayrshare | No free plan; a 28-day trial on Launch | $149/mo — 1 social profile | A social profile (one customer with its networks) | No free plan | Not listed on its pricing page |
| Upload-Post | Free plan: 2 profiles, 10 uploads a month | $24/mo — 5 profiles | A profile (one account per platform) | Yes | Not listed |
Checked on Oct 22, 2026 (2026-10-22) on each vendor's own pricing or docs page, linked in the first column and below. Monthly billing in USD unless noted. "Not listed" means we could not find it on their page, not that it is missing.
Where PostWire is ahead
- The caption is written for Instagram, and each other network gets its own post, in one request.
- 10 posts a month free, with the API and the MCP server, no card and no time limit. Ayrshare's first plan is $149 a month; Upload-Post's free plan has 10 uploads a month.
- Priced per business: 10 businesses on every network are $29 a month. Ayrshare Launch is $299 for 10 social profiles.
- Images converted to JPEG for you and a video publish that finishes on PostWire's side while Instagram transcodes.
- The same proxy for AI agents: an MCP server with OAuth sign-in or an API key, in Claude's connector directory.
- Meta — Instagram Platform, Content Publishing (100 API-published posts in a 24-hour moving period; content_publishing_limit; JPEG only; container then media_publish; professional accounts): developers.facebook.com/docs/instagram-platform/content-publishing
- Ayrshare pricing (Premium $149 a month for 1 social profile, billed at signup; Launch $299 for 10 with the 28-day trial; API on every plan): www.ayrshare.com/pricing/
- Upload-Post plans (llms-full.txt: Free 2 profiles, 10 uploads a month, Instagram included, TikTok not; Basic $24 a month, 5 profiles): www.upload-post.com/llms-full.txt
What the Instagram API proxy handles, and what you would do yourself
Meta's rules for API publishing, read on its Content Publishing page on Oct 22, 2026, next to what PostWire does with each one.
| Meta's rule | Straight on the Graph API | Through PostWire |
|---|---|---|
| Publishing needs a Meta app with the publishing permission, approved in App Review | Your own app, a privacy policy, a screencast and a review that can take weeks | PostWire's app is the approved one; you authorise it once |
| Only professional accounts (Business or Creator) can publish | Same | Same: the connect screen refuses a personal account |
| Tokens expire; long-lived ones must be exchanged and renewed | You store them and run the exchange | Stored and renewed by PostWire; a key per workspace is all you hold |
| "JPEG is the only image format supported" | Convert before you upload | PNG, WebP and AVIF are converted to JPEG before Meta fetches them; a JPEG link passes through untouched |
A media object needs a container first, then /media_publish | Two calls, and a poll on the container's status for video | One request; the publish finishes on PostWire's side when Instagram is done transcoding |
| Carousels: up to 20 items on the Graph API | One container per item, then the carousel container | photo_urls with up to 10 images or MP4 videos |
100 API-published posts per account in a 24-hour moving period (content_publishing_limit) | You count | Plans sit under it: 10 posts a month on Free, 20 a day; 1,000 a month on Starter, 200 a day |
| Caption limits: hashtags, @mentions and length | Meta refuses the post | A caption Instagram refused as too long is retried at 20 hashtags, 20 @mentions and 2,000 characters, cut at a sentence |
Sources: Meta's Content Publishing documentation and PostWire's Instagram publisher (src/platforms/meta.js), both read Oct 22, 2026.
What Instagram accepts through the proxy
- Images: JPEG up to 8 MB. Send a PNG, WebP or AVIF and PostWire converts it to JPEG first.
- Video (Reels): MP4 or MOV, H.264 video, AAC audio, 3 to 90 seconds, 9:16. Up to 100 MB on the free plan and 1 GB on paid plans through PostWire's upload links.
- Stories: a photo or a video with
options.instagram.post_type: "story". - Carousels: 2 to 10 items, images and videos mixed, with
photo_urls; one caption for the whole carousel. - Text alone: no. Instagram needs an image or a video on every post; a text-only request to Instagram is refused before it reaches Meta.
The step most proxies leave to you: the caption
Ayrshare and Upload-Post publish the caption you send. PostWire's POST /api/generate (or the generate_posts MCP tool) turns one idea into a caption written for Instagram — hook first, hashtags at the end — and, in the same request, a TikTok hook, a YouTube title and tags and a LinkedIn post; the next call publishes them. With Instagram alone it is still one request: send text and the proxy posts it as is.
What an Instagram API proxy is not
- Not an IP or residential proxy. Nothing here hides your traffic or automates a browser: PostWire talks to Meta's official Graph API with the permissions Meta approved.
- Not a scraper or a growth bot. It does not read feeds, follow, like or comment, and it does not read or send DMs.
- Not for personal accounts: Meta's API publishes only to professional accounts. Switching an account to Creator takes a minute in Instagram's settings.
- Threads is not live on PostWire yet; Instagram, Facebook Pages, TikTok, YouTube, LinkedIn, Bluesky, Mastodon, Telegram, Discord and X (paid plans) are.
Questions people ask
What is an Instagram API proxy?
A hosted API that sits between your code and Meta's Instagram Graph API. It owns the Meta app that Meta approved for publishing, stores and renews each account's tokens, converts images to the JPEG Instagram requires, runs Meta's container-then-publish flow and watches the rate limit, so your side is one HTTPS request with the media link and the caption. It is not a network proxy for scraping or automation bots.
Do I need a Meta developer app or App Review to post through PostWire?
No. You authorise PostWire's approved Meta app once for the Instagram professional account you want to post to, and PostWire holds the token. Building it yourself means your own Meta app, the publishing permission approved in App Review, and token renewal.
Does the proxy work with a personal Instagram account?
A Business or Creator account, yes: personal accounts cannot post via the API. A Facebook Page, no: PostWire connects with Log in with Instagram, which needs no Page, or through a Facebook Page you manage.
What media can I post through the Instagram API proxy?
A JPEG, PNG, WebP or AVIF image (converted to JPEG when needed; up to 8 MB as JPEG), a Reel (MP4 or MOV, H.264 and AAC, 3 to 90 seconds, 9:16), a Story (photo or video) and a carousel of 2 to 10 items. Instagram does not take text-only posts.
How many posts a day can I publish to Instagram through the API?
Meta limits an Instagram account to 100 API-published posts in a 24-hour moving period (its Content Publishing page, Oct 22, 2026). PostWire's plans sit under that: the free plan is 10 posts a month, Starter 1,000 a month with 200 a day, Pro 10,000 a month.
Is an Instagram API proxy free?
PostWire's free plan includes Instagram, the REST API and the MCP server: 1 business, 10 posts a month, 2 networks per post, no card and no time limit. Upload-Post has a free plan with 2 profiles and 10 uploads a month; Ayrshare has no free plan and starts at $149 a month (both read Oct 22, 2026).
Can an AI agent use the proxy?
Yes. The same service is an MCP server at https://postwire.io/api/mcp with OAuth sign-in or an API key: post_to_social with platforms ["instagram"] publishes the post, schedule_post queues it, and get_post_status reads the result. It is listed in Claude's connector directory.
Try it on one business, free.
The free plan is 1 business, 10 posts a month, 5 AI drafts a day (about 20 a month) and 2 networks per post — every network connects free, no card, no time limit. Paid plans start at $9 a month and have a 14-day refund; Pro can be tried free for 7 days and Agency for 14, with a card at checkout and nothing charged that day.