Instagram tools
Read Instagram accounts, posts, reels, comments and transcripts from your agent: each tool's parameters, what it returns and what it costs.
Read public Instagram accounts, posts, reels and comments, and the transcripts of reels. To size up a creator or a brand, start with instagram_get_profile, then their posts or reels. To see who is posting about a topic, search a hashtag with instagram_search_posts.
Each call costs what the data provider charges for it, and each tool below gives its cost. If Instagram has no way to answer a question, such as free-text search, there is no tool for it.
To connect these tools to your agent, see the Instagram MCP page.
| Tool | What it does | Cost |
|---|---|---|
instagram_get_profile | Get an Instagram account | From 1 credit |
instagram_get_posts | Get an account's posts | From 1 credit |
instagram_get_reels | Get an account's reels | From 1 credit |
instagram_get_post | Get a post or reel | From 10 credits |
instagram_get_comments | Get a post's comments | From 1 credit |
instagram_search_posts | Search posts by hashtag | From 1 credit |
instagram_get_transcript | Get a reel's transcript | From 1 credit |
Get an Instagram account
instagram_get_profileOne Instagram account: followers, posts and whether it is a business account.
Sizing a creator or a brand, checking a handle, reading a bio and its link before outreach.
- The account's posts, use
instagram_get_postsorinstagram_get_reels. - Posts by topic, use
instagram_search_posts.
One record. The account's handle, name, bio, verified, followers, following, website, links (its other bio links), email and phone (a business account's public contact buttons) and related (accounts Instagram suggests beside it), with other profile fields where Instagram fills them. null or empty = the platform does not publish it. posts_count is null: a signed-out visitor is shown 12 posts whatever the account has, so count posts from instagram_get_posts. kind is company only when Instagram flags a business account; many brands use a creator-style professional account and read person, so judge a brand by industry and bio.
1 credit. Cached 24 hours.
Parameters
| Parameter | Default and notes |
|---|---|
handle | The account's handle, with or without the @. |
It also takes the common parameters max_credits and dry_run.
{
"handle": "gymshark"
}Get an account's posts
instagram_get_postsThe posts on one Instagram account, newest first.
"what has this account been posting", judging cadence and engagement before a partnership.
- Reels only, use
instagram_get_reels. - One post in full, use
instagram_get_post. - Posts by hashtag, use
instagram_search_posts.
A list. Each row has posts with author and author_followers, created_at, text (cut at 2000 characters), likes, comments, shares, saves, views, media, duration_s, links, transcript and top_comments[], plus collaborators (co-authors) and tagged (the accounts tagged in the media). null or empty = the platform does not publish it. likes is null when the owner hides like counts.
1 credit per page. Cached 6 hours.
Parameters
| Parameter | Default and notes |
|---|---|
handle | The account's handle, with or without the @. |
It also takes the common parameters cursor, max_credits and dry_run.
{
"handle": "gymshark"
}Get an account's reels
instagram_get_reelsThe reels on one Instagram account, newest first.
Video is what matters: watching a brand's reel cadence, pulling a creator's recent reels.
- Every post type, use
instagram_get_posts. - What is said in a reel, use
instagram_get_transcript.
A list. Each row has reels with author and author_followers, created_at, text (cut at 2000 characters), likes, comments, shares, saves, views, media, duration_s, links, transcript and top_comments[], plus collaborators (co-authors), tagged (the accounts tagged in the media) and music (the audio). null or empty = the platform does not publish it. likes is null when the owner hides like counts.
1 credit per page. Cached 6 hours.
Parameters
| Parameter | Default and notes |
|---|---|
handle | The account's handle, with or without the @. |
It also takes the common parameters cursor, max_credits and dry_run.
{
"handle": "gymshark"
}Get a post or reel
instagram_get_postOne Instagram post or reel with its caption and its engagement.
A row is worth the detail, or you have a URL and nothing else.
- The comments, use
instagram_get_comments. - What is said in a reel, use
instagram_get_transcript.
One record with Each row has the one post, with author and author_followers, created_at, text (cut at 2000 characters), likes, comments, shares, saves, views, media, duration_s, links, transcript and top_comments[]. top_comments are the first comments, author_followers the owner's following, and is_ad is true for a paid partnership. null or empty = the platform does not publish it. likes is null when the owner hides like counts.
10 credits when the vendor has to fetch the media, 1 when it does not. The estimate is the higher one. Cached 6 hours.
Parameters
| Parameter | Default and notes |
|---|---|
url | Required. The full URL of an Instagram post or reel. |
It also takes the common parameters max_credits and dry_run.
{
"url": "https://www.instagram.com/p/DKSMEpKRd6h/"
}Get a post's comments
instagram_get_commentsThe comments on one Instagram post or reel.
Reading what an audience said, finding the questions a product post keeps getting.
- The post itself, use
instagram_get_post. - Comments across many posts, which Instagram does not offer.
A list. Each row has one comment each: author, created_at, text (cut at 2000 characters), likes, replies, parent_id (the comment a reply answers) and depth (1 for a reply). Replies only come back when you ask for them.
1 credit per page, or 15 with include_replies. Cached 6 hours.
Parameters
| Parameter | Default and notes |
|---|---|
url | Required. The full URL of an Instagram post or reel. |
include_replies | Default false. Also fetch the replies under each comment. Costs 15 credits, charged even when there are none. |
It also takes the common parameters cursor, max_credits and dry_run.
{
"url": "https://www.instagram.com/p/DKSMEpKRd6h/"
}Search posts by hashtag
instagram_search_postsInstagram posts under one hashtag.
"who is posting about X on Instagram", watching a campaign hashtag or a product tag.
- Free-text search (Instagram search is by hashtag here: a phrase is run together into one tag, "gym wear" searches #gymwear).
- One account's posts, use
instagram_get_posts.
A list, ranked by Instagram. Each row has posts with author and author_followers, created_at, text (cut at 2000 characters), likes, comments, shares, saves, views, media, duration_s, links, transcript and top_comments[], plus music (the audio); top_comments are the first comments, where Instagram sends them. null or empty = the platform does not publish it. Search does not say when an owner hides like counts, which then read exactly 3: leave those rows out of engagement rates.
1 credit per page. Cached 6 hours.
Parameters
| Parameter | Default and notes |
|---|---|
query | Required. One hashtag, with or without the #; with several, only the first is searched. A phrase is run together into one tag. |
since | One of day, week, month, year, all. How far back to search. Default month. |
It also takes the common parameters cursor, max_credits and dry_run.
{
"query": "#gymshark",
"since": "week"
}Get a reel's transcript
instagram_get_transcriptWhat is said out loud in one Instagram reel, as text.
Reading a reel without watching it, pulling the claims out of a creator's video.
- The caption, which
instagram_get_postalready returns. - The numbers, use
instagram_get_post.
One record with platform, url, language, text (the full transcript, uncut). NoData when the reel carries no speech. The vendor transcribes reels up to two minutes long; a longer one is refused as InvalidTarget with the reason.
1 credit. Cached 30 days.
Parameters
| Parameter | Default and notes |
|---|---|
url | Required. The full URL of an Instagram reel. |
language | Language code of the transcript to prefer, when the platform has several. |
It also takes the common parameters max_credits and dry_run.
{
"url": "https://www.instagram.com/reel/DKSMEpKRd6h/"
}