Instagram tools
Accounts, posts, reels, comments and transcripts.
Public Instagram data. Each call costs what the data provider charges for it, and the cost line under each tool below gives the number. A question Instagram cannot answer has no tool, rather than a tool that returns nothing.
| 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_profile
One Instagram account: followers, posts and whether it is a business account.
Use when: sizing a creator or a brand, checking a handle, reading a bio and its link before outreach.
Not for: the account's posts, use instagram_get_posts or instagram_get_reels. Posts by topic, use instagram_search_posts.
Returns: Record. platform, kind, id, handle, name, url, bio, verified, followers, following, posts_count, likes, views, location, website, employees, industry, created_at. A field the platform does not publish is null. kind is company for a business account.
Cost: 1 credit. Cached 24 hours.
| Parameter | Default and notes |
|---|---|
handle | Required, with or without the @ |
Also takes provider, max_credits, dry_run: see common parameters.
{
"handle": "gymshark"
}#Get an account's posts
instagram_get_posts
The posts on one Instagram account, newest first.
Use when: "what has this account been posting", judging cadence and engagement before a partnership.
Not for: reels only, use instagram_get_reels. One post in full, use instagram_get_post. Posts by hashtag, use instagram_search_posts.
Returns: List, one page per call. rows[]: platform, id, url, author, author_name, created_at, text (cut at 2000 characters), likes, comments, shares, views, media, duration_s, is_ad. A number the platform does not publish is null. meta.cursor pages the next set.
Cost: 1 credit per page. Cached 6 hours.
| Parameter | Default and notes |
|---|---|
handle | Required |
Also takes cursor, provider, max_credits, dry_run: see common parameters.
{
"handle": "gymshark"
}#Get an account's reels
instagram_get_reels
The reels on one Instagram account, newest first.
Use when: video is what matters: watching a brand's reel cadence, pulling a creator's recent reels.
Not for: every post type, use instagram_get_posts. What is said in a reel, use instagram_get_transcript.
Returns: List, one page per call. rows[]: platform, id, url, author, author_name, created_at, text (cut at 2000 characters), likes, comments, shares, views, media, duration_s, is_ad. A number the platform does not publish is null. meta.cursor pages the next set.
Cost: 1 credit per page. Cached 6 hours.
| Parameter | Default and notes |
|---|---|
handle | Required |
Also takes cursor, provider, max_credits, dry_run: see common parameters.
{
"handle": "gymshark"
}#Get a post or reel
instagram_get_post
One Instagram post or reel with its caption and its engagement.
Use when: a row is worth the detail, or you have a URL and nothing else.
Not for: the comments, use instagram_get_comments. What is said in a reel, use instagram_get_transcript.
Returns: Record. rows[]: platform, id, url, author, author_name, created_at, text (cut at 2000 characters), likes, comments, shares, views, media, duration_s, is_ad. A number the platform does not publish is null.
Cost: 10 credits when the vendor has to fetch the media, 1 when it does not. The estimate is the higher one. Cached 6 hours.
| Parameter | Default and notes |
|---|---|
url | Required, the post or reel URL |
Also takes provider, max_credits, dry_run: see common parameters.
{
"url": "https://www.instagram.com/p/DKSMEpKRd6h/"
}#Get a post's comments
instagram_get_comments
The comments on one Instagram post or reel.
Use when: reading what an audience said, finding the questions a product post keeps getting.
Not for: the post itself, use instagram_get_post. Comments across many posts, which Instagram does not offer.
Returns: List, one page per call. rows[]: platform, id, post_id, author, created_at, text (cut at 2000 characters), likes, replies, depth. depth is 1 for a reply, and replies only come back when you ask for them.
Cost: 1 credit per page, or 15 with include_replies. Cached 6 hours.
| Parameter | Default and notes |
|---|---|
url | Required |
include_replies | False; true costs 15 credits and is charged even when no reply comes back, because the vendor looks up every comment separately |
Also takes cursor, provider, max_credits, dry_run: see common parameters.
{
"url": "https://www.instagram.com/p/DKSMEpKRd6h/"
}#Search posts by hashtag
instagram_search_posts
Instagram posts under one hashtag.
Use when: "who is posting about X on Instagram", watching a campaign hashtag or a product tag.
Not for: free-text search (Instagram search is by hashtag here). One account's posts, use instagram_get_posts.
Returns: List, one page per call, ranked by Instagram. rows[]: platform, id, url, author, author_name, created_at, text (cut at 2000 characters), likes, comments, shares, views, media, duration_s, is_ad. A number the platform does not publish is null. meta.cursor pages the next set.
Cost: 1 credit per page. Cached 6 hours.
| Parameter | Default and notes |
|---|---|
query | Required, the hashtag, with or without the # |
since | "day" | "week" | "month" | "year" | "all", default month |
Also takes cursor, provider, max_credits, dry_run: see common parameters.
{
"query": "#gymshark",
"since": "week"
}#Get a reel's transcript
instagram_get_transcript
What is said out loud in one Instagram reel, as text.
Use when: reading a reel without watching it, pulling the claims out of a creator's video.
Not for: the caption, which instagram_get_post already returns. The numbers, use instagram_get_post.
Returns: Record. 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.
Cost: 1 credit. Cached 30 days.
| Parameter | Default and notes |
|---|---|
url | Required |
language | Optional |
Also takes provider, max_credits, dry_run: see common parameters.
{
"url": "https://www.instagram.com/reel/DKSMEpKRd6h/"
}