Generated by API Evangelist
Written by API Evangelist tooling for Instagram's API. It is a proposal applied on top of the contract, not a document Instagram publishes.
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for Instagram Graph Publishing API
version: 1.0.0
extends: openapi/instagram-publishing-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-10-01'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 4
- target: $.paths['/{user_id}/media'].post
update:
x-apievangelist-phrasing:
intent: Prepare a photo or video for publishing
effect: write
questions:
- What's the first step to post a photo to Instagram through the API?
- Can I add a caption, location and user tags when staging a post?
- How do I stage an image as one item of a carousel before publishing?
instructions:
- text: Create a media container for account {user_id} from image {image_url} with caption {caption}.
slots:
user_id: path.user_id
image_url: requestBody.image_url
caption: requestBody.caption
- text: Stage video {video_url} of type {media_type} for account {user_id}.
slots:
video_url: requestBody.video_url
media_type: requestBody.media_type
user_id: path.user_id
- text: Prepare image {image_url} as a carousel item ({is_carousel_item}) for account {user_id}.
slots:
image_url: requestBody.image_url
is_carousel_item: requestBody.is_carousel_item
user_id: path.user_id
method: generated
generated: '2026-10-01'
- target: $.paths['/{user_id}/media_publish'].post
update:
x-apievangelist-phrasing:
intent: Publish a prepared media container
effect: write
questions:
- Once my container is ready, how do I actually make the post go live?
- What's the final step of the two-step Instagram publishing flow?
instructions:
- text: Publish container {creation_id} to account {user_id}.
slots:
creation_id: requestBody.creation_id
user_id: path.user_id
- text: Make staged post {creation_id} live on account {user_id}.
slots:
creation_id: requestBody.creation_id
user_id: path.user_id
method: generated
generated: '2026-10-01'
- target: $.paths['/{user_id}/content_publishing_limit'].get
update:
x-apievangelist-phrasing:
intent: Check how many posts I can still publish
effect: read
questions:
- How close am I to the publishing rate limit on my account?
- Can I check my current content publishing usage before posting more?
instructions:
- text: Show the content publishing limit usage for account {user_id}.
slots:
user_id: path.user_id
- text: Check the publishing quota for account {user_id} with fields {fields}.
slots:
user_id: path.user_id
fields: query.fields
method: generated
generated: '2026-10-01'
- target: $.paths['/{container_id}'].get
update:
x-apievangelist-phrasing:
intent: Check the status of a media container
effect: read
questions:
- Is my uploaded video container finished processing and ready to publish?
- Why hasn't my staged post published yet — what status is its container in?
instructions:
- text: Check the publishing status of container {container_id}.
slots:
container_id: path.container_id
- text: Get fields {fields} for media container {container_id}.
slots:
fields: query.fields
container_id: path.container_id
method: generated
generated: '2026-10-01'
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.