π£ Instagram Mentions β UGC & Creator-Discovery Lead Engine
Pricing
$24.99/month + usage
π£ Instagram Mentions β UGC & Creator-Discovery Lead Engine
Scrape Instagram posts mentioning specific users with the Instagram Mentions Scraper. Extract captions, media, usernames, likes, comments, and timestamps. Ideal for brand monitoring, engagement analysis, and influencer research. Fast, reliable, and scalable for bulk scraping.
Pricing
$24.99/month + usage
Rating
0.0
(0)
Developer
Scrapier
Maintained by CommunityActor stats
0
Bookmarked
51
Total users
3
Monthly active users
4 days ago
Last modified
Categories
Share
Instagram Mentions Scraper β Creator Leads & Share of Voice
Instagram Mentions Scraper reads Instagram's tagged-media feed to find every creator who tags a chosen brand handle in a post, then turns that raw feed into ranked, contactable creator leads. Every run can return up to four structured row types β tagged mention posts, deduplicated creator leads, per-brand share-of-voice summaries, and an optional caption-mention supplement β as clean, typed JSON, ready to pass directly to an LLM, index into a vector store, or feed a monitoring pipeline. Point it at one brand handle or several and see, in one dataset, who is actually tagging you.
What is Instagram Mentions Scraper?
Instagram Mentions Scraper is an Apify Actor that queries Instagram's tagged-media endpoint (usertags) for one or more brand username values and returns the creators who tagged that brand in a post β not the brand's own feed, and not a hashtag search. Because every lead is confirmed by Instagram's own tagging system rather than inferred from a keyword or hashtag match, the resulting creator_lead rows and per-brand shareOfVoicePct summaries are the Actor's core differentiator: no hashtag- or keyword-based scraper can produce a tagging-confirmed lead list, because tagging a specific account is a different user action than posting under a hashtag that happens to relate to it. A valid Instagram sessionId cookie is required to actually read the tagged-media feed β resolving a username to its numeric Instagram id can work anonymously, but without a session cookie the mobile-host endpoint that serves the feed returns login_required, and a run yields only empty brand_summary rows with no mention_post or creator_lead rows.
Key capabilities:
- Tagged-media discovery β pages
/api/v1/usertags/{user_id}/feed/on Instagram's mobile host to find every post where the brand is tagged, not just posts mentioning it in a caption. - Creator lead aggregation β dedupes authors by
ownerIdinto rankedcreator_leadrows with tag count, totals, and first/last-seen timestamps. - Author enrichment β optional follower count, biography, external URL, business/public email, category, and bio-parsed contacts (emails, phones, Linktree-style links) per unique creator.
- Real engagement rate β computed only from real like/comment counts and enriched follower counts, never estimated or invented.
- Multi-brand share of voice β track several brand handles in one job and get a
shareOfVoicePctper brand based on tagged-post volume. - Optional AI enrichment β sentiment, topic keywords, brand-safety rating, and language, run over the real caption and preview-comment text of each mention.
π What data can you get with Instagram Mentions Scraper?
The Actor can return four result types in one dataset, distinguished by the type column on every row.
| Result Type | Extracted Fields | Primary Use Case |
|---|---|---|
mention_post | ownerUsername, ownerId, ownerFullName, caption, hashtags, mentions, likesCount, commentsCount, videoUrl, videoDuration, videoPlayCount, displayUrl, taggedUsers, timestamp, engagementRate, sentiment/topics/brandSafety/language (optional) | Auditing individual tagged posts, sentiment and brand-safety review |
creator_lead | ownerUsername, tagCount, totalLikes, totalComments, followerCount, avgEngagementRate, biography, businessEmail, publicEmail, bioEmails, bioPhones, bioLinks, externalUrl, category, firstSeen, lastSeen, postShortCodes | Outreach lists, CRM import, influencer and UGC-creator discovery |
brand_summary | brandUsername, brandUserId, brandFollowerCount, taggedPostCount, uniqueCreators, shareOfVoicePct | Competitive share-of-voice tracking across multiple brands |
caption_mention | Same shape as mention_post, plus discoverySource and matchedBrands | Best-effort discovery of caption @-mentions the tagged-media feed doesn't cover |
Creator leads built from confirmed tags, not hashtags
Every creator_lead row starts life as a real usertags-feed hit, so tagCount reflects how many times that specific account tagged the brand β a signal a keyword or hashtag scraper cannot reproduce, since it has no way to confirm that a post's author actually tagged the target account rather than merely posting near-relevant content. Leads are ranked by tagCount then totalLikes, then enriched (when includeAuthorDetails is on) with follower count, bio, contacts, and an avgEngagementRate averaged from that creator's own tagged posts. postShortCodes lists every tagging post so you can verify the tag yourself before reaching out.
{"type": "creator_lead","isLead": true,"brandUsername": "gopro","ownerId": "123456789","ownerUsername": "some_creator","tagCount": 3,"totalLikes": 5120,"totalComments": 88,"followerCount": 48210,"avgEngagementRate": 10.8,"businessEmail": "hello@example.com","postShortCodes": ["Cabc123", "Cdef456", "Cghi789"]}
Mention posts with real engagement rate and Reels fields
Every mention_post row carries videoUrl and videoDuration when the tagged post is a Reel or video (media_type == 2), plus videoPlayCount for view volume. engagementRate is filled in during author enrichment as (likesCount + commentsCount) Γ· authorFollowerCount, and stays null when the follower count is unavailable rather than being backfilled with a guess. This makes it possible to sort tagged posts by real performance instead of raw like count alone β useful for shortlisting UGC before contacting the creator.
Why not build this yourself?
Instagram exposes no public search API that lets a third party query "who tagged this account" for an account they don't own β the Meta Graph API's own tagged-media endpoint only returns tags on posts belonging to the Business or Creator account whose access token you're using, which is the opposite problem this Actor solves. Reaching the real tagged-media feed instead means bootstrapping web tokens (APP_ID, csrf_token, x_ig_www_claim) from a profile page, then presenting a full Android-app header and cookie set β device id, Android id, Bloks version, a current Instagram β¦ Android user-agent string β to Instagram's mobile private-API host, because a web-token request against that host is what triggers the unsupported_version challenge. Instagram's private-API endpoints are also IP rate-limited, so sustained scraping needs proxy rotation with automatic fallback to a fresh residential IP on 403/429 responses. Maintaining that token bootstrap, device-identity layer, and rotation logic is what this Actor does so you don't have to rebuild it every time Instagram changes its challenge behavior.
What is the difference between an Instagram hashtag scraper and a tagged-mention scraper?
A hashtag scraper searches Instagram's recent-hashtag feed for posts carrying a given #tag and returns whoever posted under it β there is no guarantee any of those posters mentioned or tagged a specific brand at all, only that they used a related hashtag. A tagged-mention scraper like this Actor instead reads the usertags feed for a specific account, returning only posts where that account was explicitly tagged by the author. The distinction matters because a hashtag list is a topic audience, while a tag list is a set of people who took a specific, brand-directed action worth following up on. Instagram Mentions Scraper returns both: the tag-confirmed feed arrives as mention_post/creator_lead rows, and the optional includeHashtagScan supplement adds caption-@mention discovery as caption_mention rows β clearly labeled non-exhaustive, since Instagram has no exhaustive caption-mention search endpoint to query against.
How to scrape Instagram mentions with Instagram Mentions Scraper?
- Open the Actor's page on the Apify Store and start a new run.
- Enter one or more brand handles (or profile URLs) in
usernameβ this is the only required input. - Set the real query controls that apply:
resultsLimitfor tagged posts per brand,onlyPostsNewerThanfor a date cutoff, andincludeAuthorDetailsto enable follower/bio/contact enrichment. - Add an Instagram
sessionIdcookie and leaveproxyConfigurationon its residential-proxy default β the tagged-media feed will not return real posts without a valid session. - Start the run, then download or stream results from the dataset as JSON, CSV, or another supported export format.
Example run input using the Actor's real parameter names:
{"username": ["gopro", "gymshark"],"resultsLimit": 50,"onlyPostsNewerThan": "3 months","includeAuthorDetails": true,"sessionId": "your-instagram-sessionid-cookie","proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }}
How to track multiple brands in one job
username accepts an array, so a single run can track several brand handles at once β the Actor loops over each handle sequentially, scraping its tagged-media feed and aggregating its leads before moving to the next. Because every brand in the array is scraped within the same run, their brand_summary rows share a comparable shareOfVoicePct denominator, which is what makes cross-brand share-of-voice comparison meaningful instead of requiring separate runs stitched together after the fact.
β¬οΈ Input
All fields come directly from the Actor's input schema.
| Parameter | Required | Type | Description | Example Value |
|---|---|---|---|---|
username | Yes | array | Brand username(s) or profile URL(s) to track, one per line. The Actor finds people who tagged these brands; multiple brands enable share-of-voice comparison. | ["gopro"] |
resultsLimit | No | integer | Tagged (mention) posts to collect per brand. Top-level counted rows only β creator-lead rows and enrichment requests are additional. 0 = all available (min 0, max 5000, default 50). | 50 |
onlyPostsNewerThan | No | string (datepicker) | Drop tagged posts older than this. Accepts an absolute date (2026-01-01) or a relative value (3 months, 30 days). Leave empty for no date limit. | "6 months" |
includeAuthorDetails | No | boolean | Fetch follower count, biography, external URL, business/public email, category, parsed bio contacts, and a real engagement rate for each unique creator. Adds one cached, rate-limited request per unique creator. Default true. | true |
includeHashtagScan | No | boolean | Best-effort extra discovery of caption @-mentions via the recent-hashtag feed. Clearly labeled and not exhaustive. Default false. | false |
hashtags | No | array | Hashtags to scan for caption @-mentions (only used when includeHashtagScan is on). Defaults to the brand handles themselves. | ["gopro", "goprohero"] |
aiEnhancement | No | boolean | Run an AI model over each mention's real caption and preview comments to add sentiment, topic keywords, a brand-safety rating, and language. Never invents numeric metrics. Off by default; requires an API key. | false |
aiModel | No | string (enum) | AI model/provider, auto-detected from the name prefix (claude-* = Anthropic, gpt-*/o1/o3 = OpenAI, gemini-* = Google, grok-* = xAI, deepseek-* = DeepSeek, sonar* = Perplexity, mistral-* = Mistral). Default claude-haiku-4-5. | "claude-haiku-4-5" |
aiApiKey | No | string (secret) | API key for the selected AI provider. Used only when aiEnhancement is on. Falls back to the provider's environment variable (e.g. ANTHROPIC_API_KEY) if left empty. | "" |
sessionId | No | string (secret) | Instagram sessionId cookie. Strongly recommended, and required to read the tagged/mention feed β the core feed is fetched from Instagram's mobile host, which returns login_required without a valid session. Username-to-user-id resolution can work anonymously. | "" |
proxyConfiguration | No | object | Proxy settings. Instagram's private-API endpoints are IP rate-limited, so Residential Apify Proxy is strongly recommended; the Actor auto-rotates to a fresh residential IP on 403/429 responses. Defaults to Apify Proxy with the RESIDENTIAL group. | { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] } |
Example JSON input
{"username": ["gopro", "gymshark"],"resultsLimit": 100,"onlyPostsNewerThan": "6 months","includeAuthorDetails": true,"includeHashtagScan": false,"hashtags": [],"aiEnhancement": false,"aiModel": "claude-haiku-4-5","sessionId": "your-instagram-sessionid-cookie","proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }}
Common pitfall: leaving sessionId empty. username-to-user-id resolution can succeed anonymously, but the tagged-media feed itself lives on Instagram's mobile host and returns login_required without a valid session cookie β an anonymous run will still finish, but it produces only empty brand_summary rows with taggedPostCount: 0, never any mention_post or creator_lead rows.
β¬οΈ Output
Results are typed, normalized JSON with a consistent schema across runs, one row per mention_post, creator_lead, brand_summary, or caption_mention item. Datasets are downloadable from the Apify platform in JSON, CSV, Excel, XML, HTML, or RSS. creator_lead rows are also mirrored to a separate per-run creator-leads-<runId> dataset so a lead list can be exported on its own without filtering the mixed default dataset.
Scraped results
[{"type": "mention_post","isLead": false,"brandUsername": "gopro","id": "3412345678901234567","mediaType": "Video","shortCode": "Cabc123XYZ","url": "https://www.instagram.com/p/Cabc123XYZ/","caption": "Chasing waterfalls with my @gopro Hero13 #adventure","hashtags": ["adventure"],"mentions": ["gopro"],"likesCount": 1893,"commentsCount": 42,"videoPlayCount": 15230,"videoUrl": "https://scontent.cdninstagram.com/video123.mp4","videoDuration": 27.4,"displayUrl": "https://scontent.cdninstagram.com/thumb123.jpg","timestamp": "2026-06-20T14:03:00Z","ownerUsername": "some_creator","ownerId": "123456789","ownerIsVerified": false,"authorFollowerCount": 48210,"engagementRate": 4.0121,"sentiment": null,"scrapedAt": "2026-07-02T17:40:00Z"},{"type": "mention_post","isLead": false,"brandUsername": "gopro","id": "3412345678901234999","mediaType": "Image","shortCode": "Cdef456ABC","url": "https://www.instagram.com/p/Cdef456ABC/","caption": "Beach day with the @gopro","hashtags": [],"mentions": ["gopro"],"likesCount": 620,"commentsCount": 11,"ownerUsername": "another_creator","ownerId": "987654321","authorFollowerCount": 9800,"engagementRate": 6.4388,"scrapedAt": "2026-07-02T17:41:00Z"},{"type": "creator_lead","isLead": true,"brandUsername": "gopro","ownerId": "123456789","ownerUsername": "some_creator","ownerFullName": "Some Creator","tagCount": 3,"totalLikes": 5120,"totalComments": 88,"firstSeen": "2026-02-11T09:12:00Z","lastSeen": "2026-06-20T14:03:00Z","followerCount": 48210,"biography": "Adventure filmmaker | hello@example.com","externalUrl": "https://linktr.ee/somecreator","businessEmail": "hello@example.com","bioEmails": ["hello@example.com"],"bioPhones": [],"bioLinks": ["https://linktr.ee/somecreator"],"category": "Video Creator","avgEngagementRate": 10.8,"postShortCodes": ["Cabc123XYZ", "Cdef456DEF", "Cghi789JKL"],"scrapedAt": "2026-07-02T17:40:00Z"},{"type": "brand_summary","isLead": false,"brandUsername": "gopro","brandUserId": "1234567","brandFollowerCount": 21000000,"taggedPostCount": 50,"uniqueCreators": 31,"shareOfVoicePct": 62.5,"scrapedAt": "2026-07-02T17:41:30Z"}]
How can I use the data extracted with Instagram Mentions Scraper?
- UGC and influencer marketing managers: filter
creator_leadrows bytagCountandavgEngagementRateto shortlist creators who already tag your brand organically, then reach out directly usingbusinessEmail,publicEmail, orbioEmails. - Brand and social-listening teams: monitor
mention_postrows for volume and (withaiEnhancementon)sentiment/brandSafetyto catch a negative-sentiment or brand-safety-flagged tag early. - AI engineers and LLM developers: have an agent call the Actor with a brand handle, receive structured
mention_post/creator_leadJSON, and pass it to a model as grounded context for a brand-monitoring or outreach-drafting assistant. - Market researchers: compare
shareOfVoicePctanduniqueCreatorsacross multiple brands tracked in the same run to quantify organic tagging activity between competitors.
π How do you monitor share of voice over time?
Share-of-voice monitoring means running the same set of brand handles on a recurring schedule and comparing each new brand_summary row against the previous run's row for the same brandUsername. Because taggedPostCount, uniqueCreators, and shareOfVoicePct are all recomputed fresh from that run's tagged-media feed, a rising shareOfVoicePct for one brand against flat or falling numbers for the others is a genuine signal that organic tagging activity is shifting toward it. The fields worth diffing between runs are shareOfVoicePct and taggedPostCount on brand_summary rows for volume, and avgEngagementRate plus tagCount on creator_lead rows to see whether existing creators are tagging the brand more or less over time, or whether the top of the leaderboard is turning over with new creators.
A practical workflow: run the same username array weekly, keep each run's brand_summary rows keyed by brandUsername and the run date, then alert when shareOfVoicePct for a tracked brand moves more than a few points against a competitor in the same array, or when a previously silent brand's taggedPostCount jumps from zero. This Actor has no built-in scheduler of its own β recurring runs are set up with Apify's Schedule feature on the Actor's page, which triggers a fresh run on the interval you configure and writes each run's results to its own dataset for comparison.
Integrate Instagram Mentions Scraper and automate your workflow
Instagram Mentions Scraper works with any language or tool that can send an HTTP request, and with the Apify API and client libraries for scripted access.
REST API with Python
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run_input = {"username": ["gopro", "gymshark"],"resultsLimit": 50,"includeAuthorDetails": True,"sessionId": "your-instagram-sessionid-cookie","proxyConfiguration": {"useApifyProxy": True, "apifyProxyGroups": ["RESIDENTIAL"]},}run = client.actor("instagram-mentions-creator-leads").call(run_input=run_input)for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["type"], item.get("ownerUsername") or item.get("brandUsername"))
MCP for query-grounded AI agents
Any Apify Actor, including this one, is callable through Apify's hosted MCP server at mcp.apify.com, or locally via npx @apify/actors-mcp-server with an APIFY_TOKEN environment variable. An MCP-connected agent can call the Actor as a tool β passing a username array as the query β receive structured mention_post/creator_lead JSON back, and generate a grounded answer about who is tagging a brand, without the agent developer writing any Instagram-specific scraping code.
Scheduled monitoring and delivery
The Actor itself has no push-webhook feature, but the Apify platform supports scheduled runs (via Schedules) and run-completion webhooks for any Actor, including this one β so a recurring share-of-voice check can be wired to notify Slack, trigger a Zapier/Make workflow, or write to a data warehouse whenever a scheduled run finishes.
Is it legal to scrape Instagram mention data?
Scraping publicly available Instagram data is generally lawful in the United States β courts have held that accessing data that is not gated behind a login is not a violation of the Computer Fraud and Abuse Act, most notably in hiQ Labs, Inc. v. LinkedIn Corp., 9th Circuit, 2019, which concerned scraping public LinkedIn profile data. Instagram Mentions Scraper returns only what a public tagged-media feed, profile page, and hashtag feed already expose to any visitor. That said, Instagram's own Terms of Use restrict automated data collection, and this Actor's sessionId cookie input means a run is made under your Instagram account, so you are bound by those terms regardless of the legal status of scraping generally. Where extracted fields include personal data β businessEmail, publicEmail, bioEmails, bioPhones β GDPR and CCPA obligations apply to how you store and use that data downstream. Consult your legal team for commercial use cases involving bulk data storage.
β Frequently asked questions
Can I filter mentions by date?
Yes. Set onlyPostsNewerThan to an absolute date (2026-01-01) or a relative value (3 months, 30 days) and the Actor stops paginating a brand's tagged-media feed once it reaches posts older than that boundary.
How many tagged posts does the Actor collect per brand?
resultsLimit controls it directly, from 0 to 5000 posts per brand (default 50). Setting it to 0 collects all available tagged posts for that brand, subject to Instagram's own pagination behavior and the Actor's internal safety cap of 200 pages of the tagged-media feed when resultsLimit is 0.
How does Instagram Mentions Scraper handle Instagram's anti-bot measures?
It bootstraps web tokens from a profile page, presents a stable-per-run Android device identity (device id, Android id, current Instagram app user-agent) to Instagram's mobile private-API host, and rotates to a fresh residential proxy on 403/429 responses, retrying up to 3 proxy rotations per request. When Instagram returns a genuine login or device-challenge response (challenge_required, unsupported_version, checkpoint_required), the Actor stops that endpoint honestly and logs the reason instead of retrying indefinitely.
Does Instagram Mentions Scraper extract creator leads confirmed by real tags, not hashtag guesses?
Yes β every creator_lead row is built only from authors who appear in the brand's real usertags feed, with tagCount and postShortCodes pointing at the exact tagging posts. It is absent, or reduced to an unenriched row, only when includeAuthorDetails is off or when a specific creator's profile enrichment request fails; the missing fields are emitted as null, never guessed.
How many results does Instagram Mentions Scraper return per query?
Per brand, up to resultsLimit tagged posts (max 5000, or unlimited with 0 up to the internal 200-page pagination cap). creator_lead rows are additional and depend on how many unique authors tagged the brand within that post set; there is no separate cap on lead count.
Do I need to log into Instagram myself?
You don't provide a username and password β you provide a sessionId cookie value from an already-authenticated Instagram session. The Actor uses it only as an authentication cookie against Instagram's mobile API host; it is never required for username-to-user-id resolution alone, only for reading the actual tagged-media feed.
How do I use Instagram Mentions Scraper to monitor share of voice over time?
Run the same username array on a recurring Apify Schedule, keep each run's brand_summary rows (shareOfVoicePct, taggedPostCount, uniqueCreators) keyed by brand and run date, and alert when a tracked brand's shareOfVoicePct moves significantly against the others in the same array.
Does Instagram Mentions Scraper work with Claude, ChatGPT, and AI agent frameworks?
Yes. It's reachable through Apify's hosted MCP server at mcp.apify.com for MCP-native clients, and callable as a standard HTTP endpoint by any agent framework that can issue a request and parse JSON β which enables a grounded agent that retrieves live tagged-mention data before answering a brand-monitoring question.
How does Instagram Mentions Scraper compare to other Instagram scrapers?
As observed on the Apify Store on 2026-07-26, claredigital/ugc-creator-finder and coregent/instagram-creator-leads-scraper both discover creators from hashtag, keyword, or seed-account searches, and caprolok/instagram-leads-generator discovers leads from a keyword-and-location search β none of the three read Instagram's tagged-media (usertags) feed for a specific brand handle. Instagram Mentions Scraper's creator_lead and brand_summary rows are instead built only from posts where the target brand was actually tagged, and it adds a multi-brand shareOfVoicePct comparison that a single-brand hashtag or keyword search cannot produce.
Can I use Instagram Mentions Scraper without managing proxies or platform credentials?
Yes for proxies β Apify Residential Proxy is enabled by default in proxyConfiguration and the Actor rotates it automatically on 403/429 responses, so no separate proxy account is needed. You do need to supply your own Instagram sessionId cookie, since the tagged-media feed is only reachable with a real authenticated session.
Your feedback
Found a bug or missing a field? Let us know through the Issues tab on this Actor's Apify Store page β it's actively monitored and helps prioritize fixes and new fields.