Instagram Tagged Posts Scraper avatar

Instagram Tagged Posts Scraper

Pricing

from $0.45 / 1,000 results

Go to Apify Store
Instagram Tagged Posts Scraper

Instagram Tagged Posts Scraper

Scrape Instagram tagged posts, profile posts, and Reels. Get captions, likes, comments, play counts, video duration, music info, location, tagged users, carousel media. Session rotation with auto-failover. 40+ fields. JSON/CSV/Excel. API ready.

Pricing

from $0.45 / 1,000 results

Rating

0.0

(0)

Developer

Scrape Smith

Scrape Smith

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

🏷️ Instagram Tagged Posts Scraper

Scrape every post where a specific Instagram account has been photo-tagged. Enter one or more usernames and get structured data for every tagged post β€” captions, hashtags, likes, comments, play counts, media URLs, tagged users, location, music info, and more.

No login required from your side. Just add usernames and run.

πŸ” What does Instagram Tagged Posts Scraper do?

When someone tags an Instagram account in a photo or video, that post appears in the tagged section of the profile. This scraper collects all those tagged posts for any public account and returns clean, structured data ready for analysis.

Use it to:

  • πŸ“’ Track brand mentions β€” see every post where your brand, product, or logo was tagged by customers, influencers, or partners
  • 🀝 Monitor influencer collaborations β€” verify tagged posts from paid partnerships and sponsorships
  • πŸ”Ž Competitive intelligence β€” discover which creators are tagging competitor brands and how often
  • πŸ“Έ UGC collection β€” find user-generated content featuring your brand for marketing campaigns
  • πŸ“° PR and media monitoring β€” track when media outlets, journalists, or event accounts tag your company
  • ⭐ Athlete and celebrity tracking β€” collect every fan post, press photo, or event where a public figure was tagged
  • πŸ“Š Campaign measurement β€” count and analyze tagged posts from a hashtag campaign or product launch

⚑ Why use this scraper?

  • πŸ’° Cheapest on the platform β€” under $0.01 per 1,000 results. No residential proxy cost.
  • πŸ“‹ 30+ fields per post β€” more data points than any alternative, all flat and ready to use
  • πŸš€ Fast parallel processing β€” all profiles scraped simultaneously, 10 profiles in under 20 seconds
  • πŸ”„ Flexible input β€” accepts usernames, @handles, and full Instagram URLs in the same run
  • βœ… Zero setup β€” no cookies, no credentials, no API keys needed from you
  • πŸ›‘οΈ Reliable β€” 99% resolution rate across 100 verified celebrity accounts in stress testing
  • πŸ” Automatic failover β€” multi-session rotation with dead session detection and reporting

πŸ’° How much does it cost?

The scraper runs on Apify's pay-per-result model. You pay only for the results you get β€” no wasted compute on failed requests.

VolumeApproximate cost
25 resultsπŸ†“ Free (every run)
1,000 results~$0.01
10,000 results~$0.10
100,000 results~$1.00

Platform usage fees (compute time) are separate and typically add less than $0.002 per 1,000 results. The scraper uses free datacenter proxy with automatic residential failover β€” no proxy cost in normal operation.

πŸ“₯ Input

The scraper accepts Instagram usernames in any format β€” mix all three freely in a single run:

  • Bare username: nike
  • With @ prefix: @adidas
  • Full URL: https://www.instagram.com/cristiano/

Input parameters

ParameterTypeRequiredDescription
usernamesArray of stringsYesInstagram usernames, @handles, or profile URLs
maxItemsIntegerNoMaximum total tagged posts across all profiles. Leave empty for no limit.
resultsPerProfileIntegerNoMaximum tagged posts per individual profile. Leave empty for all available.

Example input

{
"usernames": [
"nike",
"@adidas",
"https://www.instagram.com/leomessi/"
],
"resultsPerProfile": 50,
"maxItems": 500
}

Minimal input

{
"usernames": ["nike"]
}

πŸ“€ Output

Each tagged post is returned as a flat JSON object with 30+ fields. No nested blobs to parse β€” every field is ready to use in spreadsheets, databases, or downstream pipelines.

Output fields

FieldTypeDescription
idStringUnique post ID
shortCodeStringInstagram short code (used in post URLs)
urlStringDirect link to the post
mediaTypeStringImage, Video, Reel, or Carousel
productTypeStringfeed, clips (Reels), or igtv
captionStringFull caption text
hashtagsArrayExtracted #hashtags from caption
mentionsArrayExtracted @mentions from caption
likesCountIntegerNumber of likes
commentsCountIntegerNumber of comments
playCountIntegerVideo/Reel play count
videoViewCountIntegerVideo view count
videoDurationFloatVideo duration in seconds
timestampStringPost creation time (ISO 8601)
ownerUsernameStringUsername of the person who posted
ownerFullNameStringDisplay name of the poster
ownerIdStringPoster's Instagram user ID
ownerIsVerifiedBooleanWhether the poster has a verified badge
ownerProfilePicUrlStringPoster's profile picture URL
taggedUsernameStringThe account that was tagged (your input username)
taggedUsersArrayAll users tagged in this post β€” username, ID, full name, verification status, profile pic
displayUrlStringHighest resolution image URL
videoUrlStringHighest resolution video URL (for videos and Reels)
carouselMediaArrayAll images and videos in carousel posts with individual URLs
carouselMediaCountIntegerNumber of items in a carousel post
widthIntegerOriginal media width in pixels
heightIntegerOriginal media height in pixels
locationObjectLocation name, slug, latitude, and longitude
isPaidPartnershipBooleanWhether the post is a paid partnership
isSponsoredBooleanWhether the post is sponsored content
coauthorProducersArrayCollaboration and co-author accounts
musicInfoObjectSong name, artist name, and audio ID (for Reels)
scrapedAtStringTimestamp when this data was collected (ISO 8601)

Example output

{
"id": "3456789012345678901",
"shortCode": "CrYolT-xkI5",
"url": "https://www.instagram.com/p/CrYolT-xkI5/",
"mediaType": "Reel",
"productType": "clips",
"caption": "Game day ready! @nike #JustDoIt #Basketball",
"hashtags": ["JustDoIt", "Basketball"],
"mentions": ["nike"],
"likesCount": 45231,
"commentsCount": 892,
"playCount": 15249537,
"videoViewCount": 15249537,
"videoDuration": 59.93,
"timestamp": "2026-07-15T14:30:00.000Z",
"ownerUsername": "athlete_example",
"ownerFullName": "Pro Athlete",
"ownerId": "1234567890",
"ownerIsVerified": true,
"ownerProfilePicUrl": "https://scontent-...",
"taggedUsername": "nike",
"taggedUsers": [
{
"username": "nike",
"id": "13460080",
"fullName": "Nike",
"isVerified": true,
"profilePicUrl": "https://..."
}
],
"displayUrl": "https://scontent-...",
"videoUrl": "https://scontent-...",
"carouselMedia": [],
"carouselMediaCount": 0,
"width": 1080,
"height": 1920,
"location": {
"id": "12345",
"name": "Madison Square Garden",
"slug": "madison-square-garden",
"lat": 40.7505,
"lng": -73.9934
},
"isPaidPartnership": true,
"isSponsored": true,
"coauthorProducers": [],
"musicInfo": {
"artistName": "Nike",
"songName": "Original Audio",
"audioId": "987654321"
},
"scrapedAt": "2026-07-22T10:00:00.000Z"
}

🏎️ Performance and reliability

MetricValue
Speed~600 posts/minute
Profiles per runUnlimited (all scraped in parallel)
Memory usage100–120 MB
Resolution success99% on public accounts
Consecutive run stability10/10 runs successful in stress testing
Output formatsJSON, CSV, Excel, XML, RSS

The scraper resolves all usernames in parallel and then scrapes all profiles simultaneously. A typical run with 10 profiles completes in 15–25 seconds.

πŸ’‘ Tips and advanced usage

Flexible username input

You can paste any format β€” the scraper normalizes everything automatically:

{
"usernames": [
"nike",
"@cristiano",
"https://www.instagram.com/leomessi/",
"https://instagram.com/therock?hl=en"
]
}

Get only the latest tagged posts

Set resultsPerProfile to a small number for the most recent posts only:

{
"usernames": ["nike", "adidas", "puma", "reebok", "newbalance"],
"resultsPerProfile": 10
}

πŸ“… Monitor brand mentions on a schedule

Use the Apify scheduling feature to run this scraper daily or weekly. Each run collects the latest tagged posts. Combine with webhooks to trigger alerts when new tags appear.

πŸ“Š Export to Google Sheets automatically

Connect this scraper to Google Sheets using the Apify Google Sheets integration. New tagged posts are appended to your spreadsheet after every run.

πŸ”— Use with Make, Zapier, or n8n

Trigger downstream workflows whenever new tagged posts are found. Connect via webhooks or through the Apify integrations page.

πŸ§‘β€πŸ’» Call from your code

Use the Apify API or official client libraries (Python, JavaScript, PHP) to run the scraper programmatically and retrieve results:

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("scrapesmith/instagram-tagged-posts-scraper").call(
run_input={
"usernames": ["nike", "adidas"],
"resultsPerProfile": 50
}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["ownerUsername"], item["likesCount"], item["url"])

πŸ€– Connect to AI agents via MCP

This scraper is available as an MCP tool for Claude, ChatGPT, and other AI agents. Use it to feed real-time Instagram data into your AI workflows.

❓ Frequently asked questions

Can I scrape tagged posts from private accounts?

No. This scraper only works with public Instagram accounts. If an account is set to private, their tagged posts are not accessible through the API.

Why did a username return 0 results?

There are three possible reasons:

  1. The account has tagged posts disabled in their privacy settings
  2. The account genuinely has no tagged posts
  3. A very small number of celebrity accounts (like Justin Bieber) restrict search visibility β€” these accounts cannot be resolved

Is there a limit on how many tagged posts I can get?

There is no artificial limit on paid plans. The scraper paginates through all available tagged posts. Some accounts with millions of followers may have tens of thousands of tagged posts β€” use resultsPerProfile to cap output per account if needed.

How fresh is the data?

The scraper fetches live data directly from Instagram on every run. There is no caching. You always get the current state of tagged posts at the time of the run.

What's the difference between tagged posts and mentions?

  • Tagged posts β€” posts where someone tagged the account in a photo or video. These appear in the "Tagged" tab on the profile page. This is what this scraper collects.
  • Text mentions β€” @username references in captions or comments. These are NOT the same as photo tags. However, each tagged post's full caption is included in the output, so you can search for text @mentions within the results.

Do I need to provide Instagram cookies or credentials?

No. The scraper handles authentication internally. You never need to provide login credentials, cookies, or API keys.

Looking for other Instagram data? Check out these scrapers from our collection:

Other social media scrapers