# Threads Profile & Posts Scraper (`red.cars/threads-scraper`) Actor

Scrape Threads profile info + posts. Extract follower count, bio, profile details, AND 15-50 posts per profile. More data than profile-only scrapers at 40% lower cost. JSON, CSV, Excel export.

- **URL**: https://apify.com/red.cars/threads-scraper.md
- **Developed by:** [AutomateLab](https://apify.com/red.cars) (community)
- **Categories:** Social media, Developer tools, Other
- **Stats:** 194 total users, 13 monthly users, 98.8% runs succeeded, 9 bookmarks
- **User rating**: 1.00 out of 5 stars

## Pricing

Pay per event

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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 Profile & Posts Scraper

[![Apify Actor](https://img.shields.io/badge/Apify-Actor-blue?logo=apify)](https://apify.com/red.cars/threads-scraper)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)


> Scrape Threads profile info + posts


### Description
Scrape Threads profile info + posts. Extract follower count, bio, profile details, AND 15-50 posts per profile. More data than profile-only scrapers at 40% lower cost. JSON, CSV, Excel export.


### Features

📌 Status
🧠 Context
[2026-03-12] — outputSchema description added (spec-005)

### How It Works

This actor uses intelligent extraction with Apify's proxy infrastructure to gather public data from Threads Profile & Posts Scraper. It handles authentication, pagination, and error recovery automatically.

### Quick Start

```bash
## Run via Apify API
apify run -a red.cars/threads-scraper

## Or configure input and click Run on:
## https://apify.com/red.cars/threads-scraper
````

#### Using as an MCP Tool

#### Running on Apify Platform

Set `APIFY_API_KEY` in your Apify Console secrets, configure input via the Actor input schema UI, and click **Run**.

### Input Schema

| Parameter | Type | Description | Default |
|-----------|------|-------------|---------|
| `urls` | array | Enter Threads usernames or profile URLs. Examples: 'nike', '@cnn', 'https://www.threads.net/@zuck' | nike,cnn |
| `maxPosts` | integer | Maximum posts to extract per profile | 5 |
| `includeComments` | boolean | Extract comments for each post | false |
| `maxResults` | integer | The maximum total number of items to extract. | 5 |
| `proxyType` | string | Choose your preferred balance of cost vs reliability. Standard (Datacenter) is faster; Premium (Residential) is most reliable for high-security targets.<br>Options: `DATACENTER`, `RESIDENTIAL` | RESIDENTIAL |
| `debugMode` | boolean | Enable minimal extraction for health checks and testing. Guarantees success within 300s. | false |
| `exportFormat` | string | Choose output format. Use 'markdown' for token-efficient LLM-ready Threads content.<br>Options: `json`, `csv`, `markdown` | json |
| `checkOnly` | boolean | When true, returns immediately with capability metadata without scraping. Used by AI agents to verify availability before committing to a paid run. Free, <5 seconds. | false |

### Output Schema

| Field | Type | Description |
|-------|------|-------------|
| `results` | string | Meta Threads posts and user profiles with engagement data. Each result contains: type, username, displayName, bio, followers, isVerified (profiles) or postId, postText, timestamp, likes, replies, reposts, hashtags, mentions, mediaUrls (posts). Use for brand monitoring, influencer research, social listening on Threads. AI agents: search by @handle or keyword. |

### Example Output

```json
{
  "results": [
    {
      "url": "https://example.com/profile",
      "username": "example_user",
      "fullName": "Example User",
      "followersCount": 10000,
      "followingCount": 500,
      "postsCount": 250,
      "isVerified": false,
      "biography": "Example bio text",
      "latestPosts": [],
      "scrapedAt": "2026-03-23T13:24:33.638Z"
    }
  ]
}
```

### Pricing

### Use Cases

- **Influencer Research**: Identify and evaluate potential influencers by engagement metrics and audience quality
- **Competitor Monitoring**: Track competitor presence and activity on Target Platform
- **Lead Generation**: Build targeted lead lists from public profiles and contact information
- **Market Intelligence**: Gather market intelligence and trend data for business decisions
- **Content Aggregation**: Collect content for analysis, archiving, or republication

### FAQ

#### Do I need an API key?

No, this actor does not require an API key. It uses Apify proxy infrastructure for reliable extraction.

#### How does pricing work?

This actor uses Apify's Pay-Per-Event model. You are charged per successful result returned. No charge for queries that return zero results.

#### What are the rate limits?

Rate limits depend on your Apify plan. Higher-tier plans provide more compute units and faster extraction.

#### How do I increase success rate?

- Enable **Premium (Residential)** proxy for high-security targets
- Reduce concurrency for rate-limited profiles
- Use debug mode to test before full extraction

#### Can I run this on a schedule?

Yes, use Apify Scheduler to run this actor on a cron schedule for continuous monitoring.

#### How do I export to CRM?

Set `exportFormat` to `salesforce` or `hubspot` for direct CRM import format.

### Troubleshooting

| Error | Cause | Fix |
|-------|-------|-----|
| NETWORK\_ERROR | Network connectivity issue | Check internet connection, retry with proxy |
| VALIDATION\_ERROR | Invalid input parameters | Review input schema and retry |
| PLATFORM\_ERROR | Instagram platform issue | Instagram may be experiencing issues, try again later |

### Known Limitations

- **Private accounts**: Cannot extract data from private accounts without following
- **Rate limiting**: Platform may temporarily block repeated requests from same IP
- **Data freshness**: Extracted data reflects moment of extraction; historical data may be limited
- **Proxy requirements**: High-security targets may require residential proxy for reliable extraction
- **Content limits**: Platform-imposed limits on historical post retrieval

### Legal

**Data Source**: the target platform (the target platform.com)

**Terms of Service**: This actor is provided for legitimate data collection purposes only. Users must comply with the target platform's Terms of Service and applicable laws. Red.cars is not responsible for misuse of this tool.

**Privacy**: All extracted data is processed in accordance with applicable privacy laws. Do not use this tool for unauthorized data collection or privacy-violating activities.

**Attribution**: When using the target platform data, comply with their attribution requirements and data policies.

***

*red.cars Intelligence Fleet • [apify.com/red.cars](https://apify.com/red.cars)*

# Actor input Schema

## `urls` (type: `array`):

Enter Threads usernames or profile URLs. Examples: 'nike', '@cnn', 'https://www.threads.net/@zuck'

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

Maximum posts to extract per profile (50-100+ posts vs 15-30 for standard scrapers)

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

Extract comments for each post (increases processing time)

## `maxComments` (type: `integer`):

Maximum comments to extract per post (when comments are enabled)

## `onlyVerified` (type: `boolean`):

Extract only from verified (blue checkmark) accounts

## `minEngagement` (type: `integer`):

Skip posts with total engagement (likes + replies + reposts) below this number

## `dateFrom` (type: `string`):

Extract posts from this date onwards (YYYY-MM-DD format)

## `dateTo` (type: `string`):

Extract posts until this date (YYYY-MM-DD format)

## `proxyType` (type: `string`):

Choose your preferred balance of cost vs reliability. You control proxy costs from your Apify plan.

## `proxyConfiguration` (type: `object`):

Advanced proxy configuration options

## `maxResults` (type: `integer`):

The maximum total number of items to extract (Profiles/Posts).

## `exportFormat` (type: `string`):

Choose output format. Use 'markdown' for token-efficient LLM-ready Threads content.

## Actor input object example

```json
{
  "urls": [
    "nike",
    "cnn",
    "zuck"
  ],
  "maxPosts": 20,
  "includeComments": false,
  "maxComments": 20,
  "onlyVerified": false,
  "minEngagement": 0,
  "proxyType": "DATACENTER",
  "maxResults": 100,
  "exportFormat": "json"
}
```

# 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("red.cars/threads-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 = {}

# Run the Actor and wait for it to finish
run = client.actor("red.cars/threads-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 '{}' |
apify call red.cars/threads-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Threads Profile & Posts Scraper",
        "description": "Scrape Threads profile info + posts. Extract follower count, bio, profile details, AND 15-50 posts per profile. More data than profile-only scrapers at 40% lower cost. JSON, CSV, Excel export.",
        "version": "0.0",
        "x-build-id": "xBTGWuQxje81qwa93"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/red.cars~threads-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-red.cars-threads-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/red.cars~threads-scraper/runs": {
            "post": {
                "operationId": "runs-sync-red.cars-threads-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/red.cars~threads-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-red.cars-threads-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": [
                    "urls"
                ],
                "properties": {
                    "urls": {
                        "title": "Threads Profiles to Scrape",
                        "minItems": 1,
                        "maxItems": 100,
                        "type": "array",
                        "description": "Enter Threads usernames or profile URLs. Examples: 'nike', '@cnn', 'https://www.threads.net/@zuck'",
                        "default": [
                            "nike",
                            "cnn"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxPosts": {
                        "title": "Posts per Profile",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum posts to extract per profile (50-100+ posts vs 15-30 for standard scrapers)",
                        "default": 20
                    },
                    "includeComments": {
                        "title": "Include Comments",
                        "type": "boolean",
                        "description": "Extract comments for each post (increases processing time)",
                        "default": false
                    },
                    "maxComments": {
                        "title": "Comments per Post",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Maximum comments to extract per post (when comments are enabled)",
                        "default": 20
                    },
                    "onlyVerified": {
                        "title": "Verified Accounts Only",
                        "type": "boolean",
                        "description": "Extract only from verified (blue checkmark) accounts",
                        "default": false
                    },
                    "minEngagement": {
                        "title": "Minimum Engagement",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Skip posts with total engagement (likes + replies + reposts) below this number",
                        "default": 0
                    },
                    "dateFrom": {
                        "title": "From Date",
                        "type": "string",
                        "description": "Extract posts from this date onwards (YYYY-MM-DD format)"
                    },
                    "dateTo": {
                        "title": "To Date",
                        "type": "string",
                        "description": "Extract posts until this date (YYYY-MM-DD format)"
                    },
                    "proxyType": {
                        "title": "Proxy Reliability Level",
                        "enum": [
                            "DATACENTER",
                            "RESIDENTIAL"
                        ],
                        "type": "string",
                        "description": "Choose your preferred balance of cost vs reliability. You control proxy costs from your Apify plan.",
                        "default": "DATACENTER"
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Settings (Advanced)",
                        "type": "object",
                        "description": "Advanced proxy configuration options"
                    },
                    "maxResults": {
                        "title": "Total Results Limit",
                        "minimum": 1,
                        "type": "integer",
                        "description": "The maximum total number of items to extract (Profiles/Posts).",
                        "default": 100
                    },
                    "exportFormat": {
                        "title": "Export Format",
                        "enum": [
                            "json",
                            "csv",
                            "markdown"
                        ],
                        "type": "string",
                        "description": "Choose output format. Use 'markdown' for token-efficient LLM-ready Threads content.",
                        "default": "json"
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
