# Threads Brand Mentions, Keyword Alerts & Influencer Discovery (`scrapemint/meta-threads-intelligence`) Actor

Monitor Meta Threads for brand mentions, keyword alerts, and creator activity. Input handles, search terms, or post URLs. Returns text, like and reply counts, mentions, hashtags, media URLs, and timestamps. Built for social listening, PR teams, and influencer marketers. Pay per post.

- **URL**: https://apify.com/scrapemint/meta-threads-intelligence.md
- **Developed by:** [Ken M](https://apify.com/scrapemint) (community)
- **Categories:** Developer tools, Social media, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## 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 Intelligence — Brand Mentions, Keyword Alerts & Influencer Discovery

Monitor Meta Threads for brand mentions, keyword alerts, and creator activity. Every row carries text, like and reply counts, mentions, hashtags, media URLs, and the post timestamp. Inputs: handles, search terms, or specific post URLs. Built for social listening teams, PR, competitive intel, and influencer marketers. Pay per post.

**Ranks for:** Threads scraper, Threads API alternative, Threads brand monitoring, Threads keyword alerts, Threads influencer discovery, Meta Threads social listening, Threads mention tracking.

---

### How it works

```mermaid
flowchart LR
    A[Handles, keywords,<br/>or post URLs] --> B[Threads.com SPA]
    B --> C[Intercept GraphQL<br/>response payloads]
    C --> D[Normalize to flat<br/>post rows]
    D --> E[JSON dataset]
````

The actor opens each profile, search results page, or post permalink in a real Chromium with a generated fingerprint, then captures the GraphQL responses Threads' own front end consumes. Posts are deduped by code so multi page results from infinite scroll do not double count.

***

### Who uses this

| Role | Use case |
|---|---|
| **PR and brand teams** | Catch every Threads mention of your brand, product, or executives. |
| **Competitive intel** | Track competitor product launches, customer complaints, and feature buzz. |
| **Influencer marketers** | Discover creators in a topic by ranking by likes and replies. |
| **Crisis ops** | Surface sudden spikes around a keyword to the on call channel. |
| **Researchers** | Build datasets of public Threads conversations on any topic. |

***

### Quick start

**Pull recent posts from a handle:**

```json
{
  "usernames": ["zuck"],
  "maxItemsPerSource": 25
}
```

**Brand monitoring across keywords:**

```json
{
  "searchTerms": ["acme corp", "@acme", "acme launch"],
  "minLikes": 5,
  "maxItemsPerSource": 100
}
```

**Mix handles and keywords in one run:**

```json
{
  "usernames": ["mosseri", "zuck"],
  "searchTerms": ["instagram launch"],
  "verifiedOnly": true
}
```

**Hydrate specific post URLs:**

```json
{
  "postUrls": [
    "https://www.threads.com/@zuck/post/CzHTBfJv2TK"
  ]
}
```

***

### Sample output

```json
{
  "id": "3141592653589793238",
  "code": "CzHTBfJv2TK",
  "url": "https://www.threads.com/@zuck/post/CzHTBfJv2TK",
  "author": {
    "username": "zuck",
    "displayName": "Mark Zuckerberg",
    "verified": true,
    "followerCount": 10500000,
    "profilePicUrl": "https://scontent.cdninstagram.com/..."
  },
  "text": "Excited to share what we have been building...",
  "createdAt": "2026-04-28T17:32:11.000Z",
  "likeCount": 42118,
  "replyCount": 3104,
  "repostCount": 812,
  "quoteCount": 401,
  "mentions": ["instagram", "mosseri"],
  "hashtags": ["threads", "launch"],
  "mediaUrls": [
    "https://scontent.cdninstagram.com/.../image1.jpg"
  ],
  "isReply": false,
  "language": "en",
  "source": "username:zuck",
  "sourceType": "username",
  "scrapedAt": "2026-05-03T13:45:00.000Z"
}
```

***

### Input modes

| Field | Use it for |
|---|---|
| `usernames` | Pull recent posts from a creator. Returns the user's feed of original posts and reposts. |
| `searchTerms` | Brand and topic monitoring. Returns top matching posts across all of Threads. |
| `postUrls` | Hydrate a known post permalink with current engagement counts. |

You can mix all three in a single run. The `dedupe` flag prevents the same post showing up twice when a creator post also matches a keyword search.

***

### Schedule it

Run hourly to catch every new mention of your brand. The dedupe key value store ensures the same post is not pushed twice across runs unless engagement counts changed.

```mermaid
flowchart LR
    A[Cron every 60 min] --> B[Run actor with<br/>brand keywords]
    B --> C{New posts?}
    C -- Yes --> D[Webhook to Slack<br/>or your CRM]
    C -- No --> E[Sleep]
```

***

### Pricing

The first 50 posts per run are free. After that, $0.002 per post pushed. Search and profile fetches are not metered, so a low signal keyword search only costs for the matches it returns.

***

### FAQ

#### Where does the data come from?

Public Threads pages on threads.com, rendered through a real Chromium with fingerprint injection. The actor reads the same GraphQL payloads the Threads web UI consumes.

#### Do I need a Meta account or token?

No. Only public posts are returned and no login is performed.

#### How fresh is the data?

Real time. Each run hits the live Threads page so you see the same engagement counts the public web shows.

#### Can I get private or follower only posts?

No. Only publicly visible posts are scraped. Posts behind a private account or marked follower only are skipped.

#### How many posts can I pull per handle?

The actor scrolls the profile to trigger lazy loading. The default 3 scroll passes typically yields 25 to 40 recent posts. Increase `scrollPasses` for deeper history at the cost of run time.

#### Will it work for non English posts?

Yes. Text is captured as Unicode and the `language` field comes from Threads' own language detection.

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

Yes. Use the Apify scheduler. Hourly catches new brand mentions. Daily is enough for creator activity tracking.

#### What happens if Threads soft blocks the request?

The actor uses fingerprinted Chrome and rotates Apify proxy sessions. If a single source is blocked the run continues with the others and the failed request is logged.

#### Is this affiliated with Meta?

No. This is a third party Apify actor that consumes public Threads pages. Meta is not involved.

***

### Related actors

- **Instagram Scraper** — public Instagram profiles, posts, and reel metrics
- **TikTok Scraper** — TikTok video and creator stats
- **YouTube Scraper** — YouTube video metadata and comment threads
- **LinkedIn Profile Posts Scraper** — recent posts from any public LinkedIn profile
- **Reddit Lead Monitor** — keyword alerts for Reddit threads and comments

# Actor input Schema

## `usernames` (type: `array`):

Public Threads handles to pull recent posts from. Leading @ is optional. Examples: zuck, mosseri, natemurray.

## `searchTerms` (type: `array`):

Keyword searches against Threads. Returns top matching posts. Use brand names, product names, or topics for monitoring.

## `postUrls` (type: `array`):

Specific post permalinks (https://www.threads.com/@user/post/CODE). Returns the post and any author engagement metrics rendered on the page.

## `minLikes` (type: `integer`):

Drop posts with fewer likes. Useful for filtering noise on broad keyword searches. Set to 0 to keep everything.

## `minReplies` (type: `integer`):

Drop posts with fewer replies.

## `verifiedOnly` (type: `boolean`):

Keep only posts from accounts with the Meta verified badge.

## `maxItemsPerSource` (type: `integer`):

Cap on posts returned per handle, search term, or post URL.

## `maxItemsTotal` (type: `integer`):

Hard cap across all sources. Controls total cost.

## `scrollPasses` (type: `integer`):

Number of times to scroll the page to trigger lazy loaded posts. Each pass typically loads 5 to 10 more posts. Higher values cost more time per source.

## `dedupe` (type: `boolean`):

Skip posts already pushed in previous runs (key is post code). Turn off to track engagement changes over time.

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

Apify proxy. Threads accepts datacenter for moderate volume. Switch to residential if you see soft blocks.

## Actor input object example

```json
{
  "usernames": [
    "zuck"
  ],
  "searchTerms": [],
  "postUrls": [],
  "minLikes": 0,
  "minReplies": 0,
  "verifiedOnly": false,
  "maxItemsPerSource": 25,
  "maxItemsTotal": 100,
  "scrollPasses": 3,
  "dedupe": true,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# 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 = {
    "usernames": [
        "zuck"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapemint/meta-threads-intelligence").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 = {
    "usernames": ["zuck"],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("scrapemint/meta-threads-intelligence").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 '{
  "usernames": [
    "zuck"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call scrapemint/meta-threads-intelligence --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Threads Brand Mentions, Keyword Alerts & Influencer Discovery",
        "description": "Monitor Meta Threads for brand mentions, keyword alerts, and creator activity. Input handles, search terms, or post URLs. Returns text, like and reply counts, mentions, hashtags, media URLs, and timestamps. Built for social listening, PR teams, and influencer marketers. Pay per post.",
        "version": "0.1",
        "x-build-id": "WwjtWX1QNwjKh6E17"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapemint~meta-threads-intelligence/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapemint-meta-threads-intelligence",
                "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/scrapemint~meta-threads-intelligence/runs": {
            "post": {
                "operationId": "runs-sync-scrapemint-meta-threads-intelligence",
                "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/scrapemint~meta-threads-intelligence/run-sync": {
            "post": {
                "operationId": "run-sync-scrapemint-meta-threads-intelligence",
                "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",
                "properties": {
                    "usernames": {
                        "title": "Threads handles",
                        "type": "array",
                        "description": "Public Threads handles to pull recent posts from. Leading @ is optional. Examples: zuck, mosseri, natemurray.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "searchTerms": {
                        "title": "Search terms",
                        "type": "array",
                        "description": "Keyword searches against Threads. Returns top matching posts. Use brand names, product names, or topics for monitoring.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "postUrls": {
                        "title": "Post URLs",
                        "type": "array",
                        "description": "Specific post permalinks (https://www.threads.com/@user/post/CODE). Returns the post and any author engagement metrics rendered on the page.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "minLikes": {
                        "title": "Minimum likes",
                        "minimum": 0,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Drop posts with fewer likes. Useful for filtering noise on broad keyword searches. Set to 0 to keep everything.",
                        "default": 0
                    },
                    "minReplies": {
                        "title": "Minimum replies",
                        "minimum": 0,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Drop posts with fewer replies.",
                        "default": 0
                    },
                    "verifiedOnly": {
                        "title": "Verified authors only",
                        "type": "boolean",
                        "description": "Keep only posts from accounts with the Meta verified badge.",
                        "default": false
                    },
                    "maxItemsPerSource": {
                        "title": "Max posts per source",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Cap on posts returned per handle, search term, or post URL.",
                        "default": 25
                    },
                    "maxItemsTotal": {
                        "title": "Max posts per run",
                        "minimum": 1,
                        "maximum": 50000,
                        "type": "integer",
                        "description": "Hard cap across all sources. Controls total cost.",
                        "default": 100
                    },
                    "scrollPasses": {
                        "title": "Scroll passes",
                        "minimum": 0,
                        "maximum": 30,
                        "type": "integer",
                        "description": "Number of times to scroll the page to trigger lazy loaded posts. Each pass typically loads 5 to 10 more posts. Higher values cost more time per source.",
                        "default": 3
                    },
                    "dedupe": {
                        "title": "Deduplicate across runs",
                        "type": "boolean",
                        "description": "Skip posts already pushed in previous runs (key is post code). Turn off to track engagement changes over time.",
                        "default": true
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Apify proxy. Threads accepts datacenter for moderate volume. Switch to residential if you see soft blocks.",
                        "default": {
                            "useApifyProxy": true
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
