Instagram Reel Scraper avatar

Instagram Reel Scraper

Pricing

from $1.00 / 1,000 listings

Go to Apify Store
Instagram Reel Scraper

Instagram Reel Scraper

Public Instagram reel records for the profile URLs you provide, including caption, likes, comments, plays, video, and account fields.

Pricing

from $1.00 / 1,000 listings

Rating

0.0

(0)

Developer

Farhan Ali

Farhan Ali

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Instagram Reel Scraper creates a structured dataset of public Instagram reels collected from the profile URLs you provide. Each dataset item is one reel and can include play count, like count, comment count, caption, account, video duration, dimensions, cover image, video file, and sound metadata. Query the source with one or more Instagram profile links and set reels_per_user to cap reels per profile. The default is 12 reels per profile. Retrieve records through the Apify Dataset API or export them as JSON, CSV, Excel, XML, or another supported format. The default charge is $0.001 per reel on every plan. The charge event name is listing.

Dataset at a glance

PropertyValue
Sourceinstagram.com
Record unitOne public reel
Input methodsInstagram profile URLs and a per-profile reel cap
Main identifierscode, url
DeliveryApify Dataset and API
Export formatsJSON, CSV, Excel, XML, and other Apify dataset exports
Update modelFresh records per Actor run
PricingPay per event. listing is $0.001 per reel on every plan

Coverage and available records

urls is required. Each entry is an Instagram profile link, for example https://www.instagram.com/kimkardashian/. The Actor reads the public reels tab for that username. reels_per_user defaults to 12 and limits how many reels are returned for each profile.

Private profiles are not supported. A reels tab that requires a login does not return reels. The Actor keeps one video version per reel, the first version available. Tagged users, when present, are a list. Sound metadata is either original sound or music info, and either can be null.

The Actor does not accept a single reel URL as the query. It does not return stories, posts that are not reels, or follower lists. It does not keep a historical like or play series. Counts are the values available at run time.

The default proxy is Apify residential.

Data dictionary

Deduplicate on code or url. code is the short id in https://www.instagram.com/reel/{code}/.

FieldTypeNullableDescriptionExample
codestringnoReel shortcodeDKALsFPpIuH
urlstringnoReel URL. Built from code when missinghttps://www.instagram.com/reel/DKALsFPpIuH/
play_countintegernoPlay count. 0 when missing12866051
like_countintegernoLike count. 0 when missing620105
comment_countintegernoComment count. 0 when missing8540
taken_atstringnoPublish time serialized from the source timestamp2025-05-23T18:34:52
video_durationnumbernoDuration in seconds. 0 when unknown34.933
is_post_live_clips_mediabooleannoLive-clips flagfalse
has_audiobooleannoWhether the reel has audiotrue
has_tagged_usersbooleannoWhether tagged users are presentfalse
original_widthintegernoOriginal width in pixels1080
original_heightintegernoOriginal height in pixels1920
display_uristringnoCover image URL. Empty string when missingImage URL
captionobjectyes{ "text": string }Caption text
userobjectnoAccount objectSee below
video_versionsarraynoOne video object: url, width, heightFirst available version
clips_metadataobjectyesmusic_info and original_sound_infoOriginal sound or null
usertagsarrayyesTagged user objects, each with a usernull when none

user fields: username (string, required), full_name (string), is_private (boolean), is_verified (boolean), profile_pic_url (string).

clips_metadata.original_sound_info can include progressive_download_url, duration_in_ms, and ig_artist. Artist objects drop internal id keys. music_info can include music_asset_info (title, cover_artwork_uri, display_artist, duration_in_ms, fast_start_progressive_download_url) and music_consumption_info.

Media URLs are long and time-limited. Treat them as current links, not permanent file storage.

Example dataset record

This reel is from a saved run for https://www.instagram.com/kimkardashian/. Cover, video, and sound download URLs are omitted here because they are long CDN links. The live record includes display_uri, video_versions, and clips_metadata.

{
"play_count": 12866051,
"taken_at": "2025-05-23T18:34:52",
"like_count": 620105,
"comment_count": 8540,
"is_post_live_clips_media": false,
"video_duration": 34.933,
"code": "DKALsFPpIuH",
"url": "https://www.instagram.com/reel/DKALsFPpIuH/",
"has_audio": true,
"has_tagged_users": false,
"original_width": 1080,
"original_height": 1920,
"caption": {
"text": "Graduating class of 2025"
},
"user": {
"full_name": "Kim Kardashian",
"is_private": false,
"is_verified": true,
"username": "kimkardashian"
},
"usertags": null
}

reels_per_user on that run was the profile reel list. The caption text in the saved file also included emoji that are omitted above.

Query and input reference

InputTypeRequiredDefaultAccepted valuesDescription
urlsarrayyesnoneInstagram profile URLs. Prefill is a JSON list of stringsProfiles whose public reels are collected
reels_per_userintegerno12IntegerMaximum reels per profile
proxyConfigurationobjectnoApify residential proxyApify proxy objectProxy selection

Minimal request:

{
"urls": ["https://www.instagram.com/kimkardashian/"],
"reels_per_user": 5
}

Several profiles:

{
"urls": [
"https://www.instagram.com/kimkardashian/",
"https://www.instagram.com/instagram/"
],
"reels_per_user": 12,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Retrieve the data through the API

  1. Start datascrapers/instagram-reel-scraper with the JSON input.
  2. Wait until the run finishes.
  3. Read items from the run’s default dataset.
  4. Paginate with offset and limit, or export the dataset.
curl "https://api.apify.com/v2/acts/datascrapers~instagram-reel-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"urls":["https://www.instagram.com/kimkardashian/"],"reels_per_user":5}'
$curl "https://api.apify.com/v2/datasets/$DATASET_ID/items?clean=true&format=json&token=$APIFY_TOKEN"

Other languages are on the Actor’s API tab: https://apify.com/datascrapers/instagram-reel-scraper

Data quality and record handling

Counts default to 0 when the source omits them, so 0 can mean either a true zero or a missing count. caption is null when the reel has no caption. usertags is null when nobody is tagged. video_versions keeps only the first version.

The Actor does not deduplicate across runs. Use code. Reels from several profiles land in one dataset. There is no username input separate from the URL. A login wall on the reels tab stops that profile.

taken_at is serialized from the source timestamp. Media URLs can expire. Download files during the run if you need to keep the video.

The default proxy is Apify residential. Profiles that fail still allow the rest of urls to continue only when the run itself stays up. A login wall for a profile raises an error for that profile.

Export and pipeline examples

DestinationRecommended methodTypical use
PostgreSQL or SupabaseDataset API or a webhook consumerUpsert reels on code
Google SheetsApify integrationTrack caption, likes, and URL
S3 or other cloud storageScheduled dataset exportStore JSON. Copy video files separately if the CDN link expires
WarehouseJSON itemsJoin user.username to other social datasets

Schedule a separate run per profile when each account should have its own dataset. One run with many urls mixes those profiles in a single dataset. Split downstream on user.username.

Pricing and cost examples

Billing is pay per event. The event name is listing because that is the charge name on this account. One listing event is one reel. The same price applies to Free, Bronze, Silver, Gold, Platinum, and Diamond.

EventPrice on every planWhen it is charged
listing$0.001One reel record. This is the primary event
ReelsEstimated event cost
1,000$1.00
10,000$10.00

A run with 10 profiles and reels_per_user 12 charges up to 120 listing events, or $0.12 at the default price, when every profile returns 12 reels. These are the default prices set for this account. They are placeholders and can be changed in the Actor pricing settings. Estimates do not include Apify platform usage, which is billed to the user in addition to event charges.

Limitations and responsible data use

The Actor returns publicly available reel fields for the profile URLs you submit. It does not return private accounts, stories, or a full comment thread. Like, comment, and play counts can be missing or delayed. Media URLs are not a permanent archive.

Each run is a current snapshot. You are responsible for complying with privacy, contractual, and legal requirements for the records you collect and store.

Dataset questions

What does one dataset item represent?

One public Instagram reel from a profile URL in urls.

Which field should I use as a unique identifier?

Use code or url. user.username identifies the account, not the reel.

Are fields nullable or conditional?

Yes. caption, clips_metadata, and usertags can be null. Counts use 0 when the source omits them. Video and image URLs can be empty strings when missing.

Can I retrieve the records as CSV or JSON?

Yes. JSON keeps user, caption, and video_versions nested. Use JSON when you need those objects intact.

How do I paginate large datasets?

Raise reels_per_user and add more profile URLs. Page the dataset afterward with offset and limit.

Does the Actor return historical data?

No. Counts and captions are the values available at run time. It does not return a saved history of deleted reels.

What counts as a billable result?

Each reel charges one listing event at the default price of $0.001. reels_per_user caps the count per profile. Platform usage is separate.

Data Scrapers support

Need an additional field, record type, or export workflow? Contact Data Scrapers at stardustspotlight@gmail.com. Include a sample source URL, required fields, expected record volume, and preferred delivery format.