Instagram Posts Scraper avatar

Instagram Posts Scraper

Pricing

from $1.50 / 1,000 results

Go to Apify Store
Instagram Posts Scraper

Instagram Posts Scraper

Instagram Posts Scraper SD - Instagram Posts Scraper is a social media data tool that exports every public post of a profile with caption, likes, comments, exact date, media and paid-partnership flags, no login (30 posts in 24 s) - instagram post scraper.

Pricing

from $1.50 / 1,000 results

Rating

0.0

(0)

Developer

Neuro Scraper

Neuro Scraper

Maintained by Community

Actor stats

0

Bookmarked

11

Total users

5

Monthly active users

12 days ago

Last modified

Features

Limited permissions

Share

Instagram Posts Scraper: every public post with dates and likes

The Instagram Posts Scraper exports every public post of an Instagram profile as rows: caption, likes, comments, exact date, images, video links and paid-partnership flags. It is an Instagram post scraper that needs no login and no cookies.

Add usernames or post links and scrape Instagram posts into JSON, CSV or Excel. Measured on 2026-10-03: the Instagram Posts Scraper returned 30 NASA posts with full details in 24 seconds.

An Instagram post scraper that needs no login

The Instagram Posts Scraper reads Instagram's own post list as a logged-out visitor and follows its cursor, 12 posts per call, until your limit or the profile's last post. Every token and query id is read from Instagram on each run, never hardcoded.

With the Instagram Posts Scraper you view Instagram posts without logging in, as a sortable table instead of a feed. As an Instagram profile posts scraper it gives one line per post, with the same keys every time.

Why choose this Instagram Posts Scraper

  • Likes, comments and dates from the list itself. Instagram's logged-out timeline list carries them, so the Instagram Posts Scraper read 30 NASA posts with full details in 24 s (local test, 2026-10-03).
  • Date windows that stop early. natgeo with onlyPostsNewerThan "2 days" returned 8 posts in 28 s; paging stopped once older posts arrived.
  • Pinned posts flagged and skippable. isPinned marks them and skipPinnedPosts leaves them out, using Instagram's own pinned flag.
  • Branded content fields. paidPartnership, sponsors, co-authors, music info, tagged users, alt text and place coordinates come in every full row.
  • Light mode for speed. With includeDetails off, one post link plus 13 natgeo posts gave 14 rows in 16 s.
  • Tested on the platform. An Apify run with the residential proxy returned 13 natgeo posts in 37 s.

What the Instagram Posts Scraper extracts

Each Instagram Posts Scraper row is one post or reel from the profile grid or a post link. These fields appeared in the 2026-10-03 test runs; fields Instagram does not publish for a post stay empty.

FieldMeaning
id, shortCode, urlMedia id, short code and public link
type, productTypeImage, Video or Sidecar (carousel); Instagram's feed, clips or carousel_container label
caption, hashtags, mentionsCaption text, its #hashtags and its @mentions
timestampPublication time (UTC, ISO 8601)
likesCount, commentsCountLikes and comments
likesAndViewsHiddenThe owner hides like and view counts
videoPlayCountPlays: empty for grid posts, which carry no play count logged out
ownerUsername, ownerId, ownerFullNameAccount that posted it
ownerIsVerified, ownerProfilePicUrlOwner's verified badge and picture link
displayUrl, imagesLargest image link; every image of the post (carousel items too)
videoUrl, audioUrlVideo file and audio-only track (signed links that expire)
videoDurationSec, width, heightLength in seconds and size in pixels
altTextInstagram's accessibility caption
childPosts, carouselCountCarousel items (type, id, image, video, size) and how many there are
taggedUsersAccounts tagged in the media
coauthors, coauthorProducersCollab co-authors, also with name, id and verified flag
locationName, locationId, locationLat, locationLngTagged place, its id and its coordinates
audio, musicInfo, hasAudioSong or original audio (title, artist, id, licensed or original, explicit, trending); video has sound
captionIsEditedCaption edited after posting
isPinnedPinned to the top of the profile (Instagram's own flag)
paidPartnership, sponsorsPaid-partnership label and the brands named
topicsTopic labels Instagram attaches to the post
firstComment, latestCommentsNewest comment; first comments page (about 13-15) with author, likes and date
detailsAvailableTrue when the post's own data was read, false in light mode
inputUsername, inputUrlThe username or post link you entered
scrapedAtWhen the row was read

Export the Instagram Posts Scraper dataset as JSON, CSV, Excel, XML or HTML, or read it through the Apify API. That is how to export Instagram posts in one step: the dataset tab has an Excel button.

What you can do with Instagram post data

Scrape Instagram posts of any public profile

Archive or analyse what an account publishes: give the Instagram Posts Scraper usernames and a per-profile limit. A pagination check asked for 50 posts and got 50 in 14 s through 5 list calls, light mode.

Instagram post date finder: the exact Instagram timestamp

Every row has timestamp, the exact publication time in UTC to the second, read from Instagram itself. The Instagram Posts Scraper also tells you when a caption was edited (captionIsEdited) and whether the post is pinned.

Check the date of Instagram post links in bulk

Paste post or reel links into postUrls and the Instagram Posts Scraper returns one row per link with its date, likes, comments and media. Measured: a post link plus 13 natgeo posts gave 14 rows in 16 s.

Instagram posts viewer without an account

Read a public profile's posts without an Instagram account or app: the Instagram Posts Scraper shows them as rows with caption, likes, dates and image links. Private accounts return nothing; their posts are only for approved followers.

Find an account's most liked Instagram posts

Run the Instagram Posts Scraper on the profile with a high maxPostsPerProfile, then sort the export by likesCount. It doubles as an Instagram post likes scraper for counts, not for the list of likers, which needs a login.

Find Instagram sponsored posts and paid partnerships

Filter the Instagram Posts Scraper rows where paidPartnership is true: sponsors names the brand. In our test, a natgeo post came back with paidPartnership and Rolex as sponsor, so Instagram paid posts of any public account are one filter away.

How to use the Instagram Posts Scraper

Here is how to scrape Instagram posts in four steps:

  1. Open the Instagram Posts Scraper in Apify Console and add usernames, @handles or profile links.
  2. Set maxPostsPerProfile, and add a date window or skipPinnedPosts if you need them.
  3. Keep the residential proxy: Instagram limits logged-out visitors per IP address.
  4. Press Start, then export the dataset or read it through the API.

Every input field of the Instagram Posts Scraper:

FieldTypeDefaultWhat it does
usernamesarray["nasa"]One per line: a username (nasa), an @handle (@nasa) or a profile link
postUrlsarray[]Single post or reel links to read directly
maxPostsPerProfileinteger24Newest posts per profile (12 per call, paginated)
includeDetailsbooleantrueReads each post's own data (one extra request per post); off is faster
onlyPostsNewerThanstring-Leave out older posts: 2026-09-01, an ISO time or "7 days" (UTC); paging stops at older posts
onlyPostsOlderThanstring-Leave out newer posts (same formats); combine both for a date range
skipPinnedPostsbooleanfalseLeave out posts pinned to the top of the profile
maxItemsinteger0Stops the run after this many rows; 0 = only the per-profile limit
proxyConfigurationobjectRESIDENTIALApify proxy; a blocked IP is swapped for a fresh one

In light mode (includeDetails off) the Instagram Posts Scraper still returns link, type, caption, image, likes, comments, date and pinned flag from Instagram's post list; topics and comments need full details.

The Instagram Posts Scraper still accepts the older input fields username and max_items (5 bbcnews posts in 18 s).

Example input of the Instagram Posts Scraper, the last two days of natgeo without pinned posts:

{
"usernames": ["natgeo"],
"maxPostsPerProfile": 30,
"onlyPostsNewerThan": "2 days",
"skipPinnedPosts": true
}

Instagram posts API: read posts from your code

Every Apify Actor is an API, so the Instagram Posts Scraper works as an Instagram post API: send the JSON input over HTTPS and get the dataset back. It reads posts only; it cannot publish, edit or delete them, and it is not Meta's Graph API.

One request runs the Instagram Posts Scraper and returns the rows: POST the input to https://api.apify.com/v2/acts/neuro-scraper~instagram-posts-scraper/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>.

Instagram post scraper Python code with the Apify client:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("neuro-scraper/instagram-posts-scraper").call(
run_input={"usernames": ["nasa"], "maxPostsPerProfile": 30})
for post in client.dataset(run["defaultDatasetId"]).iterate_items():
print(post["timestamp"], post["likesCount"], post["url"])

The same Instagram post scraper API call works from Make, Zapier or n8n through their Apify integrations, and a webhook can push each finished run into your own system.

Instagram Posts Scraper pricing, speed and limits

The Instagram Posts Scraper uses pay-per-event pricing: one result event per dataset row, plus the Apify platform usage of your run.

Apify planPrice per 1,000 rows
Free$2.99
Bronze$2.89
Silver$2.69
Gold and above$2.49

Instagram Posts Scraper runs on the Free plan are capped at 30 rows. That is a size cap, not a free allowance: every row is charged. Set a maximum cost per run and the run stops when it is reached.

Instagram Posts Scraper speed in the local test runs (2026-10-03, home connection, no proxy):

TestResultRowsTime
prefill input (regression)PASS2423 s
paginate past page 1 (30 posts)PASS3024 s
post URL + light modePASS1416 s
legacy input (username, max_items)PASS518 s
NEW date filter + skip pinned (natgeo)PASS828 s
NEW date window, light modePASS517 s

A regression run of the final Instagram Posts Scraper code returned the 24 prefill posts in 16 s.

Instagram Posts Scraper limits, measured on 2026-10-03:

  • Instagram shows logged-out visitors no total post count for a profile, so an Instagram Posts Scraper run ends at your limit or at the profile's last post.
  • Grid posts carry no play or view counts logged out; the Instagram Reels Scraper reads plays from the Reels tab.
  • Private accounts return nothing, and the tagged tab and saved posts need a login.
  • Video and audio links are signed and expire after a few days: store the files with a downloader Actor if you need them.
  • Replies to comments are not shown logged out; latestComments holds the first page only.

Frequently asked questions

Can you scrape Instagram posts?

Yes, the public ones. The Instagram Posts Scraper reads every post a logged-out visitor can see on a public profile, with likes, comments, dates and media. Private accounts are out of reach.

Is there a way to scrape Instagram posts for free?

You can run the Instagram Posts Scraper on the Apify Free plan, but runs there are capped at 30 rows and every row is charged at $2.99 per 1,000. Paid plans have no such cap and a lower row price.

How do I find the date of an Instagram post?

Add the post link to the Instagram Posts Scraper's postUrls (or the account to usernames) and read timestamp: the exact publication time in UTC, as Instagram stores it.

How do I export Instagram posts to Excel?

Run the Instagram Posts Scraper, open the dataset and choose Excel (or CSV). Dates are ISO 8601 and counts are numbers, so the sheet sorts and filters without cleaning.

Does Instagram allow scraping of posts?

Instagram's Terms of Use say information should not be collected in an automated way without its permission. The Instagram Posts Scraper never logs in, but you remain responsible for how you use the data, including the GDPR where it applies.

Are Instagram posts public?

Posts of public accounts are visible to anyone, logged in or not; posts of private accounts are visible only to approved followers. The Instagram Posts Scraper reads the public ones only.

How do I find an account's most liked posts?

Collect its posts with the Instagram Posts Scraper and sort by likesCount. Posts whose owner hides likes are marked with likesAndViewsHidden.

How do I find paid partnerships and sponsored posts of an account?

Keep the rows where paidPartnership is true; sponsors lists the brands. Instagram marks these posts in its own post list, which the Instagram Posts Scraper reads.

Can I see Instagram posts without an account?

Yes, for public profiles. The Instagram Posts Scraper works logged out, so you need an Apify account to run it but no Instagram account.

These published Actors run on the same logged-out engine as the Instagram Posts Scraper, each tuned for one job.

ActorLink
Instagram Hashtag Scraperneuro-scraper/instagram-reeel-scraper
Instagram Reels Scraperneuro-scraper/instagram-reels-scraper
Instagram Reels Downloaderneuro-scraper/instagram-reels-downloader
Instagram Trends Scraperneuro-scraper/instagram-reels-scraper-and-downloader
Instagram Location Scraperneuro-scraper/instagram-reels-scraper-and-downloader-advanced
Instagram Comments Scraperneuro-scraper/instagram-reels-scraper-and-downloader-premium
Instagram Profile Scraperneuro-scraper/instagram-reels-scraper-downloader-pro
Instagram Video Downloaderneuro-scraper/instagram-video-downloader
Instagram Scraperneuro-scraper/instagram-video-scraper
Instagram Search Scraperneuro-scraper/instagram-video-scraper-advanced
Instagram Image Downloaderneuro-scraper/instagram-video-scraper-and-downloader
Instagram Keyword Scraperneuro-scraper/instagram-video-scraper-and-downloader-fastest

Leave a review

If the Instagram Posts Scraper saved you time, please leave a star rating and a short review on its Apify page. Reviews help other buyers judge the Instagram Posts Scraper and tell us what to build next; if something failed, open an issue instead.