Instagram Profile & Post / Reel Scraper avatar

Instagram Profile & Post / Reel Scraper

Pricing

from $2.90 / 1,000 results

Go to Apify Store
Instagram Profile & Post / Reel Scraper

Instagram Profile & Post / Reel Scraper

Scrape Instagram profiles, posts, and reels. Get clean JSON with profile stats, media URLs, captions, comments, tagged users, and more.

Pricing

from $2.90 / 1,000 results

Rating

0.0

(0)

Developer

Headless Agent

Headless Agent

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

1

Monthly active users

6 days ago

Last modified

Share

Scrape Instagram user profiles, posts, and reels β€” no API key or login required. Get clean, formatted JSON with only the important fields. Supports usernames, post URLs, and reel URLs as input.

πŸ€” What can Instagram Profile & Post / Reel Scraper do?

This Actor lets you extract public data from Instagram profiles, posts, and reels in one place. Just provide usernames, post URLs, or reel URLs and get structured results:

πŸ‘€ Scrape any public Instagram profile β€” bio, followers, following, post count, verification status, business info, and more

πŸ“· Extract post data β€” media URLs, captions, likes, comments, tagged users, carousel items, and audio info

🎬 Extract reel data β€” video URL, play count, audio info, tagged users, comments, and related posts

πŸ“Š Get recent timeline posts (up to 12) and IGTV posts with full details when scraping profiles

🏷️ Get tagged users with full profile info β€” ID, username, full name, verification status, and profile picture

πŸ–ΌοΈ Best quality media β€” automatically picks highest resolution for both images and videos

πŸ“¦ Download results in JSON, CSV, XML, or Excel from the Apify Dataset

🦾 Integrate via API, webhooks, SDKs (Python & Node.js), or connect with tools like Zapier, n8n, Make, and more

βœ… What data can I scrape from Instagram?

From profiles:

  • πŸ‘€ Username, full name, biography, bio links
  • πŸ”— External URL / website
  • πŸ“Š Followers count, following count, post count
  • βœ… Verification status
  • πŸ’Ό Business account, professional account, category
  • πŸ”’ Private account status
  • πŸ–ΌοΈ HD profile picture URL
  • πŸ“· Latest 12 timeline posts with full details
  • πŸ“Ί IGTV posts with full details

From posts and reels:

  • πŸ†” Post/reel ID, shortcode, timestamp
  • πŸ“ Caption text
  • ❀️ Like count, comment count, view/play count
  • 🎞️ Media type (image / video / carousel)
  • πŸ–ΌοΈ Best quality image and video URLs
  • 🏷️ Tagged users with profile info
  • 🎡 Audio info (artist, title, original audio flag)
  • 🎠 Carousel media items (for multi-image posts)
  • πŸ’¬ Comments with user info
  • πŸ“Œ Related posts from the same account

πŸ”§ How to scrape data from Instagram

  1. Create a free Apify account.
  2. Open Instagram Profile & Post / Reel Scraper.
  3. Add usernames, post URLs, and/or reel URLs β€” use any combination.
  4. Optionally set a proxy URL to avoid rate limiting.
  5. Click Save & Start and wait for the data to be extracted.
  6. Download your data in JSON, CSV, XML, Excel, or access it via API.

⬇️ Input

All three main fields are optional, but at least one must be provided. You can use them independently or together in a single run.

FieldTypeDescription
usernamesstring[]Instagram usernames or profile URLs (e.g. instagram or https://www.instagram.com/natgeo/)
postUrlsstring[]Instagram post URLs (e.g. https://www.instagram.com/p/DV7Ix2NjAuI/)
reelUrlsstring[]Instagram reel URLs (e.g. https://www.instagram.com/reel/DWHkBs6EtV-/)
proxystringOptional proxy URL (http:// or socks5:// format)

Example input

{
"usernames": ["instagram", "https://www.instagram.com/natgeo/"],
"postUrls": ["https://www.instagram.com/p/DV7Ix2NjAuI/"],
"reelUrls": ["https://www.instagram.com/reel/DWHkBs6EtV-/"],
"proxy": "http://user:pass@host:port"
}

⬆️ Output

Results are pushed to the Apify Dataset. Each item has a type field ("user", "post", or "reel") so you can easily filter and process them. You can export data in JSON, CSV, XML, Excel, or access it programmatically via the Apify API.

πŸ‘€ User profile data sample

{
"type": "user",
"id": "25025320",
"username": "instagram",
"full_name": "Instagram",
"biography": "Discover what's new on Instagram",
"bio_links": [
{
"title": "",
"url": "http://help.instagram.com"
}
],
"profile_pic_url": "https://instagram.xxx.fna.fbcdn.net/v/...",
"followers_count": 700971591,
"following_count": 229,
"post_count": 8382,
"is_verified": true,
"is_private": false,
"is_business_account": false,
"is_professional_account": true,
"category_name": null,
"external_url": "http://help.instagram.com/",
"timeline_posts": [
{
"id": "3861542975709547205",
"shortcode": "DWW9OCIEorF",
"typename": "GraphVideo",
"caption": "nature flexing...",
"taken_at": 1774551841,
"display_url": "https://instagram.xxx.fna.fbcdn.net/v/...",
"is_video": true,
"video_url": "https://instagram.xxx.fna.fbcdn.net/o1/v/...",
"video_view_count": 7129970,
"like_count": 199598,
"comment_count": 3279,
"product_type": "clips",
"tagged_users": [
{
"id": "52776601734",
"username": "dallingentry",
"full_name": "Alaska Fly Fishing Guide | Videographer",
"is_verified": false,
"profile_pic_url": "https://instagram.xxx.fna.fbcdn.net/v/..."
}
],
"audio_info": {
"artist": "dallingentry",
"song": "Original audio",
"is_original_audio": true
},
"location": null,
"coauthor_producers": null
}
],
"igtv_posts": [
{
"id": "2917172418798642453",
"shortcode": "Ch74NvrD2UV",
"title": "",
"caption": null,
"view_count": 5601700,
"taken_at": 1661974267,
"display_url": "https://instagram.xxx.fna.fbcdn.net/v/...",
"video_url": "https://instagram.xxx.fna.fbcdn.net/o1/v/...",
"like_count": 323161,
"comment_count": 6875,
"tagged_users": [
{
"id": "1707886044",
"username": "mr_boris_becker",
"full_name": "Mr. boris becker",
"is_verified": true,
"profile_pic_url": "https://instagram.xxx.fna.fbcdn.net/v/..."
}
]
}
]
}

πŸ“· Post data sample

{
"type": "post",
"url": "https://www.instagram.com/p/DV7Ix2NjAuI/",
"media": {
"code": "DV7Ix2NjAuI",
"id": "3853712515981380488_25025320",
"pk": "3853712515981380488",
"taken_at": 1773618352,
"media_type": "carousel",
"product_type": "carousel_container",
"caption": "@_milescaton_ (Miles Caton) is taking a bite out of awards season...",
"like_count": 130637,
"comment_count": 3379,
"view_count": null,
"display_url": "https://instagram.xxx.fna.fbcdn.net/v/...",
"video_url": null,
"carousel_media": [
{
"display_url": "https://instagram.xxx.fna.fbcdn.net/v/...",
"video_url": null,
"media_type": "image"
},
{
"display_url": "https://instagram.xxx.fna.fbcdn.net/v/...",
"video_url": "https://instagram.xxx.fna.fbcdn.net/o1/v/...",
"media_type": "video"
}
],
"user": {
"id": "25025320",
"username": "instagram",
"full_name": "Instagram",
"profile_pic_url": "https://instagram.xxx.fna.fbcdn.net/v/...",
"is_verified": true
},
"usertags": [
{
"id": "1696239558",
"username": "_milescaton_",
"full_name": "MIL3S",
"is_verified": true,
"profile_pic_url": "https://instagram.xxx.fna.fbcdn.net/v/..."
}
],
"audio_info": null
},
"related_posts": [
{
"code": "DWW9OCIEorF",
"pk": "3861542975709547205",
"taken_at": null,
"media_type": "video",
"caption": "nature flexing...",
"like_count": 199599,
"comment_count": 3279,
"display_url": "https://instagram.xxx.fna.fbcdn.net/v/...",
"video_url": null
}
],
"comments": [
{
"id": "18017429264654252",
"text": "I love his guitar, and his simplicity...",
"created_at": 1773622740,
"like_count": null,
"user": {
"username": "imjaysrivastava",
"full_name": null,
"is_verified": true
}
}
]
}

🎬 Reel data sample

{
"type": "reel",
"url": "https://www.instagram.com/reel/DWHkBs6EtV-/",
"media": {
"code": "DWHkBs6EtV-",
"id": "3857210052478948734_25025320",
"pk": "3857210052478948734",
"taken_at": 1774035331,
"media_type": "video",
"product_type": "clips",
"caption": "journey to the center of an ice cave...",
"like_count": 172027,
"comment_count": 7422,
"view_count": null,
"display_url": "https://instagram.xxx.fna.fbcdn.net/v/...",
"video_url": "https://instagram.xxx.fna.fbcdn.net/o1/v/...",
"carousel_media": null,
"user": {
"id": "25025320",
"username": "instagram",
"full_name": "Instagram",
"profile_pic_url": "https://instagram.xxx.fna.fbcdn.net/v/...",
"is_verified": true
},
"usertags": [
{
"id": "819892976",
"username": "theworldwithangelina",
"full_name": "Angelina Huang | Wild Ice Figure Skating",
"is_verified": false,
"profile_pic_url": "https://instagram.xxx.fna.fbcdn.net/v/..."
}
],
"audio_info": {
"type": "original",
"artist": "theworldwithangelina",
"title": "Original audio"
}
},
"related_posts": [
{
"code": "DWW9OCIEorF",
"pk": "3861542975709547205",
"taken_at": null,
"media_type": "video",
"caption": "nature flexing...",
"like_count": 199599,
"comment_count": 3279,
"display_url": "https://instagram.xxx.fna.fbcdn.net/v/...",
"video_url": null
}
],
"comments": [
{
"id": "18042445370758319",
"text": "Nice skating ring. beautiful...",
"created_at": 1774036542,
"like_count": null,
"user": {
"username": "arvelowens",
"full_name": null,
"is_verified": true
}
}
]
}

πŸ“‹ Media type values

ValueDescription
"image"Single photo
"video"Video or reel
"carousel"Multi-image/video post (sidecar)

πŸ”— Integrations

You can connect Instagram Profile & Post / Reel Scraper with almost any cloud service or web app through Apify integrations. Connect with Zapier, n8n, Make, Slack, Google Sheets, Google Drive, Airbyte, GitHub, and many more.

You can also use webhooks to trigger actions whenever a run finishes β€” for example, getting a notification or automatically processing the scraped data.

🦾 Using the Apify API

The Apify API gives you programmatic access to Instagram Profile & Post / Reel Scraper. You can start runs, fetch datasets, monitor execution, and integrate the scraper into your own workflows.

❓ FAQ

Can I scrape multiple profiles, posts, and reels in one run?

Yes. All three input fields (usernames, postUrls, reelUrls) accept arrays. You can provide multiple items in each field, and even use all three fields together in a single run. Each result will have a type field so you can tell them apart.

What format is the taken_at / created_at timestamp?

All timestamps are Unix timestamps (seconds since epoch). You can convert them to a human-readable date using any standard date library or online converter.

Why is view_count null for some posts?

Instagram doesn't always expose view/play counts in the scraped data, especially for very recent posts or certain post types. When the count is not available, the field will be null.

Does the scraper work with private accounts?

No. The scraper can only extract data from public Instagram accounts. Private profiles will not return profile data, and posts/reels from private accounts are not accessible.

Can I use a proxy?

Yes. The optional proxy input field accepts HTTP and SOCKS5 proxy URLs. This is useful to avoid rate limiting or IP blocks when scraping at higher volumes.

This scraper only extracts publicly available data. It does not access private accounts, login credentials, or any data behind authentication. However, scraped results could contain personal data protected by GDPR and other regulations. Ensure you have a legitimate reason for scraping and consult legal counsel if unsure. See also Apify's blog post on the legality of web scraping.