Instagram Profile Scraper - No Login avatar

Instagram Profile Scraper - No Login

Pricing

$1.00 / 1,000 successful instagram profiles

Go to Apify Store
Instagram Profile Scraper - No Login

Instagram Profile Scraper - No Login

Scrape up to 10,000 Instagram profiles from usernames or URLs without login. Extract bios, followers, following, post totals, verification, categories, links, profile pictures, and available business details. Pay only for successful profiles at $1 per 1,000.

Pricing

$1.00 / 1,000 successful instagram profiles

Rating

0.0

(0)

Developer

DataScraperES

DataScraperES

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Scrape structured Instagram profile information from usernames, @handles, or complete public profile URLs without an Instagram account, login, cookies, or API key. The Actor returns one auditable dataset row for every submitted value.

It collects public identity, biography, audience-size, verification, account-type, category, website, biography-link, profile-picture, pronoun, and business-location fields when Instagram makes them available.

What this Actor can do

  • Process one profile or a bulk list of up to 10,000 inputs.
  • Normalize usernames, @handles, and complete instagram.com profile URLs.
  • Deduplicate equivalent inputs without requesting or charging the same profile twice.
  • Return structured data for public and publicly visible private profiles.
  • Keep invalid, duplicate, unavailable, and failed inputs in the dataset for auditing.
  • Charge only successful structured profile results.
  • Resume an interrupted run without intentionally repeating completed inputs.

Common use cases

  • Enrich creator, influencer, lead, and brand lists.
  • Verify usernames, account visibility, categories, and audience size.
  • Collect biographies, websites, and biography links.
  • Monitor profile changes with recurring Apify Task runs.
  • Build influencer research and market-analysis datasets.
  • Export profile data to JSON, CSV, Excel, XML, or RSS.

What is included

For each successfully retrieved profile, the Actor can return:

  • Instagram profile ID, username, full name, and biography;
  • follower, following, and post counts;
  • verified and private status;
  • business, professional, category, and account-type information when available;
  • external website and biography links;
  • standard and high-resolution profile picture URLs;
  • public pronouns; and
  • public business location when Instagram provides it.

Some values can be null or empty when the account does not publish them or Instagram does not make them available.

What is not included

This Actor focuses on profile information. It does not scrape:

  • individual posts or post captions;
  • Reels or Stories;
  • comments or likes;
  • follower or following lists; or
  • private content that Instagram does not expose publicly.

Quick start

  1. Open the Actor in Apify Console.
  2. Add one or more public Instagram usernames, @handles, or profile URLs to Instagram profiles.
  3. Click Start.
  4. Open the Dataset tab to preview or download the results.

For a quick test, use this input:

{
"profiles": ["nasa"]
}

Pricing

The Actor costs $0.001 per successful profile, equivalent to $1 per 1,000 successful profiles.

The only billable event is profile-result, charged once after structured profile information has been returned. You are not charged for:

  • invalid inputs;
  • duplicate usernames;
  • profiles that are not found;
  • failed profiles;
  • starting the Actor; or
  • non-billable rows written to the dataset.

The Actor respects the maximum total charge selected for the run and stops before starting another potentially billable profile when the remaining limit is insufficient.

Successful profilesActor price
1$0.001
100$0.10
1,000$1.00
10,000$10.00

Rows with success: false do not increase these amounts.

Input

Input fields

FieldTypeRequiredDefaultAllowed valuesDescription
profilesarray of stringsYes1–10,000 itemsInstagram usernames, @handles, or complete public Instagram profile URLs.

Accepted profile formats

These values all identify public Instagram profiles:

nasa
@nasa
instagram.com/nasa
https://www.instagram.com/nasa/

Usernames are case-insensitive. Equivalent forms of the same username are deduplicated within the run.

Single-profile example

{
"profiles": ["nasa"]
}

Bulk example

{
"profiles": [
"nasa",
"@nike",
"https://www.instagram.com/google/",
"natgeo"
]
}

Mixed-input example

{
"profiles": [
"nasa",
"@NASA",
"bad value",
"https://www.instagram.com/nike/"
]
}

Invalid and duplicate values remain visible in the dataset with a non-billable status, so you can correct the source list without comparing only successful rows.

Output

The default dataset contains one row for every submitted value. A successful row has success: true and a populated profile object. Invalid, duplicate, unavailable, and failed values have profile: null and include an explanatory status or error.

Successful result example

{
"success": true,
"status": "ok",
"input": "nasa",
"username": "nasa",
"profileUrl": "https://www.instagram.com/nasa/",
"duplicateOf": null,
"scrapedAt": "2026-07-22T12:00:00Z",
"attempts": 1,
"responseTimeMs": 1840,
"httpRequests": 2,
"responseBytes": 190000,
"backoffTimeMs": 0,
"throttleWaitTimeMs": 0,
"error": null,
"profile": {
"id": "528817151",
"username": "nasa",
"fullName": "NASA",
"biography": "Public biography text",
"followersCount": 100000000,
"followsCount": 90,
"postsCount": 4800,
"isVerified": true,
"isPrivate": false,
"isBusinessAccount": false,
"isProfessionalAccount": null,
"accountType": 1,
"accountTypeName": "personal",
"category": null,
"externalUrl": "https://www.nasa.gov/",
"bioLinks": [],
"profilePicUrl": "https://...",
"profilePicUrlHD": "https://...",
"pronouns": [],
"location": null,
"dataQuality": {
"availableCoreFields": 8,
"totalCoreFields": 8,
"level": "full"
}
}
}

Counts and other values in this example are illustrative and can change over time.

Result fields

FieldDescription
successtrue when structured profile information was returned. Only these rows are billable.
statusOutcome of the submitted value.
inputOriginal value submitted by the user.
usernameNormalized Instagram username when the input is valid.
profileUrlCanonical Instagram profile URL.
duplicateOfOriginal value matched by a duplicate row, otherwise null.
scrapedAtUTC timestamp for the result.
attemptsNumber of attempts used for this profile.
responseTimeMsTotal processing time for this profile in milliseconds.
httpRequestsRequests used to obtain the result.
responseBytesResponse volume used for this result in bytes.
backoffTimeMsTime spent waiting before another request.
throttleWaitTimeMsTime spent waiting because Instagram temporarily restricted or slowed access.
errorError code and message for an unsuccessful row, otherwise null.
profileStructured Instagram profile information, otherwise null.

Profile fields

FieldDescription
idInstagram profile identifier.
username, fullName, biographyPublic identity and biography fields.
followersCount, followsCount, postsCountPublic follower, following, and post totals.
isVerified, isPrivateVerification and visibility flags.
isBusinessAccount, isProfessionalAccountAvailable account classification flags.
accountType, accountTypeName, categoryAvailable numeric and readable account/category information.
externalUrl, bioLinksPublic website and biography links.
profilePicUrl, profilePicUrlHDAvailable standard and high-resolution profile image URLs.
pronounsPublic pronouns listed by the profile.
locationPublic business location when available.
dataQualityIndicates how many core fields were available and labels the result full, partial, or minimal.

Dataset rows from bulk runs may finish in a different order from the input. Use input or username to match results to submitted values.

Status values

StatusMeaningCharged?
okProfile information was returned.Yes
privatePublicly visible information for a private profile was returned.Yes
not_foundThe profile does not exist or is no longer publicly available.No
duplicateThe normalized username already appeared in the run.No
invalid_inputThe value is not a valid Instagram username or profile URL.No
failedInstagram did not return usable profile information after the available attempts.No

Run summary and recovery

Every run saves a SUMMARY record in the default key-value store. It reports completion, status counts, billable and charged profiles, request attempts, retry counts, response volume, elapsed time, effective worker count, and spending-limit state.

If a run is interrupted by a platform migration or restart, saved progress is reused so completed inputs are not intentionally requested or charged twice.

Exporting results

From the Dataset tab, results can be downloaded as JSON, CSV, Excel, XML, or RSS. The dataset can also be connected to downstream Apify workflows or external automation.

For recurring monitoring, save the input as an Apify Task and attach a schedule. Each scheduled run creates a separate dataset and summary.

Reliability and expected behavior

  • Temporary profile failures are retried automatically using the Actor's internal retry policy.
  • A failed or unavailable profile does not discard successful results from other profiles.
  • Duplicate usernames, handles, and profile URLs are removed from billable processing.
  • Invalid and duplicate inputs are written in batches without profile-result charges.
  • The Actor respects the maximum total charge and stops safely when no billable capacity remains.
  • Instagram can change or temporarily restrict its public profile responses, so available fields and result counts can vary between runs.

Limits and important notes

  • A run accepts up to 10,000 profile inputs.
  • Only information exposed by public Instagram profile responses can be returned.
  • Private profiles may return only the public information Instagram exposes.
  • This Actor accepts profile usernames and profile URLs, not individual post URLs.
  • It does not access comments, followers, Stories, highlights, or private content.
  • Profile-picture and other Instagram-hosted URLs can expire.
  • Nullable fields mean that Instagram did not provide that value at run time; they do not mean zero.

Frequently asked questions

Do I need an Instagram account or login?

No. The Actor collects information exposed by public Instagram profile responses and does not require Instagram credentials or cookies.

Can it scrape private profiles?

It can return only the information Instagram exposes publicly for a private profile. It does not bypass privacy controls or access private content.

Why did I receive fewer successful profiles than submitted?

Some inputs may be invalid, duplicates, unavailable, private with no usable public data, or temporarily failed. Check the status and error fields in the dataset and the SUMMARY record for the run-level totals.

Are duplicate inputs charged twice?

No. Equivalent usernames, handles, and profile URLs are processed once. Duplicate rows remain available for auditing but are not billable.

How can I control the maximum cost?

Use the maximum run charge available in Apify. Each successful profile costs $0.001, so 1,000 successful profiles cost $1.00.

Are media files stored permanently?

No. profilePicUrl and profilePicUrlHD point to Instagram-hosted files and can expire. Download them promptly if you need permanent storage.

Responsible use

This Actor only returns information that Instagram makes publicly accessible. You are responsible for having a lawful purpose for collecting and using the data and for complying with applicable privacy, data-protection, intellectual-property, and platform rules. Avoid collecting unnecessary personal data and retain results only as long as needed for your stated purpose.