Post to Instagram from your own backend, through one REST API.
Images, mixed-media carousels and videos that publish as Reels, on connected professional accounts. You create a publish job and poll it until it reaches published.
POST /publishing/jobs -> pending
GET /publishing/jobs/{id} -> processing
GET /publishing/jobs/{id} -> submitted
GET /publishing/jobs/{id} -> published
// requestedPublishAt schedules the job.
// clientRequestId makes a retry safe. Images, carousels and Reels.
One image, a carousel that mixes images and video, or a video that publishes as a Reel.
Professional accounts.
Instagram Business and Creator accounts, connected through the platform OAuth flow.
Create a job, poll it.
Publishing is asynchronous. The job moves through states from pending to published.
100 posts per account.
Each connected account publishes 100 posts per billing period, and a limits endpoint reports live usage.
// endpoints
- POST /publishing/jobs
- GET /publishing/jobs
- GET /publishing/jobs/{id}
- POST /publishing/jobs/{id}/cancel
- POST /publishing/jobs/{id}/retry
// Instagram rules, validated before anything is sent
- ● Professional accounts only: Business or Creator.
- ● Images, mixed-media carousels, and videos. A video publishes as a Reel.
- ● Media is passed as public URLs in the job. There is no upload endpoint.
- ● 100 posts per connected account per billing period.
- ● Insights need the insights scopes. A publishing-only connection adds them with a reconnect.
Things developers ask first.
What can I publish to an Instagram account?
Images, carousels that mix images and video, and videos. A video publishes as a Reel. Media is passed as public URLs in the job, so you host the file and we fetch it.
Do I need an Instagram Business account?
You need a professional account, which means Business or Creator. Personal accounts cannot publish through the platform API. The account is connected once through OAuth and belongs to your organization.
How do I know when the post is live?
Poll the job until it reaches published. One job can target several connected accounts, and each target gets its own delivery outcome. Every failure carries a category, a code, and what to do next.
How many posts can each account publish?
Each connected account publishes 100 posts per billing period. The limits endpoint shows the configured limit, current usage and remaining allowance, so your code can check before it publishes.
Can I read Instagram insights too?
Yes, on professional accounts. Insights live in the dashboard and as an MCP tool rather than as a key scope. A connection made for publishing only is upgraded with a one-click reconnect.