Instagram Posts Scraper Goat avatar

Instagram Posts Scraper Goat

Pricing

from $2.00 / 1,000 post scrapeds

Go to Apify Store
Instagram Posts Scraper Goat

Instagram Posts Scraper Goat

Scrape Instagram posts in bulk by username. Extract full captions, like counts, comment counts, video views, media URLs (images, videos, carousels), locations, tagged users, coauthors, and paid-partnership flags. No Instagram API key, login, or cookies required.

Pricing

from $2.00 / 1,000 post scrapeds

Rating

0.0

(0)

Developer

Goutam Soni

Goutam Soni

Maintained by Community

Actor stats

0

Bookmarked

16

Total users

10

Monthly active users

17 days ago

Last modified

Share

Instagram Posts Scraper - Bulk Export Posts, Captions, Likes, Comments & Media

Scrape Instagram posts in bulk by username. Extract full captions, like counts, comment counts, video views, media URLs (images, videos, carousels), locations, tagged users, coauthors, and paid-partnership flags - all without an Instagram API key, login, or cookies.

What this Instagram posts scraper does

Pass a list of Instagram usernames (or @handles, or profile URLs - mix freely) and the actor returns one clean JSON record per post, with all engagement metrics and media URLs. Pagination is handled automatically across multiple pages, and runs use multiple independent data sources with automatic failover for high reliability.

Perfect for content analysis, competitor monitoring, influencer vetting, brand monitoring, and growth research on Instagram at scale.

Why use this Instagram scraper

  • No API key, no login, no cookies - works on any public Instagram profile.
  • Bulk by username - scrape one or many Instagram accounts in a single run.
  • Auto-pagination - request 12 posts or 12,000, the scraper fetches every page.
  • Multi-source failover - if one upstream is rate-limited, the actor automatically falls back to another, so runs almost always finish.
  • Residential proxies built in (Apify proxy or your own).
  • One flat JSON object per post with a username field, so multi-account runs are easy to group/filter.
  • Carousel-aware - every slide of a multi-image post is returned with its own media URL.

What data you get per Instagram post

FieldTypeDescription
usernamestringThe Instagram username this post belongs to
idstringPost ID
shortcodestringURL slug (instagram.com/p/{shortcode})
mediaTypestring"image", "video", or "carousel"
timestampintegerWhen posted (unix epoch)
captionstringFull caption text (with hashtags, mentions, emojis)
displayUrlstringMain image URL (full resolution)
thumbnailUrlstringSquare thumbnail URL
videoUrlstringMP4 video URL (if video)
dimensionsobject{"height": 1080, "width": 1080}
accessibilityCaptionstringAuto-generated alt text
likeCountintegerNumber of likes
commentCountintegerNumber of comments
videoViewCountintegerVideo plays (if video)
locationstringTagged location name
taggedUsersstring[]Usernames tagged in the post
coauthorsstring[]Collab post co-authors
isPaidPartnershipbooleanSponsored content flag
commentsDisabledbooleanComments turned off
childrenobject[]Carousel slides (media URL, type, dimensions)

How to use the Instagram Posts Scraper

  1. Click Try for free on the actor page.
  2. Enter Instagram usernames in the usernames input. URLs, @handles, and plain usernames all work and are deduped.
  3. Set maxPostsPerUser (default 12). Set to 0 to fetch all posts.
  4. Tune concurrency (default 5) and delayBetweenRequests (default 1s) if you're chasing speed.
  5. Click Save & start. Download the dataset in JSON, CSV, Excel, XML, or HTML.

Top use cases

  • Content strategy - analyse caption length, hashtag patterns, posting cadence on top accounts in your niche.
  • Competitor monitoring - track every post a competitor publishes and their engagement.
  • Influencer vetting - real engagement-rate calculation (likes ÷ followers) for agency outreach.
  • Brand monitoring - find posts mentioning your brand via taggedUsers and coauthors.
  • Hashtag and trend research - extract trending captions and tag clusters at scale.
  • AI training data - clean Instagram caption corpus for model fine-tuning.
  • Influencer marketing audits - track sponsored content via isPaidPartnership.

Integrations

Apify API

$curl "https://api.apify.com/v2/datasets/{DATASET_ID}/items?format=json"

Python

from apify_client import ApifyClient
from itertools import groupby
from operator import itemgetter
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("goat255/instagram-posts-scraper").call(run_input={
"usernames": ["example_user_1", "example_user_2"],
"maxPostsPerUser": 24,
})
posts = list(client.dataset(run["defaultDatasetId"]).iterate_items())
posts.sort(key=itemgetter("username"))
for username, user_posts in groupby(posts, key=itemgetter("username")):
user_posts = list(user_posts)
avg_likes = sum(p.get("likeCount", 0) or 0 for p in user_posts) / len(user_posts)
print(f"@{username}: {len(user_posts)} posts, avg {avg_likes:.0f} likes")

JavaScript / Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('goat255/instagram-posts-scraper').call({
usernames: ['example_user_1', 'example_user_2'],
maxPostsPerUser: 24,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

No-code integrations

Send results directly to Google Sheets, Slack, Zapier, Make, Amazon S3, or any webhook via Apify Integrations.

Pricing

Pay-per-event. No subscription.

EventPrice
Post scraped (primary)$0.002

Apify's $5 platform free credit applies on first use - ~2,500 free posts to start.

FAQ

Do I need an Instagram account or API key?

No. This scraper works on any public Instagram profile without login, cookies, or the Instagram Graph API.

Can it scrape private Instagram accounts?

No. Only public profiles' posts are accessible. Private accounts return zero posts.

How many posts can I scrape per profile?

Unlimited - Instagram allows pagination across the entire feed. Set maxPostsPerUser: 0 to fetch everything, or pick a number.

How fast is it?

A typical 3-post run on one username finishes in ~5 seconds. Larger runs scale linearly with concurrency.

Does it return Instagram Reels and carousels?

Yes - carousels appear as one record per post with each slide nested in children[]. Reels appear as mediaType: "video" with videoUrl populated.

Can I export to CSV / Google Sheets / Excel?

Yes - JSON, CSV, Excel, XML, HTML are all supported, plus direct integrations to Google Sheets, Zapier, Make, Slack, S3.

Will Instagram block this?

Multi-source failover plus rotating residential proxies handle Instagram's rate limits automatically. Recent 30-day success rate is 95%+.

Support

Found a bug or missing field? Open an issue on the actor page. Reviews are read and replied to.