# Instagram Profile Posts & Comments Scraper | No cookies (`krazee_kaushik/instagram-profile-posts-and-comments-scraper`) Actor

Scrape Instagram posts from multiple profiles in one run, including comments for every post. Control how many comments you collect and how they’re sorted — no separate comment scraper needed. Export to Excel, CSV, JSON, and more. Starting at $1/1,000 posts + $0.5/1,000 comments.

- **URL**: https://apify.com/krazee\_kaushik/instagram-profile-posts-and-comments-scraper.md
- **Developed by:** [Krazee](https://apify.com/krazee_kaushik) (community)
- **Categories:** Lead generation, AI, Automation
- **Stats:** 9 total users, 7 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 post scrapeds

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 a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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 Profile Posts & Comments Scraper

Scrape Instagram profile posts including captions, hashtags, mentions, engagement metrics, images, carousel posts, and video posts. Optionally collect comments for each scraped post with configurable sorting and per-post limits.

The actor also supports resumable scraping, allowing large or interrupted runs to continue from the previous scraping state.

### Features

- Scrape posts from multiple Instagram profiles in a single run
- No cookies or manual session handling required
- API-based scraping for fast and reliable data collection
- Optionally collect comments for every scraped post with configurable sorting and limits
- Supports Apify resurrect runs to continue from the last progress point after crashes or interrupted runs
- Automatically handles retries and proxy rotation internally
- Structured output ready for analytics, research, and automation workflows

---

### Extracted Data

#### Core Post Information

| Field | Type | Description |
|---|---|---|
| id | string | Unique Instagram post identifier |
| shortcode | string | Public shortcode used in the post URL |
| caption | string | Post caption text |
| url | string | Direct URL to the post |
| timestamp | string | ISO timestamp of post creation |
| hashtags | array | Hashtags extracted from caption |
| mentions | array | Mentioned usernames in caption |
| postType | string | Post type such as image, video, or carousel |

---

#### Author Information (`author` object)

Information related to the owner of the Instagram post.

| Field | Type | Description |
|---|---|---|
| username | string | Username of the post owner |
| fullName | string | Full name of the post owner |
| id | string | Unique Instagram user identifier |
| profilePicUrl | string | Profile picture URL of the owner |
| isVerified | boolean | Whether the profile is verified |
| followersCount | number | Total followers count of the profile |
| followingCount | number | Total following count of the profile |

---

#### Engagement Metrics (`engagement` object)

Metrics related to post performance and audience interaction.

| Field | Type | Description |
|---|---|---|
| likesCount | number | Total likes on the post |
| commentsCount | number | Total comments on the post |
| videoPlayCount | number | Total video plays/views |
| videoViewCount | number | Total video views |
| reshareCount | number | Number of reshares of the post |
| videoDuration | number | Duration of the video in seconds |

---

#### Media Information (`media` object)

Information related to images, videos, thumbnails, and carousel media.

| Field | Type | Description |
|---|---|---|
| postType | string | Type of post such as image, video, or carousel |
| displayUrl | string | Primary media URL of the post |
| thumbnailUrl | string | Thumbnail image URL |
| videoUrl | string | Direct video URL if the post contains video |
| height | number | Height of the media |
| width | number | Width of the media |
| carouselMedia | array | Media items included in carousel posts |
| isVideo | boolean | Whether the post contains video media |

---

#### Audio & Music Metadata (`audio` object)

Information related to audio tracks and music metadata attached to video posts.

| Field | Type | Description |
|---|---|---|
| audioId | string | Unique identifier of the audio track |
| title | string | Title of the audio track |
| artist | string | Artist or creator of the audio |
| durationInSeconds | number | Duration of the audio track in seconds |
| isOriginalAudio | boolean | Whether the audio is original audio |

---

#### Location & Tagged Users (`location` and `taggedUsers` objects)

Information related to tagged users and post location metadata.

| Field | Type | Description |
|---|---|---|
| location.name | string | Name of the tagged location |
| location.id | string | Unique Instagram location identifier |
| location.latitude | number | Latitude coordinates of the location |
| location.longitude | number | Longitude coordinates of the location |
| taggedUsers | array | Users tagged in the post |

---

#### Comments Data (`comments` array, optional)

Comments are included only when comment scraping is enabled.

| Field | Type | Description |
|---|---|---|
| id | string | Unique identifier of the comment |
| text | string | Text content of the comment |
| createdAt | string | Timestamp when the comment was created |
| likesCount | number | Number of likes on the comment |
| ownerUsername | string | Username of the comment author |
| ownerProfilePicUrl | string | Profile picture URL of the comment author |
| ownerIsVerified | boolean | Whether the comment author is verified |
| repliesCount | number | Total replies count for the comment |

---

### Sample Output

```json
{
  "id": "3882472907540012815_25025320",
  "pk": "3882472907540012815",
  "code": "DXhUIoIAB8P",
  "shortcode": "DXhUIoIAB8P",
  "url": "https://www.instagram.com/p/DXhUIoIAB8P/",
  "taken_at": 1777046885,
  "scraped_at": "2026-05-15T10:38:45.079729+00:00",
  "product_type": "clips",
  "media_type": "video",
  "media_type_raw": 2,
  "typename": "XDTMediaDict",
  "caption": {
    "text": "save some aura for the rest of us 🔥⁣\n ⁣\n#InTheMoment⁣\n ⁣\nVideo by @jacob_acrobat",
    "pk": "18211069339330904",
    "created_at": 1777046883,
    "has_translation": null,
    "is_edited": false,
    "hashtags": [
      "InTheMoment⁣"
    ],
    "mentions": [
      "jacob_acrobat"
    ]
  },
  "author": {
    "id": "25025320",
    "pk": "25025320",
    "username": "instagram",
    "full_name": "Instagram",   
    "is_private": false,
    "is_embeds_disabled": false,
    "is_unpublished": false,
    "latest_reel_media": null,
    "latest_besties_reel_media": null,
    "show_account_transparency_details": true,
    "transparency_product_enabled": false,
    "friendship_status": {
      "following": null,
      "is_bestie": null,
      "is_feed_favorite": null,
      "is_restricted": null
    }
  },
  "engagement": {
    "like_count": 299579,
    "comment_count": 8682,
    "play_count": null,
    "view_count": null,
    "fb_like_count": null,
    "fb_comment_count": null,
    "media_repost_count": null,
    "has_liked": false,
    "has_viewer_saved": null,
    "like_and_view_counts_disabled": false
  },
  "media": {
    "thumbnail_url": "https://scontent-lga3-1.cdninstagram.com/v/t51.82787-15/671790369_18748189147001321_3907397397718723512_n.jpg?stp=dst-jpg_e15_tt6&_nc_cat=111&ig_cache_key=Mzg4MjQ3MjkwNzU0MDAxMjgxNTE4NzQ4MTg5MTQxMDAxMzIx.3-ccb7-5&ccb=7-5&_nc_sid=58cdad&efg=eyJ2ZW5jb2RlX3RhZyI6IkNMSVBTLnhwaWRzLjEwODAuc2RyLnZpZGVvX2RlZmF1bHRfY292ZXJfZnJhbWUuQzMifQ%3D%3D&_nc_ohc=IG11lOeXEHYQ7kNvwFv9Xhb&_nc_oc=AdrSSqV8jcxVuqqvajIJP5jakRbuISzVv1_ANPQVmG7SvNf2a81fByz-IQEaOE9b-pY&_nc_ad=z-m&_nc_cid=0&_nc_zt=23&_nc_ht=scontent-lga3-1.cdninstagram.com&_nc_gid=UzVVM_dhvBX4pj5vKc7ULQ&_nc_ss=7a22e&oh=00_Af7EQwDMZw538s_qPD4qDoSHAOYU_IYs6Lo3QKc7NANjvA&oe=6A0CDEE8",
    "display_uri": "https://scontent-lga3-2.cdninstagram.com/v/t51.82787-15/671790369_18748189147001321_3907397397718723512_n.jpg?stp=c0.420.1080.1080a_dst-jpg_e15_fr_s1080x1080_tt6&_nc_ht=scontent-lga3-2.cdninstagram.com&_nc_cat=105&_nc_oc=Q6cZ2gF5OjHH4hubxKnkTE43qhYzrIxEC6wXbyrO-jQr6MBuWIOok-Hka2ld1q8X1MvZP2w&_nc_ohc=_zqy8bvIUbkQ7kNvwHp2zdv&_nc_gid=UzVVM_dhvBX4pj5vKc7ULQ&edm=APoiHPcBAAAA&ccb=7-5&oh=00_Af6QQ5Zvr_84cw0u806NoZdx_alqcwlswsb9tKj0Nr4sMg&oe=6A0CDEE8&_nc_sid=22de04",
    "original_width": 720,
    "original_height": 1280,
    "aspect_ratio": 0.5625,
    "has_audio": true,
    "is_dash_eligible": true,
    "number_of_qualities": 7,
    "primary_video": {
      "url": "https://scontent-lga3-1.cdninstagram.com/o1/v/t2/f2/m86/AQPUNRUaZkU7gQQM4aYo1QYlXh9qJD7lTqEOc3pASPaFo13vPkd2LgbQCCD_ws6PKNROiJg_of39nDG4EDjx_-NAUHX895NlCp2cOy8.mp4?_nc_cat=110&_nc_sid=5e9851&_nc_ht=scontent-lga3-1.cdninstagram.com&_nc_ohc=O8T8Nm_ZeGUQ7kNvwGsKwAR&efg=eyJ2ZW5jb2RlX3RhZyI6Inhwdl9wcm9ncmVzc2l2ZS5JTlNUQUdSQU0uQ0xJUFMuQzMuNzIwLmRhc2hfYmFzZWxpbmVfMV92MSIsInhwdl9hc3NldF9pZCI6MTc5NTk3NzcxNDMxMTgzOTgsImFzc2V0X2FnZV9kYXlzIjoyMCwidmlfdXNlY2FzZV9pZCI6MTAwOTksImR1cmF0aW9uX3MiOjEwLCJ1cmxnZW5fc291cmNlIjoid3d3In0%3D&ccb=17-1&vs=8671157dd4a769a6&_nc_vs=HBksFQIYUmlnX3hwdl9yZWVsc19wZXJtYW5lbnRfc3JfcHJvZC81RTQ5MTk0Q0E3N0Q0NjhDRkNENjE5MzQ3NTRGNTZBM192aWRlb19kYXNoaW5pdC5tcDQVAALIARIAFQIYUWlnX3hwdl9wbGFjZW1lbnRfcGVybWFuZW50X3YyL0YzNDU1NDc4NjNENTg5RkJDQjM1Q0U5MkM5MENBOEFGX2F1ZGlvX2Rhc2hpbml0Lm1wNBUCAsgBEgAoABgAGwKIB3VzZV9vaWwBMRJwcm9ncmVzc2l2ZV9yZWNpcGUBMRUAACb86OKNz5TnPxUCKAJDMywXQCUQ5WBBiTcYEmRhc2hfYmFzZWxpbmVfMV92MREAdf4HZeadAQA&_nc_gid=UzVVM_dhvBX4pj5vKc7ULQ&_nc_zt=28&_nc_ss=7a22e&oh=00_Af6_Ohlj4Ib3oETIxp4cwh8wfx6Mhj6c7xvsmPY5NzD8-g&oe=6A08DCF3",
      "width": 720,
      "height": 1280,
      "type": 101
    },
    "video_versions": [
      {
        "width": 720,
        "height": 1280,
        "url": "https://scontent-lga3-1.cdninstagram.com/o1/v/t2/f2/m86/AQPUNRUaZkU7gQQM4aYo1QYlXh9qJD7lTqEOc3pASPaFo13vPkd2LgbQCCD_ws6PKNROiJg_of39nDG4EDjx_-NAUHX895NlCp2cOy8.mp4?_nc_cat=110&_nc_sid=5e9851&_nc_ht=scontent-lga3-1.cdninstagram.com&_nc_ohc=O8T8Nm_ZeGUQ7kNvwGsKwAR&efg=eyJ2ZW5jb2RlX3RhZyI6Inhwdl9wcm9ncmVzc2l2ZS5JTlNUQUdSQU0uQ0xJUFMuQzMuNzIwLmRhc2hfYmFzZWxpbmVfMV92MSIsInhwdl9hc3NldF9pZCI6MTc5NTk3NzcxNDMxMTgzOTgsImFzc2V0X2FnZV9kYXlzIjoyMCwidmlfdXNlY2FzZV9pZCI6MTAwOTksImR1cmF0aW9uX3MiOjEwLCJ1cmxnZW5fc291cmNlIjoid3d3In0%3D&ccb=17-1&vs=8671157dd4a769a6&_nc_vs=HBksFQIYUmlnX3hwdl9yZWVsc19wZXJtYW5lbnRfc3JfcHJvZC81RTQ5MTk0Q0E3N0Q0NjhDRkNENjE5MzQ3NTRGNTZBM192aWRlb19kYXNoaW5pdC5tcDQVAALIARIAFQIYUWlnX3hwdl9wbGFjZW1lbnRfcGVybWFuZW50X3YyL0YzNDU1NDc4NjNENTg5RkJDQjM1Q0U5MkM5MENBOEFGX2F1ZGlvX2Rhc2hpbml0Lm1wNBUCAsgBEgAoABgAGwKIB3VzZV9vaWwBMRJwcm9ncmVzc2l2ZV9yZWNpcGUBMRUAACb86OKNz5TnPxUCKAJDMywXQCUQ5WBBiTcYEmRhc2hfYmFzZWxpbmVfMV92MREAdf4HZeadAQA&_nc_gid=UzVVM_dhvBX4pj5vKc7ULQ&_nc_zt=28&_nc_ss=7a22e&oh=00_Af6_Ohlj4Ib3oETIxp4cwh8wfx6Mhj6c7xvsmPY5NzD8-g&oe=6A08DCF3",
        "type": 101
      }
    
    ],
    "image_versions": [
      {
        "url": "https://scontent-lga3-1.cdninstagram.com/v/t51.82787-15/671790369_18748189147001321_3907397397718723512_n.jpg?stp=dst-jpg_e15_tt6&_nc_cat=111&ig_cache_key=Mzg4MjQ3MjkwNzU0MDAxMjgxNTE4NzQ4MTg5MTQxMDAxMzIx.3-ccb7-5&ccb=7-5&_nc_sid=58cdad&efg=eyJ2ZW5jb2RlX3RhZyI6IkNMSVBTLnhwaWRzLjEwODAuc2RyLnZpZGVvX2RlZmF1bHRfY292ZXJfZnJhbWUuQzMifQ%3D%3D&_nc_ohc=IG11lOeXEHYQ7kNvwFv9Xhb&_nc_oc=AdrSSqV8jcxVuqqvajIJP5jakRbuISzVv1_ANPQVmG7SvNf2a81fByz-IQEaOE9b-pY&_nc_ad=z-m&_nc_cid=0&_nc_zt=23&_nc_ht=scontent-lga3-1.cdninstagram.com&_nc_gid=UzVVM_dhvBX4pj5vKc7ULQ&_nc_ss=7a22e&oh=00_Af7EQwDMZw538s_qPD4qDoSHAOYU_IYs6Lo3QKc7NANjvA&oe=6A0CDEE8",
        "height": 1920,
        "width": 1080
      },
      {
        "url": "https://scontent-lga3-1.cdninstagram.com/v/t51.82787-15/671790369_18748189147001321_3907397397718723512_n.jpg?stp=dst-jpg_e35_p720x720_sh2.08_tt6&_nc_cat=111&ig_cache_key=Mzg4MjQ3MjkwNzU0MDAxMjgxNTE4NzQ4MTg5MTQxMDAxMzIx.3-ccb7-5&ccb=7-5&_nc_sid=58cdad&efg=eyJ2ZW5jb2RlX3RhZyI6IkNMSVBTLnhwaWRzLjEwODAuc2RyLnZpZGVvX2RlZmF1bHRfY292ZXJfZnJhbWUuQzMifQ%3D%3D&_nc_ohc=IG11lOeXEHYQ7kNvwFv9Xhb&_nc_oc=AdrSSqV8jcxVuqqvajIJP5jakRbuISzVv1_ANPQVmG7SvNf2a81fByz-IQEaOE9b-pY&_nc_ad=z-m&_nc_cid=0&_nc_zt=23&_nc_ht=scontent-lga3-1.cdninstagram.com&_nc_gid=UzVVM_dhvBX4pj5vKc7ULQ&_nc_ss=7a22e&oh=00_Af6fWaftmgIYyMiWNrQGV6SmSHeOoNlsa4bl1ASMbOaSsg&oe=6A0CDEE8",
        "height": 1280,
        "width": 720
      }
     
    ]
  },
  "audio": {
    "audio_type": "original_sounds",
    "original_audio_title": "Original audio",
    "audio_asset_id": "1164285355620526",
    "should_mute_audio": false,
    "is_trending_in_clips": false,
    "should_mute_audio_reason": "",
    "is_explicit": false,
    "artist": {
      "id": "4706135179",
      "username": "jacob_acrobat",
      "profile_pic_url": "https://scontent-lga3-3.cdninstagram.com/v/t51.2885-19/353961399_1099160098138986_1057716557612595673_n.jpg?stp=dst-jpg_e0_s150x150_tt6&efg=eyJ2ZW5jb2RlX3RhZyI6InByb2ZpbGVfcGljLmRqYW5nby4xMDgwLmMyIn0&_nc_ht=scontent-lga3-3.cdninstagram.com&_nc_cat=106&_nc_oc=Q6cZ2gF5OjHH4hubxKnkTE43qhYzrIxEC6wXbyrO-jQr6MBuWIOok-Hka2ld1q8X1MvZP2w&_nc_ohc=6jK2-hbmN1gQ7kNvwGz1Bq3&_nc_gid=UzVVM_dhvBX4pj5vKc7ULQ&edm=APoiHPcBAAAA&ccb=7-5&oh=00_Af5OM629K52SKMIGIYRw2Y-TTgrphN2-Did88pAr-7EeYA&oe=6A0CC872&_nc_sid=22de04"
    }
  },
  "location": null,
  "comments": [
    {
      "pk": "18102663235818366",
      "text": "🔥🔥🔥",
      "created_at": 1778806093,
      "is_edited": false,
      "comment_like_count": 1,
      "has_liked_comment": false,
      "child_comment_count": null,
      "parent_comment_id": null,
      "is_covered": false,
      "restricted_status": null,
      "has_translation": null,
      "giphy_media_info": null,
      "fallback_user_info": null,
      "__typename": "XDTCommentDict",
      "user": {
        "id": "3538675228",
        "pk": "3538675228",
        "username": "classicstyle1000",
        "profile_pic_url": "https://scontent-lga3-3.cdninstagram.com/v/t51.2885-19/178919895_314277030296152_2519852515452780835_n.jpg?stp=dst-jpg_s150x150_tt6&_nc_cat=106&ccb=7-5&_nc_sid=f7ccc5&efg=eyJ2ZW5jb2RlX3RhZyI6InByb2ZpbGVfcGljLnd3dy4xMDgwLkMzIn0%3D&_nc_ohc=OjtwQxJDLigQ7kNvwG3uW43&_nc_oc=AdobCzLZZRVWGyoEkzJn47Uo39Q1bYjxFcgjU2b-AavX-adYSp6uH2oIHY6Sy9ox9kQ&_nc_zt=24&_nc_ht=scontent-lga3-3.cdninstagram.com&_nc_ss=7fa8c&oh=00_Af5bp20Jqb_ktjRHoRNFync67gUHtpWpVcCRwJJB9sE6dg&oe=6A0CB380",
        "is_verified": false,
        "is_unpublished": false,
        "fbid_v2": "17841403456862334"
      }
    },
    {
      "pk": "18204571816346906",
      "text": "🔥🔥🔥👏",
      "created_at": 1778766738,
      "is_edited": false,
      "comment_like_count": 0,
      "has_liked_comment": false,
      "child_comment_count": null,
      "parent_comment_id": null,
      "is_covered": false,
      "restricted_status": null,
      "has_translation": null,
      "giphy_media_info": null,
      "fallback_user_info": null,
      "__typename": "XDTCommentDict",
      "user": {
        "id": "49212009269",
        "pk": "49212009269",
        "username": "ujala_kumari7088",
        "profile_pic_url": "https://scontent-lga3-2.cdninstagram.com/v/t51.82787-19/670822651_18077714342641270_1768477051728204512_n.jpg?stp=dst-jpg_s150x150_tt6&_nc_cat=105&ccb=7-5&_nc_sid=f7ccc5&efg=eyJ2ZW5jb2RlX3RhZyI6InByb2ZpbGVfcGljLnd3dy4xMDgwLkMzIn0%3D&_nc_ohc=4ggUkLPD_G0Q7kNvwHENXLv&_nc_oc=AdreJDMoR7bTtdfHvm870Z2M-_Y9fT65JbcHVfrOwnw8gFrwJtFUQmROjU2Fs-iGQ_8&_nc_zt=24&_nc_ht=scontent-lga3-2.cdninstagram.com&_nc_gid=Y02Jr3EKPVJHEQjmfgwaMw&_nc_ss=7fa8c&oh=00_Af4hbR7PycRVu7jlfRWfs9lIhxkgDxu6g-dhv1bqmjnx2g&oe=6A0CBF70",
        "is_verified": false,
        "is_unpublished": false,
        "fbid_v2": "17841449238071501"
      }
    }    
   
 
  ],
 
 
 
}
````

***

### 🚀 Quick Start

1. Add one or more Instagram profile usernames or profile URLs
2. (Optional) Enable comments scraping and configure comment limits
3. Set how many posts to collect using `resultsPerProfile`
4. Run the actor and export data as JSON, CSV, Excel, or other supported formats

#### Minimal Input

```json
{
  "profiles": ["instagram"]
}
```

#### Scrape Posts With Comments

```json
{
  "resultsPerProfile": 30,
  "includeComments": true,
  "commentsSortOrder": "recent",
  "commentsLimit": 10,
  "profiles": ["instagram"]
}
```

### Input Options

Below is an example input configuration with comments scraping enabled.

```json
{
  "resultsPerProfile": 30,
  "includeComments": true,
  "commentsSortOrder": "recent",
  "commentsLimit": 10,
  "profiles": [
    "instagram"
  ]
}
```

| Input | Type | Description |
|---|---|---|
| profiles | array | List of Instagram profile usernames or profile URLs to scrape |
| resultsPerProfile | number | Maximum number of posts to collect per profile |
| includeComments | boolean | Enable comments scraping for scraped posts |
| commentsSortOrder | string | Sort order for comments such as `recent` or `popular` |
| commentsLimit | number | Maximum number of comments to collect per post |
| resumeInfo | object | Resume information object returned from previous runs |

***

### Comments Scraping

Comments scraping is optional and can be enabled using `includeComments`.

Comments are collected only for posts scraped during the current run.

Use `commentsLimit` to control how many comments are collected per post, and `commentsSortOrder` to choose how comments are sorted.

***

### Resume Support

The actor returns a `resumeInfo` object that can be reused in future runs to continue scraping from the previous state.

This is especially useful for large profiles or interrupted runs. The complete `resumeInfo` object can be copied directly into the next run without manually managing pagination cursors for individual profiles.

The actor also supports continuing interrupted or crashed runs without losing scraping progress.

***

### Use Cases

- Track creator and influencer posting activity across multiple Instagram profiles
- Analyze engagement metrics such as likes, comments, views, and reshares
- Collect comments for sentiment analysis, audience research, and community monitoring
- Monitor competitors, brands, and niche content trends on Instagram
- Build datasets for AI, NLP, and social media analytics workflows
- Extract media, audio, hashtag, and mention data for content research
- Automate Instagram data collection for dashboards, reporting, and monitoring systems

***

### Limitations

- Only public Instagram profiles and posts can be scraped
- Private, unavailable, or deleted profiles/posts will be skipped
- Detailed processing information and skip reasons are available in the actor run logs
- Some fields may be missing or `null` depending on the post type and Instagram response
- Enabling comments scraping may increase runtime for large profiles

\--

### FAQ

#### Does this Instagram scraper support reels and video posts?

Yes. The actor supports video posts, carousel posts, and image posts available in the Instagram profile posts section.

It does not separately scrape the dedicated reels tab on Instagram profiles.

***

#### Can this Instagram scraper collect comments for posts?

Yes. Comments scraping is optional and can be enabled using `includeComments`.

The actor can collect comments for every scraped post with configurable sorting and per-post comment limits.

***

#### Can I scrape multiple Instagram profiles in one run?

Yes. The `profiles` input supports multiple Instagram usernames or profile URLs in a single run.

***

#### Does this Instagram posts scraper support resurrect runs on Apify?

Yes. The actor supports Apify resurrect runs and can continue from the previous progress point after crashes or interrupted runs.

***

#### Can I resume scraping from the last scraping point?

Yes. After every run, the actor returns a `resumeInfo` object that can be reused in future runs to continue scraping from the previous state.

This is useful for large profiles, incremental scraping workflows, and interrupted runs.

***

#### Does this Instagram scraper work without cookies or login sessions?

Yes. The actor does not require cookies or manual login sessions.

Retries, pagination, and proxy handling are managed internally by the actor.

***

#### Can this scraper scrape private Instagram profiles?

No. The actor only supports publicly accessible Instagram profiles and posts.

Private, unavailable, or deleted content cannot be scraped.

***

### Support

For bug reports, feature requests, or scraping-related issues, please open an issue on the actor page or contact via email.

Include Run IDs or actor run logs when reporting issues to help with faster debugging.

***

### 🔗 Related actors

- 🧵 [X Thread & Reply Scraper](https://apify.com/krazee_kaushik/x-thread-scraper) – Scrape X threads with nested replies and conversation structure.

# Actor input Schema

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

Enter one or more Instagram profile URLs or usernames. Use this when starting fresh.

## `resumeInfo` (type: `object`):

Paste the RESUME\_INFO object from a previous run to continue scraping from where it stopped.

## `resultsPerProfile` (type: `integer`):

Number of posts or reels to scrape for each profile.

## `includeComments` (type: `boolean`):

Fetch comments for each post or reel.

## `commentsSortOrder` (type: `string`):

Choose how comments should be ordered before scraping.

## `commentsLimit` (type: `integer`):

Number of comments to scrape per post or reel. Used only when Include Comments? is enabled.

## Actor input object example

```json
{
  "profiles": [
    "https://www.instagram.com/instagram/"
  ],
  "resultsPerProfile": 50,
  "includeComments": false,
  "commentsSortOrder": "popular",
  "commentsLimit": 100
}
```

# Actor output Schema

## `results` (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 = {
    "profiles": [
        "https://www.instagram.com/instagram/"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("krazee_kaushik/instagram-profile-posts-and-comments-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "profiles": ["https://www.instagram.com/instagram/"] }

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

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Instagram Profile Posts & Comments Scraper | No cookies",
        "description": "Scrape Instagram posts from multiple profiles in one run, including comments for every post. Control how many comments you collect and how they’re sorted — no separate comment scraper needed. Export to Excel, CSV, JSON, and more. Starting at $1/1,000 posts + $0.5/1,000 comments.",
        "version": "0.0",
        "x-build-id": "V8ZAE3yEZ8Gsk9JaI"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/krazee_kaushik~instagram-profile-posts-and-comments-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-krazee_kaushik-instagram-profile-posts-and-comments-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/krazee_kaushik~instagram-profile-posts-and-comments-scraper/runs": {
            "post": {
                "operationId": "runs-sync-krazee_kaushik-instagram-profile-posts-and-comments-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/krazee_kaushik~instagram-profile-posts-and-comments-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-krazee_kaushik-instagram-profile-posts-and-comments-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "profiles": {
                        "title": "Profile URLs or Usernames",
                        "type": "array",
                        "description": "Enter one or more Instagram profile URLs or usernames. Use this when starting fresh.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "resumeInfo": {
                        "title": "Resume Info (Optional)",
                        "type": "object",
                        "description": "Paste the RESUME_INFO object from a previous run to continue scraping from where it stopped.",
                        "properties": {
                            "profiles": {
                                "title": "Profiles from previous run",
                                "type": "array",
                                "description": "Profiles captured from the previous run output.",
                                "items": {
                                    "type": "object",
                                    "properties": {
                                        "username": {
                                            "title": "Username",
                                            "type": "string",
                                            "description": "Instagram username."
                                        },
                                        "next_cursor": {
                                            "title": "Next Cursor",
                                            "type": "string",
                                            "description": "Cursor to resume scraping for this profile."
                                        },
                                        "saved_count": {
                                            "title": "Saved Count",
                                            "type": "integer",
                                            "description": "Number of posts already saved for this profile."
                                        },
                                        "has_more": {
                                            "title": "Has More",
                                            "type": "boolean",
                                            "description": "Whether more posts are available for this profile."
                                        }
                                    },
                                    "required": [
                                        "username"
                                    ]
                                }
                            }
                        }
                    },
                    "resultsPerProfile": {
                        "title": "Results Per Profile",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Number of posts or reels to scrape for each profile.",
                        "default": 50
                    },
                    "includeComments": {
                        "title": "Include Comments?",
                        "type": "boolean",
                        "description": "Fetch comments for each post or reel.",
                        "default": false
                    },
                    "commentsSortOrder": {
                        "title": "Comments Sort Order",
                        "enum": [
                            "popular",
                            "recent",
                            "verified"
                        ],
                        "type": "string",
                        "description": "Choose how comments should be ordered before scraping.",
                        "default": "popular"
                    },
                    "commentsLimit": {
                        "title": "Number of Comments",
                        "minimum": 0,
                        "maximum": 200,
                        "type": "integer",
                        "description": "Number of comments to scrape per post or reel. Used only when Include Comments? is enabled.",
                        "default": 100
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
