Instagram Profile Scraper
Pricing
from $0.50 / 1,000 profile scrapeds
Instagram Profile Scraper
Scrape instagram profile urls and get full profile data including name bio, counts, links, creation date, verification info, recent posts, etc
Pricing
from $0.50 / 1,000 profile scrapeds
Rating
0.0
(0)
Developer
Supreme Coder
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Instagram Profile Scraper π€ β Scrape Instagram Profiles, Bio, Followers, Posts & Highlights
Extract full Instagram profile data β name, bio, followers, following, post count, profile picture, story highlights and recent posts β with no login, no password and no cookies required. This Instagram Profile Scraper turns any public username or profile URL into clean, structured JSON, CSV or Excel data in seconds. Perfect for marketers, influencer agencies, researchers, recruiters and developers who need reliable Instagram profile data without building and maintaining a scraper.
Scrape Instagram by username (
nasa) or profile URL (https://www.instagram.com/nasa/) β and get the bio, follower / following / post counts, profile photo, business & contact info, highlights and the latest posts.
β¨ What this Instagram scraper does
- π§βπ Scrape any public Instagram profile by username or URL
- π Get followers, following, post and highlight counts in one click
- π Extract the full bio, external link and all bio links
- πΌοΈ Grab the profile picture in standard and HD quality
- π Pull story highlights (title + cover image)
- πΈ Collect the profile's first-page posts β the previews shown on the profile, with likes, comments, views, captions and media URLs
- π·οΈ Read business & about info β category, contact method, email, phone, address
- β See account flags β verified, private, business / professional
- π No Instagram login or cookies needed β nothing to configure, no account-ban risk for you
- π¦ Export to JSON, CSV, Excel, HTML or XML, or pull via API
π‘ Popular use cases
| Who | What they use it for |
|---|---|
| π€ Influencer marketing | Vet creators β followers, engagement, bio links and category β before outreach |
| π£ Marketers & agencies | Benchmark competitors and track follower / post growth over time |
| π Data analysts & researchers | Build datasets of profiles for social-media and audience analysis |
| π§² Lead generation & sales | Enrich prospect lists with bio links, business email and contact info |
| ποΈ E-commerce & brands | Monitor brand and partner accounts, collect creator contact details |
| π§βπΌ Recruiters & talent scouts | Discover and qualify creators, photographers and public figures |
| π° Journalists & OSINT | Capture public profile snapshots for verification and research |
π How to use it (step by step)
No coding needed. If you can fill in a form, you can use this scraper.
- Click "Try for free" / Start.
- Add profiles. Paste usernames (
nasa,@natgeo) or profile URLs into the Usernames or profile URLs field β add as many as you like. - Choose what to collect (optional). Toggle Scrape first-page posts and Scrape story highlights on or off.
- Click "Start". Watch profiles stream into the results table.
- Download your data as JSON, CSV, Excel, HTML or XML, or pull it via the API.
That's it β your Instagram profile data is ready to use. π
βοΈ Input fields
| Field | Type | Emoji | Description |
|---|---|---|---|
usernames | array of text | π€ | Instagram usernames (nasa, @nasa) or profile URLs (https://www.instagram.com/nasa/). Add one or many |
scrapePosts | true / false | πΈ | Also include the profile's first-page posts β the previews already shown on the profile page, newest first. No extra pages are fetched (default true) |
scrapeHighlights | true / false | π | Also fetch the profile's story highlights (default true) |
rawData | true / false | 𧬠| Advanced: return Instagram's raw profile objects instead of the clean output below |
π Example input
{"usernames": ["https://www.instagram.com/nasa/","natgeo","@bbcearth"],"scrapePosts": true,"scrapeHighlights": true}
π€ Output
Every profile is returned as one clean, ready-to-use record. Export to JSON, CSV, Excel, HTML or XML.
π¦ Sample output
{"id": "528817151","username": "nasa","url": "https://www.instagram.com/nasa/","fullName": "NASA","biography": "Making the seemingly impossible, possible. β¨","externalUrl": "https://www.nasa.gov/","bioLinks": [{ "title": "Artemis II Images & Videos", "url": "https://www.nasa.gov/artemis-ii-multimedia/", "type": "external" }],"followersCount": 104393833,"followsCount": 91,"postsCount": 4825,"highlightReelCount": 5,"isPrivate": false,"isVerified": true,"isBusinessAccount": true,"isProfessionalAccount": true,"isJoinedRecently": false,"category": null,"businessCategoryName": "Government Agencies","profilePicUrl": "https://instagram.fxyz.fbcdn.net/v/....jpg","profilePicUrlHd": "https://instagram.fxyz.fbcdn.net/v/....jpg","pronouns": [],"fbid": "17841401474538262","businessEmail": null,"businessPhoneNumber": null,"businessContactMethod": "CALL","businessAddress": null,"highlights": [{ "id": "18201653992314974", "title": "Artemis III", "coverUrl": "https://instagram.fxyz.fbcdn.net/v/....jpg" }],"latestPosts": [{"id": "3923727884124821350","shortCode": "DZz4bjIjhdm","url": "https://www.instagram.com/p/DZz4bjIjhdm/","type": "sidecar","isVideo": false,"caption": "The official FIFA World Cup ball went to space π°οΈβ½οΈ","likesCount": 888870,"commentsCount": 3045,"timestamp": "2026-06-20T14:13:55.000Z","displayUrl": "https://instagram.fxyz.fbcdn.net/v/....jpg"}],"inputUrl": "https://www.instagram.com/nasa/"}
A profile that can't be reached is returned as
{ "error": "Profile not found: <username>", "username": "...", "inputUrl": "..." }so a bad entry never stops the rest of your run.
ποΈ Output fields
| Field | Emoji | Description |
|---|---|---|
id | π | Unique numeric Instagram user ID |
username | π€ | Profile handle |
url | π | Direct link to the profile |
fullName | π§ | Display name |
biography | π | Full bio text |
externalUrl | π | Primary website link in the bio |
bioLinks | π | All bio links (title, url, type) |
followersCount | π₯ | Number of followers |
followsCount | β‘οΈ | Number of accounts the profile follows |
postsCount | πΈ | Total number of posts |
highlightReelCount | π | Number of story highlight reels |
isPrivate | π | true if the account is private |
isVerified | β | true if the account is verified (blue tick) |
isBusinessAccount | πΌ | true for business accounts |
isProfessionalAccount | π’ | true for professional / creator accounts |
isJoinedRecently | π | true if the account was created recently |
category | π·οΈ | Public category label (when shown) |
businessCategoryName | ποΈ | Business category |
profilePicUrl | πΌοΈ | Profile picture URL |
profilePicUrlHd | πΌοΈβ¨ | High-resolution profile picture URL |
pronouns | π§Ύ | Pronouns listed on the profile |
fbid | π | Linked Facebook/Meta ID |
businessEmail | π§ | Public business email (when available) |
businessPhoneNumber | βοΈ | Public business phone (when available) |
businessContactMethod | π | Preferred contact method (CALL, TEXT, etc.) |
businessAddress | π | Public business address (when available) |
highlights | π | Story highlights β each with id, title, coverUrl |
latestPosts | πΈ | First-page posts (profile previews) β likes, comments, views, caption, media URLs, tagged users |
inputUrl | π | The username/URL this record came from |
π highlights[] item
| Field | Emoji | Description |
|---|---|---|
id | π | Highlight reel ID |
title | π | Highlight title |
coverUrl | πΌοΈ | Highlight cover image URL |
πΈ latestPosts[] item (selected)
| Field | Emoji | Description |
|---|---|---|
shortCode | π | Post shortcode (the code in the post URL) |
url | π | Direct link to the post or reel |
type | π·οΈ | image, video or sidecar (carousel) |
caption | π | Full caption text |
likesCount | β€οΈ | Number of likes |
commentsCount | π¬ | Number of comments |
viewCount | ποΈ | Video / reel views (when available) |
timestamp | π | When the post was published (ISO 8601) |
displayUrl | πΌοΈ | Highest-resolution image / thumbnail URL |
videoUrl | π₯ | Direct video file URL (for videos / reels) |
π Using the API
Run the scraper programmatically with the Apify API. Replace YOUR_TOKEN with your Apify API token and USERNAME~instagram-profile with the actor's ID.
Run and get results in one call (cURL)
curl -X POST "https://api.apify.com/v2/acts/USERNAME~instagram-profile/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"usernames": ["nasa", "natgeo"],"scrapePosts": true,"scrapeHighlights": true}'
Start a run (JavaScript / Apify client)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('USERNAME/instagram-profile').call({usernames: ['https://www.instagram.com/nasa/', 'natgeo'],scrapePosts: true,scrapeHighlights: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Start a run (Python / Apify client)
from apify_client import ApifyClientclient = ApifyClient("YOUR_TOKEN")run = client.actor("USERNAME/instagram-profile").call(run_input={"usernames": ["nasa", "natgeo"],"scrapePosts": True,"scrapeHighlights": True,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
π More: Apify API reference Β· API client for JavaScript Β· API client for Python
β FAQ
Do I need an Instagram account, password or cookies? No. You only provide the public usernames or profile URLs you want to scrape β authentication is handled for you.
Can I scrape private profiles?
Basic profile details (name, bio, counts, profile picture) are available for private accounts, but their posts are not β Instagram hides them from non-followers, so latestPosts will be empty.
How many posts does it return per profile?
Only the posts already on the profile page β Instagram's first-page previews (newest first, typically up to ~12). The scraper does not page deeper into the profile. Turn posts off entirely with scrapePosts: false for the fastest, profile-only runs.
Is it legal to scrape Instagram? This scraper collects publicly available data only. You are responsible for how you use the data and for complying with applicable laws (e.g. GDPR), Instagram's Terms, and not collecting personal data without a lawful basis. When in doubt, consult a lawyer.
Why are some highlights or business fields empty?
Instagram only exposes what the profile makes public. Accounts without highlights, a business email or a category will return empty/null for those fields β that reflects Instagram's own data.
Can I scrape many profiles at once?
Yes. Add as many usernames or URLs as you like; each becomes one row in the results, and an unreachable profile is reported as an error record without stopping the rest.
What export formats are supported? JSON, CSV, Excel, HTML, XML, plus direct API/webhook access.
π Keywords
Instagram profile scraper, Instagram scraper, scrape Instagram profile, Instagram bio scraper, Instagram followers scraper, Instagram profile data extractor, Instagram user info scraper, Instagram highlights scraper, Instagram account scraper, export Instagram profiles to CSV/JSON/Excel, Instagram API alternative, scrape Instagram without login, Instagram influencer data, Instagram email scraper.