Threads · Guide

How to run a Threads post search

TL;DR
To run a Threads post search, sign up for a free Captapi key, then send one GET request to /v1/threads/search with your input. You get clean JSON back in seconds for 2 credits per call — no OAuth, scraping or platform SDKs. Threads keyword search — posts with engagement + media. orderBy relevant | post_dated | engagement. Flat 2 credits.

How to run a Threads post search (step by step)

  1. 1

    Get a free API key

    Create a free Captapi account (100 credits, no card) and generate an API key from the dashboard.

  2. 2

    Call the Threads Post Search API

    Send an authenticated GET request to /v1/threads/search with your input. No OAuth, no scraping setup.

  3. 3

    Read the JSON response

    Parse the clean JSON response. Pass cache=true for a free 24h cache hit; default is always fresh.

Code example

curl "https://api.captapi.com/v1/threads/search?q=artificial%20intelligence" \
  -H "Authorization: Bearer capt_live_..."
# or: -H "x-api-key: capt_live_..."

What the response looks like

{
  "success": true,
  "data": {
    "query": "artificial intelligence",
    "totalReturned": 2,
    "results": [
      {
        "platform": "threads",
        "id": "4007482411247534287",
        "code": "DedcAU-CQDP",
        "url": "https://www.threads.net/@thenewsbit/post/DedcAU-CQDP",
        "text": "Google launches Gemini 4 Argon AI model!\n\nGoogle is pushing AI forward with its latest Gemini model. \n\nWhat could this mean for the future of artificial intelligence?\n\nRead more at - https://thenewsbit.com/google-launches-gemini-4-argon-ai-model/",
        "publishedAt": "2026-10-14T03:39:12.000Z",
        "threadId": "4007482411247534287",
        "replyToId": null,
        "quoteId": null,
        "isReply": false,
        "isQuote": false,
        "author": {
          "username": "thenewsbit",
          "displayName": "NewsBit",
          "verified": false
        },
        "engagement": {
          "likes": 3,
          "replies": null,
          "reposts": null,
          "quotes": 0
        },
        "media": [],
        "mediaUrlsExpireAt": null
      },
      {
        "platform": "threads",
        "id": "4010750115362431666",
        "code": "DepC_rlCOKy",
        "url": "https://www.threads.net/@ma82r._824/post/DepC_rlCOKy",
        "text": "Do you have experience in artificial intelligence, video and content creation, and the world of K-pop with AI? Please leave a message.",
        "publishedAt": "2026-10-18T15:51:33.000Z",
        "threadId": "4010750115362431666",
        "replyToId": null,
        "quoteId": null,
        "isReply": false,
        "isQuote": false,
        "author": {
          "username": "ma82r._824",
          "displayName": null,
          "verified": false
        },
        "engagement": {
          "likes": 5,
          "replies": 17,
          "reposts": null,
          "quotes": 0
        },
        "media": [],
        "mediaUrlsExpireAt": null
      }
    ],
    "fetchedAt": "2026-10-19T12:38:30.196Z",
    "orderBy": "relevant"
  }
}

Billing metadata (credits charged, cache hit/miss) is returned in the X-Captapi-Credits and X-Captapi-Cache response headers.

Request parameters

NameTypeRequiredDescription
qstring YesKeyword or phrase to search public Threads posts (min 2 characters).
limitintegerNoMax items to return (default 25, max 200). Flat 2 credits per call.
orderBystringNoSort the fetched page: relevant (default, Meta Top / similar to query), post_dated (newest publishedAt first), or engagement (likes+replies+reposts+quotes+views). Unknown values are 400.
cachebooleanNoSet true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh.

Frequently asked questions

What does the Threads Post Search API do?

The Threads Post Search API lets you search and return matching results from a public Threads query using one GET request to /v1/threads/search. It returns clean JSON — no OAuth or infrastructure setup required.

How many credits does the Threads Post Search API cost?

Each successful call costs 2 credits. Pass cache=true to serve from the 24h cache (0 credits on hit); default is always fresh. Selected profile endpoints also accept cacheMaxAge=1d|3d|7d|14d|30d. Failed or empty results are never charged.

Do I need a Threads API key or OAuth?

No. A single Captapi key works across every platform Captapi supports — YouTube, TikTok, Instagram, Facebook, Twitter/X, Reddit, Threads, Bluesky, Pinterest, LinkedIn, Rumble, Spotify, Kwai, and more. We handle access, rate limits, retries, and authentication for you.

Why is this 2 credits when older docs said ~18?

Flat 2 credits — same soft-cap surface as twitter/search and threads/user-posts. The old ~18 figure was a per-result rate of a fetch path this endpoint no longer uses; success is always billed at the published flat price.

Can I sort by newest or engagement?

Yes — pass orderBy=post_dated (newest publishedAt first) or orderBy=engagement (likes+replies+reposts+quotes+views). Default orderBy=relevant keeps Meta's Top / query ranking. The sort reorders the fetched search window; it is not a separate Threads index. A date range filter is still client-side on publishedAt.

Why do giveaway / engagement-farm posts rank first?

Meta's Top SERP often boosts high-reply bait. Captapi returns what the hydrate embeds and does not apply a spam filter. replies ≫ likes is a common client-side signal to down-rank.

Can a popular keyword come back as 404 "No posts found"?

No. A popular keyword is never answered with 404. If the Threads search page can't be read, the endpoint retries once in-request, then serves the same query's last-good page from the past 6h (labelled stale:true + cached:true, 0 credits). Only when both miss do you get a retryable 502 UPSTREAM_UNAVAILABLE at 0 credits — retry after ~60s. An empty 200 at 0 credits means Threads' own search page said 'No results'.

What do stale:true and servedAt mean on a response?

The live fetch failed and a recent (≤6h) successful page for the same query was replayed for free. fetchedAt is when that data was actually scraped; servedAt is when your request was answered. If freshness is critical, retry shortly — the live path usually recovers within a minute.

Is the Threads Post Search API suitable for production use?

Yes. It is a stable REST endpoint with predictable JSON and automatic retries. Pass cache=true to serve from the 24h cache (0 credits on hit); default is always fresh. Selected profile endpoints also accept cacheMaxAge=1d|3d|7d|14d|30d. Use it for analytics, monitoring, and content automation.

Ready to run a Threads post search?

Start free with 100 credits — no credit card required.

Get your free API key