SocialToAIStart freeConsole
POST/v1/search"platform": "threads"

Threads Search API

Find posts by keyword.

The Threads Search API searches Threads posts by keyword: text, author, likes, comment count and publish time, in the same response format as every other SocialToAI call. One call costs 2 credits ($0.004 to $0.0067 depending on the pack); failed calls are free. Call it over HTTP or from your AI client over MCP. Last tested 2026-10-17.

100 credits on sign-up, no card needed
2 creditsper call
Up to 20 itemsfirst page only
2026-10-17last tested
1000 Bsample response, 1 item

Last updated:

Request and response

curl https://api.socialtoai.com/v1/search \  -H "Authorization: Bearer $SOCIALTOAI_KEY" \  -H "Content-Type: application/json" \  -d '{    "platform": "threads",    "query": "nasa"  }'
import osimport requestsresponse = requests.post(    "https://api.socialtoai.com/v1/search",    headers={"Authorization": f"Bearer {os.environ['SOCIALTOAI_KEY']}"},    json={        "platform": "threads",        "query": "nasa",    },)print(response.json())
# Connected over MCP? Ask in plain words.Search Threads for posts about "nasa".# Your AI calls the search tool with:{  "platform": "threads",  "query": "nasa"}
Sign in to run2 creditsOpens in the Playground with these parameters after you sign in. It never runs by itself.
200 OK1000 B2 credits
{  "platform": "threads",  "status": "ok",  "items": [    {      "platform": "threads",      "id": "…",      "ref": "…",      "approx": [],      "type": "content",      "url": "https://example.com/…",      "format": "image",      "title": null,      "text": "…",      "published_at": "2025-03-07T01:13:54.000Z",      "author": {        "id": "…",        "username": "…",        "name": "…",        "verified": true,        "followers": null      },      "metrics": {        "likes": 43152,        "comments": 3630,        "shares": 1775,        "collects": null,        "views": null,        "reposts": 3369      },      "images": ["https://example.com/…"],      "hashtags": [],      "is_pinned": null    }  ],  "unavailable": ["title", "author.followers", "metrics.collects", "metrics.views"],  "page": {    "has_more": false  },  "cost_credits": 2}
@…·
likes 43,152comments 3,630shares 1,775collects nullviews nullreposts 3,369

Names and text were removed from the sample; the numbers are as recorded.

Sample data1 of the 19 items recorded

4 parameters.
2 required.

Send them as a JSON body with POST. Your key goes in the Authorization header, never in the URL.

NameTypeRequiredDefaultDescription
platformstringRequired—Always "threads" on this page.
querystringRequired—Search terms
sincedatetimeOptional—Published on or after this day (filtered by UTC date; the time of day is ignored)
untildatetimeOptional—Published on or before this day (filtered by UTC date; the time of day is ignored)
First page only: up to 20 items, with no cursor parameter and no next page.

The fields of each item.
What Threads cannot give is marked.

FieldTypeMeaning
items[].urlstringA link that opens the item.
items[].formatstringvideo, image, text or article.
items[].titlestringalways nullThe title.
items[].textstringThe body text or caption.
items[].published_atstringWhen it was published, ISO 8601 in UTC.
items[].author.idstringThe author's account ID.
items[].author.usernamestringThe author's handle.
items[].author.namestringThe author's display name.
items[].author.verifiedbooleanWhether the author is verified.
items[].author.followersintegeralways nullThe author's follower count.
items[].metrics.likesintegerLikes.
items[].metrics.commentsintegerComments.
items[].metrics.sharesintegerShares.
items[].metrics.collectsintegeralways nullSaves.
items[].metrics.viewsintegeralways nullViews or plays.
items[].metrics.repostsintegerReposts.
items[].imagesstring[]Image addresses.
items[].hashtagsstring[]Hashtags, without the #.
items[].is_pinnedbooleanWhether the author pinned it.
nullFields Threads cannot give

Read null as “Threads did not give this”, not as zero. These are always null on this call:

  • titleThe title.
  • author.followersThe author's follower count.
  • metrics.collectsSaves.
  • metrics.viewsViews or plays.

Every item also has platform, id, ref, approx and type; the response around the items is the same on every call. Response format

What to expect.

One call returns the first page only, up to 20 items, with no cursor, for 2 credits.
A call that runs and finds nothing is a successful call: status is "empty", items is empty, and it costs 2 credits.

1 call per second per key, 5 after a purchase; going over is not charged. Rate limits

A failed call costs 0 credits and is never retried on its own. Error codes

Once connected over MCP, these questions use it.

  1. Search Threads for posts about "nasa".
    search {"platform":"threads","query":"nasa"}
    2 credits

These ready-made tools call it when they run.

The same call on other platforms.

All platforms and prices
Change one word in the request: platform. The response keeps the same shape.

Questions.
Short answers.

Everything on Threads
Do I need a Threads account or Threads's own API access?
No. You only need a SocialToAI key. The call returns content and account information publicly visible on Threads; you never sign in to Threads or apply for anything there.
Can I get the next page?
No. On Threads this interface gives its first page only (up to 20 items): the response carries no cursor, and page.has_more is always false.

Your AI is one URL away
from all of social media.

100 credits on sign-up, no card needed