# Instagram Scraper (`prodigious_flourish/instagram-scraper`) Actor

Lightning-fast, anonymous Instagram scraper. Extract profiles, posts, reels, metrics, and metadata without needing a login. Features a zero-RAM hybrid architecture, time-based early exit filtering, and deep metadata extraction. Export to JSON/CSV or integrate via API.

- **URL**: https://apify.com/prodigious\_flourish/instagram-scraper.md
- **Developed by:** [Sudarshan RJ](https://apify.com/prodigious_flourish) (community)
- **Categories:** Social media, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 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?

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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

### 🚀 The Ultimate Instagram Profile Scraper

This is a fast, reliable, and stealthy Instagram Profile Scraper designed to extract public metadata from Instagram profiles without needing a login.

If you are building lead generation lists, monitoring influencers, or analyzing social media metrics, this tool provides exactly what you need quickly and cost-effectively.

#### 🌟 Features

- **No Login Required:** Scrapes public data safely. You do not need to risk your own Instagram account or provide session cookies.
- **Lightning Fast:** Uses optimized headless browser techniques (Playwright) and skips downloading heavy images to ensure blazing fast extraction speeds.
- **Robust Extraction:** Instead of relying on fragile CSS classes that Instagram changes daily, it extracts data directly from the page's core meta tags.
- **Recent Posts:** Automatically captures the URLs of the user's most recent posts.

#### 💰 Pricing & Cost Estimation

This Actor is priced competitively on a **Pay-per-event** model. You only pay for what you successfully scrape!

- **Price:** **$1.00 per 1,000 profiles** ($0.001 per successful scrape).
- **Why this price?** The market standard for Instagram profile scrapers is currently between $1.50 and $2.60 per 1,000 results. Because this is a new, highly optimized Actor, we are offering it at an introductory rate of **$1.00 / 1k results** to help you scale your data pipelines affordably!

#### 📥 Input Configuration

The Actor takes a very simple input. You just provide the list of Instagram profile URLs you want to scrape.

```json
{
  "profiles": [
    "https://www.instagram.com/apifytech/",
    "https://www.instagram.com/instagram/"
  ],
  "maxPosts": 10
}
```

#### 📤 Output Example

The data is exported in standard Apify Datasets, meaning you can easily download it as JSON, CSV, Excel, or send it directly to Zapier/Make.

```json
{
  "url": "https://www.instagram.com/apifytech/",
  "username": "apifytech",
  "name": "Apify",
  "followers": "15.2K",
  "following": "200",
  "postsCount": "350",
  "scrapedAt": "2026-08-13T10:00:00.000Z",
  "recentPosts": [
    "https://www.instagram.com/p/abcdefg123/",
    "https://www.instagram.com/p/xyz890qw/"
  ]
}
```

#### 🛡️ Best Practices & Anti-Blocking

Instagram has strict anti-bot systems. While this Actor is optimized to avoid blocks:

- **Use Apify Proxies:** We highly recommend running this Actor using **Apify Residential Proxies** for maximum reliability when scraping thousands of profiles.
- **Pacing:** If you are scraping tens of thousands of profiles, consider splitting them into smaller batches to ensure the highest success rate.

# Actor input Schema

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

List of Instagram profile URLs to scrape.

## `directUrls` (type: `array`):

List of direct URLs (e.g., reels, specific pages).

## `maxPosts` (type: `integer`):

Number of recent posts to extract for each profile.

## `resultsType` (type: `string`):

Filter the type of posts to scrape.

## `onlyPostsNewerThan` (type: `string`):

Relative time format (e.g., '1 hour', '2 days').

## `skipPinnedPosts` (type: `boolean`):

If true, pinned posts will not be scraped.

## `addParentData` (type: `boolean`):

If true, adds user metadata to each post.

## Actor input object example

```json
{
  "profiles": [
    "https://www.instagram.com/apifytech/"
  ],
  "maxPosts": 10,
  "resultsType": "posts",
  "skipPinnedPosts": false,
  "addParentData": false
}
```

# Actor output Schema

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

Link to the dataset containing scraped Instagram posts, reels, and profile metadata.

# 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": [
        "https://www.instagram.com/apifytech/"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("prodigious_flourish/instagram-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 = { "profiles": ["https://www.instagram.com/apifytech/"] }

# Run the Actor and wait for it to finish
run = client.actor("prodigious_flourish/instagram-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 '{
  "profiles": [
    "https://www.instagram.com/apifytech/"
  ]
}' |
apify call prodigious_flourish/instagram-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,prodigious_flourish/instagram-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/4VF7RPhsFdikomQDf/builds/Aimd0Jovz7KOJf6W4/openapi.json
