Instagram Profile Scraper
Pricing
from $5.00 / 1,000 results
Instagram Profile Scraper
Extract comprehensive data from Instagram profiles including posts, reels, photos, and engagement metrics.
Pricing
from $5.00 / 1,000 results
Rating
5.0
(1)
Developer
Crawler Bros
Maintained by CommunityActor stats
0
Bookmarked
160
Total users
25
Monthly active users
2 days ago
Last modified
Categories
Share
Extract complete profile information and posts from any public Instagram account with a single username. Get follower counts, bio, verification and business status, bio links, and detailed post data — captions, engagement metrics, media URLs, hashtags, mentions, tagged users, location, and music attribution. Supports usernames with or without the @ symbol.
What this actor does
- Full profile data — bio, follower/following/post counts, verification and business status, bio links, and business contact info when available
- Rich post data — caption, hashtags, mentions, tagged users, collaborators, paid-partnership status, location, and music/audio attribution
- All post types — photos, videos, reels, carousels, and IGTV, with every individual media item captured for carousels
- Profile-only mode — set
maxPoststo0to fetch just the account data without scraping any posts - Private account handling — returns the available profile metadata with a clear status instead of failing the run
- Reliable — built-in retry logic and automatic managed session rotation
Authentication
This actor works out of the box without any setup. You can either:
- Paste your own cookies — export from a logged-in browser session using a tool such as Cookie-Editor and paste the JSON into the
cookiesfield. - Leave the cookies field blank — the actor will automatically use a managed pool of shared Instagram sessions. This is the recommended option for most users.
If your cookies expire mid-run, re-export them from your browser and restart the actor.
Output
This actor pushes two kinds of records to the dataset: one profile record per run, and one post record per scraped post.
Profile record
Pushed once per run — the only record returned when maxPosts is 0.
author_meta— full profile data of the scraped account (see fields below)
Post record
Pushed once per post when maxPosts is greater than 0.
Always present
post_url— direct URL to the Instagram poststatus—success,not_found,age_restricted,error,blocked, orinvalid_urlauthor_meta— full profile data of the post's author (same fields as the profile record)
Present only when status is success
shortcode— Instagram shortcode identifying the postpost_id— internal Instagram media IDusername— Instagram username of the post authorcaption— full caption text of the posthashtags— hashtags extracted from the captionmentions— @mentions extracted from the captiontagged_users— usernames tagged in the postcollaborators— usernames listed as co-authors of the postsponsor_tags— sponsor usernames tagged for paid partnershipsis_paid_partnership—trueif the post is marked as a paid partnershipis_ad—trueif the post is marked as an adcaption_is_edited—trueif the caption was edited after postingpub_date— publication date (ISO 8601)media_type—Photo,Video,Carousel,Reel, orIGTVmedia_count— number of media items in the postthumbnail_url— direct URL to the post's cover imagemedia_items— every image/video in the post, in order, each withurl,width,height, and (for video)duration/play_countaccessibility_caption— Instagram's auto-generated alt-text for the medialike_count— number of likes on the postcomment_count— number of comments on the postlikes_hidden—trueif the author hid the like countcomments_disabled—trueif commenting is disabled on the postlocation— tagged location (name, coordinates), when presentmusic— music/audio attribution, when present (reels)scraped_at— ISO 8601 timestamp of when this record was collected
author_meta fields
Always present
username— Instagram usernamefull_name— full display namebiography— profile bio textprofile_pic_url— CDN URL of the profile pictureis_verified—trueif the account has a verified badgeis_private—trueif the account is privateis_business—trueif the account is registered as a Business accountfollowers_count— number of followersfollowing_count— number of accounts followedposts_count— total posts on the profileprofile_url— full URL to the Instagram profileexternal_urls— all links in the bio, as an array (empty array if none)
Present only when Instagram exposes them on the profile
email— public business emailphone— public business phone numbercategory— account category, e.g."Nutritionist"
email, phone, and category are only included in the output when Instagram makes them available on the profile itself — if a profile doesn't show one of these, the field is omitted entirely rather than returned as empty or null.
Input
| Field | Type | Default | Description |
|---|---|---|---|
username | string | required | Instagram username to scrape, with or without the @ symbol |
maxPosts | integer | 12 | Posts to extract (0–500). Set to 0 for profile data only |
cookies | string | — | Instagram cookies in JSON format. Leave blank to use the managed session pool |
sessionName | string | — | Key-value store key for a previously saved session (advanced use) |
Example: scrape a profile with default settings
{"username": "cristiano","maxPosts": 12}
Example: profile data only, no posts
{"username": "nike","maxPosts": 0}
Example: full crawl with your own cookies
{"username": "natgeo","maxPosts": 500,"cookies": "[{\"name\":\"sessionid\",\"value\":\"YOUR_SESSION_ID\",...}]"}
Example output
Post record
{"post_url": "https://www.instagram.com/p/DXxFT1zPFQC/","shortcode": "DXxFT1zPFQC","post_id": "3123456789012345678","status": "success","username": "instagram","author_meta": {"username": "instagram","full_name": "Instagram","biography": "Discover what's new on Instagram","profile_pic_url": "https://scontent.cdninstagram.com/.../profile.jpg","is_verified": true,"is_private": false,"is_business": false,"followers_count": 700870854,"following_count": 175,"posts_count": 8423,"profile_url": "https://www.instagram.com/instagram/","external_urls": ["http://help.instagram.com/"]},"caption": "Make your pics look like film with @meta.ai","hashtags": [],"mentions": ["meta.ai"],"tagged_users": [],"collaborators": [],"sponsor_tags": [],"is_paid_partnership": false,"is_ad": false,"caption_is_edited": false,"pub_date": "2026-04-30T19:06:13","media_type": "Reel","media_count": 1,"thumbnail_url": "https://scontent.cdninstagram.com/.../thumbnail.jpg","media_items": [{"index": 1,"type": "Reel","url": "https://scontent.cdninstagram.com/.../video.mp4","width": 1080,"height": 1920,"duration": 12.4,"has_audio": true,"play_count": 2450000}],"accessibility_caption": null,"like_count": 131990,"comment_count": 3600,"likes_hidden": false,"comments_disabled": false,"location": null,"music": null,"scraped_at": "2026-05-01T12:32:03.229693"}
Profile record (maxPosts: 0)
{"author_meta": {"username": "abbysnutritionhub","full_name": "Abby's Nutrition Hub","biography": "Better ingredients, better you","profile_pic_url": "https://scontent.cdninstagram.com/.../profile.jpg","is_verified": true,"is_private": false,"is_business": true,"followers_count": 30213,"following_count": 12,"posts_count": 89,"profile_url": "https://www.instagram.com/abbysnutritionhub/","external_urls": [],"category": "Nutritionist"}}
Profile field availability
Instagram's profile API doesn't return complete data for every account — a small number of accounts (regardless of size or verification status) trigger an error on Instagram's own backend when that API is queried. When this happens, the actor falls back to Instagram's public profile page, which still provides full follower/following/post counts, bio, verification, and privacy status, but doesn't expose business contact details.
| Situation | email / phone / category | Other author_meta fields |
|---|---|---|
| Instagram's profile API succeeds (most accounts) | Present when set on the profile | Present |
| Instagram's profile API errors for this account | Absent | Present |
This is a restriction on Instagram's side with no available workaround — the actor always returns the fullest profile data it can retrieve.
Use cases
- Influencer vetting — verify follower counts, engagement rates, and account authenticity before a collaboration
- Competitor analysis — track competitor content strategy, posting frequency, and business details
- Content research — analyze what post types and topics drive the most engagement
- Brand monitoring — audit brand accounts and measure content performance over time
- Audience insights — understand posting patterns and community engagement
- Media archival — collect post media URLs and captions for backup or record-keeping
- Lead generation — collect public business contact info from accounts in your niche
- Location and trend research — surface tagged locations and trending audio across an account's posts
FAQ
Do I need an Instagram account to use this actor?
No. The actor authenticates automatically — you can leave the cookies field empty and it will work out of the box using the managed session pool.
Will this work on private accounts? Posts cannot be scraped from private accounts. The actor returns the available profile metadata along with a status noting that posts aren't accessible.
How many posts can I extract per run?
Up to 500 posts per run. Set maxPosts to any value from 1 to 500, or 0 to fetch only the profile data.
What post types are supported?
All post types: images, videos, reels, and carousels. For carousel posts, every individual media item is included in the media_items array, in order.
Why are email, phone, and category missing from some profiles?
These fields are only included when Instagram exposes them on the profile itself. If a profile doesn't have public business contact info or a category set, or if Instagram's profile API errors for that account (see Profile field availability), the fields are omitted rather than returned empty.
What happens if a profile does not exist?
The scraper fails with a clear error message: Profile @username does not exist or is not available. No dataset record is pushed.
How fresh is the data? Data is scraped live at the time of the run. Profile and post data reflect the current state of the account at the moment of scraping.
Is this actor affiliated with Instagram or Meta? No. This is an independent third-party tool that automates interaction with the public Instagram website. It is not endorsed by or affiliated with Meta Platforms, Inc.
Other Instagram Scrapers
Want to get other data from Instagram? Check out our complete suite of Instagram scrapers:
| Actor | Description |
|---|---|
| Instagram Post Scraper | Scrape public posts, reels, IGTV, and carousel posts from direct URLs — no login or cookies required |
| Instagram Comment Scraper | Scrape comments from any Instagram post or reel |
| Instagram Followers & Following Scraper | Scrape followers and following lists from any profile |
| Instagram Tagged Posts Scraper | Collect posts where a user has been tagged |
| Instagram Hashtag Scraper | Scrape posts and profiles by hashtag |
| Instagram Story Downloader | Download stories from Instagram profiles |
| Instagram Downloader API | Download photos, videos, and reels from Instagram |
| Instagram Keyword Scraper | Search and scrape posts by keyword |
| Instagram Keyword Search Scraper | Search Instagram accounts and posts by keyword |
| Instagram Transcript Scraper | Extract transcripts from Instagram video content |
