Integrate Instagram into workflows. Publish and download images, videos, Reels, stories, and carousels as canonical User Files; moderate comments; send DMs; and pull account or media insights.
Send a button template private reply with up to 3 tappable buttons (URL or postback) to a commenter on Instagram.
| Parameter | Type | Required | Description |
|---|
recipientType | string | No | Recipient type: 'comment' to privately reply to a comment, or 'user' to DM an Instagram user directly. Defaults to 'comment'. |
commentId | string | No | Instagram comment ID (required when recipient type is "comment") |
recipientId | string | No | Instagram-scoped user ID / IGSID to message directly (required when recipient type is "user") |
text | string | Yes | Text displayed above the buttons (up to 640 characters) |
buttons | string | Yes | JSON array of 1–3 button objects. Each button: { "type": "web_url"|"postback", "title": "...", "url": "..." (for web_url) or "payload": "..." (for postback) } |
pageId | string | Yes | Facebook Page ID linked to the Instagram Business account |
| Parameter | Type | Description |
|---|
messageId | string | ID of the sent message |
Send a private reply with up to 13 quick reply buttons to a commenter on Instagram. Quick replies support plain text only.
| Parameter | Type | Required | Description |
|---|
recipientType | string | No | Recipient type: 'comment' to privately reply to a comment, or 'user' to DM an Instagram user directly. Defaults to 'comment'. |
commentId | string | No | Instagram comment ID (required when recipient type is "comment") |
recipientId | string | No | Instagram-scoped user ID / IGSID to message directly (required when recipient type is "user") |
text | string | Yes | Message text displayed above the quick replies |
quickReplies | string | Yes | JSON array of quick reply objects. Each: { "content_type": "text"|"user_phone_number", "title": "..." (max 20 chars), "payload": "..." }. Max 13 items. |
pageId | string | Yes | Facebook Page ID linked to the Instagram Business account |
| Parameter | Type | Description |
|---|
messageId | string | ID of the sent message |
Send a generic template private reply (carousel) with images, titles, subtitles, and buttons to a commenter on Instagram. Supports up to 10 elements.
| Parameter | Type | Required | Description |
|---|
recipientType | string | No | Recipient type: 'comment' to privately reply to a comment, or 'user' to DM an Instagram user directly. Defaults to 'comment'. |
commentId | string | No | Instagram comment ID (required when recipient type is "comment") |
recipientId | string | No | Instagram-scoped user ID / IGSID to message directly (required when recipient type is "user") |
elements | string | Yes | JSON array of up to 10 element objects. Each: { "title": "..." (max 80 chars), "subtitle": "...", "image_url": "...", "default_action": { "type": "web_url", "url": "..." }, "buttons": [...] } |
pageId | string | Yes | Facebook Page ID linked to the Instagram Business account |
| Parameter | Type | Description |
|---|
messageId | string | ID of the sent message |
Send a media attachment (image, video, audio, or file) as a private reply to a commenter on Instagram.
| Parameter | Type | Required | Description |
|---|
recipientType | string | No | Recipient type: 'comment' to privately reply to a comment, or 'user' to DM an Instagram user directly. Defaults to 'comment'. |
commentId | string | No | Instagram comment ID (required when recipient type is "comment") |
recipientId | string | No | Instagram-scoped user ID / IGSID to message directly (required when recipient type is "user") |
mediaType | string | Yes | Type of media: image, video, audio, or file |
mediaUrl | string | Yes | Public URL of the media to send |
pageId | string | Yes | Facebook Page ID linked to the Instagram Business account |
| Parameter | Type | Description |
|---|
messageId | string | ID of the sent message |
attachmentId | string | ID of the uploaded attachment (reusable) |
Get the connected Instagram professional account profile
| Parameter | Type | Required | Description |
|---|
| Parameter | Type | Description |
|---|
userId | string | Instagram professional account user_id |
id | string | Graph object id |
username | string | Instagram username |
name | string | Display name |
accountType | string | Business or Media_Creator |
profilePictureUrl | string | Profile picture URL |
followersCount | number | Follower count |
followsCount | number | Following count |
mediaCount | number | Media count |
List recent media on the Instagram professional account
| Parameter | Type | Required | Description |
|---|
igUserId | string | No | Instagram professional account user id (defaults to /me) |
limit | number | No | Max number of media items to return (default 25, max 100) |
after | string | No | Pagination cursor from a previous list_media response |
| Parameter | Type | Description |
|---|
media | array | Media objects from this page |
nextCursor | string | Pagination cursor for the next page |
Get details for a specific Instagram media object
| Parameter | Type | Required | Description |
|---|
mediaId | string | Yes | Instagram media id |
| Parameter | Type | Description |
|---|
id | string | Media id |
caption | string | Caption text |
mediaType | string | IMAGE, VIDEO, or CAROUSEL_ALBUM |
mediaProductType | string | Feed, Reels, or Stories product type |
mediaUrl | string | Instagram media URL when available; use Download Media to persist it |
permalink | string | Permalink to the post |
timestamp | string | ISO timestamp |
likeCount | number | Like count |
commentsCount | number | Comments count |
children | array | Carousel child media IDs |
Download Instagram media into canonical User Files for downstream file inputs (100 MB max per file)
| Parameter | Type | Required | Description |
|---|
mediaId | string | Yes | Instagram media ID to download |
filename | string | No | Optional filename override; carousel items receive an ordered suffix |
| Parameter | Type | Description |
|---|
files | file[] | Downloaded media as canonical User Files, ready for attachment inputs (100 MB max each) |
mediaId | string | Instagram media ID that was downloaded |
mediaType | string | Instagram media type, such as IMAGE, VIDEO, or CAROUSEL_ALBUM |
downloadedCount | number | Number of files downloaded |
List active stories on the Instagram professional account
| Parameter | Type | Required | Description |
|---|
igUserId | string | No | Instagram professional account user id (defaults to /me) |
limit | number | No | Max number of active stories to return (default 25, max 100) |
after | string | No | Pagination cursor from a previous List Stories response |
| Parameter | Type | Description |
|---|
stories | array | Active stories from this page |
nextCursor | string | Pagination cursor |
Create and publish a single JPEG image post from a Studio file (polls until the container is ready)
| Parameter | Type | Required | Description |
|---|
igUserId | string | No | Instagram professional account user id (defaults to /me) |
image | file | Yes | JPEG image uploaded to Studio or referenced from a previous block |
caption | string | No | Post caption (max 2200 characters) |
altText | string | No | Accessibility alt text for the image |
isAiGenerated | boolean | No | Mark the post as AI-generated |
| Parameter | Type | Description |
|---|
containerId | string | Media container ID |
mediaId | string | Published media ID |
statusCode | string | Final container status |
Create and publish a feed video from a Studio file (published as a Reel shared to the feed; polls until ready)
| Parameter | Type | Required | Description |
|---|
igUserId | string | No | Instagram professional account user id (defaults to /me) |
video | file | Yes | Video uploaded to Studio or referenced from a previous block |
caption | string | No | Post caption |
cover | file | No | Optional JPEG cover uploaded to Studio or referenced from a previous block |
| Parameter | Type | Description |
|---|
containerId | string | Media container ID |
mediaId | string | Published media ID |
statusCode | string | Final container status |
Create and publish a Reel from a Studio video file (polls until ready)
| Parameter | Type | Required | Description |
|---|
igUserId | string | No | Instagram professional account user id (defaults to /me) |
video | file | Yes | Reel video uploaded to Studio or referenced from a previous block |
caption | string | No | Reel caption |
cover | file | No | Optional JPEG cover uploaded to Studio or referenced from a previous block |
shareToFeed | boolean | No | Also share the Reel to the main feed |
thumbOffset | number | No | Frame offset in milliseconds for the cover thumbnail |
| Parameter | Type | Description |
|---|
containerId | string | Media container ID |
mediaId | string | Published media ID |
statusCode | string | Final container status |
Publish an image or video story for an Instagram professional account from a Studio file
| Parameter | Type | Required | Description |
|---|
igUserId | string | No | Instagram professional account user id (defaults to /me) |
media | file | Yes | JPEG image or MP4/MOV video uploaded to Studio or referenced from a previous block |
| Parameter | Type | Description |
|---|
containerId | string | Media container ID |
mediaId | string | Published media ID |
statusCode | string | Final container status |
Publish a carousel of 2-10 images or videos from Studio files
| Parameter | Type | Required | Description |
|---|
igUserId | string | No | Instagram professional account user id (defaults to /me) |
media | file[] | Yes | 2-10 media files uploaded to Studio or referenced from previous blocks |
caption | string | No | Carousel caption |
| Parameter | Type | Description |
|---|
containerId | string | Media container ID |
mediaId | string | Published media ID |
statusCode | string | Final container status |
Check the publishing status of a media container
| Parameter | Type | Required | Description |
|---|
containerId | string | Yes | Media container id returned from a create/publish step |
| Parameter | Type | Description |
|---|
containerId | string | Container id |
statusCode | string | EXPIRED, ERROR, FINISHED, IN_PROGRESS, or PUBLISHED |
status | string | Detailed status message when available |
Check the content publishing rate limit usage for the account
| Parameter | Type | Required | Description |
|---|
igUserId | string | No | Instagram professional account user id (defaults to /me) |
| Parameter | Type | Description |
|---|
quotaUsage | number | Number of publishes used in the current window |
config | json | Quota config (quotaTotal, quotaDuration) |
↳ quotaTotal | number | Total publishes allowed in the quota window |
↳ quotaDuration | number | Quota window duration reported by Instagram |
List comments on an Instagram media object
| Parameter | Type | Required | Description |
|---|
mediaId | string | Yes | Instagram media id |
limit | number | No | Max number of comments to return (default 25, max 100) |
after | string | No | Pagination cursor |
| Parameter | Type | Description |
|---|
comments | array | Comments on the media object |
nextCursor | string | Pagination cursor |
Reply to a comment on Instagram media
| Parameter | Type | Required | Description |
|---|
commentId | string | Yes | Comment id to reply to |
message | string | Yes | Reply text |
| Parameter | Type | Description |
|---|
id | string | Created reply comment id |
Hide or unhide a comment on Instagram media
| Parameter | Type | Required | Description |
|---|
commentId | string | Yes | Comment id |
hide | boolean | Yes | True to hide, false to unhide |
| Parameter | Type | Description |
|---|
success | boolean | Whether the hide/unhide succeeded |
Delete a comment on Instagram media
| Parameter | Type | Required | Description |
|---|
commentId | string | Yes | Comment id to delete |
| Parameter | Type | Description |
|---|
success | boolean | Whether the delete succeeded |
Enable or disable comments on an Instagram media object
| Parameter | Type | Required | Description |
|---|
mediaId | string | Yes | Instagram media id |
commentEnabled | boolean | Yes | True to enable comments, false to disable |
| Parameter | Type | Description |
|---|
success | boolean | Whether the update succeeded |
Send the one allowed initial private reply within 7 days of a comment; follow-ups require a recipient response
| Parameter | Type | Required | Description |
|---|
igUserId | string | No | Instagram professional account user id (defaults to /me) |
commentId | string | Yes | Comment id to privately reply to |
message | string | Yes | Private reply text |
| Parameter | Type | Description |
|---|
messageId | string | Sent message id |
recipientId | string | Instagram-scoped recipient id |
List Instagram Direct conversations for the professional account
| Parameter | Type | Required | Description |
|---|
igUserId | string | No | Instagram professional account user id (defaults to /me) |
limit | number | No | Max number of conversations to return (default 25, max 100) |
after | string | No | Pagination cursor |
| Parameter | Type | Description |
|---|
conversations | array | Instagram Direct conversations from this page |
nextCursor | string | Pagination cursor |
List cursor-paginated message references; full details are available only for the 20 most recent messages
| Parameter | Type | Required | Description |
|---|
conversationId | string | Yes | Conversation id from list_conversations |
limit | number | No | Max number of message references to return (default 25, max 100) |
after | string | No | Nested messages pagination cursor |
| Parameter | Type | Description |
|---|
conversationId | string | Conversation id |
messages | array | Message references (id, createdTime). Use Get Message for sender, recipient, and text. |
nextCursor | string | Nested messages pagination cursor |
Get a single Instagram Direct message by id (only recent messages are available)
| Parameter | Type | Required | Description |
|---|
messageId | string | Yes | Message id |
| Parameter | Type | Description |
|---|
id | string | Message id |
createdTime | string | Created timestamp |
fromId | string | Sender Instagram-scoped id |
fromUsername | string | Sender username |
toId | string | Recipient id |
message | string | Message text |
Send a text Direct message. The recipient must have messaged the account first (24h window).
| Parameter | Type | Required | Description |
|---|
igUserId | string | No | Instagram professional account user id (defaults to /me) |
recipientId | string | Yes | Instagram-scoped user id (IGSID) of the recipient |
message | string | Yes | Message text (max 1000 bytes UTF-8) |
| Parameter | Type | Description |
|---|
messageId | string | Sent message id |
recipientId | string | Recipient id |
Get insights metrics for the Instagram professional account
| Parameter | Type | Required | Description |
|---|
igUserId | string | No | Instagram professional account user id (defaults to /me) |
metrics | string | Yes | Comma-separated current metrics (e.g. reach,views,accounts_engaged,likes,comments,saves,shares,total_interactions) |
period | string | Yes | Use day for interaction metrics or lifetime for demographic metrics |
since | string | No | Unix timestamp or date for range start |
until | string | No | Unix timestamp or date for range end |
metricType | string | No | Optional metric_type (e.g. time_series, total_value) |
breakdown | string | No | Optional breakdown dimension |
timeframe | string | No | Required for demographic metrics: this_week or this_month |
| Parameter | Type | Description |
|---|
insights | array | Account insight metrics |
Get insights metrics for a specific Instagram media object
| Parameter | Type | Required | Description |
|---|
mediaId | string | Yes | Instagram media id |
metrics | string | Yes | Comma-separated metrics (e.g. views,reach,likes,comments,saved,shares,total_interactions) |
| Parameter | Type | Description |
|---|
insights | array | Media insight metrics |
Hide or unhide a comment on an Instagram post using the Facebook Page access token, and sync the hidden state to the responding database.
| Parameter | Type | Required | Description |
|---|
commentId | string | Yes | ID of the Instagram comment to hide or unhide |
isHidden | boolean | No | Whether to hide (true) or unhide (false) the comment |
pageId | string | Yes | Facebook Page ID that owns the post |
| Parameter | Type | Description |
|---|
hidden | boolean | Whether the comment is now hidden |
Reply publicly to a comment on an Instagram post using the Facebook Page access token.
| Parameter | Type | Required | Description |
|---|
commentId | string | Yes | ID of the Instagram comment to reply to |
message | string | Yes | Reply message text |
pageId | string | Yes | Facebook Page ID that owns the post |
| Parameter | Type | Description |
|---|
commentId | string | ID of the newly created reply comment |
Send a direct message using the Facebook Page access token — either as a private reply to a commenter or straight to an Instagram user by their user ID (IGSID).
| Parameter | Type | Required | Description |
|---|
recipientType | string | No | Recipient type: 'comment' to privately reply to a comment, or 'user' to DM an Instagram user directly. Defaults to 'comment'. |
commentId | string | No | Instagram comment ID (required when recipient type is "comment") |
recipientId | string | No | Instagram-scoped user ID / IGSID to message directly (required when recipient type is "user") |
message | string | Yes | Message text to send |
pageId | string | Yes | Facebook Page ID linked to the Instagram Business account |
| Parameter | Type | Description |
|---|
messageId | string | ID of the sent message |
Fetch a single Instagram post/media by ID using the Facebook Page access token. Returns media URL, caption, type, timestamps, engagement metrics, and carousel children when applicable.
| Parameter | Type | Required | Description |
|---|
postId | string | Yes | ID of the Instagram media/post to fetch |
pageId | string | Yes | Facebook Page ID linked to the Instagram account |
| Parameter | Type | Description |
|---|
mediaUrl | string | URL of the post image or video |
caption | string | Post caption text |
mediaProductType | string | Media product type (FEED, REELS, STORY) |
mediaType | string | Media type (IMAGE, VIDEO, CAROUSEL_ALBUM) |
timestamp | string | ISO 8601 timestamp when the post was published |
permalink | string | Permanent URL of the post |
likeCount | number | Number of likes on the post |
commentsCount | number | Number of comments on the post |
children | json | Array of carousel child media items (only present for CAROUSEL_ALBUM posts) |
↳ id | string | Child media ID |
↳ mediaUrl | string | Child media URL |
↳ mediaType | string | Child media type (IMAGE or VIDEO) |