Threads Post Details API
Threads post — engagement (views when exposed), comments[], relatedPosts[], threadId/isReply. Flat 1 credit.
GET request to /v1/threads/post-details that responds with clean JSON and costs 1 credit. Pass cache=true for a free 24h cache hit; default is always fresh. Start with 100 free credits — no credit card.What is the Threads Post Details API?
Pass a Threads post URL and get one enriched post as clean JSON: id, code, url, text, ISO publishedAt, author{}, engagement{views,likes,replies,reposts,quotes}, threadId/replyToId/isReply/isQuote, media[], plus comments[] (inline replies when Meta embeds them on the permalink) and relatedPosts[] (BarcelonaLoggedOutRelatedPosts — algorithmic related threads, no extra call). Flat 1 credit. This is not an alias of user-posts: relatedPosts and comments are only on this endpoint.
What you get
- Same post card as user-posts + engagement.views when Meta exposes it
- comments[] inline (empty array when logged-out hydrate omits the reply tree)
- relatedPosts[] from Meta's logged-out related module — no second request
- threadId / replyToId / isReply / isQuote
Platform limits
Honest ceilings from the upstream platform surface — not Captapi bugs. Unexpected truncation here is usually the platform, not us.
- Logged-out Threads permalink HTML usually embeds relatedPosts but not the public reply tree. comments[] is then [] with a stable key — not a missing field. ScrapeCreators often fills comments via a deeper GraphQL path we do not use on this surface.
- engagement.views is often null on web hydrate even when the Threads app shows a view count (Meta's enable_view_counts flag is off for many logged-out renders).
Try it
Fill in the parameters below and copy a ready-to-run request, or open the live Playground to run it against your account (no API key paste).
Parameters
curl "https://api.captapi.com/v1/threads/post-details?url=https%3A%2F%2Fwww.threads.net%2F%40zuck%2Fpost%2FDZ7eGA1G7wU" \
-H "Authorization: Bearer capt_live_..."
# or: -H "x-api-key: capt_live_..."Edit the parameters and the code updates instantly. Switch languages and hit copy.
Example response
{
"success": true,
"data": {
"platform": "threads",
"id": "3925863854786722836",
"code": "DZ7eGA1G7wU",
"url": "https://www.threads.net/@zuck/post/DZ7eGA1G7wU",
"text": "Our new line of @metaglasses is available today. Three shapes, 26 style combos, with our most advanced Meta AI built in. Plus, three custom styles designed by @kyliejenner.",
"publishedAt": "2026-06-23T12:57:42.000Z",
"threadId": "3925863854786722836",
"replyToId": null,
"quoteId": null,
"isReply": false,
"isQuote": false,
"author": {
"username": "zuck",
"displayName": "Mark Zuckerberg",
"verified": true,
"profileImage": "https://scontent-arn2-1.cdninstagram.com/v/t51.82787-19/550174606_17925811725103224_8363667901743352243_n.jpg?stp=dst-jpg_s150x150_tt6&efg=eyJ2ZW5jb2RlX3RhZyI6InByb2ZpbGVfcGljLmRqYW5nby4xMDgwLmMyIn0&_nc_ht=scontent-arn2-1.cdninstagram.com&_nc_cat=1&_nc_oc=Q6cZ2gFsMxaeE1_m_Q_Q0eLf64nCG364CCEvIvzu9jsBCHKpQUWN0bClo9JEGGd5l3LhCQ8&_nc_ohc=2ejw17SwZhoQ7kNvwHwwhmI&_nc_gid=vNCBwQPT-0NDIFQsV3MGZQ&edm=APs17CUBAAAA&ccb=7-5&oh=00_AQFuCMUtskb3YHQEeVcugbTVFCIEBGnplQquZ3GzBmvhDA&oe=6A77D5BE&_nc_sid=10d13b"
},
"engagement": {
"views": null,
"likes": 3693,
"replies": 1408,
"reposts": 243,
"quotes": 119
},
"media": [
"https://scontent-arn2-1.cdninstagram.com/v/t51.71878-15/729466804_1549760159886177_1883659439515397370_n.jpg?stp=dst-jpg_e15_tt6&_nc_cat=105&ig_cache_key=MzkyNTg1NzYxNDQ3NTQyMzA5NQ%3D%3D.3-ccb7-5&ccb=7-5&_nc_sid=58cdad&efg=eyJ2ZW5jb2RlX3RhZyI6IkNBUk9VU0VMX0lURU0ueHBpZHMuNjQwLnNkci52aWRlb19kZWZhdWx0X2NvdmVyX2ZyYW1lLkMzIn0%3D&_nc_ohc=gwtwKMHXGY0Q7kNvwFs8O_B&_nc_oc=AdoeAgtu1iFjbAXZR03M0jk5mHDyXG-V4YkfEgAhFcL9ShW87MFpF6dbSvT0ivhLv8A&_nc_ad=z-m&_nc_cid=0&_nc_zt=23&_nc_ht=scontent-arn2-1.cdninstagram.com&_nc_gid=vNCBwQPT-0NDIFQsV3MGZQ&_nc_ss=7a22e&oh=00_AQGstcY-xX--otMYSGqFyYqoIP73kZ_8D8RHL_quEES13w&oe=6A77F376",
"https://scontent-arn2-1.cdninstagram.com/o1/v/t16/f2/m84/AQOTRrCQTl1fyJz7fqBninvUdgWeil7BncTOhD-RfiP256I4PY_ioi8UAxdGl0WLEByzkS3XiObR8E2yNiSbmnE634ktoS1hPNebBYI.mp4?_nc_cat=107&_nc_sid=5e9851&_nc_ht=scontent-arn2-1.cdninstagram.com&_nc_ohc=fSXEPxW14JIQ7kNvwHBncdf&efg=eyJ2ZW5jb2RlX3RhZyI6Inhwdl9wcm9ncmVzc2l2ZS5JTlNUQUdSQU0uQ0FST1VTRUxfSVRFTS5DMy43MjAuZGFzaF9iYXNlbGluZV8xX3YxIiwieHB2X2Fzc2V0X2lkIjoxNzk2ODE3MTU3ODA4OTg4OCwiYXNzZXRfYWdlX2RheXMiOjQwLCJ2aV91c2VjYXNlX2lkIjoxMDE2NCwiZHVyYXRpb25fcyI6MjQsInVybGdlbl9zb3VyY2UiOiJ3d3cifQ%3D%3D&ccb=17-1&vs=cefa3ff17e61a968&_nc_vs=HBksFQIYTGlnX2JhY2tmaWxsX3RpbWVsaW5lX3ZvZC81NDQyODFEMkZCRDg0MzU4MzZBQUE0QzI5MzE4MzlBRF92aWRlb19kYXNoaW5pdC5tcDQVAALIARIAFQIYUWlnX3hwdl9wbGFjZW1lbnRfcGVybWFuZW50X3YyLzYwNEVGNDk2M0EwQzdFNTY4QTIyNDRDRkI4MDZBMkIwX2F1ZGlvX2Rhc2hpbml0Lm1wNBUCAsgBEgAoABgAGwKIB3VzZV9vaWwBMRJwcm9ncmVzc2l2ZV9yZWNpcGUBMRUAACbAhufCnv3qPxUCKAJDMywXQDgF41P3ztkYEmRhc2hfYmFzZWxpbmVfMV92MREAde4HZeieAQA&_nc_gid=vNCBwQPT-0NDIFQsV3MGZQ&_nc_zt=28&_nc_ss=7a22e&oh=00_AQHxRBBUCqh74vHFVtIRloUxKv6fQJnkF0rhbfQ9oLWYUw&oe=6A73E2B5"
],
"comments": [],
"relatedPosts": [
{
"platform": "threads",
"id": "3955997150920775044",
"code": "DbmhnLxFxWE",
"url": "https://www.threads.net/@thelexlibris/post/DbmhnLxFxWE",
"text": "The lack of accountability in that teas and tropes post is so wild. The signing lines is all that needs improvements?? I know not.",
"publishedAt": "2026-08-04T02:47:11.000Z",
"threadId": "3955997150920775044",
"replyToId": null,
"quoteId": null,
"isReply": false,
"isQuote": false,
"author": {
"username": "thelexlibris",
"displayName": "Lex 🌱",
"verified": null
},
"engagement": {
"views": null,
"likes": 1,
"replies": null,
"reposts": null,
"quotes": null
},
"media": []
},
{
"platform": "threads",
"id": "3955973937109715838",
"code": "DbmcVYOIMt-",
"url": "https://www.threads.net/@xaylibarclay/post/DbmcVYOIMt-",
"text": "WOW!! 😮 >> Out of approximately 41,000 to 47,000 active psychiatrists in the U.S., Black women make up less than 1% of the total. \n\nExact counts place the number of practicing Black female psychiatrists between 600 and 850 nationwide, meaning you are looking for a very rare, specialized group of professionals.\n\n🤯🤯",
"publishedAt": "2026-08-04T02:01:04.000Z",
"threadId": "3955973937109715838",
"replyToId": null,
"quoteId": null,
"isReply": false,
"isQuote": false,
"author": {
"username": "xaylibarclay",
"displayName": "XayLi Barclay - Tech, Cameras, Life At 40 Yrs old",
"verified": null
},
"engagement": {
"views": null,
"likes": 32,
"replies": 7,
"reposts": 3,
"quotes": null
},
"media": []
}
]
}
}Billing metadata is returned in response headers: X-Captapi-Credits (credits charged), X-Captapi-Cache (hit or miss), and X-Captapi-Source. Failed requests (4xx/5xx) are never charged. See the full list of error codes in the error reference.
Response structure
A successful call returns success, cached, creditsUsed, and a data object with the following fields:
Top-level fields
platformPlatform identifier for this response (matches the endpoint's platform).idStable platform ID for the item.codeCode. Example: "DZ7eGA1G7wU".urlCanonical URL of the item.textText content.publishedAtPost publish time as ISO-8601 UTC.threadIdId of the thread root post.replyToIdParent post id when this post is a reply.quoteIdQuote id.isReplytrue when the post replies to another post.isQuotetrue when the post quotes another post.mediaMedia attached to the item.commentsInline reply posts when Meta embeds them on the permalink. Always an array — [] when the logged-out hydrate omits the reply tree (common on viral posts).
Author
The author object contains:
usernameAccount username / handle.displayNameDisplay name of the account. Canonical across profile endpoints (prefer over name).verifiedWhether Meta shows a verified badge on the post author.profileImageProfile image URL. Deprecated alias of avatar on Instagram/Twitter/Threads/TikTok profile endpoints (one release).
Engagement
The engagement object contains:
viewsPublic view count when Meta exposes it. Often null on logged-out permalink hydrate even when the Threads app shows views.likesHeart count on the Threads post (engagement.likes).repliesNumber of replies.repostsRepost count.quotesQuote count.
Related posts
Each item in relatedPosts contains:
platformPlatform identifier for this response (matches the endpoint's platform).idStable platform ID for the item.codeCode. Example: "DbmhnLxFxWE".urlCanonical URL of the item.textText content.publishedAtPost publish time as ISO-8601 UTC.threadIdId of the thread root post.replyToIdParent post id when this post is a reply.quoteIdQuote id.isReplytrue when the post replies to another post.isQuotetrue when the post quotes another post.authorAuthor name or handle.engagementEngagement metrics for the item.mediaMedia attached to the item.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| url | string | Yes | Threads post URL, e.g. https://threads.net/@user/post/CODE. 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. |
| cache | boolean | No | Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits. |
Authentication: send your key as Authorization: Bearer capt_live_.... A typical call costs 1 credit. Pass cache=true for a free 24h cache hit; default is always fresh.
How it works
- 1. Sign up — get 100 free credits, no card required.
- 2. Create a key from your dashboard.
- 3. Send one request to
/v1/threads/post-detailsand parse the JSON response.
Use cases
Analytics
Track views, likes, and engagement over time.
Competitor Monitoring
Benchmark the performance of other creators.
Dashboards
Power reporting and BI with real metadata.
Content Curation
Filter and rank videos by performance.
Frequently asked questions
What does the Threads Post Details API do?+
The Threads Post Details API lets you fetch full metadata and key stats from a public Threads post using one GET request to /v1/threads/post-details. It returns clean JSON — no OAuth or infrastructure setup required.
How many credits does the Threads Post Details API cost?+
Each successful call costs 1 credit. 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.
Is this just user-posts for one URL?+
No. post-details always returns comments[] and relatedPosts[] on top of the shared post card. relatedPosts comes from Meta's BarcelonaLoggedOutRelatedPosts module (other creators, no second request). comments is filled only when the permalink hydrate embeds same-thread replies — viral posts often return [] with the key still present.
Why is comments[] empty when the post has thousands of replies?+
Logged-out Threads permalink HTML usually ships the main post + related posts, not the public reply tree. Captapi keeps comments: [] rather than omitting the key or inventing a separate comments endpoint that cannot be filled on this path. ScrapeCreators often populates comments via a deeper GraphQL session we do not use here.
Where are view counts?+
engagement.views is always keyed. Meta often omits per-post view_counts on logged-out web hydrate (even when the app shows views), so the value is frequently null — same honesty as user-posts.
Is the Threads Post Details 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.
More Threads APIs
Ready to use the Threads Post Details API?
Sign up, grab your key, and make your first call in 60 seconds.