Instagram Profile Scraper - No Login
Pricing
$1.00 / 1,000 successful instagram profiles
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
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}
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
profiles | array of strings | Yes | nasa in the example | Between 1 and 10,000 usernames, @handles, or complete Instagram profile URLs. |
concurrency | integer | No | 2 | Profiles processed simultaneously. Accepted range: 1 to 5. |
maxRetries | integer | No | 3 | Attempts allowed when Instagram temporarily does not return usable data. Accepted range: 1 to 5. |
Accepted formats:
nasa@nasainstagram.com/nasahttps://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
| Value | Recommended use |
|---|---|
1 | Small monitoring jobs where stability is more important than speed. |
2 | Balanced default for most runs. |
3 to 5 | Large 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
| Field | Description |
|---|---|
success | true when structured profile information was returned. Only these rows are billable. |
status | Outcome of the submitted value. |
input | Original value submitted by the user. |
username | Normalized Instagram username when the input is valid. |
profileUrl | Canonical Instagram profile URL. |
duplicateOf | Original value matched by a duplicate row, otherwise null. |
scrapedAt | UTC timestamp for the result. |
attempts | Number of attempts used for this profile. |
responseTimeMs | Total processing time for this profile in milliseconds. |
httpRequests | Requests used to obtain the result. |
responseBytes | Response volume used for this result in bytes. |
backoffTimeMs | Time spent waiting before retries. |
throttleWaitTimeMs | Time spent waiting because the service temporarily restricted or slowed access. |
error | Error code and message for an unsuccessful row, otherwise null. |
profile | Structured Instagram profile information, otherwise null. |
Profile fields
| Field | Description |
|---|---|
id | Instagram profile identifier. |
username, fullName, biography | Public identity and biography fields. |
followersCount, followsCount, postsCount | Public follower, following, and post totals. |
isVerified, isPrivate | Verification and visibility flags. |
isBusinessAccount, isProfessionalAccount | Available account classification flags. |
accountType, accountTypeName, category | Available numeric and readable account/category information. |
externalUrl, bioLinks | Public website and biography links. |
profilePicUrl, profilePicUrlHD | Available standard and high-resolution profile image URLs. |
pronouns | Public pronouns listed by the profile. |
location | Public business location when available. |
dataQuality | Indicates 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
| Status | Meaning | Charged? |
|---|---|---|
ok | Profile information was returned. | Yes |
private | Publicly visible information for a private profile was returned. | Yes |
not_found | The profile does not exist or is no longer publicly available. | No |
duplicate | The normalized username already appeared in the run. | No |
invalid_input | The value is not a valid Instagram username or profile URL. | No |
failed | Instagram 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 profiles | Actor 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.