# Instagram Posts, Comments & Profiles Scraper (`parseforge/instagram-scraper`) Actor

Collect Instagram posts, comments, hashtag content, and profile data in minutes. Perfect for competitor tracking, creator research, engagement analysis, trend monitoring, and exporting structured Instagram data for reports, dashboards, and recurring social media workflows.

- **URL**: https://apify.com/parseforge/instagram-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Social media, Developer tools, Automation
- **Stats:** 49 total users, 8 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.30 / 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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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.

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

![ParseForge Banner](https://github.com/ParseForge/apify-assets/blob/ad35ccc13ddd068b9d6cba33f323962e39aed5b2/banner.jpg?raw=true)

## 📸 Instagram Posts, Comments & Profiles Scraper

Collect Instagram posts, comments, hashtag content, and profile data without logging in. Pull captions, likes, follower counts, comment text, media info, and more across any public account, post, or hashtag. Useful for social media managers monitoring competitors, researchers studying engagement trends, and growth teams building outreach lists.

Choose from four modes: profile posts, post comments, hashtag posts, or profile-only. Export everything to JSON, CSV, or Excel.

### ✨ What Does It Do

- 📝 **Posts** - Captions, likes, comments, views, media type, timestamp, and post URL from any public profile
- 💬 **Comments** - Comment text, username, reply count, comment position, and timestamp from any post URL
- \#️⃣ **Hashtags** - Posts matching any hashtag with full engagement data and media info
- 👤 **Profiles** - Bio, follower count, following, post count, verification status, and business signals
- 📅 **Date Filtering** - Narrow post results to a specific date range or relative window like 30 days
- 🎬 **Media Filtering** - Filter by image, video, reel, or all media types
- 📦 **Bulk Collection** - Process multiple profiles, posts, or hashtags in a single run

### 🗃️ What Instagram Data Can You Extract?

| | | |
|---|---|---|
| 📝 Caption | 👤 Username | 🔗 Post URL |
| ❤️ Like count | 💬 Comment count | 👁️ View count |
| 🎬 Media type | 📐 Dimensions | 🕐 Timestamp |
| 🔑 Shortcode | 🆔 Post ID | 🖼️ Thumbnail URL |
| 🏷️ Hashtags | 📍 Location | 👥 Tagged users |
| 🎵 Music info | 🤝 Collaborators | 📢 Branded content flag |
| 💬 Comment text | 🔢 Comment position | 🔁 Reply count |
| 🆔 Comment ID | ✅ Verified flag | 📅 Comment timestamp |
| 🖼️ Profile picture | 📖 Biography | 👥 Follower count |
| 🔁 Following count | 📊 Post count | 🏢 Business account |
| 🌐 External URL | 🏷️ Business category | 🔒 Private flag |
| 📅 Scraped date | | |

### 🎬 Demo Video

Demo video coming soon.

### 📊 Output

Output structure varies by mode. Download as JSON, CSV, or Excel.

**Posts mode output example:**

```json
{
  "shortcode": "DPwJzEVDbwC",
  "postUrl": "https://www.instagram.com/p/DPwJzEVDbwC/",
  "caption": "Golden hour over the canyon. Nature never disappoints.",
  "username": "natgeo",
  "likeCount": 42891,
  "commentCount": 1204,
  "viewCount": 980000,
  "mediaType": "video",
  "timestamp": "2025-10-13T14:40:07.000Z",
  "scrapedAt": "2026-03-16T23:32:52.246Z"
}
```

**Comments mode output example:**

```json
{
  "text": "That's my mayor ❤️",
  "username": "wonderpulp",
  "ownerId": "48291034",
  "isVerified": false,
  "likeCount": 0,
  "replyCount": 0,
  "postUrl": "https://www.instagram.com/p/DPwJzEVDbwC/",
  "commentId": "18118166290715839",
  "position": 4,
  "timestamp": "2025-10-15T23:47:46.000Z",
  "scrapedAt": "2026-03-16T23:32:52.246Z"
}
```

### 💎 Why Choose the Instagram Scraper

| Feature | Our Tool |
|---|---|
| No login or Instagram account required | ✔️ |
| Four modes in one actor: posts, comments, hashtags, profiles | ✔️ |
| Date filtering and media type filtering | ✔️ |
| Multiple profiles or posts processed in one run | ✔️ |
| Comment extraction from public posts | ✔️ |
| Hashtag post collection | ✔️ |
| Business profile signals included | ✔️ |
| Export to JSON, CSV, or Excel | ✔️ |

### 📋 How to Use

No technical skills required:

1. **Sign Up**: [Create a free account with $5 credit](https://console.apify.com/sign-up?fpr=vmoqkp)
2. **Open the Actor**: Search for "Instagram Scraper" in the Apify Store
3. **Choose a Mode**: Pick posts, comments, hashtags, or profile
4. **Add Your Input**: Enter usernames, profile URLs, or post URLs
5. **Run**: Click Start and let it collect
6. **Export**: Download as CSV, Excel, or JSON

### 🎯 Business Use Cases

**Social Media Teams**

- Track competitor publishing frequency and engagement across accounts
- Export post datasets for monthly reporting and creative benchmarking
- Monitor branded content and reel usage across competitor profiles

**Research and Analytics**

- Collect hashtag datasets for trend analysis and audience discovery
- Extract comment datasets for sentiment analysis and qualitative research
- Build profile lists with follower counts and bio data for outreach

**Growth Teams**

- Identify top-performing content formats by comparing likes and views
- Monitor influencer profiles and post activity at scale
- Schedule recurring runs to track follower and engagement changes over time

### ❓ FAQ

**Do I need an Instagram account?**
No. All modes work on public content without any login or credentials.

**How many comments can I get per post?**
Comments mode returns the initial publicly visible batch per post, typically between 10 and 20 comments. Results vary by post.

**How accurate is the data?**
Data is collected live during each run. Rerun whenever you need fresh numbers.

**Can I process multiple profiles at once?**
Yes. Add as many usernames or URLs as needed. They run in parallel.

**Can I schedule regular runs?**
Yes. Use Apify's built-in scheduler to collect recurring Instagram data automatically.

**Are there any limits?**
Free users can collect up to 100 items per run. Paid users can collect up to 1,000,000 per run.

### 🔗 Integrate Instagram Scraper with any app

- [Make](https://docs.apify.com/platform/integrations/make) - Automate workflows without code
- [Zapier](https://docs.apify.com/platform/integrations/zapier) - Connect 5000+ apps
- [Slack](https://docs.apify.com/platform/integrations/slack) - Get run notifications
- [Airbyte](https://docs.apify.com/platform/integrations/airbyte) - Data pipelines
- [Google Drive](https://docs.apify.com/platform/integrations/drive) - Export to spreadsheets
- [GitHub](https://docs.apify.com/platform/integrations/github) - Version control integration

You can also use webhooks to trigger downstream actions the moment a run completes.

### How to enable MCP enrichment

Inside the input form, scroll to the **✨ Enrichment** section and follow these steps:

1. Toggle on the `Enrich Output` checkbox.
2. Pick a connector in the `Enrichment Connector` dropdown. Two options are supported and the scraper auto-detects which one you picked:
   - **Trends MCP** (recommended) — adds momentum signals to every post regardless of caption format. Paste `https://api.trendsmcp.ai/mcp` when you click **+**, then sign in with your Trends MCP account.
   - **Apollo.io** — works only on business accounts that map to a real company. Paste `https://mcp.apollo.io/mcp`, then sign in with your Apollo account.
3. Run the actor. Every scraped item gets an extra `enrichment` object:
   - With Trends MCP: a `top_trends_snapshot` of 60 currently trending keywords sourced from Google Trends + TikTok Trending Hashtags + Reddit Hot Posts at the moment the run started, plus `matched_trending_topics` showing which of those trends appear in the post caption or username, plus per-creator brand momentum (`creator_brand_trend_state`, `creator_brand_growth_1m`, `creator_brand_growth_12m`, `creator_brand_avg_volume_3m`).
   - With Apollo: company name, website, LinkedIn URL, industry, employee count, founded year, country, short description, funding total, last funding round, top technologies.

The Trends snapshot is fetched once per run and reused across every post. Per-creator momentum is cached per username, so multiple posts from the same account cost only one lookup. Pick Trends MCP for hashtag-free analytics that work on any post; pick Apollo for B2B brand lookups.

### 🆘 Need Help?

- Check the FAQ section above for common questions.
- Visit the [Apify support page](https://docs.apify.com) for platform help and tutorials.

### 📞 Contact

Contact us to request a new scraper, propose a custom data project, or report a technical issue at https://tally.so/r/BzdKgA

> **Disclaimer:** This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Instagram or Meta. All trademarks mentioned are the property of their respective owners.

***

### ✨ Why choose this Actor

| | Capability |
|---|---|
| 🎯 | **Built for the job.** Scoped specifically to this data source so you skip the parser engineering entirely. |
| 🔖 | **Structured output.** Clean, typed fields ready for analysis, dashboards, or downstream pipelines. |
| ⚡ | **Fast.** Optimized request patterns return results in seconds, not minutes. |
| 🔁 | **Always fresh.** Every run pulls live data, so the dataset reflects the source as of run time. |
| 🌐 | **No infra to manage.** Apify handles proxies, retries, scaling, scheduling, and storage. |
| 🛡️ | **Reliable.** Battle-tested across many runs and edge cases, with graceful error handling. |
| 🚫 | **No code required.** Configure in the UI, run from CLI, schedule via cron, or call from any language with the Apify SDK. |

> 📊 Production-grade structured data without the engineering overhead of building and maintaining your own scraper.

***

### 📈 How it compares to alternatives

| Approach | Cost | Coverage | Refresh | Filters | Setup |
|---|---|---|---|---|---|
| **⭐ Instagram Posts, Comments & Profiles Scraper** *(this Actor)* | $5 free credit, then pay-per-use | Full source coverage | **Live per run** | Source-native filters supported | ⚡ 2 min |
| Build your own scraper | Engineering hours | Full once built | Whenever you maintain it | Custom code | 🐢 Days to weeks |
| Paid managed APIs | $$$ monthly | Vendor-defined | Live | Vendor-defined | ⏳ Hours |
| Third-party data dumps | Varies | Subset, often stale | Periodic | None | 🕒 Variable |

Pick this Actor when you want broad coverage, server-side filtering, and no pipeline maintenance.

***

### 🚀 How to use

1. 📝 **Sign up.** [Create a free account with $5 credit](https://console.apify.com/sign-up?fpr=vmoqkp) (takes 2 minutes).
2. 🌐 **Open the Actor.** Go to the Instagram Posts, Comments & Profiles Scraper page on the Apify Store.
3. 🎯 **Set input.** Configure the input fields in the form (or paste a JSON), then set `maxItems`.
4. 🚀 **Run it.** Click **Start** and let the Actor collect your data.
5. 📥 **Download.** Grab your results in the **Dataset** tab as CSV, Excel, JSON, or XML.

> ⏱️ Total time from signup to downloaded dataset: **3-5 minutes.** No coding required.

***

### 💼 Business use cases

<table>
<tr>
<td width="50%" valign="top">

#### 📊 Data & Analytics

- Build trend reports and dashboards from live source data
- Feed BI tools, warehouses, and ML pipelines with structured records
- Run periodic snapshots to track changes over time
- Compare segments, regions, or categories with consistent fields

</td>
<td width="50%" valign="top">

#### 🏢 Operations & Strategy

- Monitor competitor moves, pricing, and inventory shifts
- Build internal directories and lookup tools backed by current data
- Power workflows that depend on fresh source records
- Cut manual data-gathering time from hours to minutes

</td>
</tr>
<tr>
<td width="50%" valign="top">

#### 🎯 Marketing & Growth

- Identify market opportunities and trending topics
- Research target audiences and customer personas at scale
- Power lead-generation pipelines with verified records
- Track sentiment, reviews, or social signals over time

</td>
<td width="50%" valign="top">

#### 🛠️ Engineering & Product

- Prototype features that need real-world data without owning a crawler
- Replace fragile in-house scrapers with a managed Actor
- Wire datasets into your apps via the Apify API or webhooks
- Skip the proxy, retry, and parsing maintenance entirely

</td>
</tr>
</table>

***

### 🌟 Beyond business use cases

Data like this powers more than commercial workflows. The same structured records support research, education, civic projects, and personal initiatives.

<table>
<tr>
<td width="50%">

#### 🎓 Research and academia

- Empirical datasets for papers, thesis work, and coursework
- Longitudinal studies tracking changes across snapshots
- Reproducible research with cited, versioned data pulls
- Classroom exercises on data analysis and ethical scraping

</td>
<td width="50%">

#### 🎨 Personal and creative

- Side projects, portfolio demos, and indie app launches
- Data visualizations, dashboards, and infographics
- Content research for bloggers, YouTubers, and podcasters
- Hobbyist collections and personal trackers

</td>
</tr>
<tr>
<td width="50%">

#### 🤝 Non-profit and civic

- Transparency reporting and accountability projects
- Advocacy campaigns backed by public-interest data
- Community-run databases for local issues
- Investigative journalism on public records

</td>
<td width="50%">

#### 🧪 Experimentation

- Prototype AI and machine-learning pipelines with real data
- Validate product-market hypotheses before engineering spend
- Train small domain-specific models on niche corpora
- Test dashboard concepts with live input

</td>
</tr>
</table>

***

### 🤖 Ask an AI assistant about this scraper

Open a ready-to-send prompt about this ParseForge actor in the AI of your choice:

- 💬 [**ChatGPT**](https://chat.openai.com/?q=How%20do%20I%20use%20the%20Instagram%20Posts%2C%20Comments%20%26%20Profiles%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🧠 [**Claude**](https://claude.ai/new?q=How%20do%20I%20use%20the%20Instagram%20Posts%2C%20Comments%20%26%20Profiles%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🔍 [**Perplexity**](https://perplexity.ai/search?q=How%20do%20I%20use%20the%20Instagram%20Posts%2C%20Comments%20%26%20Profiles%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🅒 [**Copilot**](https://copilot.microsoft.com/?q=How%20do%20I%20use%20the%20Instagram%20Posts%2C%20Comments%20%26%20Profiles%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)

***

### 🔌 Integrate with any app

Instagram Posts, Comments & Profiles Scraper connects to any cloud service via [Apify integrations](https://apify.com/integrations):

- [**Make**](https://docs.apify.com/platform/integrations/make) - Automate multi-step workflows
- [**Zapier**](https://docs.apify.com/platform/integrations/zapier) - Connect with 5,000+ apps
- [**Slack**](https://docs.apify.com/platform/integrations/slack) - Get run notifications in your channels
- [**Airbyte**](https://docs.apify.com/platform/integrations/airbyte) - Pipe results into your warehouse
- [**GitHub**](https://docs.apify.com/platform/integrations/github) - Trigger runs from commits and releases
- [**Google Drive**](https://docs.apify.com/platform/integrations/drive) - Export datasets straight to Sheets

You can also use webhooks to trigger downstream actions when a run finishes. Push fresh data into your product backend, or alert your team in Slack.

***

### 🔗 Recommended Actors

- [**🔍 Google Search Scraper**](https://apify.com/parseforge/google-search-scraper) - Multi-engine SERP results with country and language targeting
- [**🗺️ Nominatim OSM Scraper**](https://apify.com/parseforge/nominatim-osm-scraper) - Geocode addresses via OpenStreetMap
- [**📊 Indexmundi Scraper**](https://apify.com/parseforge/indexmundi-scraper) - Global demographic and economic indicators
- [**📰 RAG Web Browser**](https://apify.com/parseforge/rag-web-browser) - Crawl and extract clean text from any URL for AI retrieval
- [**🌐 Website Content Crawler**](https://apify.com/parseforge/website-content-crawler) - Crawl entire sites and export structured content

> 💡 **Pro Tip:** browse the complete [ParseForge collection](https://apify.com/parseforge) for more reference-data scrapers.

# Actor input Schema

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

What to scrape:

- **posts** - Collect posts from one or more profiles
- **comments** - Collect comments from post URLs
- **hashtags** - Collect posts matching a hashtag
- **profile** - Collect profile metadata only

## `startUrls` (type: `array`):

Instagram usernames or URLs. For posts and profile mode use profile URLs or @usernames. For comments mode use post URLs (e.g. https://instagram.com/p/ABC123). For hashtags mode use the hashtags field below.

## `maxItems` (type: `integer`):

Free users: Limited to 100. Paid users: Optional, max 1,000,000.

## `maxItemsPerSource` (type: `integer`):

Maximum items to collect per profile, post, or hashtag. Useful when scraping multiple sources and you want a per-source cap. Optional.

## `hashtags` (type: `array`):

Hashtags to collect posts from. Enter without the # symbol. Example: travel, food, photography.

## `mediaTypeFilter` (type: `string`):

Filter posts by media type. Applies to posts and hashtags modes.

## `dateFilter` (type: `string`):

Only collect posts from this date onward. Accepts YYYY-MM-DD or relative formats like 30 days, 3 months, 1 year.

## `enrichOutput` (type: `boolean`):

Toggle on to add a global top-trends snapshot + per-creator brand momentum (Trends MCP — works on every post regardless of caption format) OR company profile (Apollo — business accounts only). Auto-detects which connector you picked. Snapshot fetched once per run; momentum cached per username.

## `enrichConnector` (type: `string`):

Pick Trends MCP (recommended — adds hashtag momentum to every post) or Apollo (business accounts only). Click '+' to authorize.

## `mcpProxyUrlOverride` (type: `string`):

Diagnostic only.

## `mcpTokenOverride` (type: `string`):

Diagnostic only.

## Actor input object example

```json
{
  "mode": "posts",
  "startUrls": [
    "https://www.instagram.com/nasa/",
    "https://www.instagram.com/natgeo/",
    "https://www.instagram.com/apple/"
  ],
  "maxItems": 1000,
  "mediaTypeFilter": "all",
  "enrichOutput": false
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# 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 = {
    "mode": "posts",
    "startUrls": [
        "https://www.instagram.com/nasa/",
        "https://www.instagram.com/natgeo/",
        "https://www.instagram.com/apple/"
    ],
    "maxItems": 1000,
    "mediaTypeFilter": "all"
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/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 = {
    "mode": "posts",
    "startUrls": [
        "https://www.instagram.com/nasa/",
        "https://www.instagram.com/natgeo/",
        "https://www.instagram.com/apple/",
    ],
    "maxItems": 1000,
    "mediaTypeFilter": "all",
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/instagram-scraper").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 '{
  "mode": "posts",
  "startUrls": [
    "https://www.instagram.com/nasa/",
    "https://www.instagram.com/natgeo/",
    "https://www.instagram.com/apple/"
  ],
  "maxItems": 1000,
  "mediaTypeFilter": "all"
}' |
apify call parseforge/instagram-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/ZCZsPYS80C1T1ZX2W/builds/mbBnNpU71PKcfHE0l/openapi.json
