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. source + timings.

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": "nytimes",
    "author": {
      "username": "nytimes",
      "displayName": "The New York Times",
      "verified": true,
      "profileImage": "https://scontent-dfw6-2.cdninstagram.com/v/t51.2885-19/358027803_831551617930176_7923984927359078168_n.jpg?stp=dst-jpg_s150x150_tt6&efg=eyJ2ZW5jb2RlX3RhZyI6InByb2ZpbGVfcGljLmRqYW5nby43MjAuYzIifQ&_nc_ht=scontent-dfw6-2.cdninstagram.com&_nc_cat=1&_nc_oc=Q6cZ2gGQA3JcnKQFfxyClQKaHDv8Q5_czQpQiPri-G_P9hfImFYvXNk9vNzeyobH_kQvP9Y&_nc_ohc=TwEk211szzgQ7kNvwFcrGtY&_nc_gid=8hOzf2CLy6HVB1RuL6P2DQ&edm=APs17CUBAAAA&ccb=7-5&oh=00_AQNGn_bixIfCPkwtWjUXOIFTdeu1JeDyvTth_UN-tRGzRw&oe=6ADBDBA6&_nc_sid=10d13b",
      "mediaUrlsExpireAt": "2026-10-23T22:11:50.000Z"
    },
    "totalReturned": 2,
    "posts": [
      {
        "platform": "threads",
        "id": "4010994930771875389",
        "code": "Dep6qNsjNY9",
        "url": "https://www.threads.net/@nytimes/post/Dep6qNsjNY9",
        "text": "Greta Lee, Taylor Swift and Colman Domingo were among the stars on the gray and beige carpet at the sixth annual Academy Museum of Motion Pictures gala on Saturday.\n\nThe gala’s décor was inspired by the museum’s new exhibition, “The Horror Show,” which explores and celebrates decades of horror filmmaking.",
        "publishedAt": "2026-10-18T23:57:57.000Z",
        "threadId": "4010994930771875389",
        "replyToId": null,
        "quoteId": null,
        "isReply": false,
        "isQuote": false,
        "author": {
          "username": "nytimes",
          "displayName": "The New York Times",
          "verified": true
        },
        "engagement": {
          "likes": 57,
          "replies": 1,
          "reposts": null,
          "quotes": 0
        },
        "media": [
          "https://scontent-dfw6-1.cdninstagram.com/v/t51.82787-15/855107266_17987054931120479_5612134646240846500_n.jpg?stp=c0.135.1080.1080a_dst-jpg_e35_s1080x1080_tt6&_nc_cat=103&ig_cache_key=NDAxMDk5NDkzMDc3MTg3NTM4OQ%3D%3D.3-ccb7-5&ccb=7-5&_nc_sid=58cdad&efg=eyJ2ZW5jb2RlX3RhZyI6IkZFRUQueHBpZHMuMTA4MC5zZHIucmVndWxhcl9waG90by5DMyJ9&_nc_ohc=VtL9s2YLoPoQ7kNvwHtRnU8&_nc_oc=Adp_0rfY-FD0SFdiNtmwFRQneJ0X3dD9wFOB5v3DNZld3fIbbCPQ2gG9MPKUJXM54E8&_nc_ad=z-m&_nc_cid=0&_nc_zt=23&_nc_ht=scontent-dfw6-1.cdninstagram.com&_nc_gid=8hOzf2CLy6HVB1RuL6P2DQ&_nc_ss=7a22e&oh=00_AQNyMlx4iwI1BCnI3cTxAiTrcsyOLybtsGQIHFzgWMBgWw&oe=6ADBCE39"
        ],
        "mediaUrlsExpireAt": "2026-10-23T21:14:33.000Z"
      },
      {
        "platform": "threads",
        "id": "4010994965249029684",
        "code": "Dep6qtzjHY0",
        "url": "https://www.threads.net/@nytimes/post/Dep6qtzjHY0",
        "text": "See more photos: https://www.nytimes.com/2026/10/18/style/taylor-swift-academy-museum-gala-2026.html?smid=threads-nytimes",
        "publishedAt": "2026-10-18T23:58:01.000Z",
        "threadId": "4010994930771875389",
        "replyToId": "4010994930771875389",
        "quoteId": null,
        "isReply": true,
        "isQuote": false,
        "author": {
          "username": "nytimes",
          "displayName": "The New York Times",
          "verified": true
        },
        "engagement": {
          "likes": 10,
          "replies": null,
          "reposts": null,
          "quotes": 0
        },
        "media": [],
        "mediaUrlsExpireAt": null
      }
    ]
  }
}

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 exposes only a short window of recent public posts on this surface. limit caps what you receive; it cannot increase what Threads returns. Flat 2 credits on every successful call.
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 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. 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 @womenshealth / @menshealth / @vogue / @theverge 404 THREADS_POSTS_NOT_FOUND?

Not because they have no posts. Those are Instagram usernames — on Threads the same brands are @womenshealthmag, @menshealthmag, @voguemagazine, and @verge. A JS boot shell used to be classified empty and 404 immediately. Known aliases remap without scraping Instagram; other brands still read a related threads.com/@ link from the Instagram profile. A successful remap returns handle as the Threads username and requestedHandle as what you sent. A hydrated Threads profile with zero public posts is still 404 (0 credits). Prefer the Threads URL when you know it.

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

Every successful call is flat 2 credits, same class as twitter/search. The old ~14 / ~0.7-per-post figure was the rate of a fetch path this endpoint no longer uses; it is not what the meter charges.

I set limit=100 but only got a handful of posts. Is the endpoint broken?

No. Threads exposes only a short window of recent public posts on this surface. limit caps what you receive; it cannot increase what Threads returns. The public profile page carries the latest handful of posts — fewer rows, but fresh ones. That is the surface, not a regression.

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. 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