Instagram Tagged & Mentions Posts: Hashtag & Related Profiles
Pricing
$19.99/month + usage
Instagram Tagged & Mentions Posts: Hashtag & Related Profiles
Instagram Tagged Mentions Posts Scraper collects posts where a profile is tagged or mentioned, capturing captions, media URLs, hashtags, timestamps, and engagement metrics. Ideal for brand monitoring, influencer analysis, user-generated content research, and automated Instagram insights
Pricing
$19.99/month + usage
Rating
0.0
(0)
Developer
SimpleAPI
Maintained by CommunityActor stats
0
Bookmarked
21
Total users
2
Monthly active users
7 days ago
Last modified
Categories
Share
Instagram Tagged Posts Scraper — Mentions, Hashtag and Profile Data
Extract every Instagram post where a profile is tagged or @-mentioned — pulled from three real Instagram surfaces in one run: the account's own posts, Instagram's actual Tagged tab (GraphQL, not a guess), and, optionally, a campaign hashtag or a network of related/similar accounts. Each row returns post_id, caption, hashtags, allMentions, tagged_users, owner, like_count, comment_count, and discoveryMethod. Built for brand-protection teams, social-listening agencies, and researchers who need structured JSON instead of manual tab-scrolling.
What is Instagram Tagged Posts Scraper — Mentions, Hashtag and Profile Data?
It's an Apify Actor that finds Instagram posts tagging or mentioning one or more target profiles and returns them as structured dataset rows. The default mode runs fully logged-out — no Instagram account, cookie, or API key required. Two optional modes extend the search: an authenticated hashtag/campaign-discovery mode, and a logged-out related-profile network expansion.
- Discovers posts three ways per target profile: parsing the account's own post captions for
#hashtags/@mentions, and pulling Instagram's real Tagged-tab feed (PolarisProfileTaggedTabContentQueryGraphQL) - Optionally expands to each target's real "related/similar accounts" (
edge_related_profiles/edge_chaining) and can scan those accounts' own posts for the same tag/mention - Optionally scans a campaign hashtag via Instagram's authenticated
top_serpsearch and flags which target usernames each result tags or mentions - Returns identifying and engagement fields:
owner,tagged_users,mentioned_user,like_count,comment_count,video_view_count,latest_comments - Real, wired comment-count and proxy controls — not hardcoded fallbacks
- Downloadable as JSON, CSV, Excel, or an HTML table directly from the Apify dataset
What data can I extract with Instagram Tagged Posts Scraper — Mentions, Hashtag and Profile Data?
Every run returns post, profile, and discovery-provenance data in one flat dataset — the table below lists the fields exposed in the Actor's default dataset view.
| Field | Example Value | Use Case |
|---|---|---|
type | "related_profile" | Distinguishes related-profile and hashtag-discovery rows from post rows |
discoveryMethod | "tagged_feed" | Traces which mechanism found the row: own_posts, tagged_feed, related_profile_scan, related_profile_expansion, hashtag_discovery |
post_id | "3452981726400981234" | Unique media identifier for deduplication |
short_code | "C9x7ZqRSy2A" | Builds the direct post URL (instagram.com/p/{short_code}/) |
post_type | "tagged" | Separates genuinely tagged posts from caption-mentioned posts |
like_count | 18420 | Engagement ranking |
comment_count | 312 | Engagement ranking |
video_view_count | 154200 | Reel/video reach signal |
post_date | "2026-07-18T14:32:07.000Z" | Timeline / recency filtering |
display_url | "https://scontent.cdninstagram.com/.../123.jpg" | Thumbnail/media preview |
caption | "Huge thanks to @mrbeast for the shoutout! #collab" | Source text for hashtag/mention parsing |
hashtags | ["collab"] | Campaign/topic tracking |
allMentions | ["mrbeast"] | Every @-handle found in the caption, not just the target |
owner | { "username": "fan_page_daily", ... } | Who posted the tag/mention |
latest_comments | [{ "text": "This is amazing!", ... }] | Comment-level sentiment/context |
tagged_users | [{ "username": "mrbeast", "full_name": "MrBeast" }] | Confirms exactly who Instagram's own tag data names |
mentioned_user | "mrbeast" | The target this row was matched against |
matchedTargetUsernames | ["mrbeast"] | Hashtag-discovery mode only: which targets a hashtag post tags/mentions |
hashtagQueried | "mrbeastchallenge" | Hashtag-discovery mode only: the campaign tag scanned |
sourceUsername | "mrbeast" | Related-profile rows only: the seed profile this suggestion came from |
username | "beast_philanthropy" | Related-profile rows only: the suggested account's handle |
full_name | "Beast Philanthropy" | Display name for the row's profile |
is_verified | true | Blue-check status |
is_affiliate | false | Instagram affiliate-content flag |
is_paid_partnership | true | Branded-content flag |
sponsor_user | [{ "username": "some_brand" }] | Named sponsor(s) on paid-partnership posts |
success | true | Row was extracted cleanly (failed extractions are never pushed) |
The dataset view above is a subset. The full JSON pushed to each post row (via the API or "Download dataset") also carries is_ad, alt (accessibility caption), video_duration, video_url, video_play_count, and a fuller owner object (is_private, edge_followed_by.count, edge_owner_to_timeline_media.count, and more) — see the Output sample below for the complete shape.
Engagement and media data
like_count, comment_count, video_view_count, and video_play_count give a per-post engagement snapshot; display_url and video_url link straight to the media. latest_comments (capped by maxCommentsPerPost) returns each comment's text, owner, and like count for quick sentiment scanning without opening the post. Paid-partnership posts additionally carry is_paid_partnership, is_affiliate, and sponsor_user — useful for spotting undisclosed or third-party branded content tagging your account, since sponsor_user names the actual declared sponsor rather than just flagging that a partnership exists.
Targeting and discovery data
discoveryMethod is the core segmentation field — filter it to isolate posts found via the real Tagged-tab feed (tagged_feed) from ones found only by caption parsing (own_posts), a related-profile scan (related_profile_scan), or hashtag discovery (hashtag_discovery). hashtagQueried and matchedTargetUsernames let you group hashtag-discovery rows by campaign and by which target they hit, while sourceUsername groups related-profile rows back to the seed account that surfaced them.
How does Instagram Tagged Posts Scraper — Mentions, Hashtag and Profile Data differ from the official Instagram API?
Instagram's Graph API exposes tagged/mentioned media only through GET /{ig-user-id}/tags and GET /{ig-user-id}/mentioned_media — both scoped to the caller's own authenticated Business or Creator account. There is no way to pull another public profile's tagged posts through the official API at all.
| Feature | Instagram Graph API | This Actor |
|---|---|---|
| Access scope | Only your own authenticated Business/Creator account | Any public Instagram username or profile URL |
| Account type required | Business or Creator account, Facebook App Review | None for the default mode; a personal sessionid only for hashtag mode |
| Hashtag/campaign search | Restricted recently_searched_hashtags flow with tight rolling caps | hashtagsToMonitor + sessionid, logged-in top_serp search |
| Related/similar-account discovery | Not exposed | expandRelatedProfiles via Instagram's own edge_related_profiles/edge_chaining |
| Caption hashtag/mention parsing | Not provided — raw caption text only | hashtags[] and allMentions[] pre-extracted on every row |
| Setup | Facebook Developer app, review process, token refresh cycle | Run the Actor with a username list |
| Output format | Raw Graph API JSON per endpoint | Normalized dataset rows, ready for JSON/CSV/Excel export |
Why can't I just pull any account's tagged posts through the Graph API?
The Graph API's /tags and /mentioned_media endpoints are scoped to the authenticated account itself — Instagram will not return another business's or creator's tagged feed to your access token, by design. Monitoring who tags your brand across the platform, or checking what a competitor is tagged in, isn't possible through the official API at all. This Actor covers that gap by reading the same public Tagged-tab surface Instagram's own website uses, for any public username, without that account's login credentials.
Use the Graph API when you run a Business/Creator account and only need your own tagged/mentioned feed inside an approved app. Use this Actor for profiles you don't control, hashtag-campaign coverage, or related-account network data.
How to use data extracted from Instagram?
Brand monitoring teams
Set targetProfiles to your brand's handle(s) and leave expandRelatedProfiles off for a fast run. The tagged_feed and own_posts rows surface every real tag and caption mention, with owner, caption, like_count, and is_paid_partnership telling you who's talking about the brand, how popular the post is, and whether it's a paid collaboration worth a compliance check. Filter post_type to tagged to isolate posts where Instagram itself confirms the tag, versus mentioned posts that only reference the handle in text.
Agencies running client audits
Agencies managing several client accounts can pass all client handles into one targetProfiles run and split the output by mentioned_user/owner.username per client. Re-running on a schedule and diffing post_id values against the prior run's dataset turns this into a recurring tagged-mention audit without rebuilding the query each time.
Market and trend research
Turn on hashtagsToMonitor with a campaign or niche hashtag and a sessionid to pull hashtag_discovery rows independent of any specific target — every post under that tag, with hashtags[], allMentions[], and engagement fields already parsed. Aggregating like_count and comment_count across those rows gives a quick read on which creators and content angles are driving engagement inside a hashtag community.
AI agents and automated pipelines
Because every field is flat, typed JSON, an agent can call this Actor as a tool, filter on discoveryMethod and post_type, and hand caption/allMentions straight to a downstream classifier for brand-safety or sentiment scoring — no HTML parsing required on the agent's side.
🔼 Input sample
All 10 input parameters are optional — the Actor runs with no input at all (defaulting to mrbeast, 20 posts).
| Parameter | Required | Type | Description | Example Value |
|---|---|---|---|---|
targetProfiles | No | array | Instagram usernames or profile URLs to find tagged/mentioned posts for | ["mrbeast"] |
maxPostsPerProfile | No | integer (10–1000) | Max posts to scrape per target — own posts plus real tagged-feed posts | 20 |
maxCommentsPerPost | No | integer (1–50) | How many latest comments to fetch per post | 5 |
expandRelatedProfiles | No | boolean (default false) | Fetch Instagram's real related/similar accounts for each target and emit them as rows | true |
maxRelatedProfiles | No | integer (1–20) | How many related profiles to fetch per target (used only when expansion is on) | 5 |
scanRelatedProfilesForTags | No | boolean (default false) | Also scan each related profile's own posts for a tag/mention of the target | true |
hashtagsToMonitor | No | array | Campaign/brand hashtags to scan for posts tagging or mentioning your targets (requires sessionid) | ["mrbeastchallenge"] |
sessionid | No | string (secret) | Logged-in Instagram sessionid cookie — required ONLY if hashtagsToMonitor is non-empty | "71234567%3Aabc123..." |
hashtagResultsLimit | No | integer (1–200) | Max matching posts to return per hashtag scanned | 30 |
proxyConfig | No | object | Proxy configuration for all logged-out requests | { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] } |
{"targetProfiles": ["mrbeast", "https://www.instagram.com/nike/"],"maxPostsPerProfile": 30,"maxCommentsPerPost": 5,"expandRelatedProfiles": true,"maxRelatedProfiles": 5,"scanRelatedProfilesForTags": false,"hashtagsToMonitor": [],"sessionid": "","hashtagResultsLimit": 30,"proxyConfig": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }}
Common pitfall: hashtagsToMonitor silently does nothing without sessionid — the run logs a warning and skips hashtag discovery entirely while every other (logged-out) mode continues normally. It won't fail the run, so a missing session is easy to overlook if you're only checking the dataset item count instead of the log.
🔽 Output sample
Every extracted post is pushed as one flat JSON record under the row_result charged event — failed extractions are logged but never pushed, so you're never billed for a row with no usable data. Results are available as JSON, CSV, Excel, or an HTML table from the dataset.
{"post_id": "3452981726400981234","short_code": "C9x7ZqRSy2A","is_affiliate": false,"is_paid_partnership": true,"is_ad": false,"like_count": 18420,"comment_count": 312,"video_view_count": 154200,"video_play_count": 154200,"post_date": "2026-07-18T14:32:07.000Z","display_url": "https://scontent.cdninstagram.com/v/t51.2885-15/123_n.jpg","alt": "Photo by fan_page_daily","caption": "Huge thanks to @mrbeast for the shoutout! #collab #creator","video_duration": 0.0,"video_url": "","sponsor_user": [{ "username": "some_brand" }],"owner": {"id": "5321498760","username": "fan_page_daily","is_verified": false,"profile_pic_url": "https://scontent.cdninstagram.com/v/t51.2885-19/456_n.jpg","blocked_by_viewer": false,"restricted_by_viewer": null,"followed_by_viewer": false,"full_name": "Fan Page Daily","has_blocked_viewer": false,"is_embeds_disabled": false,"is_private": false,"is_unpublished": false,"requested_by_viewer": false,"pass_tiering_recommendation": true,"edge_owner_to_timeline_media": { "count": 842 },"edge_followed_by": { "count": 213500 }},"latest_comments": [{"id": "17998877665544","text": "This is amazing!","created_at": 1721304000,"did_report_as_spam": false,"owner": { "id": "998877", "is_verified": false, "profile_pic_url": "", "username": "some_viewer" },"viewer_has_liked": false,"edge_liked_by": { "count": 4 }}],"post_type": "tagged","tagged_users": [{ "user_id": "12345678", "username": "mrbeast", "full_name": "MrBeast" }],"mentioned_user": null,"hashtags": ["collab", "creator"],"allMentions": ["mrbeast"],"discoveryMethod": "tagged_feed","success": true}
How do you filter and target specific posts?
Targeting starts with the choice between profile mode and hashtag mode. targetProfiles (usernames or URLs) drives the default, fully logged-out search — the Actor checks each target's own captions and Instagram's real Tagged-tab feed. hashtagsToMonitor switches on campaign-level discovery instead: with a sessionid supplied, it scans a hashtag's top_serp results and, if targetProfiles is also set, keeps only posts that actually tag or mention one of them (matchedTargetUsernames); leave targetProfiles empty and it returns every post under the hashtag as a standalone monitor.
Scope is controlled per mode: maxPostsPerProfile (10–1000) caps own-posts and tagged-feed volume per target, maxCommentsPerPost (1–50) caps how deep comment extraction goes per post, and hashtagResultsLimit (1–200) caps hashtag-mode results per tag. Network expansion is its own scope control — expandRelatedProfiles plus maxRelatedProfiles (1–20) decides how far the related-account graph extends per target, and scanRelatedProfilesForTags decides whether those related accounts also get searched for the same tag/mention, at 10 posts each.
Brand mentions only, logged-out:
{ "targetProfiles": ["mrbeast"], "maxPostsPerProfile": 50, "maxCommentsPerPost": 3 }
Widen the search to the account's network:
{ "targetProfiles": ["mrbeast"], "expandRelatedProfiles": true, "maxRelatedProfiles": 10, "scanRelatedProfilesForTags": true }
Campaign hashtag monitor, matched against specific brands:
{ "targetProfiles": ["mrbeast"], "hashtagsToMonitor": ["mrbeastchallenge"], "sessionid": "71234567%3Aabc123...", "hashtagResultsLimit": 100 }
▶️ Want to try other Instagram scrapers?
| Scraper Name | What it extracts |
|---|---|
| Instagram Tagged Posts Scraper: Videos, Carousels & Reels Info | Tagged posts enriched with direct video/Reel URLs, play counts, music info, and normalized per-slide carousel breakdowns — no hashtag or related-profile modes |
| Instagram Mentions Scraper: Sentiment Analysis | Inbound @-mention posts scored for sentiment, topics, and emoji polarity, with optional AI-model enrichment |
| Instagram Hashtag Scraper: Content Planner | Turns a hashtag into a best-time-to-post histogram plus recurring caption keywords (requires a sessionid) |
| Instagram Related Person Scraper With Profile Enrichment | Related/suggested profiles enriched with follower counts, bio, verified and private status |
| Instagram Followers Scraper & Related Profile Expansion | Real followers per profile plus related-account audience-overlap scoring (sharedAudiencePct) |
| Instagram Related Hashtag Stats Scraper By Keyword Search | Turns a niche keyword into candidate hashtags with real postsCount and related-hashtag stats |
How to extract Instagram data programmatically
The Actor runs like any Apify Actor: one API call starts the run, one token authenticates it, and structured JSON comes back from the dataset — no bespoke integration required.
Python example
from apify_client import ApifyClientclient = ApifyClient("<APIFY_API_TOKEN>")run = client.actor("<your-username>/instagram-tagged-mentions-scraper-hashtag-and-related-profiles").call(run_input={"targetProfiles": ["mrbeast"],"maxPostsPerProfile": 30,"expandRelatedProfiles": True,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item.get("discoveryMethod"), item.get("caption"), item.get("like_count"))
Export to spreadsheets or CRM
From the run's dataset, choose "Export" and pick CSV or Excel. Flat fields like post_id, caption, like_count, comment_count, and owner.username map directly to spreadsheet columns; nested fields (tagged_users, latest_comments, hashtags) export as JSON strings per cell, ready to split or import into a CRM's custom fields.
Is it legal to scrape Instagram tagged/mention posts?
Scraping publicly visible Instagram posts is generally legal, since the posts, captions, and tag data are already published for anyone to view without logging in. However, rows returned by this Actor routinely contain personal data: the usernames, full names, and profile pictures of people who tagged, mentioned, or commented on a target account. Storing or processing that data at scale brings it under GDPR (if EU/UK residents are represented) and CCPA (for California residents), meaning you need a lawful basis for collection and a defined retention/use policy — not just public availability. Consult legal counsel for commercial applications involving bulk storage of personal data, particularly before using tagged-user or commenter data for anything beyond monitoring your own brand.
❓ FAQ
Does the Actor flag posts that were deleted or made private after being tagged?
No — there's no deletion-tracking field in the output. Each run returns a live snapshot of what Instagram's Tagged tab, captions, or hashtag search show at request time. To detect posts that disappeared, re-run against the same target and diff post_id values between runs yourself.
Can I get comments along with tagged/mentioned posts?
Yes. Set maxCommentsPerPost (1–50) and each post row includes a latest_comments array with comment text, owner, timestamp, and like count. This is a real, working input in this Actor — the base engine it's built on hardcoded it to a single comment.
How accurate is the tagged/mention data?
The Actor returns data exactly as it appears on Instagram's public Tagged tab and post captions at request time. Accuracy depends on Instagram's own tag data and whether the poster has since edited the caption; for compliance-sensitive brand-protection use, re-verify high-stakes matches against the live post before acting on them.
How many posts can I get per run?
There's no single global cap — volume is set by maxPostsPerProfile (10–1000 per target, applied separately to own-posts and tagged-feed), maxRelatedProfiles (1–20 per target), and hashtagResultsLimit (1–200 per hashtag). Total run size scales with how many entries you put in targetProfiles and hashtagsToMonitor.
How does hashtag/campaign discovery mode work?
Set hashtagsToMonitor plus a valid sessionid (a logged-in Instagram session cookie) and the Actor scans that hashtag's real top_serp search results. If targetProfiles is also set, only posts that actually tag or mention one of those usernames are kept, flagged via matchedTargetUsernames; with no targetProfiles, every post under the hashtag is returned as a standalone campaign monitor. This is the only mode in the Actor that requires authentication.
What's the difference between post_type: "tagged" and post_type: "mentioned"?
tagged means Instagram's own tag data (usertags) names the target, or the row came directly from the real Tagged-tab feed. mentioned means the target's @handle appears in the caption text but Instagram didn't structurally tag them. Both are returned; filter post_type if you only want one.
Does this Actor work with Claude, ChatGPT, and AI agent frameworks?
Yes, via Apify's Actors MCP Server: run APIFY_TOKEN=<token> npx -y @apify/actors-mcp-server --actors <your-username>/instagram-tagged-mentions-scraper-hashtag-and-related-profiles to expose it as a callable tool to MCP-compatible clients such as Claude Desktop or Cursor. It's also callable as a plain HTTP endpoint by any agent framework that can make an API call.
How does this compare to other Instagram tagged-post scrapers?
Several tagged-post scrapers exist on the Apify Store. This one's distinguishing combination is running three real discovery mechanisms in a single Actor — own-caption parsing, Instagram's actual Tagged-tab GraphQL feed, and optional authenticated hashtag discovery plus logged-out related-profile network expansion — rather than covering only one of those surfaces.
Can I use this without an Instagram API key or developer account?
Yes, for the default mode. Profile-based tagged/mention scraping, comment extraction, and related-profile expansion all run fully logged-out — no Instagram account, API key, or Facebook Developer app is needed. The only exception is hashtag/campaign discovery mode, which needs a personal Instagram sessionid cookie value (not an API key or app credential).
Conclusion
This Actor turns Instagram's scattered tag, mention, hashtag, and related-account surfaces into one structured dataset, without the Business-account and Facebook App Review requirements the official Graph API imposes on tagged/mentioned media. It's built for brand monitoring teams, agencies running client audits, and researchers who need post_type, hashtags, allMentions, and discoveryMethod as clean, filterable JSON rather than manual tab-checking. Start with targetProfiles set to the account(s) you're monitoring, add expandRelatedProfiles or hashtagsToMonitor when you need wider coverage, and run it directly from the Apify Console or API.