Instagram Profile Posts & Reels Scraper avatar

Instagram Profile Posts & Reels Scraper

Pricing

$1.50 / 1,000 results

Go to Apify Store
Instagram Profile Posts & Reels Scraper

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

APISmith

Maintained by Community

Actor stats

0

Bookmarked

44

Total users

7

Monthly active users

a day ago

Last modified

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 resultsLimit to keep small tests inexpensive or retrieve a larger set when you need more history.
  • Filter by content age — use onlyPostsNewerThan to focus collection on newer posts and Reels instead of repeatedly processing older content.
  • Handle pinned content intentionally — use skipPinnedPosts when 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

  1. Open Instagram Profile Posts & Reels Scraper in Apify.
  2. Enter an Instagram username.
  3. Set the number of results you want.
  4. Optionally choose a minimum content date, skip pinned Reels, or enable share-count collection.
  5. Click Start.
  6. 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

FieldTypeRequiredWhat it does
usernamesarray of stringsYesInstagram usernames to scrape. Use the profile username without needing to submit every post URL.
resultsLimitintegerYesMaximum number of post/Reel results to return for the requested profile content.
onlyPostsNewerThandate / date filterNoLimits collection to posts and Reels newer than the selected date. Useful for recurring monitoring and incremental collection.
skipPinnedPostsbooleanNoSkips pinned Reels/posts when enabled, helping "latest content" workflows focus on chronological content.
includeSharesCountbooleanNoRequests 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:

GroupFieldsMeaning
Identityid, pk, shortCode, type, productType, urlIdentifies the Instagram content and its type.
Contentcaption, hashtags, mentions, altText and extracted content metadata.
MediadisplayUrl, videoUrl, audioUrl, images, childPostsMedia references and nested media content when available.
DimensionsdimensionsWidth, dimensionsHeight, videoDurationMedia size and video duration.
EngagementlikeCount, commentsCount, videoPlayCountEngagement and playback metrics returned for the content.
CreatorownerId, ownerUsername, ownerFullName, ownerProfilePicUrlProfile information associated with the post or Reel.
Audioaudio_id, artist_name, song_name, should_mute_audioReel audio and music metadata when available.
TimingtimestampPublication 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 os
from apify_client import ApifyClient
client = 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().items
print(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.