Instagram Post Scraper ✅ No cookies ✅ $1 per 1K avatar

Instagram Post Scraper ✅ No cookies ✅ $1 per 1K

Pricing

from $1.00 / 1,000 posts

Go to Apify Store
Instagram Post Scraper ✅ No cookies ✅ $1 per 1K

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

Supreme Coder

Maintained by Community

Actor 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

WhoWhat they use it for
📣 Marketers & agenciesTrack competitors, analyse top-performing content, find trending posts in a niche
🤝 Influencer marketingDiscover creators by hashtag, vet engagement (likes/comments/views) before outreach
📈 Data analysts & researchersBuild datasets for social-media trend, sentiment and engagement analysis
🛍️ E-commerce & brandsMonitor brand mentions, user-generated content and product hashtags
🧲 Lead generationFind and qualify prospects posting about your topic
📰 Journalists & OSINTCollect 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.

  1. Click "Try for free" / Start.
  2. 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).
  3. Set a limit (optional). Use Limit per source to cap how many posts you want from each profile/hashtag/search.
  4. Pick a date (optional). Use Scrape until date to only collect recent posts.
  5. Click "Start". Watch posts stream into the results table.
  6. 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

FieldTypeEmojiDescription
urlsarray of text🔗Instagram profile (/<username>/), post/reel (/p/<code>/, /reel/<code>/), hashtag (/explore/tags/<tag>/) or search (/explore/search/keyword/?q=...) URLs
searcharray of text🔎Search keywords — type a word for a keyword search, or prefix with # for a hashtag (e.g. #nasa). Add multiple
limitPerSourcenumber🔢Max posts to scrape per profile/hashtag/search (leave empty for as many as possible)
scrapeUntildate📅Only scrape posts newer than this date
rawDatatrue / 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

FieldEmojiDescription
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 ApifyClient
client = 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.