# Instagram Profile Scraper - No Login (`datascraperes/instagram-profile-scraper-no-login`) Actor

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.

- **URL**: https://apify.com/datascraperes/instagram-profile-scraper-no-login.md
- **Developed by:** [DataScraperES](https://apify.com/datascraperes) (community)
- **Categories:** Social media, Lead generation, Marketing
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$1.00 / 1,000 successful instagram profiles

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Instagram Profile Scraper - No Login

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`:

```json
{
  "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:

```text
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

| 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:

```json
{
  "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:

```bash
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.

# Actor input Schema

## `profiles` (type: `array`):

Usernames, @handles, or complete instagram.com profile URLs. Duplicates are reported but are not fetched or charged twice.

## `concurrency` (type: `integer`):

Profiles processed in parallel. Use 1 for sensitive monitoring, 2 for balanced workloads, or up to 5 for large batches. Automatic throttling still protects bulk runs.

## `maxRetries` (type: `integer`):

Maximum isolated network sessions tried for a temporarily unavailable profile.

## Actor input object example

```json
{
  "profiles": [
    "nasa"
  ],
  "concurrency": 2,
  "maxRetries": 3
}
```

# Actor output Schema

## `results` (type: `string`):

One auditable row for every submitted profile input.

## `summary` (type: `string`):

Result, retry, resume, pricing, and spending-limit counters.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "profiles": [
        "nasa"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("datascraperes/instagram-profile-scraper-no-login").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "profiles": ["nasa"] }

# Run the Actor and wait for it to finish
run = client.actor("datascraperes/instagram-profile-scraper-no-login").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "profiles": [
    "nasa"
  ]
}' |
apify call datascraperes/instagram-profile-scraper-no-login --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=datascraperes/instagram-profile-scraper-no-login",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Instagram Profile Scraper - No Login",
        "description": "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.",
        "version": "1.0",
        "x-build-id": "SidL8xb9CZfxA3vFy"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/datascraperes~instagram-profile-scraper-no-login/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-datascraperes-instagram-profile-scraper-no-login",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/datascraperes~instagram-profile-scraper-no-login/runs": {
            "post": {
                "operationId": "runs-sync-datascraperes-instagram-profile-scraper-no-login",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/datascraperes~instagram-profile-scraper-no-login/run-sync": {
            "post": {
                "operationId": "run-sync-datascraperes-instagram-profile-scraper-no-login",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "profiles"
                ],
                "properties": {
                    "profiles": {
                        "title": "Instagram profiles",
                        "minItems": 1,
                        "maxItems": 10000,
                        "type": "array",
                        "description": "Usernames, @handles, or complete instagram.com profile URLs. Duplicates are reported but are not fetched or charged twice.",
                        "items": {
                            "type": "string",
                            "minLength": 1
                        }
                    },
                    "concurrency": {
                        "title": "Concurrency",
                        "minimum": 1,
                        "maximum": 5,
                        "type": "integer",
                        "description": "Profiles processed in parallel. Use 1 for sensitive monitoring, 2 for balanced workloads, or up to 5 for large batches. Automatic throttling still protects bulk runs.",
                        "default": 2
                    },
                    "maxRetries": {
                        "title": "Maximum retries",
                        "minimum": 1,
                        "maximum": 5,
                        "type": "integer",
                        "description": "Maximum isolated network sessions tried for a temporarily unavailable profile.",
                        "default": 3
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
