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

7 days ago

Last modified

Share

Scrape structured Instagram profile information from usernames, @handles, or complete profile URLs without providing an Instagram account, login, cookies, or API key.

Process up to 10,000 profiles per run and export biographies, follower and following counts, post totals, verification status, profile pictures, links, categories, and available business information. The price is $1 per 1,000 successfully returned profiles.

What can you use it for?

  • Enrich creator, influencer, lead, and brand lists.
  • Verify usernames, account visibility, categories, and audience size.
  • Collect biographies, websites, and biography links.
  • Monitor profile information with scheduled runs.
  • Build influencer research and market-analysis datasets.
  • Export results to JSON, CSV, Excel, XML, or RSS.
  • Connect results to webhooks, Google Sheets, Zapier, Make, or other Apify integrations.

What information does it return?

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.

For private accounts, only the profile information that Instagram exposes publicly can be returned.

Input

Add one or more values to profiles:

{
"profiles": [
"nasa",
"@nike",
"https://www.instagram.com/google/"
],
"concurrency": 2,
"maxRetries": 3
}
FieldTypeRequiredDefaultDescription
profilesarray of stringsYesnasa in the exampleBetween 1 and 10,000 usernames, @handles, or complete Instagram profile URLs.
concurrencyintegerNo2Profiles processed simultaneously. Accepted range: 1 to 5.
maxRetriesintegerNo3Attempts allowed when Instagram temporarily does not return usable data. Accepted range: 1 to 5.

Accepted formats:

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

Usernames are case-insensitive. If the same normalized username appears more than once, later occurrences are reported as duplicates without being requested or charged again.

Choosing concurrency

ValueRecommended use
1Small monitoring jobs where stability is more important than speed.
2Balanced default for most runs.
3 to 5Large batches where faster completion is preferred.

The Actor automatically slows requests when the destination temporarily restricts access. Higher concurrency can still increase failures, so use the default unless you need faster bulk processing.

Output

The default dataset contains one row for every submitted value. This includes invalid, duplicate, missing, and failed inputs, making it easy to identify which values should be corrected or retried.

A successful row has success: true and a populated profile object:

{
"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 retries.
throttleWaitTimeMsTime spent waiting because the service 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.

When concurrency is greater than 1, dataset rows can be returned 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 all attempts.No

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.

Platform usage is included in the event price. 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.

Run summary and recovery

Every run saves a SUMMARY record in its default key-value store. It reports completion, status counts, billable and charged profiles, retries, response volume, elapsed time, spending-limit state, and other diagnostics useful for auditing the run.

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.

Instagram can change or temporarily restrict access to profile information. An individual profile can therefore occasionally return failed. Failed results are free and include an error that can be retried later.

Exporting and integrating results

From the dataset tab, results can be downloaded as JSON, CSV, Excel, XML, or RSS. Apify integrations can send completed datasets to webhooks, cloud storage, automation tools, or other applications.

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

Using the Apify API

Replace $APIFY_TOKEN with an Apify API token or define it as an environment variable:

curl -X POST \
"https://api.apify.com/v2/acts/datascraperes~instagram-profile-scraper-no-login/runs?waitForFinish=60" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"profiles": ["nasa", "@nike"],
"concurrency": 2,
"maxRetries": 3
}'

The response contains defaultDatasetId and defaultKeyValueStoreId. Use the dataset ID to download rows and read the SUMMARY key from the key-value store to audit completion and billing. Additional API examples are available in the Actor's API tab in Apify Console.

For no-code use, open the Actor in Apify Console, add profiles to the input form, select Start, and export the resulting dataset.

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.