# Instagram Profile Posts & Reels Scraper · No Login (`data-slayer/instagram-posts`) Actor

Scrape all posts from any Instagram profile — no login. Get likes, comments, shares, captions with parsed hashtags & mentions, tagged users, collaborators, carousel media, video URLs, and timestamps. 107 fields per post including a 24-field creator profile. JSON/CSV/Excel.

- **URL**: https://apify.com/data-slayer/instagram-posts.md
- **Developed by:** [Data Slayer](https://apify.com/data-slayer) (community)
- **Categories:** Social media, Developer tools, Automation
- **Stats:** 729 total users, 260 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

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

## How to integrate an Actor?

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

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Instagram User Posts Scraper (No Login Required)

Extract comprehensive Instagram post data without authentication or cookies. This scraper retrieves engagement metrics, captions, media URLs, and user information from any public Instagram profile—perfect for influencers analyzing their content performance and optimizing future strategies.

### 📺 Video Tutorial: How it Works

https://www.youtube.com/watch?v=WY\_aPfvIqkE

***

### Inputs

| Field | Type | Description |
|-------|------|-------------|
| username | String | Instagram username, user ID, or profile URL of the target account (e.g., "cristiano") |

### Outputs

**Formats**: JSON, CSV, Excel

**Key Fields**:

- `id` - Unique post identifier
- `code` - Instagram shortcode for the post
- `taken_at` - Unix timestamp when post was created
- `taken_at_date` - ISO 8601 formatted date
- `like_count` - Number of likes on the post
- `comment_count` - Number of comments
- `share_count` - Number of shares
- `caption.text` - Full caption text
- `caption.hashtags` - Array of hashtags used
- `caption.mentions` - Array of mentioned users
- `user.username` - Profile username
- `user.full_name` - Profile display name
- `user.is_verified` - Verification status
- `carousel_media` - Array of images/videos in carousel posts
- `image_versions.items` - URLs for post images at different resolutions
- `tagged_users` - Array of users tagged in the post
- `coauthor_producers` - Collaborators on the post
- `is_video` - Boolean indicating video content
- `thumbnail_url` - Post thumbnail URL

### How to Use

**Step 1**: Enter the target Instagram username in the `username` field (e.g., "cristiano", "whoop", or a full profile URL).

**Step 2**: Configure any additional settings like maximum posts to retrieve or date ranges if available.

**Step 3**: Run the scraper and download your results in JSON, CSV, or Excel format for immediate analysis.

### Sample Output

```json
{
  "id": "3786151211327352732",
  "code": "DSLHHeBFO-c",
  "taken_at": 1765564421,
  "taken_at_date": "2025-12-12T18:33:41+00:00",
  "like_count": 502341,
  "comment_count": 6294,
  "share_count": 3928,
  "caption": {
    "text": "Wherever you play, these bands keep you ready for every moment. Are you home or away? 👀👇",
    "hashtags": [],
    "mentions": []
  },
  "user": {
    "username": "whoop",
    "full_name": "WHOOP",
    "id": "1431248158",
    "is_verified": true,
    "is_private": false
  },
  "carousel_media_count": 2,
  "is_video": false,
  "media_type": 8,
  "tagged_users": [
    {
      "user": {
        "username": "cristiano",
        "full_name": "Cristiano Ronaldo",
        "is_verified": true
      }
    }
  ],
  "thumbnail_url": "https://scontent-vie1-1.cdninstagram.com/v/t51.82787-15/589392008_18552024283016159_1425048830652491957_n.jpg"
}
```

***

### Key Features

- 🔒 **Cookieless / No Login Required** - Access public Instagram data without authentication, eliminating account suspension risks and simplifying your workflow
- 📈 **Scalable Architecture** - Extract posts from multiple profiles efficiently with built-in rate limiting and error handling for reliable large-scale operations
- ✅ **Rich Profile Data** - Capture complete post details including like counts, comment counts, share counts, captions with hashtags and mentions, carousel media, tagged users, and verification status
- ⚡ **Fast & Reliable** - Optimized extraction engine delivers results quickly while respecting platform guidelines and maintaining consistent uptime
- 📊 **Export-Ready Formats** - Download your data in JSON, CSV, or Excel formats for immediate analysis in your preferred tools

### Use Cases

**Content Creators & Influencers**: Track your post performance over time by extracting engagement metrics (likes, comments, shares) and caption data to identify which content types resonate most with your audience and inform your content calendar.

**Social Media Analysts**: Build comprehensive datasets of Instagram posts to analyze trends, benchmark performance against competitors, and generate insights about optimal posting times, hashtag effectiveness, and content strategies.

**Marketing & Sales Teams**: Generate qualified leads by identifying high-engagement posts, extracting tagged users and collaborators, and discovering potential brand partners or influencers for outreach campaigns.

### Important Considerations

This scraper only works with public Instagram profiles. Private accounts cannot be accessed without authentication. Ensure the target username corresponds to a public profile to retrieve post data successfully.

This Instagram scraper provides a powerful instagram data extractor solution for anyone looking to extract instagram posts and export instagram posts for analysis, making it an essential social media scraping tool for instagram lead generation and comprehensive instagram user posts research.

# Actor input Schema

## `username` (type: `string`):

Instagram username, user ID, or profile URL

## `maxPages` (type: `integer`):

Maximum number of pages to fetch (pagination handled automatically)

## Actor input object example

```json
{
  "username": "cristiano",
  "maxPages": 1
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

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

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

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

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

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

```

## Python example

```python
from apify_client import ApifyClient

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

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("data-slayer/instagram-posts").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call data-slayer/instagram-posts --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,data-slayer/instagram-posts"
        }
    }
}

```

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/woVLyadFOPBH5uILr/builds/2z89OFDPwGseBKpab/openapi.json
