> **For coding agents and LLMs:** This is one Social Fetch marketing page (markdown export). For API orientation start with [`/llms.txt`](https://www.socialfetch.dev/llms.txt); for auth and crawl rules use [`/agents.txt`](https://www.socialfetch.dev/agents.txt); for every operation use [`/llms-endpoints.txt`](https://www.socialfetch.dev/llms-endpoints.txt).

## This page

- **On-site (HTML):** <https://www.socialfetch.dev/platforms/threads/posts>
- **Markdown (.mdx) URL:** <https://www.socialfetch.dev/platforms/threads/posts.mdx>

---

# Threads Post API

Pass a public threads.net post URL and get caption, author, engagement, media, and reply samples in the shared Social Fetch JSON envelope.

`GET /v1/threads/posts` takes a required public post `url` (for example `https://www.threads.net/@handle/post/{shortcode}`). Send `x-api-key` and branch on `data.lookupStatus` before you write — `found` or `not_found`. On `found`, read `data.post` (id, shortcode, url, caption, createdAt (ISO-8601), optional reply flags), `data.author`, `data.metrics` (likes, views, replies, reposts, quotes, reshares when available), and `data.media` (`mediaType` plus image/video renditions). `data.threadItems` lists the author's own continuation posts in the thread, each with its caption, metrics, and media, which is useful when a creator posts the details in a follow-up reply. The payload can also include `replies` and `relatedPosts` when Threads exposes them. Optional `trim=true` shrinks the body.

This route is one post by URL. To page a handle's feed use `GET /v1/threads/profiles/{handle}/posts`. Keyword discovery is `GET /v1/threads/search`. Bill from `meta.creditsCharged`.

## Request

- **Endpoint:** `GET /v1/threads/posts`
- **Credits:** 1 credit
Failed requests are free
- **Input:** by post URL
- **Full reference:** [docs](https://www.socialfetch.dev/docs/api/v1/threads/posts/get)
- **Platform page:** [/platforms/threads](https://www.socialfetch.dev/platforms/threads)

## FAQ

### How do I fetch a Threads post by URL via API?

Call `GET /v1/threads/posts` with your Social Fetch API key (`x-api-key`) and a public Threads post `url` query param. Read `data.lookupStatus`, then `data.post`, `data.author`, `data.metrics`, and `data.media` when the post is available. See the API docs for parameters and examples.

### How much does the Threads Post API cost?

Pricing is documented on the operation in the API registry (shown on this page). Confirm on every response with meta.creditsCharged — that field is the billing source of truth.

### What URL format does the Threads post endpoint accept?

Pass a public Threads post permalink, typically `https://www.threads.net/@{handle}/post/{shortcode}` (or the equivalent threads.com host). Profile pages belong on `GET /v1/threads/profiles/{handle}`. Private or deleted posts resolve as `not_found`.

### What fields are in the Threads post response?

When `lookupStatus` is `found`, you get `post` (id, shortcode, public URL, caption, createdAt (ISO-8601), optional isReply / replyControl), `author` (handle, display name, avatar, verified), `metrics` (likes, views, replies, reposts, quotes, reshares when present), `media` (mediaType plus image and video renditions), `threadItems` (the author's own continuation posts, each with caption, metrics, and media), plus optional `replies` and `relatedPosts` arrays when Threads shows them.

### Does the Threads post API return the author's follow-up posts in a thread?

Yes. When you request the first post of a thread, `data.threadItems` lists the author's own continuation posts in order, each with its URL, caption, metrics, and media. Image-only continuations have a null caption and their images in `media`. Replies from other people stay in `replies`. `threadItems` is an empty array when the author didn't continue the thread. With `trim=true` the continuation media is left out.

### What does the trim query parameter do?

Optional `trim=true` returns a smaller payload with fewer fields. Use it when you only need core post text and metrics and want less JSON per call.

### Threads post by URL vs profile posts vs search?

Use `GET /v1/threads/posts` when you already have a post permalink. Use `GET /v1/threads/profiles/{handle}/posts` to list posts for a username. Use `GET /v1/threads/search` to find posts by keyword. They are separate paths on the Threads hub.

### What happens when a Threads post URL is not found?

`lookupStatus` of `not_found` means Social Fetch could not return a public post for that URL. Post, author, metrics, and media are null. Keep `meta.requestId` if you need support on that row.
