Instagram Post Scraper avatar

Instagram Post Scraper

Pricing

from $2.00 / 1,000 post scrapeds

Go to Apify Store
Instagram Post Scraper

Instagram Post Scraper

Scrape Instagram posts anonymously — by username (the profile's recent posts) or by direct post/reel URL. Returns shortcode, permalink, type, caption, likes, comments, timestamp, media URLs, and owner. No login required.

Pricing

from $2.00 / 1,000 post scrapeds

Rating

0.0

(0)

Developer

bootforge

bootforge

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Instagram Post Scraper — By Username or Post URL, No Login

The Instagram Post Scraper is an Apify actor that extracts public Instagram post data — no login, no account, no cookies. Give it a username (returns the profile's recent posts) or a direct post / reel URL (returns that single post), and get one structured record per post: shortcode, permalink, type, caption, likes, comments, timestamp, thumbnail / display / video URLs, and the owner.

Use it to build a content dataset, track a competitor's posting cadence, feed engagement models, or archive reels — exported to JSON, CSV, or Excel.

Table of contents

What the Instagram post scraper does

  • 🕵️ Anonymous, no login — HTTP-only extraction; no Instagram account, password, or session cookie.
  • 👤 By username — pass a handle to collect the profile's recent posts (best-effort cap via max_posts).
  • 🔗 By post / reel URL — pass a direct instagram.com/p/… or /reel/… URL to scrape that single post.
  • 📝 Full post fields — caption, likes, comments, timestamp, post type, and media URLs (thumbnail, display, video).
  • 🖼️ Media links — direct display and video URLs for images and reels, ready to download or embed.
  • 💵 Pay per post — $0.002 per post delivered, nothing else.

Use cases

Content datasets and archives — One structured record per post — shortcode, permalink, type, caption, likes, comments, timestamp, and thumbnail/display/video URLs — makes a durable archive of an account's output, including reels that are otherwise awkward to keep.

Posting-cadence and competitor tracking — Timestamps across a profile's recent posts show how often a competitor publishes and at what times, and the engagement counts show which of those choices actually worked.

Engagement modelling — Likes and comments alongside post type and caption give the feature set for a model of what performs on an account, built from that account's own history rather than generic benchmarks.

Influencer vetting — Pull a creator's recent posts before a partnership and check whether engagement is consistent with follower count, and whether their actual content matches the media kit. No login, account, or cookies required.

How to scrape Instagram posts

  1. Click Try for free and open the actor.
  2. Add one or more targets — usernames (e.g. nike) or direct post/reel URLs.
  3. Optional: set max_posts to cap posts per username (ignored for direct post URLs).
  4. Leave Proxy provider on Default — a residential proxy is included.
  5. Click Start and watch results stream into the dataset.
  6. Export as JSON, CSV, or Excel, or pull from the Apify API.
{
"targets": ["nike", "https://www.instagram.com/p/Dbdo4gTupuE/"],
"max_posts": 12,
"proxyProvider": "default"
}

Instagram post scraper input

FieldDescription
targetsUsernames (returns the profile's recent posts) or direct post/reel URLs (returns that single post). Examples: nike, https://instagram.com/p/ABC123/.
max_postsBest-effort cap on posts returned per username. Default 12, min 1, max 500. Ignored for direct post URLs (always one post).
proxyProviderdefault (residential proxy included), dataimpulse, apify, custom (uses proxyUrls), or disabled.
proxyUrlsYour own gateway URLs, one per entry. Only read when proxyProvider is custom.
proxyApify Proxy group + country, read when proxyProvider is apify. Its country also sets the exit country for the built-in providers.

Instagram post data output

Each post is one dataset row. Sample:

{
"owner_username": "nike",
"owner_full_name": "Nike",
"post": {
"shortcode": "Dbdo4gTupuE",
"url": "https://www.instagram.com/p/Dbdo4gTupuE/",
"typename": "GraphVideo",
"is_video": true,
"caption": "The game looks different from here.",
"likes": 175374,
"comments": 1148,
"taken_at": "2026-07-31T16:00:05+00:00",
"thumbnail_url": "https://instagram.fbaq6-1.fna.fbcdn.net/v/...",
"display_url": "https://instagram.fbaq6-1.fna.fbcdn.net/v/...",
"video_url": "https://instagram.fbaq6-1.fna.fbcdn.net/o1/v/..."
},
"source": "timeline",
"scraped_at": "2026-06-19T08:30:00+00:00",
"error": null
}

The dataset's table view flattens this to one flat row per post (CSV-friendly).

FieldDescription
owner_username, owner_full_nameThe post owner's handle and display name.
post.shortcodeInstagram shortcode (stable post ID).
post.urlCanonical permalink.
post.typenamePost type (image, sidecar/carousel, or video/reel).
post.is_videotrue for reels/videos.
post.captionPost caption text.
post.likes, post.commentsEngagement counts.
post.taken_atPublish timestamp (ISO 8601).
post.thumbnail_url, post.display_url, post.video_urlMedia URLs (video_url populated only for videos/reels).
sourcetimeline (from a username) or embed (from a direct post URL).
scraped_atWhen the row was captured.
errorSet if a target failed; the row is not charged.

How much it costs

This actor uses pay-per-event pricing — you pay for what you scrape, not for time.

EventUSD
Actor start (per GB memory)$0.005
Post scraped$0.002

At the default 1 GB memory, actor start is ~$0.005 per run.

Typical run (default 1 GB)Cost
1 post via direct URL~$0.007
100 posts (e.g. ~8 usernames × 12)~$0.21
1,000 posts~$2.01

You only pay for posts actually delivered. Targets that error (not-found, blocked) are not charged.

A residential proxy is included — leave Proxy provider on Default. Pick Custom and paste your own gateway URLs.

👉 Get DataImpulse residential proxies (referral link)

Why this Instagram post scraper

  • No login, no cookies — anonymous HTTP extraction; no risk to an Instagram account.
  • Two ways in — scrape a profile's recent posts by username, or a specific post/reel by URL, in one input list.
  • Fast and cheap — HTTP-only (no browser), billed per post delivered.
  • Validated output — every row is a Pydantic-validated record with a stable field set, safe for spreadsheets and pipelines.
  • Open source — the underlying instagram-scraper Python package ships a Typer CLI and a FastAPI server; the Apify wrapper is a thin layer.

FAQ

Do I need an Instagram account or login? No. The actor extracts only publicly visible post data anonymously over HTTP — no account, password, or session cookie. It cannot access private accounts or private content.

Do I need a proxy? No — a residential proxy is included by default. To use your own, pick Custom; we use DataImpulse (referral link).

Can I scrape a specific post or reel? Yes. Put the direct post or reel URL (e.g. https://instagram.com/p/ABC123/) in targets and the actor returns that single post. max_posts is ignored for direct URLs.

How many posts can I get per username? Set max_posts up to 500. Pagination is best-effort under anonymous access, so very large back-catalogs may return fewer than requested.

Am I charged for posts that fail? No. Targets that error — not-found or blocked — are never charged. You only pay for posts actually delivered.

Is scraping Instagram legal? This actor collects only publicly available post data. You are responsible for complying with Instagram's terms and applicable laws. Do not collect personal data without a lawful basis.

Rate this actor ⭐

If the Instagram Post Scraper saved you time, please leave a review on its Apify Store page — ratings help other people find it and tell us what to build next. Hit a bug or missing field? Open an issue through the actor's Issues tab and we'll fix it fast — recency and reliability are what keep this actor ranking.

Building a broader social pipeline? These actors use the same proxy config format and Pydantic-validated output — all open source.

  • Instagram Profile Scraper — scrape public Instagram profiles: bio, follower/following counts, verified/business flags, and recent posts. No login.
  • TikTok Profile Scraper — scrape public TikTok profiles by handle: stats, bio, and metadata.