All endpoints
Threads User Posts

Threads User Posts API

Get a user's recent posts (their feed) on Threads by username. Returns post text, engagement metrics (likes, replies, reposts, quotes, reshares), author metadata, attached media, link previews, and whether each post is pinned to the profile.

Price: $0.006 per page
Free tier: 50 requests/month
Endpoint
GET /v1/threads/user/posts

Parameters

username *
Threads username, with or without leading @ (max 100 characters)
pages
Number of pages to fetch, 1-60 (default: 1). Each page returns up to about 35 posts, newest first; you are billed per page returned.
get_sentiment
Set to true to add AI emotion analysis (+$0.001/page)

Response fields

posts
Array of the user's recent posts
title
Post title (format: @username on Threads)
url
Direct link to the post
date
Publication date and time (UTC, YYYY-MM-DD HH:MM:SS)
author
Author's Threads username
source
Platform name (Threads)
domain
threads.com
snippet
Post text content
likes
Number of likes
replies
Number of replies
reposts
Number of reposts
quotes
Number of quote posts
reshares
Number of times reshared to other surfaces
author_name
Author's display name
author_verified
Whether the author is verified
is_reply
Whether the post is a reply
is_pinned
Whether the post is pinned to the top of the user's profile
media_type
Post type: text, image, video, or carousel
image_url
Cover image URL for image/video/carousel posts, empty for text-only (temporary; valid ~6-24 hours)
video_url
Direct video URL for video posts, empty otherwise (temporary; valid ~6-24 hours)
width
Media width in pixels (0 when not applicable)
height
Media height in pixels (0 when not applicable)
has_audio
Whether the post's video has audio
reply_control
Who can reply (e.g. everyone)
hashtags
Hashtags used in the post
mentions
Usernames mentioned in the post
carousel_media
Array of slides for carousel posts (media_id, is_video, image_url, video_url, width, height); empty otherwise
link_preview
Link preview object for posts sharing a URL (url, display_url, title, description, image_url, favicon_url), or null
quoted_post
The embedded quoted/reposted post (same post shape), or null
post_id
Threads post ID
code
Post shortcode (used in the post URL)
sentiment
Emotion analysis: emotions, dominant_emotion, emotional_intensity, polarity (when get_sentiment=true)
pages
Number of pages returned
count
Total results returned

Example Request

curl "https://apidirect.io/v1/threads/user/posts?username=mrbeast&pages=2" \
  -H "X-API-Key: YOUR_API_KEY"

Example Response

{
  "posts": [
    {
      "title": "@mrbeast on Threads",
      "url": "https://www.threads.com/@mrbeast/post/DPb1G6SEocH",
      "date": "2025-10-05 16:49:10",
      "author": "mrbeast",
      "source": "Threads",
      "domain": "threads.com",
      "snippet": "When AI videos are just as good as normal videos, I wonder what that will do to the millions of creators making content for a living.",
      "likes": 9742,
      "replies": 1825,
      "reposts": 297,
      "quotes": 40,
      "reshares": 105,
      "author_name": "MrBeast",
      "author_verified": true,
      "is_reply": false,
      "is_pinned": false,
      "media_type": "text",
      "image_url": "",
      "video_url": "",
      "width": 0,
      "height": 0,
      "has_audio": false,
      "reply_control": "everyone",
      "hashtags": [],
      "mentions": [],
      "carousel_media": [],
      "link_preview": null,
      "quoted_post": null,
      "post_id": "3736813887196137223",
      "code": "DPb1G6SEocH",
      "sentiment": {
        "emotions": {"joy": 15, "trust": 20, "fear": 55, "surprise": 20, "sadness": 30, "disgust": 5, "anger": 10, "anticipation": 40},
        "dominant_emotion": "fear",
        "emotional_intensity": 6,
        "polarity": "negative"
      }
    }
  ],
  "pages": 2,
  "count": 66
}

Frequently asked questions

How do I specify the user?

Provide the username with or without a leading @ (e.g. mrbeast or @mrbeast).

How many posts are returned per page?

Each page returns up to about 35 of the user's most recent posts, newest first. Use the pages parameter (1-60) to fetch more in a single call; you are billed per page returned.

What engagement metrics are included?

Each post includes likes, replies, reposts, quotes, and reshares, plus author metadata. Threads doesn't expose public view counts, so there is no views field.

Does the feed include replies?

Yes. A user's feed can include their original posts and their replies. Use the is_reply field to distinguish them.

How do I know which post is pinned?

Posts the user has pinned to the top of their profile have is_pinned set to true.

What happens if the username doesn't exist?

The endpoint returns 404 with code: "not_found". It is billed as one request, whatever pages you asked for, because the lookup was still made.

How does pricing work?

You only pay for successful requests. The Threads User Posts API costs $0.006 per page. There are no monthly fees or commitments. You get 50 free requests per endpoint every month.

Do I need a credit card to start?

No. You can sign up and use the free tier (50 requests/endpoint/month) without adding a payment method. You only need to add a card when you want to exceed the free tier.

Are there rate limits?

Yes, there's a concurrency limit of 10 simultaneous requests per endpoint per user. If you need more, just get in touch.

Start using the Threads User Posts API

Get your API key and start making requests in minutes. 50 requests/month free every month.

Get API Key