Prepare a post (step 1 of 2)
ig_prepare_postUploads media to Instagram as an unpublished draft and returns a preview with a container_id for review and confirmation before publishing. Nothing becomes public until you publish it.
Instructions
Step 1 of publishing: upload media to Instagram as an unpublished draft and return a preview with a container_id. Nothing is public yet. Show the preview to the user and get a clear yes, then call ig_publish_post with the container_id. Drafts expire after 24 hours. Media must be at a public https:// URL (Instagram downloads it). Photos must be JPEG. Reels: MP4/MOV, 3 s to 15 min. Types: 'image' (one photo), 'carousel' (2-10 photos/videos), 'reel' (one video), 'story' (one photo or video, no caption). Example: "Post this photo with caption X" -> type='image', media_url='https://.../photo.jpg', caption='X'.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | ||
| items | No | Carousel slides in order, 2-10 | |
| caption | No | Caption with hashtags/mentions; max 2200 chars, 30 hashtags, 20 mentions | |
| alt_text | No | Accessibility description (single photo posts) | |
| cover_url | No | Reel cover image URL | |
| media_url | No | Public https URL of the photo or video (image, reel, story) | |
| media_kind | No | Override the image/video guess made from the file extension | |
| share_to_feed | No | Reels: also show on the profile grid |