Tools

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.

ToolWhat it doesCost
instagram_get_profileGet an Instagram accountFrom 1 credit
instagram_get_postsGet an account's postsFrom 1 credit
instagram_get_reelsGet an account's reelsFrom 1 credit
instagram_get_postGet a post or reelFrom 10 credits
instagram_get_commentsGet a post's commentsFrom 1 credit
instagram_search_postsSearch posts by hashtagFrom 1 credit
instagram_get_transcriptGet a reel's transcriptFrom 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.

ParameterDefault and notes
handleRequired, with or without the @

Also takes provider, max_credits, dry_run: see common parameters.

JSON
{
  "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.

ParameterDefault and notes
handleRequired

Also takes cursor, provider, max_credits, dry_run: see common parameters.

JSON
{
  "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.

ParameterDefault and notes
handleRequired

Also takes cursor, provider, max_credits, dry_run: see common parameters.

JSON
{
  "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.

ParameterDefault and notes
urlRequired, the post or reel URL

Also takes provider, max_credits, dry_run: see common parameters.

JSON
{
  "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.

ParameterDefault and notes
urlRequired
include_repliesFalse; 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.

JSON
{
  "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.

ParameterDefault and notes
queryRequired, 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.

JSON
{
  "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.

ParameterDefault and notes
urlRequired
languageOptional

Also takes provider, max_credits, dry_run: see common parameters.

JSON
{
  "url": "https://www.instagram.com/reel/DKSMEpKRd6h/"
}