Threads Search API
Search public Threads posts by keyword or hashtag and get normalized post records: text, author, and engagement.
Provider network
Providers ranked by traffic
Try it
Make your first request
{
"data": {
"posts": [
{
"code": "a1b2c3d4",
"createdUtc": 12.5,
"fullName": "Alex Rivera",
"id": "a1b2c3d4",
"likeCount": 12500,
"replyCount": 12500,
"repostCount": 12500,
"text": "A short example description of this item.",
"url": "https://example.com/page",
"username": "alex_rivera"
}
]
},
"found": true
}interface ThreadsSearchResponse {
data: {
posts: {
code: string;
createdUtc: number;
fullName: string;
id: string;
likeCount: number;
replyCount: number;
repostCount: number;
text: string;
url: string;
username: string;
}[];
} | null;
found: boolean;
}Full parameter and response reference - every field, type, and example for this endpoint.
Reference
Request, response, and price
Last verified 2026-09-16 · uptime and latency measured over 30dcurl -X POST https://api.getanyapi.com/v1/run/threads.search \
-H "Authorization: Bearer $ANYAPI_KEY" \
-H "Content-Type: application/json" \
-d '{"query":"trump"}'| Field | Type | Example value |
|---|---|---|
| Request body | ||
| query | string | "trump"Keyword or hashtag to search public Threads posts for; the # prefix is optional (e.g. AI agents). Threads matches text in posts, so search a brand or topic rather than a URL - a query that is only a domain is searched by its name (wander.com is searched as wander). |
| endDate | string | Only return posts published on or before this date, format YYYY-MM-DD (e.g. 2026-08-07). Threads pages backwards in time from here, so narrowing this is how you walk older results. |
| startDate | string | Only return posts published on or after this date, format YYYY-MM-DD (e.g. 2026-08-01). |
| Response | ||
| data | object | Wrapper holding the posts array. Present whenever the search ran, with an empty array when nothing matched; null only when the search could not run. |
| data.posts | object[] | Matching public post records: text, author, engagement counts, timestamp, and URL. Populated whenever the provider has data for the entity. |
| data.posts[].code | string | Threads post shortcode. |
| data.posts[].createdUtc | number | UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. |
| data.posts[].fullName | string | Display name of the author. Populated whenever the provider has data for the entity. |
| data.posts[].id | string | Post identifier. Populated whenever the provider has data for the entity. |
| data.posts[].likeCount | integer | Number of likes on the post. |
| data.posts[].replyCount | integer | Number of replies to the post. |
| data.posts[].repostCount | integer | Number of reposts of the post. |
| data.posts[].text | string | Post text content. Populated whenever the provider has data for the entity. |
| data.posts[].url | string | Canonical URL of the post. Populated whenever the provider has data for the entity. |
| data.posts[].username | string | Username of the author. Populated whenever the provider has data for the entity. |
| found | boolean | True when the search ran. An empty "posts" array means the search completed and nothing matched, which is an answer rather than a failure; false is reserved for a search the upstream could not run. |
| Price | ||
| Price per request | USD | $0.0012 |
| Price /1k req | USD | $1.20 |
FAQ
About the Threads Search API
The AnyAPI Threads Search API returns Threads search data as normalized JSON from one POST call to /v1/run/threads.search. Search public Threads posts by keyword or hashtag and get normalized post records: text, author, and engagement. AnyAPI routes each request across 2 sources and falls back automatically when one fails. It costs from $1.20 per 1,000 requests, in US dollars with no subscription and no monthly minimum. Over the last 30 days, 100.0% of Threads search calls through AnyAPI succeeded, with a median response time of 1.1 seconds across 472 measured calls.