Threads · Guide

How to get Threads user posts

TL;DR
To get Threads user posts, sign up for a free Captapi key, then send one GET request to /v1/threads/user-posts with your input. You get clean JSON back in seconds for 2 credits per call — no OAuth, scraping or platform SDKs. Recent Threads posts — engagement{views,likes,replies,reposts,quotes}, threadId/isReply. Flat 2 credits.

How to get Threads user posts (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 User Posts API

    Send an authenticated GET request to /v1/threads/user-posts 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/user-posts?url=https%3A%2F%2Fwww.threads.net%2F%40zuck" \
  -H "Authorization: Bearer capt_live_..."
# or: -H "x-api-key: capt_live_..."

What the response looks like

{
  "success": true,
  "data": {
    "handle": "zuck",
    "author": {
      "username": "zuck",
      "displayName": "Mark Zuckerberg",
      "verified": true,
      "profileImage": "https://scontent-cdg4-2.cdninstagram.com/v/t51.82787-19/550174606_17925811725103224_8363667901743352243_n.jpg?stp=dst-jpg_s150x150_tt6&efg=eyJ2ZW5jb2RlX3RhZyI6InByb2ZpbGVfcGljLmRqYW5nby4xMDgwLmMyIn0&_nc_ht=scontent-cdg4-2.cdninstagram.com&_nc_cat=100&_nc_oc=Q6cZ2gHf4XJXymdRHno1xv4ZWDptPQ_F47AvofZR9ZypzIXJ5_ggqvnOJ4NFY10teCcuKSw&_nc_ohc=vLH8jAZMCqoQ7kNvwFFwBjL&_nc_gid=wkyjiyQ2aEsOml1qJ-3q-Q&edm=APs17CUBAAAA&ccb=7-5&oh=00_AQBvZqkyiiQ8DOAXcD-rNsrA7GYbSMXCSzCPUIBJWAPwew&oe=6A6E2ABE&_nc_sid=10d13b"
    },
    "totalReturned": 5,
    "posts": [
      {
        "platform": "threads",
        "id": "3937491905269768921",
        "code": "DakyAavlKLZ",
        "url": "https://www.threads.net/@zuck/post/DakyAavlKLZ",
        "text": "Today we're releasing Muse Spark 1.1 -- a strong agentic and coding model at a very low price. It's available through our new Meta Model API and in Meta AI.",
        "publishedAt": "2026-07-09T14:00:34.000Z",
        "threadId": "3937491905269768921",
        "replyToId": null,
        "quoteId": null,
        "isReply": false,
        "isQuote": false,
        "author": {
          "username": "zuck",
          "displayName": "Mark Zuckerberg",
          "verified": true
        },
        "engagement": {
          "views": null,
          "likes": 2852,
          "replies": 765,
          "reposts": 196,
          "quotes": 63
        },
        "media": []
      },
      {
        "platform": "threads",
        "id": "3937491928497827415",
        "code": "DakyAwYFK5X",
        "url": "https://www.threads.net/@zuck/post/DakyAwYFK5X",
        "text": "Muse Spark 1.1 is strongest at agentic performance, tool use, and computer use. It does well on long-running tasks with 1M token context window, can delegate execution to sub-agents running in parallel, and is trained to use computer interfaces on desktop, mobile, or browser.",
        "publishedAt": "2026-07-09T14:00:37.000Z",
        "threadId": "3937491905269768921",
        "replyToId": "3937491905269768921",
        "quoteId": null,
        "isReply": true,
        "isQuote": false,
        "author": {
          "username": "zuck",
          "displayName": "Mark Zuckerberg",
          "verified": true
        },
        "engagement": {
          "views": null,
          "likes": 912,
          "replies": 91,
          "reposts": 59,
          "quotes": 14
        },
        "media": [
          "https://scontent-cdg4-3.cdninstagram.com/v/t51.82787-15/741068464_17977387650103224_214669101615299168_n.webp?_nc_cat=110&ig_cache_key=MzkzNzQ5MTkyODQ5NzgyNzQxNQ%3D%3D.3-ccb7-5&ccb=7-5&_nc_sid=58cdad&efg=eyJ2ZW5jb2RlX3RhZyI6IkZFRUQueHBpZHMuMTYyMC5zZHIucmVndWxhcl9waG90by5DMyJ9&_nc_ohc=BnavDWIpJKMQ7kNvwGW14gJ&_nc_oc=Ado5sxMS3V9I9TFA6KpOo5ZTsDLrt2liAWKAxWtcz-ea50_hZb2YjO_d70TiTHhjkGA&_nc_ad=z-m&_nc_cid=0&_nc_zt=23&_nc_ht=scontent-cdg4-3.cdninstagram.com&_nc_gid=wkyjiyQ2aEsOml1qJ-3q-Q&_nc_ss=7a22e&oh=00_AQDyLjCkW1XRN7kshX0Uybz1QIy_tJdKTcfMdl2WJNISyA&oe=6A6E32AC"
        ]
      }
    ]
  }
}

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

Request parameters

NameTypeRequiredDescription
urlstring YesThreads profile URL or @handle. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
limitintegerNoMax items to return (default 20, max 100). Threads only exposes the last ~20–30 public posts on this surface — asking for 100 will not return 100. Flat 2 credits on the native path; Apify fallback ~0.7/post (min 2).
cachebooleanNoSet true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.

Frequently asked questions

What does the Threads User Posts API do?

The Threads User Posts API lets you list items in bulk with metadata from a public Threads post using one GET request to /v1/threads/user-posts. It returns clean JSON — no OAuth or infrastructure setup required.

How many credits does the Threads User Posts 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. Hits include cached + cachedAt. 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 proxies, rate limits, retries, and authentication for you.

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

Native profile-hydrate path is flat 2 credits — same soft-cap surface ScrapeCreators uses, and parity with Twitter user-tweets. The old ~14 figure was Apify billed at ~0.7 credits per returned post (default limit 20). Apify fallback still uses that per-result rate when the native path is unavailable.

I set limit=100 but only got ~25 posts. Is the endpoint broken?

No — Meta only exposes the last ~20–30 public posts on profile hydrate. limit is a client-side cap, not a promise that Threads has that many posts. See Platform limits on this page.

How do I rebuild a multi-part Thread?

Group posts by threadId. Within a thread, replyToId points at the previous post's id (root has replyToId null / isReply false). isQuote + quoteId mark quote posts.

Is the Threads User Posts 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. Hits include cached + cachedAt. Selected profile endpoints also accept cacheMaxAge=1d|3d|7d|14d|30d. Use it for analytics, monitoring, and content automation.

Ready to get Threads user posts?

Start free with 100 credits — no credit card required.

Get your free API key