Instagram Profile Posts & Reels Scraper
Pricing
$1.50 / 1,000 results
Instagram Profile Posts & Reels Scraper
Instagram Profile Posts & Reels Scraper. Scrape public Instagram profiles by username and extract posts, Reels, videos, images, captions, hashtags, mentions, likes, comments, views, audio, URLs, timestamps, owner data, and metadata. Filter by date, skip pinned posts, and set result limits.
Pricing
$1.50 / 1,000 results
Rating
5.0
(9)
Developer
APISmith
Maintained by CommunityActor stats
0
Bookmarked
44
Total users
7
Monthly active users
a day ago
Last modified
Categories
Share
Scrape posts and Reels from public Instagram profiles and turn them into structured data ready for research, monitoring, automation, or downstream AI workflows.
Enter one or more Instagram usernames, choose how many results you need, and get post and Reel data including captions, direct media URLs, engagement metrics, hashtags, mentions, audio metadata, timestamps, and creator information. You can also filter out older content, skip pinned Reels, and request share-count data when available.
Use the Actor in Apify Console for one-off collection, schedule recurring profile checks, or call it through the Apify API from your own application or workflow.
What you get
Each returned Instagram post or Reel can include:
- Post identity — post ID, shortcode, type, Instagram URL, and product type.
- Content — caption, hashtags, mentions, alt text, and carousel child posts when present.
- Media — direct video URL, display/cover image URL, image data, dimensions, and video duration.
- Engagement — likes, comments, video play count, and share-related data when available.
- Audio — audio ID, artist name, song name, and audio settings for Reels.
- Creator data — owner ID, username, full name, and profile picture URL.
- Timing — publication timestamp for filtering, sorting, and monitoring workflows.
That means you can go from an Instagram username to structured profile content without manually opening individual posts and copying captions, media links, or engagement numbers.
Short output example
{"id": "3686978213131137155","type": "Video","shortCode": "DMqxyaASTCD","caption": "Watch this entire video. Then implement it.","url": "https://www.instagram.com/p/DMqxyaASTCD/","commentsCount": 1398,"likeCount": 84329,"videoPlayCount": 1077015,"videoDuration": 180.022,"ownerUsername": "blairrichardsofficial","productType": "clips","artist_name": "Blair Richards","song_name": "Original audio","hashtags": ["#manifestation", "#millionaire", "#mindset"],"mentions": []}
Fields depend on the content type and on what Instagram makes available for a particular post or Reel.
Key features
- Posts and Reels from Instagram profiles — use a username to collect recent profile content in one run instead of processing individual post URLs.
- Rich media and metadata — get captions, direct video and image references, creator details, audio information, hashtags, mentions, timestamps, and engagement metrics in structured fields.
- Control how much data you collect — set
resultsLimitto keep small tests inexpensive or retrieve a larger set when you need more history. - Filter by content age — use
onlyPostsNewerThanto focus collection on newer posts and Reels instead of repeatedly processing older content. - Handle pinned content intentionally — use
skipPinnedPostswhen pinned Reels would otherwise distort a "latest content" workflow. - Automation-ready output — export the Dataset or pass the results to databases, spreadsheets, analytics pipelines, scheduled monitoring, or AI workflows.
Quick start
- Open Instagram Profile Posts & Reels Scraper in Apify.
- Enter an Instagram username.
- Set the number of results you want.
- Optionally choose a minimum content date, skip pinned Reels, or enable share-count collection.
- Click Start.
- Open the Dataset when the run finishes and export or use the results through the API.
A minimal input looks like this:
{"usernames": ["blairrichardsofficial"],"resultsLimit": 8}
A more targeted run can use the available filters:
{"includeSharesCount": true,"onlyPostsNewerThan": "2026-05-21","resultsLimit": 8,"skipPinnedPosts": false,"usernames": ["blairrichardsofficial"]}
Input
| Field | Type | Required | What it does |
|---|---|---|---|
usernames | array of strings | Yes | Instagram usernames to scrape. Use the profile username without needing to submit every post URL. |
resultsLimit | integer | Yes | Maximum number of post/Reel results to return for the requested profile content. |
onlyPostsNewerThan | date / date filter | No | Limits collection to posts and Reels newer than the selected date. Useful for recurring monitoring and incremental collection. |
skipPinnedPosts | boolean | No | Skips pinned Reels/posts when enabled, helping "latest content" workflows focus on chronological content. |
includeSharesCount | boolean | No | Requests share-count data where that metric is available in the returned Instagram data. |
Common input recipes
Get the latest profile content
{"usernames": ["blairrichardsofficial"],"resultsLimit": 12}
Collect only newer content
{"usernames": ["blairrichardsofficial"],"resultsLimit": 50,"onlyPostsNewerThan": "2026-10-01"}
Ignore pinned content
{"usernames": ["blairrichardsofficial"],"resultsLimit": 20,"skipPinnedPosts": true}
Output reference
The Dataset is organized around individual Instagram posts and Reels. Common fields include:
| Group | Fields | Meaning |
|---|---|---|
| Identity | id, pk, shortCode, type, productType, url | Identifies the Instagram content and its type. |
| Content | caption, hashtags, mentions, alt | Text and extracted content metadata. |
| Media | displayUrl, videoUrl, audioUrl, images, childPosts | Media references and nested media content when available. |
| Dimensions | dimensionsWidth, dimensionsHeight, videoDuration | Media size and video duration. |
| Engagement | likeCount, commentsCount, videoPlayCount | Engagement and playback metrics returned for the content. |
| Creator | ownerId, ownerUsername, ownerFullName, ownerProfilePicUrl | Profile information associated with the post or Reel. |
| Audio | audio_id, artist_name, song_name, should_mute_audio | Reel audio and music metadata when available. |
| Timing | timestamp | Publication time returned for the content. |
Not every field is populated for every content type. For example, image posts do not have a video duration, and some Instagram metrics or media attributes may be unavailable for a particular item.
Pricing
The Actor is listed with pay-per-result pricing. The current Store rate shown for this Actor is $1.50 per 1,000 results.
At that rate:
- 100 results ≈ $0.15
- 1,000 results ≈ $1.50
- 10,000 results ≈ $15.00
Use resultsLimit to control the maximum amount of content requested in a run. Pricing can change, so check the Actor's Pricing tab for the current rate before large-scale runs.
API and automation
You can run this Instagram scraper manually, schedule it in Apify, or integrate it into an application through the Apify API. The Dataset can also be exported for use in spreadsheets, databases, Make, Zapier, n8n, or other data pipelines.
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({token: process.env.APIFY_TOKEN,});const input = {usernames: ['blairrichardsofficial'],resultsLimit: 8,skipPinnedPosts: false,includeSharesCount: true,};const run = await client.actor('apple_yang/instagram-post-scraper').call(input);const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ["APIFY_TOKEN"])run = client.actor("apple_yang/instagram-post-scraper").call(run_input={"usernames": ["blairrichardsofficial"],"resultsLimit": 8,"skipPinnedPosts": False,"includeSharesCount": True,})items = client.dataset(run["defaultDatasetId"]).list_items().itemsprint(items)
Keep your APIFY_TOKEN in an environment variable or secret store. Do not hard-code it into public code.
Use with AI agents and workflows
The Actor provides structured Instagram content that can become input for downstream AI systems:
Instagram profile → posts & Reels → captions + media + engagement + metadata → AI workflow
For example, you can pass the returned data into your own workflow to classify content themes, summarize captions, compare posting patterns, or select media for further multimodal analysis. Those AI operations happen downstream; this Actor focuses on collecting the Instagram data.
Use cases
- Creator and competitor monitoring — collect recent posts and Reels from selected public profiles and use the structured results to compare publishing activity and engagement over time.
- Content research — gather captions, hashtags, mentions, audio metadata, and media references for creators or brands you already track.
- Social media datasets — turn profile content into structured rows for spreadsheets, databases, dashboards, or internal analytics.
- Incremental monitoring — combine a date filter with scheduled runs to focus each collection on newer content.
- AI pipelines — feed captions, media URLs, creator data, and engagement metrics into downstream classification, summarization, or multimodal workflows.
FAQ
Can I scrape both Instagram posts and Reels?
Yes. The returned profile content can include regular posts and Reels. Reel results can include video URLs, play counts, duration, and audio metadata when those fields are available.
Can I scrape an Instagram profile by username?
Yes. Add the Instagram username to usernames and set resultsLimit to the maximum number of results you want.
Can I scrape only recent Instagram posts and Reels?
Yes. Use onlyPostsNewerThan to focus the run on content newer than a selected date. This is useful for scheduled or incremental collection.
Can I exclude pinned Instagram posts or Reels?
Yes. Enable skipPinnedPosts when you want the result set to focus on non-pinned content.
Does the Actor return captions and engagement data?
Yes. Results can include captions, likes, comments, video play counts, hashtags, mentions, and other metadata when Instagram provides those values for the item.
Can I use this Instagram scraper through an API?
Yes. You can call apple_yang/instagram-post-scraper through the Apify API and read the resulting Dataset programmatically.
Limitations and responsible use
This Actor is intended for publicly accessible Instagram profile content. Private, deleted, restricted, region-limited, age-restricted, or otherwise unavailable content may not be retrievable.
Instagram can change what data is publicly available, and some fields may be missing for particular posts or content types. Direct Instagram CDN media URLs can also be temporary, so archive media promptly if your workflow requires long-term storage.
Use this Actor only for data you are permitted to access and process. You are responsible for complying with applicable laws, Instagram's terms, copyright requirements, privacy obligations, and Apify's terms.
Support
If you encounter a reproducible problem, open an issue on the Actor page or contact support@apismith.online.
For faster troubleshooting, include the Apify Run ID and a non-sensitive example input. Never send passwords, session IDs, cookies, API keys, proxy credentials, authorization headers, or your Apify token.