Instagram Profile Scraper — Live Data by Influship avatar

Instagram Profile Scraper — Live Data by Influship

Pricing

from $8.00 / 1,000 profile scrapeds

Go to Apify Store
Instagram Profile Scraper — Live Data by Influship

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

Influship

Maintained by Community

Actor stats

0

Bookmarked

24

Total users

1

Monthly active users

12 days ago

Last modified

Categories

Security

Limited permissions

Share

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?

FieldDescription
statusok, not_found, private, invalid, transient_error, or error
username / user_idInstagram handle and numeric user ID
url / inputUrlCanonical profile URL and the original input value
full_name / biographyDisplay name and bio text
profile_pic_url / profile_pic_url_hdProfile picture URLs
follower_count / following_count / media_countPublic counts (media_count may be null)
engagement_rateDecimal rate (0.035 = 3.5%)
is_verified / is_privateVerification and privacy flags
external_url / bio_linksLink in bio and multi-link entries
postsRecent posts when includePosts is enabled
related_profilesProfiles Instagram suggests as similar
errorFailure reason, or null when status is ok

How to scrape Instagram profiles

  1. Open the Input tab and add usernames, @handles, or instagram.com profile URLs. The legacy username field still works for existing integrations.
  2. Leave Include posts off unless you need recent captions and media (it is off by default).
  3. Optionally set a post limit from 1 to 50 when posts are enabled.
  4. Run the actor.
  5. 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-start event automatically when a run begins (planned at $0.003). This actor never charges apify-actor-start. If Console still defines the legacy custom actor-start event, that event is charged once after input validates, and is skipped once Console removes it.
  • Successful profile — profile-scraped at $0.0025 per public profile that is returned with status: "ok".
  • Not charged as results — not_found, private, invalid, and error rows are written to the dataset without a profile-scraped event.

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 with usernames.
  • includePosts (boolean, default false)
  • 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 includePosts off when you only need bio and follower counts.
  • Pass a list in usernames instead 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. username still works and is merged into the same list.
  • includePosts now defaults to false. Set it to true to keep the old posts-included behavior.
  • Dataset rows include status, url, inputUrl, and error. 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, and is_professional remain absent, as in 0.2. media_count can still be null.

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.