Threads
GET /v1/threads/post-details

Threads Post Details API

Threads post — engagement (views when exposed), comments[], suggestedPosts[], threadId/isReply. Flat 1 credit.

1 credit per request
TL;DR
Threads post — engagement (views when exposed), comments[], suggestedPosts[], threadId/isReply. Flat 1 credit. The Threads Post Details API (Threads) is a single authenticated 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[], mediaUrlsExpireAt, plus comments[] (other-author replies when Meta embeds them on the permalink) and suggestedPosts[] (Meta's algorithmic related threads, no extra call); both keys are omitted when empty. author and url are the post's real author and canonical URL, even when the URL you sent names a different handle. Flat 1 credit. This is not an alias of user-posts: suggestedPosts and comments are only on this endpoint. Unknown post: 404. A temporary fetch failure (or a short /t/ link we cannot confirm) is a retryable 502 UPSTREAM_UNAVAILABLE at 0 credits.

What you get

  • Same post card as user-posts + engagement.views when Meta exposes it
  • comments[] inline when Meta embeds the reply tree (omitted when empty)
  • suggestedPosts[] from Meta's related module — no second request (omitted when empty)
  • threadId / replyToId / isReply / isQuote

Try it

Open in Playground

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

Sign in to run live
curl "https://api.captapi.com/v1/threads/post-details?url=https%3A%2F%2Fwww.threads.net%2F%40nasa%2Fpost%2FDekCdIIEZCG" \
  -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": "4009340365949735046",
    "code": "DekCdIIEZCG",
    "url": "https://www.threads.net/@nasa/post/DekCdIIEZCG",
    "text": "🚨New podcast episode alert! \n\nThe world watched them make history during Artemis II. Now, hear what stayed with them. \n\nIn this week’s episode of Houston We Have a Podcast, astronauts Victor Glover and Jeremy Hansen share the moments that stay with them, how their perspectives changed, and what's next.",
    "publishedAt": "2026-10-16T17:10:38.000Z",
    "threadId": "4009340365949735046",
    "replyToId": null,
    "quoteId": null,
    "isReply": false,
    "isQuote": false,
    "author": {
      "username": "nasa",
      "displayName": "NASA",
      "verified": true,
      "profileImage": "https://scontent-lga3-2.cdninstagram.com/v/t51.82787-19/669747085_18089786557960389_922072622069351626_n.jpg?_nc_cat=101&ccb=7-5&_nc_sid=30ff31&efg=eyJ2ZW5jb2RlX3RhZyI6InByb2ZpbGVfcGljLnd3dy4xNTAuQzMifQ%3D%3D&_nc_ohc=JDDwD-E-gZ8Q7kNvwFfmMsf&_nc_oc=AdqO4R-rdA4tLr98voZY-su5d5tWXIevD-ODnkL4jGcQe0Dyc_s0UGbQhOHnOhxwc5U&_nc_zt=24&_nc_ht=scontent-lga3-2.cdninstagram.com&_nc_gid=PEinBBSlT8zsebe6pt6UUw&_nc_ss=7b289&oh=00_AQNaRZh_wTl82G-aoa6hr5cl1rLhFBUwsUsdJirsm86EHw&oe=6ADBEACF"
    },
    "engagement": {
      "likes": 342,
      "replies": 18,
      "reposts": 20,
      "quotes": 2
    },
    "media": [],
    "mediaUrlsExpireAt": "2026-10-23T23:16:31.000Z",
    "suggestedPosts": [
      {
        "platform": "threads",
        "id": "4006297018553504546",
        "code": "DeZOel_lpMi",
        "url": "https://www.threads.net/@futuramictec/post/DeZOel_lpMi",
        "text": "#HWHAP Ep. 440: To the Moon and Back Again\n\nNASA’s Artemis II crew reflect on their historic journey around the Moon, the moments that moved them, and what it’s like to come home after traveling farther than any humans before them.\n\nhttps://www.nasa.gov/podcasts/houston-we-have-a-podcast/to-the-moon-and-back-again/",
        "publishedAt": "2026-10-12T12:24:06.000Z",
        "threadId": "4006297018553504546",
        "replyToId": null,
        "quoteId": null,
        "isReply": false,
        "isQuote": false,
        "author": {
          "username": "futuramictec",
          "displayName": "Futuramic",
          "verified": false
        },
        "engagement": {
          "likes": 8,
          "replies": null,
          "reposts": null,
          "quotes": 0
        },
        "media": [],
        "mediaUrlsExpireAt": null
      },
      {
        "platform": "threads",
        "id": "3999740162028201443",
        "code": "DeB7nxfjeXj",
        "url": "https://www.threads.net/@niki3_43/post/DeB7nxfjeXj",
        "text": "Guys please please listen to this, it has the actual obsservassion recordings from the crew and it’s incredible!! The emotion in their voice makes you feel like you’re there!! This is why we need to send HUMANS to space. 🥹🥹 \nhttps://www.nasa.gov/podcasts/houston-we-have-a-podcast/recordings-from-the-far-side-of-the-moon/",
        "publishedAt": "2026-10-03T11:16:44.000Z",
        "threadId": "3999740162028201443",
        "replyToId": null,
        "quoteId": null,
        "isReply": false,
        "isQuote": false,
        "author": {
          "username": "niki3_43",
          "displayName": "Nicole",
          "verified": false
        },
        "engagement": {
          "likes": 60,
          "replies": 4,
          "reposts": 6,
          "quotes": 1
        },
        "media": [],
        "mediaUrlsExpireAt": null
      }
    ]
  }
}

Billing metadata is returned in response headers: X-Captapi-Credits (credits charged), X-Captapi-Cache (hit or miss), and X-Captapi-Request-Id (include it when contacting support). Where the response has a source field, it names the path that served the data: native, extended, cache or asr. 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 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: "DekCdIIEZCG".
  • 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.
  • mediaUrlsExpireAtISO-8601 time the earliest signed media link on this object expires (Meta CDN oe= stamp). Re-fetch after it.

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:

  • likesHeart count on the Threads post (engagement.likes).
  • repliesNumber of replies.
  • repostsRepost count.
  • quotesQuote count.

Suggested posts

Each item in suggestedPosts contains:

  • platformPlatform identifier for this response (matches the endpoint's platform).
  • idId of this suggested posts item.
  • codeCode. Example: "DeZOel_lpMi".
  • 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.
  • mediaUrlsExpireAtISO-8601 time the earliest signed media link on this object expires (Meta CDN oe= stamp). Re-fetch after it.

Timings

Deprecated: timings will be removed from response bodies on 2026-12-17. Read the Server-Timing response header instead (total;dur=<ms>). Until then the timings object contains:

  • pathPath. Example: "native".
  • totalMsTotal ms. Example: 10914.

Parameters

NameTypeRequiredDescription
urlstringYesThreads 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.
cachebooleanNoSet true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh.

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.

Using an AI agent? This endpoint is the MCP tool threads_post_details via @captapi/mcp. Set it up →

How it works

  1. 1. Sign up — get 100 free credits, no card required.
  2. 2. Create a key from your dashboard.
  3. 3. Send one request to /v1/threads/post-details and 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. 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.

Is this just user-posts for one URL?+

No. On top of the shared post card, post-details adds suggestedPosts[] (Meta's related-posts module: other creators, no second request) and comments[] (other-author replies, only when the permalink page embeds them). Both keys are omitted when empty.

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 then omits comments rather than returning an always-empty array next to a large engagement.replies.

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

Threads Post Details API — Captapi