Instagram Tagged & Mentions Posts: Profile Data & Engagement avatar

Instagram Tagged & Mentions Posts: Profile Data & Engagement

Pricing

$24.99/month + usage

Go to Apify Store
Instagram Tagged & Mentions Posts: Profile Data & Engagement

Instagram Tagged & Mentions Posts: Profile Data & Engagement

Scrape Instagram posts mentioning specific tags with the Instagram Tagged Mentions Posts Scraper. Extract captions, media, usernames, likes, comments, and timestamps. Ideal for brand monitoring, trend tracking, and engagement analysis. Fast, accurate, and scalable for bulk scraping.

Pricing

$24.99/month + usage

Rating

0.0

(0)

Developer

Scrapier

Scrapier

Maintained by Community

Actor stats

1

Bookmarked

63

Total users

4

Monthly active users

3 days ago

Last modified

Share

Instagram Tagged Posts Scraper — Mentions, Profile & Engagement

Instagram Tagged Posts Scraper — Mentions, Profile & Engagement pulls every post where a target account is genuinely tagged or mentioned, straight from Instagram's own Tagged-tab feed and caption text — not a related-accounts guess. Each result includes hashtags, mentions, sponsorship flags, and the poster's full profile (followers, bio, business category), plus derived engagementScore, engagementVelocity, and engagementRate computed locally from the real counts. Every response is structured JSON — ready to pass to an LLM, index into a vector store, or feed a monitoring pipeline for brand-mention and UGC tracking.

What is Instagram Tagged Posts Scraper — Mentions, Profile & Engagement?

It's an Instagram scraper that resolves any username or profile URL, then pulls posts where that account is tagged (via Instagram's real PolarisProfileTaggedTabContentQuery Tagged-tab feed) or mentioned (via regex-extracted @handles in captions). What sets it apart from a plain tagged-posts list is that every row is enriched with the poster's full profile — followers, bio, business category — and with derived engagement analytics computed locally from the captured counts, not raw platform totals. No Instagram login or session cookie is required for any of this; every request runs against public endpoints.

  • Pulls the real Tagged-tab feed for any public username, not a heuristic
  • Extracts every #hashtag and @mention from post captions, not just one literal match
  • Enriches every tagger/mentioner's profile (followers, following, media count, bio, business category)
  • Computes engagementScore, postAgeDays, engagementVelocity, and engagementRate per post
  • Flags sponsorship signals: is_paid_partnership, is_affiliate, sponsor_user
  • Controls how many posts per target and how many top comments per post to pull

What data can you get with Instagram Tagged Posts Scraper — Mentions, Profile & Engagement?

The Actor returns one row per matched post, distinguished by post_type, always carrying the poster's profile alongside the post itself.

Result TypeExtracted FieldsPrimary Use Case
Tagged posts (post_type: "tagged")post_id, short_code, tagged_users[], like_count, comment_count, owner{}Brand/creator tag monitoring — see who's tagging you and in what content
Mentioned posts (post_type: "mentioned")mentioned_user, allMentions[], hashtags[], captionCampaign and hashtag mention tracking beyond formal tags
Poster profile enrichment (merged into every row)ownerFollowerCount, ownerFollowingCount, ownerMediaCount, ownerBiography, ownerExternalUrl, ownerIsBusinessAccount, ownerBusinessCategoryName, ownerProfilePicUrlHdLead/account qualification — separate real business inquiries from fan accounts

Derived Engagement Analytics & Poster Profile Enrichment

This is the part a plain tagged-posts list doesn't give you. For every post, engagementScore (likes + comments) is combined with postAgeDays (time since posting) to compute engagementVelocity — engagement accumulated per day — and, when a view count exists, engagementRate (engagement ÷ views × 100). All four are computed locally from fields already captured in the same request, so there's no extra API call. In parallel, the account that posted the tag or mention gets a full profile lookup — not just the sparse username/is_verified fields the feed itself returns — merged directly onto the post row and cached per unique poster for the whole run.

{
"short_code": "Cxxxxxxxxxx",
"engagementScore": 348,
"postAgeDays": 2.14,
"engagementVelocity": 162.6,
"engagementRate": 4.87,
"ownerFollowerCount": 8420,
"ownerIsBusinessAccount": true,
"ownerBusinessCategoryName": "Apparel & Clothing"
}

Hashtags, Mentions & Sponsorship Signals

Every caption is regex-scanned for hashtags[] and allMentions[] — not just checked for one literal username — so you catch co-tags, campaign hashtags, and unrelated mentions in the same post. Sponsorship context ships alongside: is_paid_partnership, is_affiliate, and sponsor_user[], useful for auditing whether a tag or mention is organic UGC or a disclosed partnership.

How does Instagram Tagged Posts Scraper — Mentions, Profile & Engagement differ from the official Instagram API?

Meta's Instagram Graph API returns tags and mentions only for media that a connected Business or Creator account itself publishes — it has no endpoint for discovering who is tagging or mentioning an arbitrary public username, which is the core job of this Actor.

FeatureInstagram Graph APIThis Actor
Account requirementBusiness/Creator account linked to a Facebook Page, plus Meta app reviewAny public username — no account linkage
Tagged-post visibilityTags on media you own/publish onlyReal Tagged-tab feed for any public target
Arbitrary @mention detectionNo dedicated endpointRegex-extracted allMentions[] from every caption
Tagger/mentioner profile dataNot exposed for third-party accountsFull profile enrichment (followers, bio, business category)
Engagement analyticsRaw like/comment counts onlyAdds engagementScore, engagementVelocity, engagementRate
SetupOAuth app review, token refresh, webhook subscriptionsEnter usernames, start the run

Use the Graph API when you manage the account in question and only need first-party insights inside Meta's own dashboard. Use this Actor when you need to discover and profile who is tagging or mentioning a public account you don't own or manage.

What is the difference between tagged posts and mentions on Instagram?

A tagged post is a structural tag — the poster attaches your account to the media itself via Instagram's tag UI, and it surfaces on your profile's /tagged/ tab. A mention is just an @handle typed anywhere in the caption text; it never touches the Tagged tab and Instagram exposes no dedicated feed for it. That distinction matters because a brand watching only its Tagged tab misses every caption mention — often the larger share of UGC and casual shout-outs. This Actor returns both as separate, checkable objects: tags arrive in tagged_users[] (sourced from the real PolarisProfileTaggedTabContentQuery feed), and mentions arrive in allMentions[]/mentioned_user (sourced from a caption regex scan), with post_type telling you which mechanism produced each row.

How to scrape Instagram tagged posts and mentions with this Actor?

  1. Open the Actor's page on Apify and click Start.
  2. Enter one or more usernames or profile URLs in targets (leave empty and the Actor defaults to a sample account).
  3. Set maxPostsPerTarget and maxCommentsPerPost to control result volume and comment depth per post.
  4. Toggle includeOwnerProfileEnrichment and, optionally, proxyConfiguration, then run the Actor.
  5. Download results as JSON or CSV from the run's dataset, or stream them via the API.

Example request body:

{
"targets": ["mrbeast", "https://www.instagram.com/cristiano/"],
"maxPostsPerTarget": 50,
"maxCommentsPerPost": 5,
"includeOwnerProfileEnrichment": true
}

How to scrape multiple Instagram accounts in one job

targets accepts an array, so a single run scans every username or URL in the list. Each target is processed independently and gets its own maxPostsPerTarget budget across both the own-posts pass and the real tagged-feed pass, so a busy target can return up to roughly double maxPostsPerTarget matched posts before pagination stops at the Actor's internal 20-page-per-pass ceiling.

⬇️ Input

ParameterRequiredTypeDescriptionExample Value
targetsNoarrayUsernames or profile URLs to scan. Also accepts the legacy urlsOrKeywords key.["mrbeast"]
maxPostsPerTargetNointegerMax tagged/mentioned posts to collect per target (10–1000). Also accepts the legacy maxPosts key.50
maxCommentsPerPostNointegerMax top-level comments fetched per post (0–50), feeding latest_comments.5
includeOwnerProfileEnrichmentNobooleanLook up the full profile of the account behind each tagged/mentioned post (default true).true
proxyConfigurationNoobjectApify proxy configuration. Defaults to RESIDENTIAL when left empty; honors "No proxy" too.{"useApifyProxy": true}
{
"targets": ["mrbeast"],
"maxPostsPerTarget": 10,
"maxCommentsPerPost": 5,
"includeOwnerProfileEnrichment": true,
"proxyConfiguration": { "useApifyProxy": true }
}

Pitfall: an empty targets array doesn't fail the run — the Actor silently falls back to a sample username, so double-check the field isn't blank before starting a real job. maxCommentsPerPost is also silently clamped to the 0–50 range server-side, so a value outside it won't error, it will just be capped.

⬆️ Output

Results are typed, normalized JSON with a consistent schema across runs, downloadable as JSON, CSV, Excel, or other Apify dataset export formats. When includeOwnerProfileEnrichment is off, the eight owner* enrichment fields are simply absent from the row rather than returned as null.

Scraped results

[
{
"post_id": "3xxxxxxxxxxxxxxxxxx_123456789",
"short_code": "Cxxxxxxxxxx",
"post_type": "tagged",
"like_count": 312,
"comment_count": 36,
"video_view_count": 0,
"video_play_count": 0,
"post_date": "2026-07-23T14:12:00.000Z",
"engagementScore": 348,
"postAgeDays": 2.14,
"engagementVelocity": 162.6,
"engagementRate": null,
"display_url": "https://scontent.cdninstagram.com/example1.jpg",
"alt": "Photo shared by smallfanaccount",
"video_duration": 0.0,
"video_url": "",
"is_ad": false,
"caption": "Big thanks to @mrbeast for the shoutout! #collab #ad",
"hashtags": ["collab", "ad"],
"allMentions": ["mrbeast"],
"owner": { "id": "9876543210", "username": "smallfanaccount", "is_verified": false },
"ownerFollowerCount": 8420,
"ownerFollowingCount": 612,
"ownerMediaCount": 214,
"ownerBiography": "Fan page | DMs open",
"ownerExternalUrl": null,
"ownerIsBusinessAccount": true,
"ownerBusinessCategoryName": "Apparel & Clothing",
"ownerProfilePicUrlHd": "https://scontent.cdninstagram.com/pic1.jpg",
"latest_comments": [
{ "id": "17900000000000001", "text": "so cool!", "owner": { "username": "viewer1", "is_verified": false } }
],
"tagged_users": [{ "user_id": "", "username": "mrbeast", "full_name": "" }],
"mentioned_user": null,
"is_affiliate": false,
"is_paid_partnership": false,
"sponsor_user": [],
"success": true
},
{
"post_id": "3xxxxxxxxxxxxxxxxxx_223456789",
"short_code": "Cyyyyyyyyyy",
"post_type": "mentioned",
"like_count": 1904,
"comment_count": 88,
"video_view_count": 52310,
"video_play_count": 52310,
"post_date": "2026-07-24T09:40:00.000Z",
"engagementScore": 1992,
"postAgeDays": 1.05,
"engagementVelocity": 1897.1,
"engagementRate": 3.808,
"display_url": "https://scontent.cdninstagram.com/example2.jpg",
"alt": null,
"video_duration": 14.2,
"video_url": "https://scontent.cdninstagram.com/video2.mp4",
"is_ad": false,
"caption": "Unboxing the new drop from @brandname #ad #unboxing",
"hashtags": ["ad", "unboxing"],
"allMentions": ["brandname"],
"owner": { "id": "1122334455", "username": "creatorhandle", "is_verified": true },
"ownerFollowerCount": 184300,
"ownerFollowingCount": 940,
"ownerMediaCount": 1266,
"ownerBiography": "Creator | Tech reviews",
"ownerExternalUrl": "https://linktr.ee/creatorhandle",
"ownerIsBusinessAccount": true,
"ownerBusinessCategoryName": "Content Creator",
"ownerProfilePicUrlHd": "https://scontent.cdninstagram.com/pic2.jpg",
"latest_comments": [],
"tagged_users": [],
"mentioned_user": "brandname",
"is_affiliate": true,
"is_paid_partnership": true,
"sponsor_user": [{ "username": "brandname" }],
"success": true
},
{
"post_id": "3xxxxxxxxxxxxxxxxxx_323456789",
"short_code": "Czzzzzzzzzz",
"post_type": "user_post",
"like_count": 54,
"comment_count": 3,
"video_view_count": 0,
"video_play_count": 0,
"post_date": "2026-07-20T18:05:00.000Z",
"engagementScore": 57,
"postAgeDays": 5.3,
"engagementVelocity": 10.75,
"engagementRate": null,
"display_url": "https://scontent.cdninstagram.com/example3.jpg",
"alt": null,
"video_duration": 0.0,
"video_url": "",
"is_ad": false,
"caption": "weekend recap",
"hashtags": [],
"allMentions": [],
"owner": { "id": "5566778899", "username": "targetaccount", "is_verified": false },
"ownerFollowerCount": 3021,
"ownerFollowingCount": 415,
"ownerMediaCount": 88,
"ownerBiography": "just posting",
"ownerExternalUrl": null,
"ownerIsBusinessAccount": false,
"ownerBusinessCategoryName": null,
"ownerProfilePicUrlHd": "https://scontent.cdninstagram.com/pic3.jpg",
"latest_comments": [],
"tagged_users": [],
"mentioned_user": null,
"is_affiliate": false,
"is_paid_partnership": false,
"sponsor_user": [],
"success": true
}
]

How can I use the data extracted with Instagram Tagged Posts Scraper — Mentions, Profile & Engagement?

  • Brand and social media managers: run scheduled scans across owned brand handles, then sort matched posts by engagementVelocity to see which tags/mentions are gaining traction right now, not just accumulating likes over months.
  • Influencer marketing and UGC discovery teams: filter matched posters by ownerFollowerCount and ownerIsBusinessAccount to separate creators worth a partnership outreach from casual fan accounts, before ever opening a DM.
  • AI engineers and LLM developers: feed the structured JSON — tags, mentions, engagement metrics, poster profile — directly into an agent as grounding context for a brand-monitoring or lead-qualification assistant.
  • Market researchers and competitive analysts: track how often competitor handles are tagged or mentioned over time and by what type of account (ownerBusinessCategoryName), to gauge share of organic mentions versus paid partnerships (is_paid_partnership).

How do you monitor Instagram tagged posts and mentions over time?

Monitoring here means running the same target list on a schedule and diffing each run's results against the last one to see what changed. Between runs, new rows appear keyed by post_id — a new tagged_users[] entry or a new mentioned_user value signals a fresh tag or mention that didn't exist before. For posts seen in both runs, re-diff engagementVelocity and engagementRate to catch posts that are accelerating rather than just accumulating; for new posters, check ownerFollowerCount and ownerIsBusinessAccount to prioritize alerts on high-reach or business accounts over casual fan tags.

A practical loop: schedule a run across your tracked usernames, store each run's dataset, then compare the new run's post_id set against the previous one and alert whenever a new tagged/mentioned post appears from a poster whose ownerFollowerCount exceeds a threshold you set. It's also worth diffing ownerMediaCount and ownerFollowerCount for posters you've already seen — a sudden jump often means a fan account converted into a business account (ownerIsBusinessAccount flipping to true), which reclassifies a casual tag into a lead worth reviewing. Apify's Schedules feature can trigger the Actor on a recurring cadence; combine it with a webhook on run completion to push new dataset items to your own comparison and alerting pipeline, since the Actor itself has no built-in diffing or notification layer.

Integrate Instagram Tagged Posts Scraper — Mentions, Profile & Engagement and automate your workflow

Instagram Tagged Posts Scraper — Mentions, Profile & Engagement works with any language or tool that can send an HTTP request.

REST API with Python

import requests
TOKEN = "YOUR_APIFY_TOKEN"
ACTOR = "instagram-tagged-mentions-scraper-profile-insights-engagement"
resp = requests.post(
f"https://api.apify.com/v2/acts/{ACTOR}/run-sync-get-dataset-items",
params={"token": TOKEN},
json={
"targets": ["mrbeast"],
"maxPostsPerTarget": 20,
"includeOwnerProfileEnrichment": True,
},
)
posts = resp.json()
for post in posts:
print(post["short_code"], post["post_type"], post.get("engagementVelocity"))

MCP for query-grounded AI agents

This Actor is reachable through Apify's own hosted MCP server at mcp.apify.com, which exposes public Apify Actors as callable tools to MCP-compatible clients (such as Claude Desktop and Claude Code). Point your client at the Apify MCP server, enable this Actor by its ID, and an agent can call it with a username list, receive the structured JSON above, and answer questions about who's tagging or mentioning an account without you writing custom retrieval code.

Scheduled monitoring and delivery

Use Apify's Schedules to run this Actor on a recurring cadence against a fixed target list, and attach a webhook on run completion to push each run's dataset to your own storage, alerting, or BI system rather than polling the Apify API manually.

Scraping publicly visible Instagram data is generally lawful in the US — courts have held that accessing data a website makes available to any visitor does not violate the Computer Fraud and Abuse Act (hiQ Labs v. LinkedIn Corp., 9th Cir., 2019/2022). This Actor only reads public tagged/mentioned posts and public profile fields; it does not log in or bypass any access control. Because poster profiles here include personal data — usernames, bios, follower counts — GDPR and CCPA still apply if you process data about identifiable EU or California residents, regardless of the data's public availability. Bulk storage, profiling, or re-publishing this data for commercial use carries different obligations than a one-off monitoring check. Consult your legal team for commercial use cases involving bulk data storage.

Frequently asked questions

Does this scraper need an Instagram login? No. Post discovery, the real tagged-posts feed, hashtag/mention extraction, and poster profile enrichment all run fully logged out against public endpoints.

How is "tagged" detected, and can it be trusted? Via Instagram's own Tagged-tab GraphQL feed (PolarisProfileTaggedTabContentQuery, doc ID 31297049089941898) — the same feed instagram.com/username/tagged/ uses — not a related-accounts heuristic or guess.

Does this Actor extract real engagement insights, or just raw counts? It returns both. Raw like_count/comment_count/video_view_count come straight from Instagram. On top of those, the Actor computes engagementScore, postAgeDays, engagementVelocity, and engagementRate locally from those same counts — these are derived analytics, not fields Instagram itself returns, and they're absent (null) only when the inputs to compute them (like a view count) aren't available.

How does the Actor handle Instagram's anti-bot measures? It rotates user agents, routes requests through Apify residential proxies by default (configurable via proxyConfiguration), and uses a Chrome TLS-impersonating client for the profile-enrichment endpoint specifically, since that endpoint rate-limits plain HTTP clients regardless of proxy or cookie parity. It retries with backoff on HTTP 429 responses; it does not solve CAPTCHAs.

How many results does this Actor return per query? maxPostsPerTarget (10–1000) sets the budget per target, applied independently to two passes: the target's own posts and the real tagged-feed. Both passes stop after 20 pages of pagination regardless of the limit, so total matched posts per target can be up to roughly double maxPostsPerTarget before that ceiling applies.

How do I use this Actor to monitor tags and mentions over time? Schedule a recurring run across your target list via Apify Schedules, compare each run's post_id set to the previous run's, and alert on new entries — especially ones where the poster's ownerFollowerCount or ownerIsBusinessAccount indicates a high-value tag or mention rather than a casual fan post.

Does this work with Claude, ChatGPT, and AI agent frameworks? Yes. It's callable as a plain HTTP endpoint by any agent framework, and it's also reachable through Apify's hosted MCP server (mcp.apify.com), which lets MCP-compatible clients like Claude call it as a registered tool.

How does this compare to a plain Instagram tagged-posts scraper? A tagged-posts-only scraper returns the tag list and raw post counts. This Actor adds caption-mention detection (allMentions[]/mentioned_user), sponsorship flags, full poster profile enrichment, and derived engagement analytics on top of the same tagged-feed mechanism — so a tag list becomes a qualified lead and performance dataset instead of just a list of post IDs.

Can I use this without managing proxies or Instagram credentials? Yes. The Actor defaults to Apify RESIDENTIAL proxies and needs no Instagram account, login, or session cookie — you only supply the usernames to target and, optionally, your own proxy configuration.

What happens if a poster's profile is private or incomplete? Enrichment fields like ownerBiography, ownerExternalUrl, and ownerBusinessCategoryName come back null rather than fabricated when Instagram doesn't expose them for a given account; core post fields are unaffected either way.

Your feedback

Found a bug or a field that doesn't match this README? Let us know through the Actor's Issues tab on Apify or the Scrapier support contact on the store listing — reports like this go straight into the next update.