# Instagram (IG) Scraper (`scrapingmonkey/instagram-scraper`) Actor

Extract public Instagram profiles, posts, Reels, Highlights, popular keyword pages, Explore sections, related accounts and locations.

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

## Pricing

from $2.60 / 1,000 instagram 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

### 🔗 Instagram (IG) Scraper

- 💰 **From $2.60 per 1,000 results**
- ⚡ **Collect public Instagram profiles, posts, Reels, Highlights, Explore, similar accounts, and locations**
- 📋 **Use one input or a whole list — no coding and no manual copying**
- 📤 **Download CSV, Excel, or JSON, or run it automatically with Apify**

<p align="left">
  <a href="https://console.apify.com/actors/VrMJmfVzoRobe71S9?addFromActorId=VrMJmfVzoRobe71S9">
    <img src="https://github.com/umbrellaDocumentation/Tets/blob/main/instagram-profile-scraper-try-free-v2.png?raw=true" alt="Try Instagram (IG) Scraper for free" width="250">
  </a>
</p>

> 💡 **Choose one simple job, paste public Instagram links or names, and get clean data with automatic limits, parallel processing, and proxy handling.**

<hr>

### 🔍 What will you get?

| What you get | Included data |
| --- | --- |
| **👤 Profiles** | ID, username, name, bio, links, profile picture, audience numbers, verification, privacy, and business details |
| **📷 Posts and Reels** | Caption, author, images, videos, carousel children, hashtags, mentions, tagged users, music, location, comments preview, and engagement |
| **✨ Discovery** | Public Highlights and stories, Popular keyword media, Explore sections, and similar accounts |
| **📍 Locations and files** | Place details, address, coordinates, business information, preview media, and optional saved images, videos, or audio |

> ℹ️ Instagram only returns information that is public and available for the supplied input.

### 📦 What does the result look like?

Each result is saved as one row in the Apify dataset. Open the **Storage** tab to preview it, or download the whole dataset.

<img src="https://github.com/umbrellaDocumentation/Tets/blob/main/img/inst_0.png?raw=true" alt="Instagram profile and media data in an Apify dataset" width="100%">

Here is one shortened successful result from a live Reel run. Fields that do not apply are left out so the output stays easy to use:

```json
[
  {
    "recordType": "profile",
    "resultType": "profile",
    "id": "17841445531001821",
    "url": "https://www.instagram.com/openai/",
    "sourceMode": "profile",
    "sourceTarget": "openai",
    "sourceUrl": "https://www.instagram.com/openai/",
    "position": 1,
    "fetchedAt": "2026-08-17T08:50:27.930070Z",
    "availability": "available",
    "status": "ok",
    "checkedAt": "2026-08-17T08:50:27.930096Z",
    "itemsAnalyzed": 0,
    "username": "openai",
    "fullName": "OpenAI",
    "biography": "OpenAI’s mission is to ensure artificial intelligence benefits all of humanity. Proud parent of @chatgpt and @openaidevs",
    "externalUrl": "https://openai.com",
    "bioLinks": [
      {
        "title": "OpenAI",
        "url": "https://openai.com",
        "linkType": "external"
      }
    ],
    "profilePicUrl": "https://scontent.cdninstagram.com/v/t51.82787-19/671824892_18099964658517701_2684073962203767801_n.jpg?stp=dst-jpg_s150x150_tt6&_nc_cat=1&ccb=7-5&_nc_sid=f7ccc5&efg=eyJ2ZW5jb2RlX3RhZyI6InByb2ZpbGVfcGljLnd3dy42MjYuQzMifQ%3D%3D&_nc_ohc=UVBuo1iuGhoQ7kNvwH3_vgY&_nc_oc=AdqIRj3Rzwb2WbhscblifKJo7QLTzJlcLlD67MeC-cfUB8izsh3kksPTPmhUf6I5ijQ&_nc_zt=24&_nc_ht=scontent.cdninstagram.com&_nc_gid=8SMAI6yKm5S00X13sguhqA&_nc_ss=7ba8c&oh=00_AQFiB0U8_0jXaqElOLRcY89Gc7Kv1DgKX5BAA-3qGunqEQ&oe=6A88A563",
    "followersCount": 6495336,
    "followingCount": 8,
    "highlightsCount": 0,
    "isVerified": true,
    "isPrivate": false,
    "threadsBadge": "openai",
    "profile": {
      "id": "17841445531001821",
      "username": "openai",
      "fullName": "OpenAI",
      "biography": "OpenAI’s mission is to ensure artificial intelligence benefits all of humanity. Proud parent of @chatgpt and @openaidevs",
      "externalUrl": "https://openai.com",
      "bioLinks": [
        {
          "title": "OpenAI",
          "url": "https://openai.com",
          "linkType": "external"
        }
      ],
      "profilePicUrl": "https://scontent.cdninstagram.com/v/t51.82787-19/671824892_18099964658517701_2684073962203767801_n.jpg?stp=dst-jpg_s150x150_tt6&_nc_cat=1&ccb=7-5&_nc_sid=f7ccc5&efg=eyJ2ZW5jb2RlX3RhZyI6InByb2ZpbGVfcGljLnd3dy42MjYuQzMifQ%3D%3D&_nc_ohc=UVBuo1iuGhoQ7kNvwH3_vgY&_nc_oc=AdqIRj3Rzwb2WbhscblifKJo7QLTzJlcLlD67MeC-cfUB8izsh3kksPTPmhUf6I5ijQ&_nc_zt=24&_nc_ht=scontent.cdninstagram.com&_nc_gid=8SMAI6yKm5S00X13sguhqA&_nc_ss=7ba8c&oh=00_AQFiB0U8_0jXaqElOLRcY89Gc7Kv1DgKX5BAA-3qGunqEQ&oe=6A88A563",
      "followersCount": 6495336,
      "followingCount": 8,
      "highlightsCount": 0,
      "isVerified": true,
      "isPrivate": false,
      "threadsBadge": "openai"
    }
  }
]
```

> 📤 Download the same data as **CSV, Excel, JSON, XML, or HTML**.

### 🎯 What can you use it for?

| Use case | What it helps you do |
| --- | --- |
| **Research creators** | Compare public profiles, similar accounts, audience size, and content before outreach. |
| **Track content** | Monitor posts, Reels, Highlights, engagement, captions, and media over time. |
| **Find trends and places** | Explore public keyword media, Explore sections, related profiles, and locations. |
| **Enrich your tools** | Feed clean Instagram data into dashboards, databases, spreadsheets, or AI workflows. |

### 🚀 How to use Instagram (IG) Scraper

1. 📝 Sign up. [Create a free account with $5 credit](https://console.apify.com/actors/VrMJmfVzoRobe71S9?addFromActorId=VrMJmfVzoRobe71S9) (takes 2 minutes).
2. 🌐 Open **Instagram (IG) Scraper** on Apify.
3. ✍️ Choose what to collect and paste usernames, keywords, IDs, or public Instagram links.
4. 🚀 Click **Start**.
5. 📥 Open **Dataset** to view or download the results.

<p align="left">
  <a href="https://console.apify.com/actors/VrMJmfVzoRobe71S9?addFromActorId=VrMJmfVzoRobe71S9">
    <img src="https://github.com/umbrellaDocumentation/Tets/blob/main/instagram-profile-scraper-try-free-v2.png?raw=true" alt="Start Instagram (IG) Scraper for free" width="250">
  </a>
</p>

> ⏱️ A small first run usually takes only a few minutes. No coding is required.

### 💳 Simple pricing

You pay for each saved result through one clear billing event. A clear answer such as **not found**, **private**, **invalid input**, or **no matching public results** also counts as one result. A successfully saved media file is one additional result. Temporary Instagram, connection, and proxy errors are not charged. Platform usage is included.

| Apify plan | Price per 1,000 results |
| --- | ---: |
| **FREE** | **$3.80** |
| **BRONZE** | **$3.40** |
| **SILVER** | **$3.00** |
| **GOLD** | **$2.60** |

[Compare current pricing →](https://apify.com/scrapingmonkey/instagram-scraper)

### 🤖 Ask an AI assistant about this scraper

Not sure where to start? Open one of these assistants and ask how to use the Actor:

- 💬 [ChatGPT](https://chat.openai.com/?q=How%20do%20I%20use%20the%20Instagram%20%28IG%29%20Scraper%20by%20ScrapingMonkey%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%20%28IG%29%20Scraper%20by%20ScrapingMonkey%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%20%28IG%29%20Scraper%20by%20ScrapingMonkey%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%20%28IG%29%20Scraper%20by%20ScrapingMonkey%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)

### 🔌 Automating Instagram (IG) Scraper

You can also start runs from your own app or on a schedule:

- 🟢 Node.js. Install the `apify-client` NPM package.
- 🐍 Python. Use the `apify-client` PyPI package.
- 📚 See the [Apify API documentation](https://docs.apify.com/api/v2) for full details.

Use [Apify Schedules](https://docs.apify.com/platform/schedules) to run the Actor every day, week, or month without pressing Start yourself.

### 🔌 Integrate with any app

Send results to the tools you already use:

- [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 structured Instagram data 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 continue your workflow as soon as a run finishes.

### 🧰 Need other Instagram data?

Choose a dedicated Actor when you need a different Instagram data surface:

| Actor | Best for |
| --- | --- |
| 🔗 [Instagram Bio Links Scraper](https://apify.com/scrapingmonkey/instagram-bio-links-scraper) | External links and link-in-bio destinations from Instagram profiles |
| 🏢 [Instagram Business Profile Scraper](https://apify.com/scrapingmonkey/instagram-business-profile-scraper) | Business categories, contact details, addresses, and profile metadata |
| #️⃣ [Instagram Caption Hashtag Extractor](https://apify.com/scrapingmonkey/instagram-caption-hashtag-extractor) | Hashtags extracted from post and reel captions |
| 📣 [Instagram Caption Mentions Extractor](https://apify.com/scrapingmonkey/instagram-caption-mentions-extractor) | Account mentions extracted from post and reel captions |
| 🎠 [Instagram Carousel Scraper](https://apify.com/scrapingmonkey/instagram-carousel-scraper) | Carousel slides, media URLs, captions, and engagement data |
| 📊 [Instagram Engagement Analytics Scraper](https://apify.com/scrapingmonkey/instagram-engagement-analytics-scraper) | Engagement rates and performance metrics for profiles and content |
| 🧭 [Instagram Explore Scraper](https://apify.com/scrapingmonkey/instagram-explore-scraper) | Trending posts and reels discovered through Instagram Explore |
| 👥 [Instagram Followers Count Scraper](https://apify.com/scrapingmonkey/instagram-followers-count-scraper) | Lightweight follower and following count monitoring |
| 🌟 [Instagram Highlights Scraper](https://apify.com/scrapingmonkey/instagram-highlights-scraper) | Highlight collections, stories, media, and metadata |
| 📍 [Instagram Location Scraper](https://apify.com/scrapingmonkey/instagram-location-scraper) | Posts and metadata associated with Instagram locations |
| 🎵 [Instagram Music Scraper](https://apify.com/scrapingmonkey/instagram-music-scraper) | Music and audio metadata used in Instagram reels |
| 🔤 [Instagram Popular Keyword Scraper](https://apify.com/scrapingmonkey/instagram-popular-keyword-scraper) | Popular keywords and topics found in Instagram content |
| 📷 [Instagram Post Scraper](https://apify.com/scrapingmonkey/instagram-post-scraper) | Post captions, media, hashtags, mentions, and engagement metrics |
| 👤 [Instagram Profile Scraper](https://apify.com/scrapingmonkey/instagram-profile-scraper) | Bios, account details, statistics, and public profile metadata |
| 🎞️ [Instagram Reels Scraper](https://apify.com/scrapingmonkey/instagram-reels-scraper) | Reel captions, media, audio, views, and engagement metrics |
| 🧩 [Instagram Similar Accounts Scraper](https://apify.com/scrapingmonkey/instagram-similar-accounts-scraper) | Similar and recommended Instagram accounts |
| 📢 [Instagram Sponsored Posts Scraper](https://apify.com/scrapingmonkey/instagram-sponsored-posts-scraper) | Sponsored and branded posts plus advertiser details |
| 🏷️ [Instagram Tagged Users Scraper](https://apify.com/scrapingmonkey/instagram-tagged-users-scraper) | User tags extracted from Instagram posts and reels |
| 🗂️ [Instagram User Posts Scraper](https://apify.com/scrapingmonkey/instagram-user-posts-scraper) | Posts published by specific Instagram profiles |
| 🆔 [Instagram Username to ID Converter](https://apify.com/scrapingmonkey/instagram-username-to-id-converter) | Instagram usernames converted to numeric user IDs |
| 🔥 [Instagram Viral Posts Finder](https://apify.com/scrapingmonkey/instagram-viral-posts-finder) | High-performing and viral posts discovered by engagement signals |

> 🛠️ Need one flexible tool for several Instagram data types? Try the more [advanced Instagram Scraper](https://apify.com/scrapingmonkey/instagram-scraper).

# Actor input Schema

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

Choose one Instagram data type for this run.

## `targets` (type: `array`):

Paste one item per line. Use usernames or profile links for profiles and user posts; post or Reel links for media; Highlight links or IDs for Highlights; location links or IDs for locations.

## `searchTerms` (type: `array`):

Used only for Popular keyword media. Add one search phrase per line, such as solar eclipse or fitness.

## `maxResults` (type: `integer`):

Maximum posts, stories or recommendations returned for each input. Detail modes return one result per input.

## `maxTotalResults` (type: `integer`):

Optional limit for the entire run. Leave 0 to use only the per-input limit.

## `maxPreviewComments` (type: `integer`):

Keep up to this many comments already shown with each public post or Reel.

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

Optional date such as 2026-01-01. Older posts and stories will be skipped.

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

Turn this on if pinned posts should not appear in the results.

## `mediaTypes` (type: `array`):

Optional: select image, video or carousel. Leave empty to keep every type.

## `minLikes` (type: `integer`):

Keep posts and Reels with at least this many likes.

## `minComments` (type: `integer`):

Keep posts and Reels with at least this many comments.

## `minViews` (type: `integer`):

Keep videos and Reels with at least this many views or plays.

## `relatedDepth` (type: `integer`):

For Similar accounts: 0 or 1 returns direct recommendations; 2 also checks the accounts it discovers.

## `maxRelatedPerLevel` (type: `integer`):

Maximum similar accounts checked from each profile.

## Actor input object example

```json
{
  "mode": "profile",
  "targets": [
    "NASA"
  ],
  "searchTerms": [],
  "maxResults": 20,
  "maxTotalResults": 0,
  "maxPreviewComments": 10,
  "skipPinnedPosts": false,
  "mediaTypes": [],
  "minLikes": 0,
  "minComments": 0,
  "minViews": 0,
  "relatedDepth": 0,
  "maxRelatedPerLevel": 5
}
```

# Actor output Schema

## `dataset` (type: `string`):

Open the collected profiles, posts, Reels, stories, discoveries, and locations.

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

See how many inputs were checked, results saved, and requests that could not be completed.

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapingmonkey/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 = {}

# Run the Actor and wait for it to finish
run = client.actor("scrapingmonkey/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 '{}' |
apify call scrapingmonkey/instagram-scraper --silent --output-dataset

```

## MCP server setup

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