Threads Tag API
Get a topic tag's volume: how many threads use it in total and how many recently.
- 1 credit per call
- Failed calls are free
- Updated
- threads.tag
{ "title": "photography · 43M threads", "canonical_url": "https://www.threads.com/tag/photography", "description": "80K recent threads · Discover conversations, thoughts, photos and videos related to photography on Threads.", "recent_threads": 80000, "tag_url": "https://www.threads.com/tag/photography", "total_threads": 43000000}
What you send
The input
object of the request, with every field the endpoint accepts.
| Field | Type | Required | What it does | Example |
|---|---|---|---|---|
| tag | string | yes | The topic tag, with or without #. | photography |
Fields it returns
What each record in the response holds, with the values from the sample above.
| Field | Type | What it is | Example |
|---|---|---|---|
| total_threads | integer | Threads with the tag, as Threads shows the count. | 43,000,000 |
| recent_threads | integer | Recent threads with the tag, as Threads shows the count. | 80,000 |
| title | string | The page title Threads shows. | photography · 43M threads |
| tag_url | string | The tag's page on Threads. | https://www.threads.com/tag/photography |
| canonical_url | string | The page's address on Threads. | https://www.threads.com/tag/photography |
| description | string | The page description Threads shows. | 80K recent threads · Discover conversations, thoughts, photos a… |
Call it from your code, or ask your agent
Set UPSCRAPE_API_KEY to your key and copy a working request.
curl --request POST \ --url https://data.upscrape.com/execute \ --header "Authorization: Bearer $UPSCRAPE_API_KEY" \ --header "Content-Type: application/json" \ --header "Prefer: wait=30" \ --data '{ "capability": "threads.tag", "input": { "tag": "photography" }}'
import jsonimport osimport requestspayload = json.loads(r'''{ "capability": "threads.tag", "input": { "tag": "photography" }}''')response = requests.post( "https://data.upscrape.com/execute", headers={ "Authorization": f"Bearer {os.environ['UPSCRAPE_API_KEY']}", "Content-Type": "application/json", "Prefer": "wait=30", }, json=payload,)response.raise_for_status()print(json.dumps(response.json(), indent=2))
const response = await fetch("https://data.upscrape.com/execute", { method: "POST", headers: { "Authorization": `Bearer ${process.env.UPSCRAPE_API_KEY}`, "Content-Type": "application/json", "Prefer": "wait=30", }, body: JSON.stringify({ "capability": "threads.tag", "input": { "tag": "photography" }}),});if (!response.ok) { throw new Error(`Upscrape request failed: ${response.status}`);}console.log(JSON.stringify(await response.json(), null, 2));
https://data.upscrape.com/mcp
Use Upscrape to check the #photography tag on Threads. How many threads use it, and how many recently?
More from the Threads API
The same data from other platforms
Threads Tag API FAQ
The short answers. The docs have the long ones.
How much does the Threads Tag API cost?
1 credit per successful call, shown before it runs. You buy credits once, and paid credits never expire.
What do I send?
Send tag. The input fields below list every option with its type and limits.
Do I need a Threads login?
No. It reads public Threads data; nothing runs on your account.
Can my AI agent call it?
Yes, over MCP: the agent finds threads.tag, checks its price and runs it with the same credits as the REST API.
Your first Threads call is free.
Up to 100 free credits to start, no card needed.