# Threads Profile Media Downloader (`igview-owner/threads-user-media-scraper`) Actor

Extract public Threads user posts in bulk, including videos, images, captions and engagement stats. Perfect for content research, influencer monitoring, brand tracking, and social media analytics. No login required, just provide a Threads username.

- **URL**: https://apify.com/igview-owner/threads-user-media-scraper.md
- **Developed by:** [Sachin Kumar Yadav](https://apify.com/igview-owner) (community)
- **Categories:** Social media, Developer tools, Videos
- **Stats:** 162 total users, 11 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 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

## 🧵 Threads Profile Media Downloader – Download Photos, Videos & Posts from Any Threads Profile

**Download photos, videos, and posts from any Threads profile effortlessly! Extract high-quality images, videos, carousel posts, captions, engagement metrics (likes, replies, reposts, quotes), and user information. Perfect for content archiving, social media analysis, influencer research, and competitive intelligence.**

***

### 📋 Table of Contents

- [✨ Features](#-features)
- [⚡ Quick Start](#-quick-start)
- [📊 Input Parameters](#-input-parameters)
- [📤 Output Format](#-output-format)
- [💡 Use Cases](#-use-cases)
- [❓ FAQ](#-faq)
- [🏷️ Tags](#️-Tags)

***

### ✨ Features

#### **Comprehensive Media & Data Extraction**

| Feature | Description |
|---------|-------------|
| 🖼️ **High-Quality Images** | Extract full-resolution images with dimensions and multiple size variants |
| 🎥 **Video Downloads** | Get video URLs with multiple quality options and audio detection |
| 🎠 **Carousel Posts** | Download all media from carousel/album posts |
| 📝 **Captions & Text** | Extract complete post captions and text content |
| 👤 **User Information** | Get username, full name, verification status, and profile pictures |
| 💬 **Engagement Metrics** | Collect likes, replies, reposts, and quote counts |
| 🕐 **Timestamps** | Accurate post timestamps in ISO 8601 format |
| 🔗 **Direct Post URLs** | Get direct links to all Threads posts |
| 📊 **Multiple Views** | Organized table views for images, videos, and engagement data |

***

### ⚡ Quick Start

#### 1️⃣ Download All Posts from a Profile

```json
{
  "username": "kimkardashian",
  "maxPosts": 50
}
```

#### 2️⃣ Download Large Dataset

```json
{
  "username": "zuck",
  "maxPosts": 200
}
```

***

### 📊 Input Parameters

#### Configuration Options

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `username` | String | ✅ Yes | - | Threads username (with or without @) |
| `maxPosts` | Integer | ❌ No | `50` | Maximum posts to fetch (1-500) |

#### 📝 Parameter Details

##### **username** (Required)

- Threads username to scrape
- Can include or exclude the `@` symbol
- Examples: `"kimkardashian"`, `"@zuck"`, `"instagram"`
- The actor automatically removes the `@` if provided

##### **maxPosts** (Optional)

- Maximum number of posts to download
- Range: `1` to `500`
- Default: `50`
- Higher values collect more historical data but take longer
- Posts are fetched in chronological order (newest first)

***

### 📤 Output Format

#### **Complete Post Example**

```json
{
  "post_id": "3374572439945687288",
  "post_code": "C7U48E_yTD4",
  "post_url": "https://www.threads.net/t/C7U48E_yTD4",
  "media_type": "video",
  "caption": "season 5, we're back! 🤍 the season premiere of #TheKardashians is now streaming on @hulu",
  "taken_at": "2024-05-23T18:21:15.000Z",
  "user_id": "63420375480",
  "username": "kimkardashian",
  "full_name": "Kim Kardashian",
  "is_verified": true,
  "profile_pic_url": "https://scontent-bru2-1.cdninstagram.com/v/t51.2885-19/358020137_785615143260672_1079515998759127892_n.jpg",
  "like_count": 2907,
  "has_liked": false,
  "direct_reply_count": 888,
  "repost_count": 107,
  "quote_count": 14,
  "image_url": "https://scontent-bru2-1.cdninstagram.com/v/t51.2885-15/532043059_1396927244718342_506115045744612345_n.jpg",
  "image_width": 640,
  "image_height": 1136,
  "original_width": 720,
  "original_height": 1280,
  "video_url": "https://scontent-bru2-1.cdninstagram.com/o1/v/t16/f2/m69/AQMG_6S5It1gMig1EAnYGptg7ugc4-PFDyZ8b1AulVlwBkiZr8Qvx_D5zpEHdpFSFgz8BQO09FWwTRrQPB6I4kGc.mp4",
  "video_type": 101,
  "has_audio": true,
  "carousel_media_count": 0,
  "accessibility_caption": null,
  "is_paid_partnership": false,
  "reply_control": "everyone",
  "can_reply": true,
  "is_reply": false,
  "scraped_at": "2024-12-03T07:33:00.000Z"
}
```

#### 🖼️ **Image Post Example**

```json
{
  "post_id": "3315691857824253756",
  "post_code": "C4DtC1qRQc8",
  "post_url": "https://www.threads.net/t/C4DtC1qRQc8",
  "media_type": "image",
  "caption": "👽👾",
  "taken_at": "2024-03-03T11:01:32.000Z",
  "username": "kimkardashian",
  "full_name": "Kim Kardashian",
  "is_verified": true,
  "like_count": 16488,
  "direct_reply_count": 1174,
  "repost_count": 366,
  "quote_count": 80,
  "image_url": "https://scontent-bru2-1.cdninstagram.com/v/t51.29350-15/430925631_1095402718448147_2559894442194773257_n.jpg",
  "image_width": 1441,
  "image_height": 1801,
  "video_url": null,
  "has_audio": false,
  "scraped_at": "2024-12-03T07:33:00.000Z"
}
```

#### 📊 **Output Fields Reference**

| Field | Type | Description |
|-------|------|-------------|
| `post_id` | String | Unique post identifier |
| `post_code` | String | Short post code used in URLs |
| `post_url` | String | Direct link to the Threads post |
| `media_type` | String | Type: `image`, `video`, `carousel`, or `text` |
| `caption` | String | Post caption/text content |
| `taken_at` | String | Post timestamp (ISO 8601) |
| `user_id` | String | User's unique ID |
| `username` | String | Threads username |
| `full_name` | String | User's display name |
| `is_verified` | Boolean | Verification status |
| `profile_pic_url` | String | Profile picture URL |
| `like_count` | Integer | Number of likes |
| `direct_reply_count` | Integer | Number of direct replies |
| `repost_count` | Integer | Number of reposts |
| `quote_count` | Integer | Number of quote posts |
| `image_url` | String | Best quality image URL |
| `image_width` | Integer | Image width in pixels |
| `image_height` | Integer | Image height in pixels |
| `video_url` | String | Video URL (best quality) |
| `has_audio` | Boolean | Whether video has audio |
| `video_versions` | Array | All video quality variants |
| `image_versions` | Array | All image size variants |
| `carousel_media` | Array | Carousel post media items |
| `scraped_at` | String | Data extraction timestamp |

***

### 💡 Use Cases

#### **Content Creators & Marketers**

- 📊 Analyze competitor content strategies
- 🎨 Download inspiration for creative projects
- 📈 Track engagement trends over time
- 🔍 Research successful post formats

#### **Researchers & Analysts**

- 📚 Archive social media content for research
- 📉 Study engagement patterns and metrics
- 🧪 Analyze influencer marketing campaigns
- 📊 Build datasets for machine learning

#### **Brands & Agencies**

- 👁️ Monitor brand mentions and content
- 🎯 Track influencer partnerships
- 📱 Collect user-generated content
- 💼 Competitive intelligence gathering

#### **Personal Use**

- 💾 Backup your own Threads content
- 📸 Download favorite posts and media
- 🗂️ Organize saved content collections
- 🎭 Create personal archives

***

### ❓ FAQ

#### **Q: Do I need a Threads account to use this actor?**

**A:** No. The actor works without requiring any Threads account or login credentials.

#### **Q: Can I download media from private Threads profiles?**

**A:** The actor can only access publicly available posts. Private profiles cannot be scraped.

#### **Q: How do I find a Threads username?**

**A:** Visit any Threads profile in your browser. The username appears in the URL: `threads.net/@username`

#### **Q: Can I download the actual media files?**

**A:** The actor provides direct URLs to all images and videos. You can download files using these URLs with a download manager or another tool.

#### **Q: What media types are supported?**

**A:** The actor extracts:

- ✅ Single images (all size variants)
- ✅ Videos (all quality variants)
- ✅ Carousel posts (multiple images/videos)
- ✅ Text-only posts

#### **Q: Do media URLs expire?**

**A:** Instagram/Threads media URLs may expire after some time. Download media promptly if you need to preserve it.

#### **Q: Can I scrape multiple profiles in one run?**

**A:** Currently, the actor processes one profile per run. For multiple profiles, run the actor multiple times or use Apify's scheduling features.

#### **Q: How many posts can I fetch?**

**A:** You can fetch between 1 and 500 posts per run using the `maxPosts` parameter.

#### **Q: Is this legal and compliant?**

**A:** This tool extracts only publicly available information. You are responsible for complying with Threads' Terms of Service, Instagram's Terms of Service, and all applicable laws. Always respect copyright and privacy.

#### **Q: What's the difference between replies, reposts, and quotes?**

**A:**

- **Replies**: Direct responses to the post
- **Reposts**: Sharing the post without adding content
- **Quotes**: Sharing the post with additional commentary

#### **Q: Can I filter by media type?**

**A:** The actor downloads all posts. Use the built-in table views (Images, Videos, Engagement) to filter results, or filter the dataset after download.

#### **Q: How accurate are the engagement metrics?**

**A:** Metrics are captured at the time of scraping and reflect real-time data from the Threads API.

***

### 🏷️ Tags

`threads scraper`, `threads downloader`, `threads media downloader`, `download threads photos`, `download threads videos`, `threads profile scraper`, `threads data extractor`, `threads api scraper`, `threads content downloader`, `threads image downloader`, `threads video downloader`, `threads post scraper`, `threads engagement data`, `threads analytics`, `threads metrics`, `social media scraper`, `instagram threads`, `threads by instagram`, `threads app scraper`, `threads profile data`, `threads user data`, `threads carousel downloader`, `threads backup tool`, `threads archiving`, `threads research tool`, `threads dataset`, `threads content analysis`, `threads influencer data`, `threads competitor analysis`, `apify threads`, `threads automation`

***

### 🚀 Get Started Now

**Ready to download Threads media and data?**

1. 🎯 Enter the **Threads username** (e.g., `kimkardashian`)
2. ⚙️ Set the **maximum posts** to download (1-500)
3. ▶️ Click **Start** to run the actor
4. 📥 Download your data in JSON, CSV, Excel, or HTML format
5. 📊 Use the built-in table views to browse images, videos, and engagement metrics
6. Click ["Try for free"](https://apify.com?fpr=ykgg9c) to test the actor

**⭐ If this actor helps your workflow, please give it a star!**

***

### Related Actors 🤝

- **[Threads Scraper Lite](https://apify.com/igview-owner/threads-scraper-lite)**
- **[Threads Scraper Pro](https://apify.com/igview-owner/threads-scraper-pro)**
- **[Threads Media Downloader](https://apify.com/igview-owner/threads-media-downloader)**
- **[Threads Profile Following Scraper](https://apify.com/igview-owner/threads-user-following-scraper)**
- **[Threads Profile Followers Scraper](https://apify.com/igview-owner/threads-user-followers-scraper)**
- **[Threads Profile Media Scraper](https://apify.com/igview-owner/threads-user-media-scraper)**
- **[Threads Profile Scraper](https://apify.com/igview-owner/meta-threads-profile-scraper)**
- **[Threads Search Scraper](https://apify.com/igview-owner/threads-search-scraper)**
- **[Threads Replies Scraper](https://apify.com/igview-owner/threads-replies-scraper)**

***

*Built with ❤️ for the Apify community | Threads Profile Media Downloader v1.0*

***

### 📞 Support

Need help? Have questions?

- 📧 Contact through Apify platform
- 💬 Check the FAQ section above
- 📚 Review the input/output documentation
- ⭐ Rate and review the actor

***

**Happy Scraping! 🧵✨**

# Actor input Schema

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

Enter the Threads username (e.g., 'kimkardashian' or '@kimkardashian'). The @ symbol is optional.

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

Maximum number of posts to fetch from the profile. Higher values may take longer to process but will collect more data.

## Actor input object example

```json
{
  "username": "steveaoki",
  "maxPosts": 5
}
```

# 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": "steveaoki",
    "maxPosts": 5
};

// Run the Actor and wait for it to finish
const run = await client.actor("igview-owner/threads-user-media-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": "steveaoki",
    "maxPosts": 5,
}

# Run the Actor and wait for it to finish
run = client.actor("igview-owner/threads-user-media-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": "steveaoki",
  "maxPosts": 5
}' |
apify call igview-owner/threads-user-media-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/dzppw51bhzK1qEUYS/builds/Cd1AJKllSQcH0e1y0/openapi.json
