Instagram Reels Scraper — Profiles, Hashtags & Keywords avatar

Instagram Reels Scraper — Profiles, Hashtags & Keywords

Pricing

from $1.50 / 1,000 reel extracteds

Go to Apify Store
Instagram Reels Scraper — Profiles, Hashtags & Keywords

Instagram Reels Scraper — Profiles, Hashtags & Keywords

Scrape Instagram Reels from profiles, hashtags, or URLs. Returns video URL, captions, likes, comments, music, tags. MCP-ready. $1.50/1K reels.

Pricing

from $1.50 / 1,000 reel extracteds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

1

Bookmarked

235

Total users

39

Monthly active users

13 hours ago

Last modified

Share

🎬 Instagram Reels Scraper — Profiles, Hashtags & Keywords

This Apify Actor helps creators, analysts, and AI workflows collect public Instagram Reels from profiles, hashtags, or direct reel URLs. Provide one input type at a time - usernames or profile URLs, hashtags, or direct URLs - and the Actor returns one dataset record per reel. Each record centers on reel identity and source context, with fields such as reel URL, username, display name, caption, hashtags, mentions, likes, comments, views, plays, duration, video URL, thumbnail URL, audio title, audio artist, sponsorship flag, pinned flag, posted time, scraped time, and source URL.

This Actor is usable through Apify MCP and through the Apify platform for runs, exports, scheduling, and API access.

Best fit and connected workflows

Use this Actor when your workflow starts with:

  • a specific Instagram account and you want its Reels feed
  • a topic or hashtag and you want Reels related to that theme
  • a single Reel URL and you want one normalized record for that item

Common connected workflows include:

  • content research from public Instagram Reels
  • creator discovery from hashtag-based searches
  • monitoring public Reel activity from known profiles
  • downstream AI enrichment over caption, hashtag, and media metadata
  • export into datasets, spreadsheets, or automation steps after the execution completes

Practical scenario

Maya is reviewing public Reels for a travel campaign. She starts with the hashtag travel, sets a per-source Reel cap, and receives records with reel URL, caption, likes, plays, comments, hashtags, posted time, and source URL. She uses the hashtag list and engagement fields to decide which creators to review next, then opens the reel URLs for manual evaluation.

Input fields

Fill in at least one of the three source sections. The input schema accepts profiles, hashtags, or direct reel links.

FieldTypeDescriptionDefault
usernamesarray of stringsInstagram usernames or profile URLs, such as natgeo or https://www.instagram.com/natgeo/-
hashtagsarray of stringsHashtags without the # symbol, such as travel or fitness-
directUrlsarray of URLsDirect Instagram Reel URLs, such as https://www.instagram.com/reel/ABC123/-
maxReelsPerSourceintegerMaximum number of reels collected per username, hashtag, or URL20
onlyReelsNewerThanstringOptional date filter using YYYY-MM-DD, ISO timestamp, or relative strings like 30 days-
proxyConfigurationobjectProxy settings. Built-in rotating residential proxies are available by default-

Focused input example

{
"hashtags": ["travel"],
"maxReelsPerSource": 5,
"onlyReelsNewerThan": "30 days"
}

Output fields

The dataset contains one record per extracted Reel. Unknown values can appear as null when the source does not provide them.

FieldTypeDescription
reel_idstringInstagram shortcode identifier for the reel
reel_urlstringDirect link to the reel on Instagram
usernamestring or nullInstagram handle of the posting account
display_namestring or nullDisplay name of the posting account
profile_urlstring or nullInstagram profile URL for the author
follower_countnumber or nullFollower count captured at scrape time
captionstring or nullFull caption text
hashtagsarray of stringsHashtags extracted from the caption without #
mentionsarray of stringsUsernames mentioned in the caption without @
likes_countnumber or nullLike count at scrape time
comments_countnumber or nullComment count at scrape time
views_countnumber or nullView count at scrape time
plays_countnumber or nullPlay count at scrape time
duration_secondsnumber or nullReel duration in seconds
video_urlstring or nullDirect CDN URL to the video file
thumbnail_urlstring or nullDirect CDN URL to the thumbnail image
audio_titlestring or nullAudio track title
audio_artiststring or nullAudio track artist or creator
is_sponsoredboolean or nullSponsorship indicator
is_pinnedboolean or nullPinned indicator
posted_atstring or nullOriginal post timestamp in ISO 8601 format
scraped_atstringTimestamp when the record was collected
source_urlstringSource page or reel URL used for collection

Illustrative output record

{
"reel_id": "DWqtP0-DS5B",
"reel_url": "https://www.instagram.com/reel/DWqtP0-DS5B/",
"username": "natgeo",
"display_name": "National Geographic",
"profile_url": "https://www.instagram.com/natgeo/",
"follower_count": 280000000,
"caption": "A great white shark glides through the deep blue.",
"hashtags": ["nature", "wildlife", "ocean"],
"mentions": ["disneynature", "wwf"],
"likes_count": 45823,
"comments_count": 312,
"views_count": 1200000,
"plays_count": 2300000,
"duration_seconds": 29.5,
"video_url": "https://scontent.cdninstagram.com/v/...",
"thumbnail_url": "https://scontent.cdninstagram.com/v/...",
"audio_title": "Ocean Waves",
"audio_artist": "NatGeo Sounds",
"is_sponsored": false,
"is_pinned": false,
"posted_at": "2025-04-01T14:30:00.000Z",
"scraped_at": "2025-04-03T10:15:00.000Z",
"source_url": "https://www.instagram.com/natgeo/reels/"
}

How it works

The Actor accepts a profile source, hashtag source, or direct reel URL source. It collects public Reel metadata and stores each extracted reel as a dataset item. The live dataset contract includes a default overview view that surfaces reel URL, thumbnail, username, display name, caption, likes, plays, comments, duration, hashtags, sponsorship status, posted time, and scraped time. The output contract also writes compact OUTPUT and detailed RUN_SUMMARY records to the default key-value store.

Pricing

Instagram Reels Scraper — Profiles, Hashtags & Keywords uses Pay per event pricing with Apify platform usage charges applied separately according to your plan and account settings. The primary billed event is Reel Extracted, and the Actor also charges a small start event when a run begins.

The live Pricing tab shows the current pricing details for this Actor, including the event structure and any platform usage that applies to your account. A simple example: if a execution extracts one hundred reels, the billed result-item events correspond to one hundred extracted reels, plus the Actor start event for that run.

Use with AI agents (MCP)

This Actor is available as an Apify Actor usable through Apify MCP. It can be called by agents to retrieve structured Reel records for downstream reasoning, extraction, enrichment, or routing.

Tool description: scrape public Instagram Reels from profiles, hashtags, or direct URLs and return one dataset record per reel, with captions, engagement metrics, media links, audio metadata, and source provenance.

Actor identity: khadinakbar/instagram-reels-scraper

Find public Reels from the Instagram hashtag travel, keep the first five results per source, and return structured records with caption text, engagement metrics, and reel URLs. Then summarize which creators look most active based on play and like counts.

How to interpret the output: each dataset item is one extracted Reel. The source_url shows which profile, hashtag page, or reel link produced the record. scraped_at shows when the item was collected. reel_url and video_url point to the reel and media asset, while caption, hashtags, mentions, and engagement fields support analysis.

Scope and provenance: the records come from the source pages you provide. reel_id and reel_url identify the reel, and the source context is preserved in source_url. Some fields can be null when the source page does not expose them at scrape time.

Pagination and cost guidance: increase maxReelsPerSource for broader collection across profiles, hashtags, or reel URLs. Because billing is event-based, larger result sets increase the number of charged reel extraction events. The live Pricing tab reflects the current per-event structure.

API example

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({
token: process.env.APIFY_TOKEN,
});
const run = await client.actor('khadinakbar/instagram-reels-scraper').call({
usernames: ['natgeo'],
maxReelsPerSource: 3,
onlyReelsNewerThan: '30 days',
});
const dataset = await client.dataset(run.defaultDatasetId).listItems();
console.log(dataset.items);

Best results and outcome guidance

  • Use usernames for a specific account and hashtags for a topic.
  • Use directUrls when you already have a Reel link and want that item collected directly.
  • Keep maxReelsPerSource close to your research scope: small values for checks, larger values for broader collection.
  • Use onlyReelsNewerThan when recency matters for trend tracking or campaign review.
  • Review likes_count, comments_count, views_count, and plays_count together, since they describe different parts of Reel engagement.
  • Use video_url and thumbnail_url soon after the run if you plan to download media assets, since CDN links can be time-sensitive.

Continue the workflow

  • Then use Instagram Transcript Scraper to continue Instagram records selected with 🎬 Instagram Reels Scraper — Profiles, Hashtags & Keywords into a focused media workflow.
  • Then use Instagram Trending Reels Research Scraper to extend 🎬 Instagram Reels Scraper — Profiles, Hashtags & Keywords research with a complementary discovery contract.

Design note

I found that the live output contract writes both a compact OUTPUT record and a detailed RUN_SUMMARY record to the default key-value store, in addition to the dataset records. That makes the run easier to inspect from both automation and human review paths.

FAQ

Which input should I use for a creator account?
Use usernames or a profile URL when you want Reels from a specific account.

Which input should I use for topic discovery?
Use hashtags when the starting point is a subject such as travel, fitness, or photography.

Which input should I use for a known Reel link?
Use directUrls when you already have a single Instagram Reel URL and want a direct scrape of that item.

What does one dataset record represent?
One record represents one extracted Reel, including the reel identity, source context, caption data, engagement metrics, and media URLs when available.

Where can I review the billed events and platform usage?
Open the live Pricing tab in the Apify console for this Actor.

Responsible use

Use this Actor for public Instagram content and for workflows that respect Instagram and Apify terms, account permissions, and applicable laws. Keep collection aligned with the source type you select, and review the returned source_url and timestamp fields when you need to trace provenance or refresh data later.