Instagram Profile Scraper — Live Data by Influship
Pricing
from $8.00 / 1,000 profile scrapeds
Instagram Profile Scraper — Live Data by Influship
Scrape any public Instagram profile in real time. Get follower count, engagement rate, bio, recent posts, growth trends, and audience data. No login required. Powered by Influship live scraping infrastructure.
Pricing
from $8.00 / 1,000 profile scrapeds
Rating
0.0
(0)
Developer
Influship
Maintained by CommunityActor stats
0
Bookmarked
24
Total users
1
Monthly active users
12 days ago
Last modified
Categories
Security
Limited permissionsShare
What does Instagram Profile Scraper do?
Instagram Profile Scraper pulls live, structured profile data from public Instagram accounts. Give it one handle, a list of usernames, or full profile URLs and it returns follower counts, bios, engagement rate, verification status, and optional recent posts as clean JSON. No Instagram login is required. It is an Instagram API alternative for marketers, researchers, and developers who need fresh profile data on demand.
Unlike browser scrapers that break when Instagram changes its frontend, this actor uses a maintained data pipeline and writes one dataset row per requested profile.
Why scrape Instagram profiles?
Use this actor to:
- Source influencers — collect follower counts, engagement rate, and bios before outreach
- Monitor competitors — track public profile metrics on a schedule
- Enrich CRM records — attach live Instagram stats to existing leads
- Research audiences — export public profile fields for analysis in JSON, CSV, or Excel
Apify adds scheduling, the Actor API, integrations (Zapier, Make, n8n), dataset exports, and run monitoring on top of the scrape itself.
What data can you extract?
| Field | Description |
|---|---|
status | ok, not_found, private, invalid, transient_error, or error |
username / user_id | Instagram handle and numeric user ID |
url / inputUrl | Canonical profile URL and the original input value |
full_name / biography | Display name and bio text |
profile_pic_url / profile_pic_url_hd | Profile picture URLs |
follower_count / following_count / media_count | Public counts (media_count may be null) |
engagement_rate | Decimal rate (0.035 = 3.5%) |
is_verified / is_private | Verification and privacy flags |
external_url / bio_links | Link in bio and multi-link entries |
posts | Recent posts when includePosts is enabled |
related_profiles | Profiles Instagram suggests as similar |
error | Failure reason, or null when status is ok |
How to scrape Instagram profiles
- Open the Input tab and add usernames,
@handles, orinstagram.comprofile URLs. The legacyusernamefield still works for existing integrations. - Leave Include posts off unless you need recent captions and media (it is off by default).
- Optionally set a post limit from 1 to 50 when posts are enabled.
- Run the actor.
- Download results as JSON, CSV, Excel, or HTML from the dataset. You can also call the actor from the Apify API.
Invalid handles, private accounts, and missing profiles are stored as dataset rows. They do not fail the whole run.
How much does it cost to scrape Instagram profiles?
This actor uses pay-per-event pricing:
- Start — Apify charges the synthetic
apify-actor-startevent automatically when a run begins (planned at $0.003). This actor never chargesapify-actor-start. If Console still defines the legacy customactor-startevent, that event is charged once after input validates, and is skipped once Console removes it. - Successful profile —
profile-scrapedat $0.0025 per public profile that is returned withstatus: "ok". - Not charged as results —
not_found,private,invalid, and error rows are written to the dataset without aprofile-scrapedevent.
Example: three public profiles in one run cost about $0.003 + 3 × $0.0025 = $0.0105. A missing or private handle in that list is free beyond the start fee.
Exact Console prices can include Apify Store discounts. Platform compute is included in the event fees.
Input
See the Input tab for the full form. The actor accepts:
usernames(array) — preferred. Handles,@handles, or profile URLs.username(string) — legacy single value, merged withusernames.includePosts(boolean, defaultfalse)postLimit(integer 1–50, default 12, used only when posts are on)
Input is validated before any custom pay-per-event charge. Empty input fails the run without a result fee.
Input example
{"usernames": ["nasa", "@natgeo", "https://www.instagram.com/humansofny/"],"includePosts": false}
Output
You can download the dataset in JSON, HTML, CSV, or Excel. Each requested profile is one row.
Successful row (fields truncated):
{"status": "ok","username": "exampleuser","url": "https://www.instagram.com/exampleuser/","inputUrl": "@exampleuser","full_name": "Example User","follower_count": 15000,"engagement_rate": 0.035,"is_verified": true,"is_private": false,"media_count": 120,"posts": [],"error": null,"scraped_at": "2026-01-15T12:00:00.000Z"}
Missing profile (not billed as a result):
{"status": "not_found","username": "thisuserdoesnotexist","url": "https://www.instagram.com/thisuserdoesnotexist/","inputUrl": "thisuserdoesnotexist","error": "Profile not found","scraped_at": "2026-01-15T12:00:00.000Z"}
Tips
- Keep
includePostsoff when you only need bio and follower counts. - Pass a list in
usernamesinstead of starting one run per handle. - Transient Instagram or API failures (HTTP 429/503) are retried with backoff. If every valid profile is still unavailable or failed after retries, the run fails so Apify can retry it. Invalid URLs in the same list do not turn that outage into a successful run.
Migrating from 0.2 to 0.3
- Prefer
usernames.usernamestill works and is merged into the same list. includePostsnow defaults to false. Set it totrueto keep the old posts-included behavior.- Dataset rows include
status,url,inputUrl, anderror. Successful profiles keep the 0.2 snake_case fields (follower_count,media_count, and so on). - Missing or private profiles no longer fail the run.
highlight_reel_count,is_business, andis_professionalremain absent, as in 0.2.media_countcan still benull.
FAQ
How fresh is the data? Data is scraped live on every run. There is no profile cache.
Can I scrape private accounts?
The actor only returns what Instagram exposes publicly. A private profile is stored with status: "private" and is not charged as a successful result.
What happens if a username does not exist?
You get a not_found dataset row. You are not charged the per-profile fee for that item.
Can I scrape multiple profiles in one run?
Yes. Put them in usernames. Duplicates and @ prefixes are normalized.
Is this legal? Our actors extract publicly available information. They do not collect private user data such as email addresses, gender, or precise location. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you are unsure, consult your lawyers.
Where can I get help? Use the Issues tab on the actor page. For programmatic runs, see the API tab.