# Threads Post Scraper (`burbn/threads-post-scraper`) Actor

Scrape posts from any Threads profile. Extract post content, engagement metrics (likes, comments, reposts, shares), images, videos, and user information. Fast, reliable, and easy to use - get data in JSON/CSV format instantly!

- **URL**: https://apify.com/burbn/threads-post-scraper.md
- **Developed by:** [Kevin](https://apify.com/burbn) (community)
- **Categories:** Social media, Automation, Developer tools
- **Stats:** 35 total users, 3 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.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 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

## 🧵 Threads Post Scraper - Extract Threads Data Effortlessly

> 🚀 **Powerful Threads data extraction tool** - Scrape posts, engagement metrics, media content, and user information from any public Threads profile in minutes!

---

### 📋 Table of Contents

- [✨ Features](#-features)
- [🎯 What You Can Extract](#-what-you-can-extract)
- [🔧 How to Use](#-how-to-use)
- [📊 Input Parameters](#-input-parameters)
- [📤 Output Format](#-output-format)
- [💡 Use Cases](#-use-cases)
- [❓ FAQ](#-faq)

---

### ✨ Features

🎯 **Simple & Fast** - Just enter a username and get comprehensive post data  
📊 **Rich Data Extraction** - Posts, likes, comments, shares, reposts, and more  
🖼️ **Media Support** - Extract images and videos from posts  
👤 **User Information** - Get profile details along with post data  
⚡ **High Performance** - Scrape up to 100 posts per run  
🔄 **Real-time Data** - Get the latest posts and engagement metrics  
🎨 **Clean Output** - Well-structured JSON format ready for analysis  
🌐 **Public Profiles** - Works with any public Threads account  

---

### 🎯 What You Can Extract

This actor extracts comprehensive data from Threads profiles, including:

| Data Category | Information Extracted |
|--------------|----------------------|
| **Post Content** | Text content, post URLs, timestamps |
| **Engagement Metrics** | Likes count, comments count, reposts, shares |
| **Media Content** | Images, videos, thumbnails |
| **User Information** | Username, display name, profile picture, verification status |
| **Post Metadata** | Post ID, creation date, post type |

#### 📦 Complete Data Points

- ✅ Post text and captions
- ✅ Like counts
- ✅ Comment counts
- ✅ Repost counts
- ✅ Share counts
- ✅ Image URLs (all images in post)
- ✅ Video URLs
- ✅ Post timestamps
- ✅ Post URLs
- ✅ User profile information
- ✅ Verification badges
- ✅ Profile pictures

---

### 🔧 How to Use

#### Quick Start Guide

1️⃣ **Enter Username** - Provide the Threads username (without @ symbol)  
2️⃣ **Set Posts Limit** - Choose how many posts to scrape (10-100)  
3️⃣ **Run the Actor** - Click start and wait for results  
4️⃣ **Download Data** - Get your data in JSON, CSV, or Excel format  

#### 🎬 Example Usage

````

Username: kyliejenner
Posts Limit: 50

````

**Result:** Extract 50 latest posts from @kyliejenner's Threads profile with all engagement metrics and media content.

---

### 📊 Input Parameters

| Parameter | Type | Required | Description | Default | Range |
|-----------|------|----------|-------------|---------|-------|
| **Username** | String | ✅ Yes | Threads username without @ symbol (e.g., zuck, instagram, kyliejenner) | kyliejenner | - |
| **Posts Limit** | Integer | ❌ No | Maximum number of posts to scrape | 10 | 10-100 |

#### 💡 Input Tips

- 🔹 Enter username **without** the @ symbol
- 🔹 Use lowercase for consistency
- 🔹 Valid characters: letters, numbers, dots, underscores
- 🔹 Maximum username length: 30 characters
- 🔹 Profile must be **public** to scrape

---

### 📤 Output Format

The actor returns data in **JSON format** with the following structure:

```json
{
  "postId": "unique_post_identifier",
  "username": "kyliejenner",
  "displayName": "Kylie Jenner",
  "postText": "Post content here...",
  "likesCount": 15420,
  "commentsCount": 892,
  "repostsCount": 234,
  "sharesCount": 156,
  "images": ["image_url_1", "image_url_2"],
  "videos": ["video_url"],
  "postUrl": "https://threads.net/@username/post/...",
  "timestamp": "2024-01-03T10:30:00Z",
  "verified": true,
  "profilePicture": "profile_pic_url"
}
````

#### 📥 Export Options

- **JSON** - Perfect for developers and data processing
- **CSV** - Easy to open in Excel or Google Sheets
- **Excel** - Ready-to-use spreadsheet format
- **HTML** - Human-readable table format

***

### 💡 Use Cases

#### 🎯 Marketing & Brand Analysis

- 📈 Track competitor engagement metrics
- 🔍 Analyze trending content strategies
- 📊 Monitor brand mentions and sentiment
- 🎨 Study successful content formats

#### 📱 Social Media Management

- 📅 Content performance tracking
- 👥 Influencer research and analysis
- 🔔 Engagement rate monitoring
- 📸 Media content collection

#### 📊 Data Analysis & Research

- 🧪 Social media behavior studies
- 📉 Trend analysis and forecasting
- 🎓 Academic research projects
- 📰 Journalism and fact-checking

#### 🛍️ E-commerce & Business

- 🛒 Product launch monitoring
- 💬 Customer feedback collection
- 🌟 Influencer partnership evaluation
- 📣 Campaign performance tracking

***

### ❓ FAQ

#### 🔹 General Questions

**Q: What is Threads Post Scraper?**\
A: A powerful Apify actor that extracts posts, engagement metrics, and media content from public Threads profiles quickly and efficiently.

**Q: Do I need a Threads account to use this?**\
A: No! The actor works without requiring any Threads account or login credentials.

**Q: How long does it take to scrape posts?**\
A: Typically 1-3 minutes depending on the number of posts requested (10-100 posts).

**Q: Is this legal to use?**\
A: Yes, the actor only scrapes publicly available data from public profiles, which is legal for research and analysis purposes.

#### 🔹 Technical Questions

**Q: What format is the output data?**\
A: Data is provided in JSON format by default, but you can export to CSV, Excel, or HTML formats.

**Q: Can I scrape multiple profiles at once?**\
A: Currently, the actor processes one username per run. For multiple profiles, run the actor multiple times.

**Q: What happens if a profile is private?**\
A: The actor can only access public profiles. Private profiles will return limited or no data.

**Q: How many posts can I scrape?**\
A: You can scrape between 10 to 100 posts per run. Start with smaller numbers for testing.

#### 🔹 Data & Usage Questions

**Q: What data points are extracted?**\
A: Post content, likes, comments, reposts, shares, images, videos, timestamps, user info, and more. See the [What You Can Extract](#-what-you-can-extract) section.

**Q: Can I get historical posts?**\
A: Yes, the actor extracts the most recent posts up to your specified limit, which includes historical content.

**Q: Is the engagement data real-time?**\
A: Yes, the actor fetches current engagement metrics at the time of scraping.

**Q: Can I schedule automatic scraping?**\
A: Yes, you can set up scheduled runs on the Apify platform to automatically scrape at regular intervals.

#### 🔹 Troubleshooting

**Q: Why am I getting no results?**\
A: Check that the username is correct (without @), the profile is public, and you have a stable internet connection.

**Q: What if I get an error?**\
A: Verify the username spelling, ensure the profile exists, and check that your input parameters are within valid ranges.

**Q: Can I scrape verified accounts?**\
A: Yes, the actor works with both verified and non-verified public accounts.

**Q: What if a post has no images or videos?**\
A: Text-only posts will have empty arrays for images and videos fields in the output.

***

### 🏷️ Keywords

threads scraper, threads data extraction, threads post scraper, social media scraping, threads analytics, engagement metrics, instagram threads, threads api alternative, social media data, content analysis, influencer analytics, threads monitoring, social listening, threads insights, meta threads, threads automation, data extraction tool, web scraping, social media intelligence, threads research

***

### 🌟 Why Choose This Actor?

| Feature | Benefit |
|---------|---------|
| ⚡ **Fast Performance** | Get results in minutes, not hours |
| 🎯 **Accurate Data** | Reliable extraction with high precision |
| 💰 **Cost-Effective** | Pay only for what you use |
| 🔄 **Regular Updates** | Maintained and improved continuously |
| 🛡️ **Reliable** | Built on Apify's robust infrastructure |
| 📊 **Comprehensive** | All data points you need in one place |

***

#### 🚀 Ready to Extract Threads Data?

**Start scraping now and unlock powerful insights from Threads!**

⭐ **Star this actor** if you find it useful!

### Related Actors 🤝

- **[Threads Search Scraper](https://apify.com/burbn/threads-search-scraper)**

# Actor input Schema

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

Enter the Threads username (without @ symbol). Example: 'meta' or 'zuck'. This is the user whose posts you want to scrape.

## `maxPosts` (type: `integer`):

Maximum number of posts to scrape from the user's profile. The scraper will fetch posts in batches until this limit is reached. Set to 0 for unlimited (scrape all available posts). ⚠️ Higher values may take longer to complete.

## Actor input object example

```json
{
  "username": "meta",
  "maxPosts": 10
}
```

# Actor output Schema

## `postsOverview` (type: `string`):

Open the dataset view with an overview of all scraped posts including captions, authors, timestamps, and engagement metrics.

## `mediaContent` (type: `string`):

Open the dataset view with media information including images, videos, dimensions, and audio status.

## `engagementMetrics` (type: `string`):

Open the dataset view with comprehensive engagement metrics including likes, replies, reposts, quotes, and shares.

## `userProfiles` (type: `string`):

Open the dataset view with user profile details including profile pictures, verification status, and privacy settings.

# 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": "meta",
    "maxPosts": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("burbn/threads-post-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": "meta",
    "maxPosts": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("burbn/threads-post-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": "meta",
  "maxPosts": 10
}' |
apify call burbn/threads-post-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=burbn/threads-post-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Threads Post Scraper",
        "description": "Scrape posts from any Threads profile. Extract post content, engagement metrics (likes, comments, reposts, shares), images, videos, and user information. Fast, reliable, and easy to use - get data in JSON/CSV format instantly!",
        "version": "1.0",
        "x-build-id": "rwKqSZS7T2Wm4Z0b7"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/burbn~threads-post-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-burbn-threads-post-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/burbn~threads-post-scraper/runs": {
            "post": {
                "operationId": "runs-sync-burbn-threads-post-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/burbn~threads-post-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-burbn-threads-post-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"
                ],
                "properties": {
                    "username": {
                        "title": "Threads Username",
                        "pattern": "^[a-zA-Z0-9._]+$",
                        "type": "string",
                        "description": "Enter the Threads username (without @ symbol). Example: 'meta' or 'zuck'. This is the user whose posts you want to scrape."
                    },
                    "maxPosts": {
                        "title": "Maximum Posts to Scrape",
                        "minimum": 0,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum number of posts to scrape from the user's profile. The scraper will fetch posts in batches until this limit is reached. Set to 0 for unlimited (scrape all available posts). ⚠️ Higher values may take longer to complete.",
                        "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
