Instagram Post Scraper ✅ No cookies ✅ $1 per 1K
Pricing
from $1.00 / 1,000 posts
Instagram Post Scraper ✅ No cookies ✅ $1 per 1K
Scrape instagram posts or reels from user profiles, hashtags, post urls
Pricing
from $1.00 / 1,000 posts
Rating
0.0
(0)
Developer
Supreme Coder
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Instagram Posts Scraper 📸 — Scrape Instagram Posts, Reels, Hashtags & Search
Extract Instagram posts, reels, photos, videos and carousels at scale — no login, no password, no cookies required. This Instagram Posts Scraper turns any public profile, hashtag, keyword search, or post URL into clean, structured JSON, CSV or Excel data in seconds. Perfect for marketers, researchers, data analysts and developers who need reliable Instagram data without the headache of building and maintaining a scraper.
Scrape Instagram by username, #hashtag, search keyword, or a direct post / reel link — and get likes, comments, captions, view counts, media URLs, author details and more.
✨ What this Instagram scraper does
- 🧑🚀 Scrape posts from any public Instagram profile (e.g.
nasa) — newest first - #️⃣ Scrape posts by hashtag (e.g.
#travel,#fitness) - 🔎 Scrape posts by search keyword — just type the words, no URL needed
- 🎯 Scrape a single post or reel from its URL
- 🖼️ Handles photos, videos, reels and carousels (sidecars) automatically
- 📊 Returns likes, comments, views, captions, hashtags, mentions, location, tagged users and direct media download URLs
- ⏱️ Date filtering — only keep posts newer than a date you choose
- 🔢 Limit control — cap how many posts you pull per source
- 🔐 No Instagram login or cookies needed — nothing to configure, no account-ban risk for you
💡 Popular use cases
| Who | What they use it for |
|---|---|
| 📣 Marketers & agencies | Track competitors, analyse top-performing content, find trending posts in a niche |
| 🤝 Influencer marketing | Discover creators by hashtag, vet engagement (likes/comments/views) before outreach |
| 📈 Data analysts & researchers | Build datasets for social-media trend, sentiment and engagement analysis |
| 🛍️ E-commerce & brands | Monitor brand mentions, user-generated content and product hashtags |
| 🧲 Lead generation | Find and qualify prospects posting about your topic |
| 📰 Journalists & OSINT | Collect public posts around an event, place or hashtag |
🚀 How to use it (step by step)
No coding needed. If you can fill in a form, you can use this scraper.
- Click "Try for free" / Start.
- Add your sources. Paste profile, hashtag or post URLs into Source URLs, and/or type plain words into Search keywords (add as many as you like).
- Set a limit (optional). Use Limit per source to cap how many posts you want from each profile/hashtag/search.
- Pick a date (optional). Use Scrape until date to only collect recent posts.
- Click "Start". Watch posts stream into the results table.
- Download your data as JSON, CSV, Excel, HTML or XML, or pull it via the API.
That's it — your Instagram data is ready to use. 🎉
⚙️ Input fields
| Field | Type | Emoji | Description |
|---|---|---|---|
urls | array of text | 🔗 | Instagram profile (/<username>/), post/reel (/p/<code>/, /reel/<code>/), hashtag (/explore/tags/<tag>/) or search (/explore/search/keyword/?q=...) URLs |
search | array of text | 🔎 | Search keywords — type a word for a keyword search, or prefix with # for a hashtag (e.g. #nasa). Add multiple |
limitPerSource | number | 🔢 | Max posts to scrape per profile/hashtag/search (leave empty for as many as possible) |
scrapeUntil | date | 📅 | Only scrape posts newer than this date |
rawData | true / false | 🧬 | Advanced: return Instagram's raw post objects instead of the clean output below |
You can provide
urls,search, or both. At least one is required.
📝 Example input
{"urls": ["https://www.instagram.com/nasa/","https://www.instagram.com/explore/tags/travel/","https://www.instagram.com/p/DS82bloETJ0/"],"search": ["apify", "#webscraping"],"limitPerSource": 50,"scrapeUntil": "2025-01-01"}
📤 Output
Every post is returned as one clean, ready-to-use record. Export to JSON, CSV, Excel, HTML or XML.
📦 Sample output
{"id": "3800151575931990644","shortCode": "DS82bloETJ0","url": "https://www.instagram.com/reel/DS82bloETJ0/","type": "video","productType": "clips","isVideo": true,"caption": "The official FIFA World Cup ball went to space 🛰️ #space #nasa","hashtags": ["space", "nasa"],"mentions": ["fifa"],"commentsCount": 1328,"likesCount": 27313,"viewCount": 1840221,"videoDuration": 58.0,"timestamp": "2026-01-01T02:14:08.000Z","displayUrl": "https://instagram.fxyz.fbcdn.net/v/....jpg","videoUrl": "https://instagram.fxyz.fbcdn.net/o1/v/....mp4","dimensions": { "width": 720, "height": 1280 },"isPinned": false,"isPaidPartnership": false,"ownerUsername": "nasa","ownerId": "528817151","owner": {"id": "528817151","username": "nasa","fullName": "NASA","isPrivate": false,"isVerified": true,"profilePicUrl": "https://instagram.fxyz.fbcdn.net/v/....jpg"},"location": { "id": "212999109", "name": "Kennedy Space Center", "slug": null },"taggedUsers": [{ "username": "fifa", "fullName": "FIFA", "id": "...", "position": [0.5, 0.5] }],"coauthors": [],"childPosts": [],"inputUrl": "https://www.instagram.com/nasa/"}
🗂️ Output fields
| Field | Emoji | Description |
|---|---|---|
id | 🆔 | Unique Instagram media ID |
shortCode | 🔑 | Post shortcode (the code in the post URL) |
url | 🔗 | Direct link to the post or reel |
type | 🏷️ | image, video or sidecar (carousel) |
productType | 🎬 | feed, clips (reel), igtv, etc. |
isVideo | ▶️ | true if the post is a video/reel |
caption | 📝 | Full post caption text |
hashtags | #️⃣ | Hashtags found in the caption |
mentions | 📣 | @-mentions found in the caption |
likesCount | ❤️ | Number of likes |
commentsCount | 💬 | Number of comments |
viewCount | 👁️ | Video/reel views (when available) |
videoDuration | ⏱️ | Video length in seconds |
timestamp | 🕒 | When the post was published (ISO 8601) |
displayUrl | 🖼️ | Highest-resolution image / thumbnail URL |
videoUrl | 🎥 | Direct video file URL (for videos/reels) |
dimensions | 📐 | Media width and height in pixels |
isPinned | 📌 | true if pinned to the top of the profile |
isPaidPartnership | 🤝 | true for sponsored / paid-partnership posts |
ownerUsername | 👤 | Username of the post author |
ownerId | 🆔 | Numeric ID of the post author |
owner | 🧑 | Author details (name, verified, private, avatar) |
location | 📍 | Tagged location (id, name) |
taggedUsers | 🏷️ | People tagged in the media |
coauthors | 👥 | Collaborators on the post |
childPosts | 🖼️🖼️ | Items inside a carousel (each with its own media URLs) |
inputUrl | 🌐 | The source URL/keyword this post came from |
🔌 Using the API
Run the scraper programmatically with the Apify API. Replace YOUR_TOKEN with your Apify API token and USERNAME~instagram-post with the actor's ID.
Run and get results in one call (cURL)
curl -X POST "https://api.apify.com/v2/acts/USERNAME~instagram-post/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"search": ["#nasa"],"limitPerSource": 50}'
Start a run (JavaScript / Apify client)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('USERNAME/instagram-post').call({urls: ['https://www.instagram.com/nasa/'],search: ['#travel'],limitPerSource: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Start a run (Python / Apify client)
from apify_client import ApifyClientclient = ApifyClient("YOUR_TOKEN")run = client.actor("USERNAME/instagram-post").call(run_input={"search": ["apify", "#webscraping"],"limitPerSource": 50,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
📚 More: Apify API reference · API client for JavaScript · API client for Python
❓ FAQ
Do I need an Instagram account, password or cookies? No. You only provide the public profiles, hashtags or keywords you want to scrape — authentication is handled for you.
Is it legal to scrape Instagram? This scraper collects publicly available data only. You are responsible for how you use the data and for complying with applicable laws (e.g. GDPR), Instagram's Terms, and not collecting personal data without a lawful basis. When in doubt, consult a lawyer.
How many posts can I scrape?
As many as you like — use limitPerSource to control the volume per source. Very large profiles are paginated automatically.
Why did my keyword search return "No posts found"?
Generic multi-word phrases often surface accounts rather than posts in Instagram's top results. For post results, prefix your term with # (e.g. #webscraping) or use a hashtag URL.
Search results aren't in date order — why?
Hashtag/keyword search returns Instagram's top (ranked) results, not strictly newest-first. Profile scraping is chronological, so use scrapeUntil there for precise date filtering.
What export formats are supported? JSON, CSV, Excel, HTML, XML, plus direct API/webhook access.
🔎 Keywords
Instagram scraper, Instagram posts scraper, scrape Instagram, Instagram data extractor, Instagram hashtag scraper, Instagram reels scraper, Instagram profile scraper, Instagram search scraper, export Instagram posts to CSV/JSON/Excel, Instagram API alternative, scrape Instagram without login.