How to scrape Instagram with Apify (no code)
Use the Apify Instagram Scraper, pay-per-event at $1.50 per 1,000 posts (comments billed at $2.30 per 1,000, per the Actor's official pricing tab). No Instagram login required. Pick a search type (profile, hashtag, post URL, place, or search query), click Start, and export JSON, CSV, or Excel. Returned fields include caption, hashtags, likes, comments count, timestamps, media URLs, and full owner metadata. The Apify free plan covers ~3,300 posts/month.
Collect public posts, captions, engagement counters, and profile metadata using a pre-built Actor, no Instagram login required.
Instagram data powers influencer research, competitor tracking, and hashtag analytics. Apify's managed infrastructure handles the headless browser farm so you focus on inputs and exports. If you'd rather self-host with a Python tool like Instaloader, you'll need your own proxy stack. See our guide to the best Instagram proxies for 2026.
What you'll do:
- Open the right Instagram Scraper Actor and understand pricing.
- Map search types to the URLs or handles you already use in the app.
- Interpret a sample JSON row and ship data to spreadsheets or dashboards.
For a wider comparison of profile, hashtag, comment, and reel Actors, see our best Instagram scrapers roundup and the broader social media scrapers overview.
Configuration options (inputs)
Exact field names are defined by the Actor’s JSON schema, so always verify on the Input tab. Typical modes:
| Search type | What you provide | Example |
|---|---|---|
| Profile | Username or profile URL | https://www.instagram.com/natgeo/ |
| Hashtag | Tag with or without # | #travel |
| Post / Reel URL | Direct link to one item | https://www.instagram.com/p/ABC123/ |
| Search keywords | Query string (if supported) | sustainable fashion |
| Option | Why it matters |
|---|---|
| Results / post limit | Caps runtime cost and keeps first tests small. |
| Comments depth | Some Actors can fetch comment threads; more events mean a higher price. |
| Date or media filters | Narrow to recent posts or specific formats when available. |
Browse alternatives with a Store search: Instagram scrapers on Apify.
Pricing (estimate before you scale)
The official Instagram Scraper pricing (verified May 2026) is:
- $1.50 per 1,000 posts (profile, hashtag, search, or place results)
- $2.30 per 1,000 comments
- Other event types (profile details, etc.) are priced separately on the Actor's Pricing tab.
Quick math: 10,000 posts ≈ $15, plus comments at $2.30 per 1,000 if you enable them. Apify's free plan includes $5/month in credits, enough for roughly 3,300 posts or 2,100 comments. See our full Apify pricing breakdown for paid-plan limits.
Limitations (only public data)
- Private profiles, stories, and DMs are not available through standard public scrapers.
- Rate limits, UI changes, and anti-automation can break selectors; update Actors regularly.
- Instagram’s Terms restrict certain automated access. Read Meta’s policies and consult counsel before high-volume or commercial use.
- Personal data may still be regulated under GDPR/CCPA even when a profile is public, so document your purpose and retention.
More context: Is web scraping legal?.
Step 1: Open the Instagram Scraper
Go to apify.com/apify/instagram-scraper and choose Try for free (or Start) to open the console.
Step 2: Configure your scrape
Example: scrape a public profile’s recent posts.
- Set search type to Profile (or the equivalent enum in the schema).
- Paste the profile URL or username Apify expects.
- Set max posts to a small number (for example 20) for your first run.
For hashtags, switch the mode to Hashtag and supply the tag. For a single reel or photo, use Post URL mode if available.
Step 3: Start the Actor
Click Start. Watch the Log for warnings (rate limits, empty pages). Successful runs populate the Dataset tab in real time.
Step 4: Export Instagram data
When the run finishes, open Dataset (or Storage) and export CSV, Excel, or JSON for your tools.
What data you can extract
Available columns depend on the Actor version; common fields include:
| Field | Description |
|---|---|
| url | Canonical post URL |
| shortCode | Instagram short identifier |
| type | Image, video, carousel, etc. |
| caption | Post text and hashtags |
| timestamp | Publish time (ISO 8601) |
| likesCount / commentsCount | Engagement counters |
| ownerUsername / ownerFullName | Account metadata |
| displayUrl | CDN link to media (may expire) |
| locationName | Place tag when present |
For follower counts only, consider the Instagram Followers Count Scraper. For rich profile bios without full post history, see the Instagram Profile Scraper. For Reels-only workloads, jump to our Instagram Reels architecture guide.
For a step-by-step code walkthrough, see our Instagram scraper tutorial for 2026, or browse curated Instagram scraper collections by use case.
Sample JSON output
Each dataset item is typically one post object; field names may vary slightly by Actor version.
{
"url": "https://www.instagram.com/p/CxYz123/",
"type": "Image",
"shortCode": "CxYz123",
"caption": "Exploring the hidden gems of Patagonia #travel #nature",
"ownerUsername": "natgeo",
"ownerFullName": "National Geographic",
"likesCount": 142857,
"commentsCount": 3294,
"timestamp": "2024-01-15T14:30:00.000Z",
"displayUrl": "https://scontent.cdninstagram.com/v/t51.2885-15/...",
"dimensionsHeight": 1080,
"dimensionsWidth": 1080,
"isSponsored": false,
"locationName": "Torres del Paine National Park"
}
Use cases
| Use case | How Instagram data helps |
|---|---|
| Influencer research | Compare engagement and posting cadence across creators. |
| Competitor monitoring | Track campaigns, creative formats, and hashtag strategies. |
| Hashtag analytics | See which topics drive recent public posts in a niche. |
| Content strategy | Study caption patterns and posting times that correlate with likes. |
Validate fields and cost on 20–50 posts, then widen limits once outputs look right.
No. The standard Apify Instagram Scraper works without your Instagram credentials. It only reads publicly visible pages, which is why private accounts and DMs are out of scope.
Some Instagram Actors support comment threads as optional inputs. Comments increase event counts and cost, so enable them only when needed and check the Actor documentation for limits.
Public scraping may still implicate platform terms and privacy laws depending on region and use case. This is not legal advice, so review Meta’s policies and your compliance program. See our scraping legality guide.
The official Apify Instagram Scraper bills $1.50 per 1,000 posts and $2.30 per 1,000 comments (verified May 2026). Estimate cost as (results) × (price per 1,000) / 1,000. The free plan covers about 3,300 posts per month; bigger workloads need a paid Apify plan.
Yes. Every Actor exposes an API token. Call the Apify REST API or SDK from Node.js, Python, or your orchestrator to start runs and pull datasets programmatically. See the Instagram scraper tutorial for ready-to-paste code samples.
CDN links are often time-limited. Persist images to your own storage if you need long-term access, and respect copyright and licensing when re-hosting media.
Common mistakes and fixes
Dataset is empty after a successful run
Confirm profiles or hashtags are public, reduce limits, and try a single well-known username. Check the log for rate-limit or parsing warnings.
Run is slow or times out
Lower post limits, avoid mixing many unrelated targets in one run, and retry during off-peak hours; check the Actor page for concurrency guidance.
Some fields (emails, DMs) never appear
Public scrapers cannot access private inboxes or non-public account data. See Limitations below.





