# ✅ Instagram User Posts And Reels Scraper (`datamagnet/instagram-user-posts-and-reels-scraper`) Actor

Fetch public Instagram feed posts and reels from any profile into a clean dataset. Enter a username, user ID, or profile URL, and collect items automatically up to your limit with optional safer embed links for websites and reports.

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

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

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

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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 Feed Reels Scraper

Instagram Feed Reels Scraper helps you quickly collect public Instagram feed posts and reels from any profile into a clean, ready-to-use dataset. It is ideal for marketers, researchers, creators, agencies, and analysts who need Instagram post data without manual copying and pasting. Enter a username, numeric user ID, or profile URL, and the actor gathers the latest posts and reels automatically until it reaches your chosen limit. You can also choose safer media links for embedding on websites, landing pages, or internal tools.

### Key Features
- Extract the latest public Instagram posts and reels from a chosen profile in one run.
- Collect more items automatically until your requested result limit is reached.
- Capture rich post details such as captions, hashtags, mentions, timestamps, likes, comments, and media links.
- Include carousel items, images, and videos so you get a fuller view of each post.
- Use safer embed-friendly media links when you want to place content on websites.
- Start from a username, numeric user ID, or profile URL for flexible input.
- Continue a previous collection with a saved pagination token when you want to pick up where you left off.

### Use Cases

#### Social Media Monitoring
Brand and social teams use this actor to keep track of what a public Instagram profile is publishing. By reviewing fields like `caption_text`, `taken_at`, `like_count`, and `comment_count`, they can spot content trends, campaign launches, and audience reactions without checking the profile manually every day.

#### Competitor Content Analysis
Marketing teams and agencies can compare posting style, engagement, and content formats across competitors. The returned fields such as `media_type`, `product_type`, `is_video`, `view_count`, and `resources` help them understand whether a profile relies more on reels, carousels, or single-image posts, and which formats appear to perform best.

#### Influencer Research
Influencer managers and partnership teams can evaluate creators before outreach. They can inspect `user.full_name`, `user.username`, `user.is_verified`, `coauthor_producers`, `tagged_users`, and engagement metrics to see who the creator collaborates with, how active they are, and whether their audience response looks strong.

#### Content Repurposing
Content teams often need source material for newsletters, internal reports, or inspiration boards. With fields like `caption_text`, `caption_hashtags`, `caption_mentions`, `thumbnail_url`, and `image_versions`, they can quickly identify posts worth referencing and reuse the information in a structured way.

#### Website and Product Embeds
Publishers and web teams can use the safer media links to display Instagram visuals in articles, galleries, or dashboards. The actor returns media URLs and thumbnails that are easier to work with when building pages that showcase public Instagram content.

#### Audience and Engagement Review
Analysts can study how audiences respond to specific posts by looking at `like_count`, `comment_count`, `play_count`, and `view_count`. This makes it easier to identify which topics, formats, or creators generate the strongest response and where to focus future content efforts.

### Input

| Field | Type | Required | Description | Example |
|---|---|---:|---|---|
| Username, user ID, or profile URL | String | Yes | Enter the Instagram profile you want to scrape. You can paste a username, numeric user ID, or the profile URL. | mrbeast |
| Max results | Integer | No | Maximum number of posts and reels to collect in one run. | 100 |
| Safe embed links | Boolean | No | Turn this on if you want media links that are better suited for embedding on websites. | False |
| Pagination token | String | No | Paste the token from a previous run if you want to continue collecting from where the last run ended. |  |

### Output

| Field | Type | Description |
|---|---|---|
| accessibility_caption | String or null | A short description of the image for accessibility, when available. |
| caption_hashtags | Array | Hashtags found in the post caption. Useful for topic and trend analysis. |
| caption_mentions | Array | Accounts mentioned in the caption. Helpful for collaboration and network research. |
| caption_text | String | The main text written with the post or reel. |
| clips_metadata | Object | Extra clip-related details when the post contains video or reel content. |
| coauthor_producers | Array | Other creators or accounts listed as co-authors on the post. |
| code | String | The short post code used to identify the item on Instagram. |
| comment_count | Integer | How many comments the post has received. |
| comments_disabled | Boolean | Shows whether comments are turned off for the post. |
| has_liked | Boolean | Indicates whether the account used for collection has liked the post. |
| id | String | The unique ID of the post or reel. |
| image_versions | Array | Available image sizes and links for the post media. |
| is_paid_partnership | Boolean | Shows whether the post is marked as a paid partnership. |
| is_pinned | Boolean | Shows whether the post is pinned on the profile. |
| is_video | Boolean | Indicates whether the item is a video. |
| like_and_view_counts_disabled | Boolean | Shows whether likes and views are hidden. |
| like_count | Integer | The number of likes the post has received. |
| location | Object or null | Location information attached to the post, when available. |
| media_format | String | The format of the media, such as album, image, or video. |
| media_name | String | A readable label for the media type. |
| media_type | Integer | A numeric media type value included by the source. |
| play_count | Integer | How many times the video or reel has been played, when available. |
| product_type | String | The content type, such as carousel container or carousel item. |
| resources | Array | Individual items inside a carousel post, including their media links and details. |
| sponsor_tags | Array | Sponsor or brand tags attached to the post, when available. |
| tagged_users | Array | People tagged in the post, including their profile details and positions. |
| taken_at | String | The date and time when the post was published. |
| taken_at_ts | Integer | The publication time as a timestamp value. |
| thumbnail_url | String or null | A preview image link for the post, when available. |
| title | String | The post title, if provided. |
| user | Object | Basic profile details for the account that published the post. |
| video_duration | Integer | The length of the video in seconds, when available. |
| video_url | String or null | A direct video link, when available. |
| video_versions | Array | Available video file links and sizes, when available. |
| view_count | Integer | The number of views the post or reel has received, when available. |

### Sample Output

```json
{
  "accessibility_caption": null,
  "caption_hashtags": [],
  "caption_mentions": [],
  "caption_text": "Had to update the play button wall ❤️",
  "clips_metadata": {},
  "coauthor_producers": [],
  "code": "DZkn1f0Flsc",
  "comment_count": 92368,
  "comments_disabled": false,
  "has_liked": false,
  "id": "3919432775825251100",
  "image_versions": [
    {
      "height": 1347,
      "is_spatial_image": false,
      "url": "https://scontent-phx1-1.cdninstagram.com/v/t51.82787-15/724164279_18552629014073416_4362895695729846432_n.jpg?...",
      "width": 1080
    }
  ],
  "is_paid_partnership": false,
  "is_pinned": false,
  "is_video": false,
  "like_and_view_counts_disabled": false,
  "like_count": 5779443,
  "location": null,
  "media_format": "album",
  "media_name": "album",
  "media_type": 8,
  "play_count": 0,
  "product_type": "carousel_container",
  "resources": [
    {
      "carousel_parent_id": "3919432775825251100_2278169415",
      "commerciality_status": "not_commercial",
      "id": "3919418139751111668",
      "image_versions": [
        {
          "height": 1347,
          "is_spatial_image": false,
          "url": "https://scontent-phx1-1.cdninstagram.com/v/t51.82787-15/724164279_18552629014073416_4362895695729846432_n.jpg?...",
          "width": 1080
        }
      ],
      "media_type": 1,
      "product_type": "carousel_item",
      "taken_at": 1781452806,
      "taken_at_date": "2026-06-14T16:00:06+00:00",
      "thumbnail_url": "https://scontent-phx1-1.cdninstagram.com/v/t51.82787-15/724164279_18552629014073416_4362895695729846432_n.jpg?...",
      "video_url": null,
      "video_versions": []
    }
  ],
  "sponsor_tags": [],
  "tagged_users": [],
  "taken_at": "2024-11-28T20:10:49Z",
  "taken_at_ts": 1732824649,
  "thumbnail_url": null,
  "title": "",
  "user": {
    "account_badges": [],
    "full_name": "MrBeast",
    "id": "2278169415",
    "is_private": false,
    "is_verified": true,
    "profile_pic_url": "https://scontent-phx1-1.cdninstagram.com/v/t51.2885-19/31077884_211593632905749_1394765701385814016_n.jpg?...",
    "profile_pic_url_hd": null,
    "username": "mrbeast"
  },
  "video_duration": 0,
  "video_url": null,
  "video_versions": [],
  "view_count": 0
}
````

### How It Works

1. You enter the Instagram username, user ID, or profile URL you want to collect.
2. You choose how many posts and reels you want, and whether you want safer embed-friendly media links.
3. The actor gathers the latest public feed items from that profile automatically.
4. If more items are needed to reach your limit, it keeps collecting until the run is complete or no more content is available.
5. Your results are delivered in a structured dataset that is easy to review, filter, and export.

### Getting Started

Getting started is simple and does not require coding. Click **Try for free**, paste the Instagram username, user ID, or profile URL, choose your preferred result limit, and click **Run**. In a few moments, your collected Instagram posts and reels will be ready to review. You can download the results as JSON, CSV, or Excel, depending on how you want to use the data.

### Frequently Asked Questions

#### Do I need technical skills?

No. This actor is designed for business users, marketers, researchers, and creators who want Instagram data without manual work. You only need to enter the profile you want and choose how many items to collect.

#### How fast does it run?

Speed depends on how many posts and reels you request and how much content is available on the profile. Smaller runs finish quickly, while larger collections naturally take longer because the actor keeps gathering items until it reaches your limit.

#### What format is the output?

Your results are available in easy-to-use formats such as JSON, CSV, and Excel. That makes it simple to open the data in spreadsheets, share it with teammates, or import it into your reporting workflow.

#### Is this legal to use?

This actor is intended for collecting publicly available Instagram profile content. You should always make sure your use of the data follows applicable laws, platform rules, and your organization’s policies, especially if you plan to republish or analyze the results commercially.

#### Can I schedule it to run automatically?

Yes, you can run it whenever you need fresh data, including on a recurring schedule if your workflow requires regular updates. This is useful for monitoring a profile over time, tracking engagement changes, or keeping a content archive up to date.

# Actor input Schema

## `username_or_id_or_url` (type: `string`):

Enter an Instagram username, user ID, or profile URL to fetch public feed posts and reels.

## `max_results` (type: `integer`):

Limit how many posts and reels to collect.

## Actor input object example

```json
{
  "username_or_id_or_url": "mrbeast",
  "max_results": 10
}
```

# 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 = {
    "username_or_id_or_url": "mrbeast"
};

// Run the Actor and wait for it to finish
const run = await client.actor("datamagnet/instagram-user-posts-and-reels-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 = { "username_or_id_or_url": "mrbeast" }

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

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "✅ Instagram User Posts And Reels Scraper",
        "description": "Fetch public Instagram feed posts and reels from any profile into a clean dataset. Enter a username, user ID, or profile URL, and collect items automatically up to your limit with optional safer embed links for websites and reports.",
        "version": "0.0",
        "x-build-id": "NVHNuNRFKbwFXL1fB"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/datamagnet~instagram-user-posts-and-reels-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-datamagnet-instagram-user-posts-and-reels-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/datamagnet~instagram-user-posts-and-reels-scraper/runs": {
            "post": {
                "operationId": "runs-sync-datamagnet-instagram-user-posts-and-reels-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/datamagnet~instagram-user-posts-and-reels-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-datamagnet-instagram-user-posts-and-reels-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",
                "required": [
                    "username_or_id_or_url"
                ],
                "properties": {
                    "username_or_id_or_url": {
                        "title": "Instagram username, ID, or URL",
                        "type": "string",
                        "description": "Enter an Instagram username, user ID, or profile URL to fetch public feed posts and reels."
                    },
                    "max_results": {
                        "title": "Maximum results",
                        "type": "integer",
                        "description": "Limit how many posts and reels to collect.",
                        "default": 10
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
