# Instagram Scraper: Fast Bulk Posts, Reels & Profiles (`scrapepilot/instagram-scraper-fast-bulk-posts-reels-profiles`) Actor

Fast bulk Instagram scraper with Google discovery. Extract posts, reels, full carousels, likes, comments, hashtags & creator bios. No login or cookies needed. Affordable Pay-Per-Result ($2/1k, $0.05 start) with automated session bypass. Export to Excel/CSV.

- **URL**: https://apify.com/scrapepilot/instagram-scraper-fast-bulk-posts-reels-profiles.md
- **Developed by:** [Scrape Pilot](https://apify.com/scrapepilot) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 scraped instagram post / profile results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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 Scraper: Fast Bulk Posts, Reels, Profiles & Google Discovery

> **The most powerful, affordable, and complete Instagram Scraper on Apify.** Scrape public Instagram posts, reels, carousels/sidecars, profiles, hashtags, and location places — with **Zero Login** and **No Cookies Required**. Features innovative **Dual-Engine Discovery** (Direct URLs + Google SERP keyword search) with automated login-wall bypass and residential proxy rotation. Structured output in JSON, CSV, and Excel.

***

### 📌 Table of Contents

- [What Is This Actor?](#what-is-this-actor)
- [Why Choose This Instagram Scraper?](#why-choose-this-instagram-scraper)
- [Key Features](#key-features)
- [Dual Discovery Engine](#dual-discovery-engine)
- [Use Cases](#use-cases)
- [Input Parameters](#input-parameters)
- [Output Fields & Data Schema](#output-fields--data-schema)
- [Example Input & Output](#example-input--output)
- [Pricing & Pay-Per-Event (PPE)](#pricing--pay-per-event-ppe)
- [Performance & Scale](#performance--scale)
- [FAQ](#faq)
- [Changelog](#changelog)
- [Legal & Terms of Use](#legal--terms-of-use)

***

### 🔍 What Is This Actor?

**Instagram Scraper: Fast Bulk Posts, Reels, Profiles & Google Discovery** is a cloud data extraction tool designed for marketers, e-commerce brands, data scientists, and agencies.

Unlike conventional scrapers that require your personal Instagram account or throw frequent checkpoint errors, this actor operates **100% session-free**. It handles:

- **Profiles**: Bio, follower counts, following counts, post counts, verification badges, and high-res avatars.
- **Posts & Reels**: Captions, exact likes, comments count, direct video URLs, view counts, and timestamps.
- **Multi-Image Carousels (Sidecars)**: Extracts all child slides with full dimensions, image URLs, and accessibility text.
- **Hashtags & Locations**: Scrapes top posts from tag feeds and geo-locations.
- **Automated Google SERP Discovery**: Find target profiles by keywords (e.g. `fitness coach miami`) automatically without manually hunting for usernames!

***

### 🚀 Why Choose This Instagram Scraper?

| Feature | This Actor | Other Store Actors | Manual Copy-Paste | Official Instagram API |
|---|---|---|---|---|
| **Price per 1,000 Posts** | **$2.00 ($0.05 Start)** | $5.00 – $15.00 | Free (Weeks of work) | Enterprise Tier Only |
| **Pay-Per-Event (PPE)** | ✅ Pay only for scraped items | ❌ Pay for run time/failures | ❌ | ❌ Monthly commitments |
| **No Login / No Account Risk** | ✅ 100% Session-Free | ⚠️ Needs cookies (banned) | ✅ | ❌ Complex OAuth & vetting |
| **Google SERP Discovery** | ✅ Built-in Auto-Search | ❌ Direct URLs only | ❌ | ❌ Not available |
| **Full Carousel/Sidecar Slides** | ✅ Extracts all child images | ⚠️ Usually only 1st slide | ❌ | ⚠️ Restricted |
| **Anti-Login-Wall Bypass** | ✅ Automated Session Rotation | ⚠️ Often halts on login wall | ❌ Captcha blocks | ❌ Strict rate limits |
| **Data Enrichment** | ✅ Embeds parent creator stats | ❌ Post-only | ❌ | ⚠️ Fragmented |
| **Export Formats** | ✅ JSON, CSV, Excel, XML | ⚠️ Basic JSON | ❌ Manual typing | ⚠️ Developer-only |

> **The Cost Advantage:** Other scrapers bill you for compute minutes while getting stuck on login walls. With our **Pay-Per-Event model**, you only pay **$0.002 per successfully extracted item**, backed by intelligent cloud anti-bot mitigation and Apify residential proxies.

***

### ✨ Key Features

- **Dual Ingestion Architecture**: Provide direct URLs, use Google SERP keyword discovery, or combine both simultaneously.
- **Complete Sidecar/Carousel Extraction**: Captures all slide items inside multi-photo posts with dimensions and image links.
- **Granular Engagement Metrics**: Scrapes `likesCount`, `commentsCount`, `videoViewCount`, `videoPlayCount`, and timestamps.
- **Smart Mention & Hashtag Parsing**: Automatically extracts `@mentions` and `#hashtags` into clean arrays.
- **Creator Profile Scraping**: Retrieve follower counts, following, bio, external links, and verification status.
- **Automated Session Resilience**: Detects Instagram login checkpoints and automatically rotates sessions in the background.
- **Parent Profile Enrichment**: Attach author channel information directly to each post record via `addParentData`.

***

### 🌐 Dual Discovery Engine

Choose how you want to discover and scrape content:

1. **Direct URLs Mode (`direct_urls`)**:\
   Input exact profile URLs (`https://www.instagram.com/username/`), post links (`/p/CODE/`), reels (`/reel/CODE/`), hashtag pages (`#travel`), or location tags.
2. **Google SERP Discovery Mode (`google_serp`)**:\
   Enter any search query (e.g. `"real estate agent Austin"` or `"vegan bakery London"`). The actor queries Google SERP in real-time, extracts verified Instagram creator profiles matching your niche, and scrapes their data immediately!
3. **Combined Mode (`both`)**:\
   Scrape your defined list of competitors while discovering new creator profiles via keywords in the exact same run.

***

### 🎯 Use Cases

#### 🏢 Influencer Discovery & Talent Sourcing

- Use Google SERP mode to discover local influencers in any city or industry niche.
- Audit historical post engagement, follower ratios, and sponsorship history (`paidPartnership`).
- Extract contact bios, category badges, and external links for outreach.

#### 📊 Competitive Intelligence & Trend Tracking

- Monitor competitor content strategies, posting cadence, and breakout viral posts.
- Track trending hashtags and identify top-performing audio hooks across your industry.
- Benchmark engagement metrics across multiple competing brands.

#### 🤖 AI, Machine Learning & Computer Vision Datasets

- Scrape thousands of high-resolution images and carousel albums with accessibility captions (`alt`) for vision models.
- Gather captions and user comment discussions for NLP sentiment analysis and viral hook generation.
- Build training datasets for social media trend prediction algorithms.

#### 🛍️ E-Commerce & UGC Campaign Monitoring

- Aggregate User-Generated Content (UGC) from campaign hashtags.
- Monitor customer product reviews and influencer mentions in real time.
- Identify trending aesthetic styles and creative formats for ad creative inspiration.

***

### ⚙️ Input Parameters

Configure your run via the Apify Console or API:

```json
{
  "mode": "both",
  "directUrls": [
    "https://www.instagram.com/humansofny/",
    "#photography"
  ],
  "keyword": "new york street photographers",
  "resultsType": "posts",
  "resultsLimit": 100,
  "postsPerProfile": 12,
  "addParentData": true,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
```

| Parameter | Type | Default | Description |
|---|---|---|---|
| `mode` | string | `direct_urls` | Ingestion mode: `direct_urls`, `google_serp`, or `both`. |
| `directUrls` | array / text | `[]` | List of Instagram URLs, handles (`@user`), hashtags (`#tag`), or location paths. |
| `keyword` | string | `""` | Search keyword for Google SERP profile discovery (e.g. `dental clinic miami`). |
| `resultsType` | string | `posts` | Type of data: `posts` (scrapes feed posts/reels) or `details` (scrapes profile bios/followers). |
| `resultsLimit` | integer | `100` | Maximum total records to scrape across the run. |
| `postsPerProfile` | integer | `12` | Maximum posts to scrape per creator profile or hashtag. |
| `addParentData` | boolean | `false` | When `true`, embeds author profile details inside each post item. |
| `proxyConfiguration` | object | Residential | Apify proxy configuration (Residential proxy recommended). |

***

### 📋 Output Fields & Data Schema

#### Post & Reel Output Schema

| Field Name | Type | Description | Example |
|---|---|---|---|
| `id` | string | Unique Instagram media ID | `"3742534382104984578"` |
| `type` | string | Content type (`Image`, `Video`, or `Sidecar`) | `"Sidecar"` |
| `shortCode` | string | Unique Instagram post shortcode | `"DPwJzEVDbwC"` |
| `caption` | string | Full post caption text | `"A few years ago I received a DM..."` |
| `hashtags` | array | Extracted hashtags from caption | `["newyork", "community"]` |
| `mentions` | array | Extracted `@mentions` | `["zohrankmamdani"]` |
| `url` | string | Direct web URL to the post | `"https://www.instagram.com/p/DPwJzEVDbwC/"` |
| `likesCount` | integer | Total likes on the post | `257484` |
| `commentsCount` | integer | Total comments count | `3982` |
| `timestamp` | string | ISO 8601 creation timestamp | `"2025-10-13T14:14:46+00:00"` |
| `displayUrl` | string | High-resolution cover/display image URL | `"https://scontent.cdninstagram.com/..."` |
| `images` | array | All image URLs in the post/carousel | `["https://...", "https://..."]` |
| `childPosts` | array | Detailed list of carousel slide objects | *Array of individual slide objects* |
| `alt` | string | Accessibility description | `"Photo by Humans of New York..."` |
| `ownerUsername` | string | Author username | `"humansofny"` |
| `ownerFullName` | string | Author display name | `"Humans of New York"` |
| `ownerId` | string | Author unique ID | `"17841401154973790"` |
| `paidPartnership`| boolean| Whether the post is sponsored | `false` |
| `productType` | string | Instagram product category | `"carousel_container"` or `"feed"` |

#### Child Slide Schema (Inside `childPosts` for Carousels)

```json
{
  "id": "3742534367894668392",
  "type": "Image",
  "shortCode": "DPwJy3GDYRo",
  "url": "https://www.instagram.com/p/DPwJy3GDYRo/",
  "dimensionsWidth": 1440,
  "dimensionsHeight": 960,
  "displayUrl": "https://scontent.cdninstagram.com/...",
  "alt": "Photo by Humans of New York on October 13, 2025.",
  "ownerUsername": "humansofny"
}
```

***

### 📦 Example Input & Output

#### Example Input

```json
{
  "directUrls": ["humansofny"],
  "resultsLimit": 1,
  "resultsType": "posts"
}
```

#### Example Output

```json
[
  {
    "id": "3741054891297971261",
    "type": "Image",
    "shortCode": "DPq5ZpJDZw9",
    "caption": "Dear New York closes on October 19th. It’s been the honor and joy of my life to see this take flight...",
    "hashtags": [],
    "mentions": [],
    "url": "https://www.instagram.com/p/DPq5ZpJDZw9/",
    "commentsCount": 970,
    "dimensionsHeight": 1920,
    "dimensionsWidth": 1080,
    "displayUrl": "https://scontent.cdninstagram.com/v/t51.71878-15/562558918_1458293865288733_n.jpg",
    "images": [
      "https://scontent.cdninstagram.com/v/t51.71878-15/562558918_1458293865288733_n.jpg"
    ],
    "alt": "Photo by Humans of New York.",
    "likesCount": 107750,
    "timestamp": "2025-10-11T13:27:07+00:00",
    "childPosts": [],
    "ownerFullName": "Humans of New York",
    "ownerUsername": "humansofny",
    "ownerId": "17841401154973790",
    "paidPartnership": false,
    "isCommentsDisabled": false,
    "inputUrl": "https://www.instagram.com/humansofny/",
    "productType": "feed",
    "ppe_charged": true,
    "ppe_event_name": "scraped-result"
  }
]
```

***

### 💰 Pricing & Pay-Per-Event (PPE)

This actor uses transparent **Pay-Per-Event (PPE)** pricing to protect your budget:

| Fee Component | Price | Description |
|---|---|---|
| **Actor Start Fee** | **$0.05** | Flat initiation charge per run |
| **Per Scraped Result** | **$0.002** ($2.00 / 1,000 items) | Charged ONLY for valid items pushed to dataset |

#### PPE Safety Guarantees:

- 🛡️ **Pay for Success Only**: If a profile is private or not found, you are **not** charged result fees.
- 🛑 **Automatic Spending Limit**: Set `ACTOR_MAX_TOTAL_CHARGE_USD` in your Apify run options. The actor stops scraping immediately when your budget threshold is reached.
- 📉 **Unbeatable Economics**: Traditional actors charge $10+ per 1k items or bill for idle proxy time. At **$2.00 per 1,000 items**, this actor is one of the most affordable on the store.

> 🎁 **Try Before You Buy**: Click **Try for free** at the top right to run a test crawl with Apify's free credit tier.

***

### ⚡ Performance & Scale

| Task | Target Volume | Estimated Time |
|---|---|---|
| Single Profile Quick Scan | 12 posts | ~10–15 seconds |
| Medium Creator Audit | 50 posts | ~45–60 seconds |
| Bulk Catalog Run | 1,000 posts | ~10–15 minutes |
| Mass Discovery Run | 10,000+ items | Scheduled multi-batch runs |

- **Real-Time Data Delivery**: Records stream into your Apify Dataset as they are scraped.
- **Fail-Safe Processing**: One broken URL or private profile will never interrupt the remainder of your batch.
- **Residential IP Rotation**: Intelligent session refreshing prevents temporary IP rate limits.

***

### ❓ FAQ

**Q: Do I need to provide an Instagram username or password?**\
A: No. The actor is 100% session-free and requires no account logins or cookies.

**Q: Does it scrape private Instagram profiles?**\
A: No. In compliance with data privacy standards, only publicly accessible Instagram content can be scraped.

**Q: How does the Google SERP Discovery mode work?**\
A: When you enter a keyword like `"coffee shops Austin"`, the actor queries Google with Instagram-targeted search operators, extracts relevant public Instagram profile links, and scrapes their data automatically.

**Q: Can I scrape multi-image carousels completely?**\
A: Yes! Unlike basic scrapers that only grab the first photo, this actor unpacks every slide into the `images` array and `childPosts` list with individual dimensions and URLs.

**Q: How do I export my data to Excel or Google Sheets?**\
A: In your Apify run console, go to the **Storage** tab and click **Export**. You can download your data in Excel, CSV, JSON, or XML format with a single click.

***

### 📜 Changelog

#### v1.0.0

- ✅ Public posts, reels, and carousel slide extraction
- ✅ Google SERP discovery integration for automated keyword prospecting
- ✅ Full carousel/sidecar slide unpacking with individual dimensions
- ✅ Pay-Per-Event (PPE) integration ($0.05 start + $2.00 per 1,000 items)
- ✅ Automated login-wall detection and residential proxy session rotation
- ✅ Optional parent profile data enrichment (`addParentData`)

***

### ⚖️ Legal & Terms of Use

This actor extracts only publicly accessible data from Instagram in compliance with fair-use and web search indexing standards.

- Use this tool responsibly for market research, academic analysis, archiving, and competitive benchmarking.
- Respect intellectual property rights before reusing or republishing extracted images or videos.
- Do not use this tool to scrape personal private data or facilitate unauthorized contact.
- The author bears no liability for how users utilize the extracted public data.

***

### 🤝 Support & Feedback

- 🐞 **Report a bug?** Submit an issue via the **Issues** tab on Apify.
- 💡 **Feature request?** Start a discussion on the Apify Actor page.
- ⭐ **Finding this helpful?** Please leave a 5-star review! It helps us maintain and improve this actor.

***

<p align="center">
  <strong>Built with ❤️ for High-Performance Social Media Data Extraction</strong><br/>
  <em>Fast · Session-Free · Pay-Per-Result · Google SERP Discovery Ready</em><br/><br/>
  <strong>💰 $0.05 Start · $2.00 per 1,000 Scraped Posts</strong>
</p>

# Actor input Schema

## `mode` (type: `string`):

Select Direct URL scraping, Keyword Discovery via Google SERP, or BOTH to run URLs and Keywords together.

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

List of profile URLs, post URLs (/p/), reel URLs (/reel/), or @usernames to scrape directly.

## `keyword` (type: `string`):

Keyword to discover Instagram profiles on Google. Example: 'real estate dubai' or 'fitness coach miami'. 'site:instagram.com' is added automatically if omitted.

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

Choose what kind of data to extract from the provided targets.

## `resultsLimit` (type: `integer`):

Maximum total items to output across all inputs.

## `postsPerProfile` (type: `integer`):

Maximum number of recent posts to extract per profile.

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

If enabled, attaches full parent profile/author information to child post records.

## `proxyConfiguration` (type: `object`):

Apify Proxy settings. Residential proxy is used automatically for Instagram scraping and Google SERP proxy for Google discovery.

## Actor input object example

```json
{
  "mode": "direct_urls",
  "directUrls": [
    "https://www.instagram.com/humansofny/"
  ],
  "keyword": "",
  "resultsType": "posts",
  "resultsLimit": 100,
  "postsPerProfile": 12,
  "addParentData": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

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

Collection of extracted Instagram items including media, carousels, child posts, metrics, captions, and comments.

# 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 = {
    "resultsLimit": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapepilot/instagram-scraper-fast-bulk-posts-reels-profiles").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 = { "resultsLimit": 100 }

# Run the Actor and wait for it to finish
run = client.actor("scrapepilot/instagram-scraper-fast-bulk-posts-reels-profiles").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 '{
  "resultsLimit": 100
}' |
apify call scrapepilot/instagram-scraper-fast-bulk-posts-reels-profiles --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapepilot/instagram-scraper-fast-bulk-posts-reels-profiles"
        }
    }
}
```

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/wxeM8UIKhMzxTGkFw/builds/ojcLcyLlQ8l4P04S8/openapi.json
