Fast Instagram Profile Reels Scraper avatar

Fast Instagram Profile Reels Scraper

Pricing

from $0.49 / 1,000 results

Go to Apify Store
Fast Instagram Profile Reels Scraper

Fast Instagram Profile Reels Scraper

This Actor scrapes public Instagram Reels from profile pages (the Reels tab). It runs in no‑login mode, which makes it fast to start and easy to use for analytics, research, and content monitoring workflows.

Pricing

from $0.49 / 1,000 results

Rating

5.0

(1)

Developer

Instagram Scraper

Instagram Scraper

Maintained by Community

Actor stats

7

Bookmarked

554

Total users

152

Monthly active users

0.83 hours

Issues response

11 days ago

Last modified

Share

Actor Stats

This Actor scrapes public Instagram Reels from profile pages (the Reels tab). It runs in no‑login mode, which makes it fast to start and easy to use for analytics, research, and content monitoring workflows.

What you get

Each Reel (or post represented by reel_url) is stored as one item in the Dataset. Common fields include:

  • id / pk: internal Instagram identifiers
  • shortcode: shortcode used to build the public URL
  • reel_url: Reel / post URL
  • image: cover image URL
  • is_video / video_url: quick media type and playable video URL (when available)
  • has_audio / video_duration: media audio flag and video length (can be null)
  • accessibility_caption: accessibility caption from Instagram (can be null)
  • dimensions: original media dimensions { width, height } from Instagram (or null)
  • caption: caption text (best effort; can be empty)
  • hashtags: #hashtags extracted from the caption
  • mentions: @mentions (can be empty depending on the response)
  • tagged_user: simplified tagged users list
  • location: post location object or null
  • comment_count / like_count / play_count / view_count: engagement counters (can be null)
  • comments: preview list of post comments when included in the post-detail response (can be empty or omitted)
  • taken_at: post timestamp (UTC ISO string; can be null)
  • pinned_for_users: list of pinned-user objects from Instagram; defaults to []
  • crawled_at: scrape time (ISO string)

Need other Instagram data?

This actor is optimized for public Instagram Reels from profile pages. If you need a different Instagram surface, use the dedicated Actor that matches that data type.

Related actors from the instagram-scraper:

ActorDescriptionStats
Instagram Profile ScraperScrape public Instagram profile data, profile statistics, and account flagsInstagram Profile Scraper Actor Stats
Fast Instagram Profile Posts ScraperFast scraper for public Instagram profile posts with a simpler post payloadFast Instagram Profile Posts Scraper Actor Stats
Instagram Profile Posts ScraperScrape public Instagram profile posts with detailed media and metadataInstagram Profile Posts Scraper Actor Stats
Instagram Tagged Posts ScraperScrape posts from the profile Tagged tabInstagram Tagged Posts Scraper Actor Stats
Instagram Hashtags Posts ScraperScrape public Instagram hashtag pagesInstagram Hashtags Posts Scraper Actor Stats
Instagram Related Profiles ScraperDiscover related accounts and recursively expand profile networksInstagram Related Profiles Scraper Actor Stats

How to run it in the Apify Console

  1. Open the Actor page and click Try for free / Run.
  2. In Input, paste one or more Instagram profiles (usernames or profile URLs).
  3. Set how many Reels to scrape per profile (postsPerProfile).
  4. After the run finishes, open the Dataset to view results and export to JSON / CSV / Excel.

Input parameters

instagramUsernames (required)

Accepts either a plain username or a full profile URL (you can mix both):

username
https://www.instagram.com/{username}

Notes:

  • Empty lines are ignored and inputs are de‑duplicated
  • Invalid URLs are reported in logs (they do not automatically fail the whole run)

postsPerProfile

Maximum number of Reels to scrape per profile.

  • Minimum: 5
  • Default: 12
  • If a profile has fewer public Reels (or Instagram limits access), the actual output will be lower

input json example

{
"instagramUsernames": ["youtube", "https://www.instagram.com/google"],
"postsPerProfile": 10
}

Output (Dataset)

Results are stored in the default Dataset (default). Example item (fields may vary slightly depending on Instagram responses):

{
"id": "3847167235685798934",
"pk": "3847167235685798934",
"is_video": true,
"video_url": "https://sconten..oe=69B3232F",
"has_audio": true,
"video_duration": 8.103,
"accessibility_caption": null,
"dimensions": {
"width": 640,
"height": 1137
},
"hashtags": [],
"mentions": ["@bts.bighitofficial"],
"tagged_user": [
{
"full_name": "BTS official",
"followed_by_viewer": false,
"id": "2274763833",
"is_verified": true,
"profile_pic_url": "https://scontent..4041&_nc_sid=d885a2",
"username": "bts.bighitofficial"
},
{
"full_name": "Google India",
"followed_by_viewer": false,
"id": "8536113897",
"is_verified": true,
"profile_pic_url": "https://scontent-l...c_sid=d885a2",
"username": "googleindia"
},
{
"full_name": "Google Indonesia",
"followed_by_viewer": false,
"id": "44378210506",
"is_verified": true,
"profile_pic_url": "https://scontent-lax7..F9&_nc_sid=d885a2",
"username": "googleindonesia"
},
{
"full_name": "Google en Español",
"followed_by_viewer": false,
"id": "48967006444",
"is_verified": true,
"profile_pic_url": "https://scontent-lax..c_sid=d885a2",
"username": "googleespanol"
},
{
"full_name": "Google Japan / グーグル・ジャパン",
"followed_by_viewer": false,
"id": "45157324866",
"is_verified": true,
"profile_pic_url": "https://scontent-lax7..NTKIIoBAAAA&ccb=7-5&oh=00_Afy7_nxWep6lYlwcDSxLpVuWSSULtqQxWpL92A-kd_F73A&oe=69B34CB7&_nc_sid=d885a2",
"username": "googlejapan"
},
{
"full_name": "Google France",
"followed_by_viewer": false,
"id": "74161638136",
"is_verified": true,
"profile_pic_url": "https://scontent-lax7...id=d885a2",
"username": "googlefrance"
}
],
"caption": "@bts.bighitofficial fans, have you seen what happens when you search “BTS” yet? 👀 Something special is waiting for you.\n\n구글에 “BTS”를 검색하면 어떤 일이 일어나는 지 알고 계시나요? 👀 특별한 경험이 기다리고 있습니다!\n\nBTS ファンの皆さん、Google で「BTS」と検索すると何が起きるか、もうチェックしましたか?👀 今なら、とっておきのサプライズが待っていますよ!",
"comment_count": 5550,
"comments": [
{
"id": "...",
"text": "...",
"created_at": 1529249418,
"did_report_as_spam": false,
"owner": {
"id": "...",
"is_verified": false,
"profile_pic_url": "https://scont...",
"username": ".."
},
"viewer_has_liked": false,
"like_count": 0,
"is_restricted_pending": false
}
],
"like_count": 261079,
"play_count": 6338210,
"view_count": 1897124,
"taken_at": "2026-03-06T23:04:38Z",
"is_ad": false,
"is_affiliate": false,
"is_paid_partnership": false,
"is_published": true,
"pinned_for_users": [
{
"id": "23294935302",
"is_verified": true,
"profile_pic_url": "https://instagram.fagc1-2.fna.fbcdn.net/...",
"username": "lays_football"
}
],
"location": null,
"from_url": "https://www.instagram.com/google/reels/",
"reel_url": "https://www.instagram.com/reel/DVj4je6ktQW/",
"crawled_at": "2026-03-08T12:33:04.461569Z",
"image": "https://scontent-lax..c_sid=d885a2",
"shortcode": "DVj4je6ktQW",
"product_type": "clips",
"clips_music_attribution_info": {
"artist_name": "google",
"song_name": "Original audio",
"uses_original_audio": true,
"should_mute_audio": false,
"should_mute_audio_reason": "",
"audio_id": "33977498751893623"
},
"owner": {
"id": "1067259270",
"username": "google",
"is_verified": true,
"profile_pic_url": "https://sconte..9B33AE9&_nc_sid=d885a2",
"blocked_by_viewer": false,
"restricted_by_viewer": null,
"followed_by_viewer": false,
"full_name": "Google",
"has_blocked_viewer": false,
"is_embeds_disabled": false,
"is_private": false,
"is_unpublished": false,
"requested_by_viewer": false,
"pass_tiering_recommendation": true,
"edge_owner_to_timeline_media": {
"count": 3137
},
"edge_followed_by": {
"count": 15742809
},
"post_count": 3137,
"followers": 15742809
},
"coauthor_producers": [
{
"id": "8536113897",
"is_verified": true,
"profile_pic_url": "https://scontent-lax7-..._sid=d885a2",
"username": "googleindia"
},
{
"id": "45157324866",
"is_verified": true,
"profile_pic_url": "https://scontent-la..._nc_sid=d885a2",
"username": "googlejapan"
},
{
"id": "48967006444",
"is_verified": true,
"profile_pic_url": "https://scontent-..._nc_sid=d885a2",
"username": "googleespanol"
},
{
"id": "44378210506",
"is_verified": true,
"profile_pic_url": "https://scontent-lax7-...sid=d885a2",
"username": "googleindonesia"
}
]
}

FAQ

1) Why is the Dataset empty / much smaller than expected?

The profile has no public Reels, not enough Reels, or Instagram is limiting access

2) What does Restricted profile mean?

A profile can be public but still limited for anonymous (no-login) access. Instagram may gate some profile endpoints unless a logged-in session is used. When this happens, the Actor logs the restriction and skips/stops that profile.

3) How does billing work for unavailable profiles?

The Actor uses one unified charge event: restricted_profile. This event is emitted when a profile cannot return Reels due to:

  • restricted/no-login access limits,
  • profile not found (dead link / non-existent profile),
  • no Reels found for that profile.

Limitations & recommendations

  • Data scope: this Actor is optimized for Reel/post-level data from profile pages. It is not a full profile-metadata scraper.
  • No-login access limits: this Actor runs without an Instagram login by default. Some profile-level fields or endpoints may be unavailable in no-login mode, even for public profiles.
  • Compliance: make sure your usage complies with Instagram’s terms and your local laws, and only collect data you have the right to use.