# Instagram likers scraper (`trend_wizard/instagram-like-scraper`) Actor

Instagram Likers Scraper helps you discover and extract publicly available profiles of users who like any Instagram post or Reel. Simply enter a post URL to collect liker data, including usernames, full names, profile URLs, profile pictures, and verification status, subject to availability.

- **URL**: https://apify.com/trend_wizard/instagram-like-scraper.md
- **Developed by:** [Yashwardhan](https://apify.com/trend_wizard) (community)
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.75 / 1,000 results

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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## ❤️ Instagram Likers Scraper

Discover the public profiles engaging with an Instagram post or Reel. Simply provide an Instagram URL and collect a structured list of available liker profiles — ready for research, audience analysis, and marketing workflows.

### ✨ Key Features

- 🔗 **Simple URL input** — provide a public Instagram post or Reel link.
- 👥 **Liker profile extraction** — collect available usernames and profile details for people who liked the content.
- 🎯 **Up to 1,000 profiles per run** — set your preferred result limit, with a strict maximum of 1,000 unique profiles.
- 🧹 **Automatic deduplication** — repeated usernames are removed from the results.
- 🧩 **Structured data** — receive clean, consistent records that are easy to analyse and export.
- 🖼️ **Profile information** — retrieve available full names, profile IDs, profile-picture URLs, and privacy indicators.
- 📊 **Run summary** — review the number of profiles collected, duplicates and invalid records skipped, run status, and execution time.
- ⚙️ **Flexible timeout** — configure how long the Actor waits for a response.
- 🔐 **Simple user experience** — no technical configuration is required from the Actor user.
- 📦 **Apify integration** — results are saved to the default Apify dataset, with a summary also available in the key-value store.

### 🚀 How to Use

1. Open the Actor on Apify.
2. Paste an Instagram post or Reel URL into **Instagram post or Reel URL**.
3. Choose the **Maximum unique likers** value (1–1,000). The default is 1,000.
4. Optionally adjust **HTTP timeout (ms)**. The default is 20,000 ms.
5. Click **Start**.
6. Open the **Dataset** tab to view and export the results.

### 📝 Input

| Input | Required | Default | Description |
|---|---:|---:|---|
| `postUrl` | ✅ Yes | — | A supported Instagram post, Reel, or video URL. Accepted URL paths: `/p/`, `/reel/`, `/reels/`, and `/tv/`. |
| `maxLikers` | No | `1000` | Maximum number of unique liker profiles to save. Minimum: 1; maximum: 1,000. |
| `timeoutMs` | No | `20000` | Request timeout in milliseconds. Allowed range: 1,000–120,000. |

#### Example input

```json
{
  "postUrl": "https://www.instagram.com/reel/SHORTCODE/",
  "maxLikers": 1000,
  "timeoutMs": 20000
}
```

### 📤 Output

The Actor saves its results in the default Apify dataset. The dataset contains individual liker records followed by one run-summary record.

#### Liker record fields

| Field | Description |
|---|---|
| `record_type` | Record type; `liker` for a profile result. |
| `post_url` | Instagram URL submitted for the run. |
| `shortcode` | Shortcode extracted from the Instagram URL. |
| `username` | Instagram username. |
| `full_name` | Full name, when available. |
| `pk` | Profile identifier, when available. |
| `profile_pic_url` | Profile-picture URL, when available. |
| `is_private` | Privacy indicator, when available. |

#### Run summary fields

The final `run_summary` record includes:

- `status` — whether the run succeeded or failed.
- `started_at` and `finished_at` — run start and finish timestamps.
- `post_url` and `shortcode` — the submitted post details.
- `unique_likers_returned` — number of unique liker profiles saved.
- `pages_fetched` — number of retrieval batches completed.
- `provider_count` and `provider_reported_total` — source-reported count information, when available.
- `invalid_profiles_skipped` — records skipped because they did not contain a usable username.
- `duplicate_profiles_skipped` — duplicate usernames removed.
- `capped` — indicates whether the requested result limit was reached.
- `error` — error details, if the run failed.
- `duration_seconds` — total run duration.

A copy of the run summary is also stored in the default key-value store under `RUN_SUMMARY`.

> **Please note:** The 1,000-profile limit is a maximum, not a guarantee that every run will return 1,000 profiles. The number of results depends on the data available for the submitted post and the source's response. Only profiles returned with usable information can be included. The reported total, when present, may be higher than the number of profiles actually collected.

### 💡 Use Cases

- 🎯 **Audience research** — understand who engages with specific public content.
- 🤝 **Influencer discovery** — identify potentially relevant accounts within an engaged audience.
- 📈 **Competitor analysis** — explore engagement around public posts from competing brands or creators.
- 💬 **Community insights** — review the profiles interacting with a post.
- 🧠 **Marketing research** — build structured datasets for further analysis and segmentation.

### 🌟 Why Use Instagram Likers Scraper?

- **Easy to operate:** submit a URL and start collecting.
- **Controlled collection:** choose a result limit that suits your task.
- **Cleaner results:** duplicate usernames are filtered automatically.
- **Consistent output:** profile records use predictable field names.
- **Useful run visibility:** a summary helps you understand the outcome of each run.
- **Export-ready data:** use Apify's dataset export options to work with your results in JSON, CSV, Excel, and other supported formats.

### 🔗 Explore Our Other Actor

Looking to discover profiles related to an Instagram account rather than people who liked a specific post?

Check out our **Instagram Related Profiles Scraper**:

➡️ **[Instagram Related Profiles Scraper](https://apify.com/YOUR_APIFY_USERNAME/instagram-related-profiles-scraper)**

> Replace `YOUR_APIFY_USERNAME` in the link above with the Apify username that owns your published Instagram Related Profiles Scraper Actor.

### ❓ Frequently Asked Questions

#### 1. What does this Actor do?

It collects available public profile information for users who liked the Instagram post or Reel supplied in the input.

#### 2. Which Instagram URLs are supported?

The Actor accepts Instagram URLs using `/p/`, `/reel/`, `/reels/`, and `/tv/` paths.

#### 3. What is the maximum number of profiles I can collect?

You can request up to **1,000 unique liker profiles per run**. The Actor enforces this maximum.

#### 4. Will every run return exactly 1,000 profiles?

No. 1,000 is the maximum allowed, not a guaranteed result count. Actual results depend on the profiles available for the submitted content and the data returned during the run.

#### 5. Are duplicate profiles included?

No. The Actor deduplicates profiles using their usernames, ignoring differences in letter case.

#### 6. What information is included for each profile?

Available fields include username, full name, profile identifier, profile-picture URL, and privacy indicator.

#### 7. Where can I find the results?

Open the Actor run in Apify Console and select the **Dataset** tab. You can also export the dataset in a supported format.

#### 8. What is the run summary?

It is a final dataset record containing run status, result count, duplicate and invalid record counts, timing information, and other run metadata. A copy is saved in the key-value store as `RUN_SUMMARY`.

#### 9. What happens if the Instagram URL is invalid or unsupported?

The Actor validates the URL before attempting data retrieval. Unsupported URL formats cause the run to fail with an explanatory error.

#### 10. Can I collect more than 1,000 profiles in one run?

No. The maximum is intentionally limited to 1,000 unique profiles per run.

#### 11. What does the timeout setting control?

It controls how long the Actor waits for the data retrieval operation before timing out. The default is 20 seconds.

#### 12. Does the Actor guarantee that every liker profile will be available?

No. Profile availability and completeness depend on the source data returned for the submitted Instagram content. The Actor does not guarantee access to every account that liked a post.

### ⚠️ Responsible Use

Use this Actor only for lawful research and in accordance with Instagram's terms, applicable privacy and data-protection laws, and the rights of the people whose information may appear in the results. Do not use collected information for spam, harassment, discrimination, or other abusive purposes.

***

❤️ **Instagram Likers Scraper — turn post engagement into structured audience insights.**

# Actor input Schema

## `postUrl` (type: `string`):

Public Instagram post/Reel URL.

## `maxLikers` (type: `integer`):

Maximum number of unique liker profiles saved per run. Cannot exceed 1,000.

## `timeoutMs` (type: `integer`):

Maximum time to wait for the provider request before timing out.

## Actor input object example

```json
{
  "postUrl": "https://www.instagram.com/reel/DfEI6cfoq1t/",
  "maxLikers": 10,
  "timeoutMs": 20000
}
```

# Actor output Schema

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

The default dataset containing liker profile records and the final run summary record.

## `runSummary` (type: `string`):

The RUN_SUMMARY record saved in the default key-value store.

# 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 = {
    "postUrl": "https://www.instagram.com/reel/DfEI6cfoq1t/",
    "maxLikers": 10,
    "timeoutMs": 20000
};

// Run the Actor and wait for it to finish
const run = await client.actor("trend_wizard/instagram-like-scraper").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 = {
    "postUrl": "https://www.instagram.com/reel/DfEI6cfoq1t/",
    "maxLikers": 10,
    "timeoutMs": 20000,
}

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

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

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

```

## CLI example

```bash
echo '{
  "postUrl": "https://www.instagram.com/reel/DfEI6cfoq1t/",
  "maxLikers": 10,
  "timeoutMs": 20000
}' |
apify call trend_wizard/instagram-like-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,trend_wizard/instagram-like-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/YFSGGzZwC3KHtc2eX/builds/0ZKdec7qIlFQ1lMTV/openapi.json
