Instagram Profile Posts Scraper
Pricing
from $0.50 / 1,000 results
Instagram Profile Posts Scraper
Scrape public Instagram profile posts back to a date. Returns likes, comments, captions, hashtags, media URLs, owner info, follower counts, and optional play counts.
Pricing
from $0.50 / 1,000 results
Rating
0.0
(0)
Developer
Mark Pandit
Maintained by CommunityActor stats
0
Bookmarked
4
Total users
2
Monthly active users
5 days ago
Last modified
Categories
Share
Collect public posts and reels from Instagram profiles, starting at the newest and stopping at a date you choose. Posts from the Posts tab and the Reels tab are combined into one row per post. Each row in the dataset is one post.
Setup
Profiles. One profile per line. A username, @username, or a profile URL all work.
username@another_username
Scrape till date. Posts from this date onward are saved. Anything older is left out.
Include video play counts. On by default. Also reads the Reels tab and merges it with the Posts tab. The same reel is saved once, and that row keeps its play count when the public Reels page includes one. A reel that was not shared to the profile grid is still included when it is on that page. Videos without a play count are still saved. Turn it off to scrape the Posts tab only; play counts will be empty.
Max posts per profile. Stops that profile once this many posts are saved.
Max posts for the entire run. Stops the whole run once this many posts are saved. Later profiles are skipped.
Session proxy. Leave the residential proxy on. Instagram expects the same connection for the whole run.
Fallback proxy. Used only when the session proxy is turned off.
Optional login
A run works without an account. For higher rate limits and steadier follower counts, set the IG_SESSIONID environment variable to a logged-in Instagram sessionid cookie.
Results
One dataset item per post.
| Field | What it is |
|---|---|
id | Instagram media id |
type | Image, Video, or Sidecar |
shortCode | Code used in the post URL |
url | Public post or reel link |
caption | Caption text |
hashtags | Hashtags from the caption |
mentions | @mentions from the caption |
commentsCount | Comment count |
likesCount | Like count |
videoPlayCount | Play count for reels and videos, when play counts are turned on |
timestamp | Publish time (UTC) |
displayUrl | Thumbnail or main image |
videoUrl | Direct video file, when the post has one |
images | Carousel image URLs |
ownerUsername | Profile username |
ownerFullName | Profile display name |
ownerId | Profile id |
productType | Instagram format, such as clips or feed |
isPaidPartnership | Paid partnership |
isCommentsDisabled | Comments turned off |
hasAudio | Audio present |
dimensionsHeight / dimensionsWidth | Original media size |
locationName | Location, when the post has one |
musicInfo | Reel audio details, when Instagram includes them |
followersCount | Follower count for the profile, when available |
inputUrl | Profile you asked for |
Pinned posts are included and sorted by publish time with everything else. The Posts tab and the Reels tab are combined, and the same post is saved once.
These are left out of the results:
- Full comment threads
- Related accounts, highlights, and IGTV catalogs
- Details Instagram does not show on the public profile
Limits
- Public profiles only.
- Both post caps apply. Once the run cap is reached, remaining profiles are skipped.
- Media links expire. Download files you need to keep.
- Likes, comments, and play counts can change after the run.
- If Instagram rate-limits the run, add
IG_SESSIONID.
Responsible use
This collects publicly visible posts only. Use the results in line with the law, privacy rules, and Instagram’s terms.