# Instagram Profile, Reels & Keyword Search Scraper | $0.10/1K (`monkey.d.scraping/instagram-profile-scraper`) Actor

Instagram profiles, posts and reels by username or by keyword search, from any public account. Likes, comments, reel views, captions, hashtags, plus engagement rate, averages and best posting times calculated for you. Every comment in the same run. No login. From $0.10 per 1,000 posts.

- **URL**: https://apify.com/monkey.d.scraping/instagram-profile-scraper.md
- **Developed by:** [Monkey D. Scraping](https://apify.com/monkey.d.scraping) (community)
- **Categories:** Social media
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.08 / 1,000 post or reels

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/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 Profile, Reels & Keyword Search Scraper — $0.10/1K with comments and engagement analytics

**The most used Instagram scrapers give you raw data. This one also searches reels by keyword, reads every comment in the same run and calculates engagement rate, averages, best days and hours to post and top posts — for $0.10 per 1,000 posts, up to 17× less. No login.**

Paste usernames, profile links, post links or search terms and get three clean tables: **Posts and reels** (one row per post, with likes, comments, views and engagement rate), **Profiles** (followers plus calculated averages, posting frequency, best posting times, top hashtags and top posts, ready to compare) and, if you want them, **Comments**. Export to JSON, CSV or Excel, or pull it through the API.

**中文用户 / 中文用戶：** [简体中文说明](#chinese-simplified) · [繁體中文說明](#chinese-traditional)（Instagram账号采集、Instagram帖子与Reels数据、互动率分析）

| | |
|---|---|
| 💸 **Price** | **$0.10 per 1,000 posts and reels**, **$1.80 per 1,000 profiles**, comments $0.18 per 1,000 — lower on higher plans. No start fee. |
| 📊 **Analytics included** | Engagement rate, reel views per follower, averages, posts per week, best days and hours to post, top hashtags, top posts and reels. |
| 🤝 **Collaborations and tags** | Co-authors, tagged accounts and mentions of every post, and the most frequent ones per profile. |
| 🔓 **No account needed** | No Instagram login, no cookies. Only public profiles and posts. |
| ⚡ **Fast** | 4 profiles and 200 posts with full details in about 25 seconds in our tests. |

> **Analytics included, not just raw data:** engagement rate, averages, posts per week, best posting times and top posts, calculated in every run and ready to compare across profiles.

### Compared with the most used Instagram scrapers

Checked on 8 November 2026 against the most used Instagram scrapers in the Apify Store (by monthly users). Prices per 1,000 results from each Actor's public pricing, Free plan → highest plans.

| | **This Actor** | Generic Instagram scraper (66,000+ monthly users) | Profile scraper (43,000+ users) | Reel scraper (25,000+ users) | Post scraper (20,000+ users) |
|---|---|---|---|---|---|
| Posts and reels | **$0.10 → $0.08** | $2.70 → $1.50 | — | $2.60 → $1.00 + start fee | $1.70 → $1.00 |
| Profiles | **$1.80 → $1.20** | $2.70 → $1.50 | $2.60 → $1.60 | — | — |
| Engagement rate, averages, best posting times and top posts calculated for you | ✅ | ❌ | ❌ | ❌ | ❌ |

❌ = not offered in their Store documentation on 8 November 2026.

### What can I do with it?

- **Influencer vetting** — check followers, engagement rate, reel views per follower and posting frequency before you pay for a campaign.
- **Competitor benchmarking** — compare several brands in one table: engagement, posts per week, reel views, best posting times.
- **Content strategy** — find which posts and reels perform best, which hashtags a profile uses and when its audience reacts most.
- **Collaborations and sponsorships** — see which brands and creators a profile works with and which posts carry advertising hashtags.
- **Social listening** — add the latest comments of each post, or every comment, to your listening platform or BI tool.
- **Lead generation and research** — export bios, links in bio, categories and follower counts of many profiles at once.

### How to scrape Instagram profiles, posts and reels

1. Paste **usernames** (`natgeo` or `@natgeo`), **profile links** or **links to single posts and reels** — up to 1,000. Or type **search terms** (`fabrizio corona`, `home workout`) to get the reels Instagram lists for each term, from any public account.
2. Choose what to read (posts and reels, posts only, reels only) and how many posts per profile or reels per search term.
3. Click **Start**. Open the **Posts and reels**, **Profiles** and **Comments** tabs in the Output, or export them as JSON, CSV or Excel.

### Input

| Field | What it does | Default |
|---|---|---|
| `targets` | Usernames, profile links or links to single posts and reels (up to 1,000). | two examples |
| `keywords` | Search terms, one per line (up to 100). Each returns the reels Instagram lists for it, from any public account, with the same details and comments as profile reels. | empty |
| `maxReelsPerKeyword` | Reels kept per search term, as Instagram ranks them. `0` = every reel Instagram lists for the term. | `50` |
| `includeRelatedSearches` | Also reads the related searches Instagram shows next to a term when they contain all its words, for more reels per term. | `false` |
| `contentType` | `all` (posts and reels), `posts` (no reels) or `reels`. Reels include view counts. | `all` |
| `maxPostsPerProfile` | Newest posts to read per profile. `0` = all posts Instagram shows to visitors. | `50` |
| `postsSince` | Only posts published on or after this day (UTC), for example `2026-10-01`. The Actor stops early, so you pay less. | empty |
| `includeDetails` | Opens each post for likes, comments, date, caption, tags and collaborations, needed for engagement and best posting times. Turn off for a faster list with reel views only. | `true` |
| `commentsPerPost` | Latest comments of each post, newest first. `0` = no comments. | `0` |
| `allComments` | Every comment Instagram shows on each post. For many posts with thousands of comments, increase the run timeout. | `false` |

```json
{
  "targets": ["natgeo", "@nike", "https://www.instagram.com/p/DDIJAfeyemG/"],
  "contentType": "all",
  "maxPostsPerProfile": 50,
  "postsSince": "2026-10-01",
  "commentsPerPost": 20
}
```

Search reels by keyword, with every comment, in one run:

```json
{
  "keywords": ["fabrizio corona", "falsissimo"],
  "maxReelsPerKeyword": 100,
  "includeRelatedSearches": true,
  "allComments": true
}
```

### Output

#### Posts and reels

One row per post or reel, newest first within each profile.

```json
{
  "postUrl": "https://www.instagram.com/p/DfEAmf9P2yM/",
  "type": "reel",
  "ownerUsername": "examplebrand",
  "caption": "New season, new goals 🏃 #running #ad",
  "createdAt": "2026-11-02T17:04:11Z",
  "likeCount": 26356,
  "commentCount": 215,
  "videoViewCount": 1904259,
  "engagementRate": 0.91,
  "viewsToFollowers": 0.66,
  "hashtags": ["running", "ad"],
  "mentions": [],
  "taggedUsers": ["athlete.example"],
  "collaborators": ["partnerbrand"],
  "possiblySponsored": true,
  "sponsoredSignals": ["#ad"],
  "locationName": null,
  "displayUrl": "https://scontent.cdninstagram.com/...",
  "ownerFollowers": 2900000
}
```

*Illustrative example: account names and numbers are made up.*

| Field | Description |
|---|---|
| `postUrl`, `shortcode`, `postId`, `type` | The post and its type: `photo`, `video`, `carousel` or `reel`. |
| `ownerUsername`, `caption`, `createdAt` | Who published it, the caption and when (ISO 8601, UTC). |
| `likeCount`, `commentCount`, `videoViewCount` | Likes, comments and reel views. |
| `engagementRate` | (likes + comments) / followers × 100. |
| `viewsToFollowers` | Reel views / followers: above 1 means the reel reached beyond the profile's audience. |
| `hashtags`, `mentions`, `taggedUsers`, `collaborators` | Hashtags and mentions in the caption, accounts tagged in the media, co-authors of a collaboration post. |
| `possiblySponsored`, `sponsoredSignals` | Advertising hashtags such as #ad or phrases such as "paid partnership" found in the caption. |
| `locationName`, `carouselMediaCount`, `displayUrl`, `accessibilityCaption` | Location tag, items in a carousel, cover image and Instagram's image description. |
| `countsHidden` | The owner hides like and view counts on this post. |
| `ownerFollowers`, `inputValue`, `scrapedAt` | Followers when the profile was read, your input and when the row was collected. |

#### Profiles

One row per profile, ready to compare side by side.

| Field | Description |
|---|---|
| `username`, `fullName`, `biography`, `externalUrl`, `category` | Profile details. |
| `followers`, `following`, `isVerified`, `isBusiness`, `profilePicUrl` | Audience and badges. |
| `postsAnalyzed`, `reelsAnalyzed` | Posts and reels read in this run; the metrics below are calculated on them. |
| `avgLikes`, `avgComments`, `avgReelViews`, `engagementRate` | Averages and average engagement rate. |
| `postsPerWeek`, `lastPostAt` | Posting frequency and latest post. |
| `bestDaysUtc`, `bestHoursUtc` | Weekdays and hours (UTC) with the highest engagement. |
| `topHashtags`, `topMentions`, `topCollaborators` | Most used hashtags, most mentioned accounts, most frequent co-authors and tagged accounts. |
| `possiblySponsoredPosts` | Posts with advertising signals in the caption. |
| `topPostsByEngagement`, `topReelsByViews` | Links to the best posts and the most viewed reels. |

#### Comments

When requested: comment text, date, likes, author, verified badge, whether the post owner wrote it, and the post it belongs to.

#### Per-item summary

The `SUMMARY` record tells you, for every username, link or search term: `status` (`ok`, `partial`, `private`, `not_found`, `empty`, `unsupported`, `duplicate`, `error`, `skipped`), the reason when it could not be read, how many posts were saved and, for search terms, which topics were read.

### Pricing

Pay only for what is saved. Platform usage is included: no start fee and no separate compute bill.

| Apify plan | Per 1,000 posts and reels | Per 1,000 profiles | Per 1,000 comments |
|---|---|---|---|
| Free, Starter | **$0.10** | **$1.80** | **$0.18** |
| Scale | **$0.09** | **$1.50** | **$0.16** |
| Business, Platinum, Diamond | **$0.08** | **$1.20** | **$0.14** |

Example on the Free plan: 20 profiles with 50 posts each = 20 × $0.0018 + 1,000 × $0.0001 = **$0.14**.

Private profiles, unsupported links and duplicates cost nothing. Set *Maximum cost per run* in the run options to cap your spending: the Actor stops cleanly and keeps everything collected so far.

### Which data is included?

Everything Instagram shows publicly to visitors: profile details, posts and reels newest first, likes, comments and reel views, and comments when requested. Instagram's own comment counter also includes replies. Image links come straight from Instagram's servers: download them soon if you want to keep the files.

### Ready-to-run examples

Open an example, click **Start**, then replace the usernames with your own.

| Example | Who it is for | What you get |
|---|---|---|
| [Influencer vetting: engagement rate, reach and post frequency](https://apify.com/monkey.d.scraping/instagram-profile-scraper/examples/instagram-influencer-vetting) | Brands and agencies hiring creators | Followers, engagement rate, reel views and posting frequency |
| [Reels performance: views, likes and comments of every reel](https://apify.com/monkey.d.scraping/instagram-profile-scraper/examples/instagram-reels-performance) | Anyone working with Reels | Views, likes and comments of the latest reels |

### Use it from code, Make, n8n, Zapier or an AI agent

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("monkey.d.scraping/instagram-profile-scraper").call(run_input={
    "targets": ["natgeo", "nike"],
    "maxPostsPerProfile": 30,
})
for post in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(post["ownerUsername"], post["type"], post["likeCount"], post["engagementRate"])
```

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('monkey.d.scraping/instagram-profile-scraper').call({
    targets: ['natgeo'],
    contentType: 'reels',
    maxPostsPerProfile: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.length, 'reels');
```

The **Profiles** and **Comments** tables are separate datasets of the same run: open them from the Output tab or the run's Storage tab.

### For AI agents and LLM tools

- **Actor:** `monkey.d.scraping/instagram-profile-scraper`. Also known as: Instagram profile scraper, Instagram posts scraper, Instagram reels scraper, Instagram engagement rate calculator, Instagram influencer analytics, Instagram competitor analysis.
- **Use it when** a user asks for the posts, reels, followers, engagement rate, best posting times or collaborations of one or more public Instagram accounts, or for the details of single posts.
- **Minimal input:** `{"targets": ["<username or link>"]}`. Add `"maxPostsPerProfile": 20` for small runs, `"contentType": "reels"` for reel views only, `"commentsPerPost": 20` for comments.
- **Output:** posts and reels in the default dataset; one row per profile in the `profiles` dataset; comments in the `comments` dataset; status per input in the `SUMMARY` record.
- **Cost:** $0.10 per 1,000 posts, $1.80 per 1,000 profiles, $0.18 per 1,000 comments on the Free plan.

### FAQ

**Do I need an Instagram account or cookies?**
No. The Actor reads what Instagram shows to logged-out visitors. You never share your account.

**Can I search reels by keyword instead of by profile?**
Yes. Put the terms in `keywords`: the Actor returns the reels Instagram publicly lists for each term, from any account, in Instagram's own order. Names of people, shows, brands and recurring topics work best; a term Instagram has no results page for is reported as `not_found`, so try another wording. Turn on `includeRelatedSearches` to also read the related searches shown next to the term.

**How is the engagement rate calculated?**
(likes + comments) / followers × 100 for each post; the profile value is the average of the posts read in the run.

**Why are best posting times in UTC?**
Instagram gives post times in UTC. Convert them to your audience's time zone, for example +1 hour for Central Europe in winter.

**Can I read private profiles?**
No. Private profiles are listed in the summary and cost nothing.

**Is "possibly sponsored" the official paid partnership label?**
No. Instagram does not show that label to visitors. The Actor flags captions with advertising hashtags such as #ad or #sponsored, or phrases such as "paid partnership".

**Is it legal to scrape Instagram profiles?**
The Actor only collects publicly available data. Profiles and comments contain personal data, so make sure you have a legitimate reason to process them and follow the GDPR or the privacy rules that apply to you. If in doubt, ask a lawyer. This Actor is not affiliated with or endorsed by Meta or Instagram.

### Chinese Simplified

### 中文说明：Instagram账号、帖子与Reels采集工具（附互动率分析）

**Instagram Profile, Reels & Keyword Search Scraper** 批量导出Instagram公开账号的资料、帖子和Reels短视频，也可按关键词搜索任意公开账号的Reels：点赞数、评论数、Reels播放量、**互动率**、话题标签、@提及、合作账号，以及**最佳发布日期和时段**。每1,000条帖子仅**0.10美元**，每1,000个账号1.80美元，评论每1,000条0.18美元；无需登录、无需Cookie。

#### 为什么选择这款工具？

- **自带数据分析**：使用最多的Instagram采集工具只提供原始数据；本工具还会自动计算互动率、Reels播放量/粉丝比、平均点赞和评论、每周发帖数、最佳发布时间、热门话题标签和表现最好的帖子，无需再在Excel里计算。
- **价格更低**：2026年11月8日对比Apify商店中使用最多的Instagram采集工具，帖子价格最多便宜17倍。
- **三张表格**：帖子与Reels、账号对比、评论分别输出，可直接导出Excel。
- **合作账号**：每条帖子的合作作者、被标记账号和@提及，以及每个账号最常合作的对象。

#### 适用场景

- **海外达人营销**：投放前查看达人的粉丝数、互动率、Reels播放量和发帖频率。
- **竞品分析**：把多个品牌放在同一张表里对比互动率、发帖频率和最佳发布时间。
- **出海品牌内容策略**：找出表现最好的帖子、常用话题标签和受众最活跃的时段。
- **社媒监听**：可同时导出每条帖子的最新评论或全部评论。

#### 价格

| Apify套餐 | 每1,000条帖子 | 每1,000个账号 | 每1,000条评论 |
|---|---|---|---|
| 免费版、入门版 | **0.10美元** | **1.80美元** | **0.18美元** |
| Scale | 0.09美元 | 1.50美元 | 0.16美元 |
| Business及以上 | 0.08美元 | 1.20美元 | 0.14美元 |

无启动费，平台用量已包含；私密账号和无效链接不收费。

#### 使用方法

1. 粘贴用户名（如 `natgeo`）、账号链接或单条帖子/Reels链接，一次最多1,000个。
2. 选择采集内容（帖子和Reels、仅帖子、仅Reels）和每个账号的帖子数量。
3. 点击 **Start**，在输出中查看帖子、账号和评论三张表，或导出JSON、CSV、Excel。

```json
{
  "targets": ["natgeo", "nike"],
  "maxPostsPerProfile": 50,
  "commentsPerPost": 20
}
```

#### 一键运行中文示例

| 示例 | 适合谁 | 结果 |
|---|---|---|
| [海外达人营销：评估Instagram达人账号真实互动](https://apify.com/monkey.d.scraping/instagram-profile-scraper/examples/instagram-kol-analysis-zh) | 达人营销、社媒运营 | 达人粉丝数、互动率、Reels播放量和发帖频率 |

#### 常见问题

**需要Instagram账号吗？** 不需要，工具以未登录访客身份读取公开内容。

**最佳发布时间是什么时区？** UTC时间，请换算为目标受众所在时区。

**“可能为推广内容”是官方标签吗？** 不是。访客看不到官方的“付费合作”标签，工具根据文案中的 #ad、#sponsored 等标签判断。

#### 其他社媒数据工具

- [Instagram评论采集工具](https://apify.com/monkey.d.scraping/instagram-comments-scraper)：Instagram帖子和Reels的全部公开评论，每1,000条0.18美元。
- [Facebook评论采集工具](https://apify.com/monkey.d.scraping/facebook-comments-scraper)：Facebook帖子、Reels和视频的评论与回复。
- [TikTok广告库采集工具](https://apify.com/monkey.d.scraping/tiktok-ads-library-scraper)：竞品在TikTok上的广告和定向。

### Chinese Traditional

### 中文說明（繁體）：Instagram帳號、貼文與Reels擷取工具

批次匯出Instagram公開帳號的資料、貼文與Reels：按讚數、留言數、Reels觀看數、**互動率**、主題標籤、合作帳號與**最佳發文時段**。每1,000則貼文**0.10美元**，每1,000個帳號1.80美元，不需要登入。

- **內建分析**：互動率、平均按讚與觀看數、每週發文數、最佳發文時段、熱門貼文。
- **三張表格**：貼文與Reels、帳號比較、留言，可直接匯出Excel。
- **適用**：網紅行銷評估、競品比較、內容策略與社群監聽。

完整欄位請見[英文說明](#output)或[简体中文说明](#chinese-simplified)。

### Related Actors by the same author

- [Instagram Comments Scraper | Cheapest $0.18/1K](https://apify.com/monkey.d.scraping/instagram-comments-scraper) — every public comment of Instagram posts and reels.
- [Facebook Comments Scraper | Cheapest $0.18/1K](https://apify.com/monkey.d.scraping/facebook-comments-scraper) — comments and replies from Facebook posts, reels and videos.
- [Lemon8 Scraper | Posts, Comments & Replies](https://apify.com/monkey.d.scraping/lemon8-posts-comments) — posts, comments and replies from Lemon8.

#### More tools for marketers

- [TikTok Ads Library Scraper](https://apify.com/monkey.d.scraping/tiktok-ads-library-scraper) — competitors' TikTok ads, $0.29/1K.
- [Google Ads Scraper — Transparency Center](https://apify.com/monkey.d.scraping/google-ads-transparency-scraper) — every Google ad of a competitor, $0.40/1K.
- [LinkedIn Ad Library Scraper](https://apify.com/monkey.d.scraping/linkedin-ad-library-scraper) — LinkedIn ads with targeting, $0.50/1K.

# Actor input Schema

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

Instagram usernames (natgeo or @natgeo), profile links or links to single posts and reels, up to 1,000. Profiles give the profile, its latest posts and reels and a summary; post links give that post.

## `keywords` (type: `array`):

Words or names to search reels for, one per line (fabrizio corona, home workout, #coffee), up to 100. Each term returns the reels Instagram lists for it from any public account, with the same details and comments as above.

## `maxReelsPerKeyword` (type: `integer`):

Reels kept for each search term, as Instagram ranks them. 0 = every reel Instagram lists for the term.

## `includeRelatedSearches` (type: `boolean`):

Also read the related searches Instagram shows next to a term, when they contain all its words (for example "fabrizio corona falsissimo" for "fabrizio corona"). More reels per term; stops at the maximum above.

## `contentType` (type: `string`):

Reels include view counts.

## `maxPostsPerProfile` (type: `integer`):

Newest first. 0 = all posts Instagram shows to visitors.

## `postsSince` (type: `string`):

Keep only posts published on or after this day (00:00 UTC). Leave empty for all dates.

## `includeDetails` (type: `boolean`):

Opens every post to add likes, comments, date, caption, tags and collaborations, and to calculate engagement and best posting times. Turn off for a faster list of posts with reel views only.

## `commentsPerPost` (type: `integer`):

Also export the latest comments of each post, newest first. 0 = no comments.

## `allComments` (type: `boolean`):

Export every comment Instagram shows on each post. For 100 posts with thousands of comments each, increase the run timeout.

## Actor input object example

```json
{
  "targets": [
    "natgeo",
    "https://www.instagram.com/p/DDIJAfeyemG/"
  ],
  "keywords": [],
  "maxReelsPerKeyword": 50,
  "includeRelatedSearches": false,
  "contentType": "all",
  "maxPostsPerProfile": 24,
  "includeDetails": true,
  "commentsPerPost": 0,
  "allComments": false
}
```

# Actor output Schema

## `posts` (type: `string`):

One row per post or reel with likes, comments, views, engagement rate, hashtags and collaborations.

## `profiles` (type: `string`):

One row per profile with followers and calculated metrics: engagement rate, averages, posts per week, best posting times, top hashtags and top posts.

## `comments` (type: `string`):

Comments of the posts, when requested.

## `summary` (type: `string`):

Status of every username or link: read, private, not found or unsupported, with the reason.

# 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 = {
    "targets": [
        "natgeo",
        "https://www.instagram.com/p/DDIJAfeyemG/"
    ],
    "keywords": [],
    "maxReelsPerKeyword": 50,
    "maxPostsPerProfile": 24
};

// Run the Actor and wait for it to finish
const run = await client.actor("monkey.d.scraping/instagram-profile-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 = {
    "targets": [
        "natgeo",
        "https://www.instagram.com/p/DDIJAfeyemG/",
    ],
    "keywords": [],
    "maxReelsPerKeyword": 50,
    "maxPostsPerProfile": 24,
}

# Run the Actor and wait for it to finish
run = client.actor("monkey.d.scraping/instagram-profile-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 '{
  "targets": [
    "natgeo",
    "https://www.instagram.com/p/DDIJAfeyemG/"
  ],
  "keywords": [],
  "maxReelsPerKeyword": 50,
  "maxPostsPerProfile": 24
}' |
apify call monkey.d.scraping/instagram-profile-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,monkey.d.scraping/instagram-profile-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/IeBeV2QqHSIERN04n/builds/MhDqgJs3fHS4XklXQ/openapi.json
