Requires an Instagram professional account (Business or Creator). Personal accounts are not supported by the publishing API.
Capabilities at a glance
Connect Instagram
Create the hosted connection URL on your server. The customer completes OAuth or the provider-specific credential form directly on PostGate.
curl -X POST https://postgate.studio/api/profiles/connect \
-H "Authorization: Bearer $POSTGATE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"platform": "instagram",
"profile_group_id": "grp_acme123",
"return_url": "https://app.example.com/settings/social"
}'Publish to Instagram
Use the connected profile ID as the target. Provider-specific fields live under post.options.instagram so the unified envelope remains stable.
{
"post": {
"body": "Launch day."
},
"profiles": [
"pro_instagram123"
],
"media": [
"med_01JXYZ"
]
}Media and content limits
PostGate validates the request at creation and again at delivery. Account-level provider limits can be narrower than the general contract.
Operational notes
These constraints affect approval, connection health, or delivery behavior for this provider.
Business or Creator accounts only.
Container publish flow; app review required.
Stories: set post.options.instagram.mode to 'story' to publish a single image or video as a Story. Carousels and alt text are not supported for stories, and the caption is not sent.
Options: alt_text / alt_texts (images, up to 1000 chars), collaborators (up to 3 usernames), user_tags ([{username, x, y}] on a single photo or video), location_id (Facebook Page ID with a location), is_ai_generated. Reels also accept cover_url, thumb_offset and audio_name. disable_comment turns comments off right after publishing (not Stories). GET /api/profiles/{id}/health reports publishing_quota for the rolling 24-hour API limit.
Trial reels: set post.options.instagram.trial_params.graduation_strategy to 'MANUAL' (graduate in the Instagram app) or 'SS_PERFORMANCE' (Instagram graduates it if it performs well) on a single-video Reel. It is shown to non-followers first; graduation status is not readable via the API.
GET /api/platforms. A provider appears only when it is enabled and configured for the current workspace.