↑ ↓ to move ↵ to open
Threads API · Endpoint

Threads Profile Feed API

List a profile's recent threads, replies, media posts or reposts, with text, likes, replies and post time.

  • 1 credit per call
  • Failed calls are free
  • Updated
  • threads.profile.feed
Response completed
{  "result_count": 5,  "posts": [    {      "type": "thread",      "url": "https://www.threads.com/@zuck/post/Ddt7cL5EfUG",      "content": {        "caption": "Agrippa said it's time to get back to work 😎",        "like_count": 5086,        "media_type": 8,        "quote_count": 49,        "reply_count": 528,        "repost_count": 266,        "taken_at_unix": 1790355021      }    },    {      "type": "thread",      "url": "https://www.threads.com/@zuck/post/DdoxAnGDrMh",      "content": {        "caption": "Excited to see you at Meta Connect today 😎",        "like_count": 2997,        "media_type": 2,        "quote_count": 44,        "reply_count": 560,        "repost_count": 208,        "taken_at_unix": 1790182897      }    }  ]}
Try it live, free
Input

What you send

The input object of the request, with every field the endpoint accepts.

FieldTypeRequiredWhat it doesExample
handle string yes The profile's handle. zuck
feed string no Which tab to read: threads, replies, media or reposts. media
limit integer no How many posts to return. 5
Response

Fields it returns

What each record in the response holds, with the values from the sample above.

FieldTypeWhat it isExample
posts[].content.caption string The post's text. Agrippa said it's time to get back to work 😎
posts[].content.like_count integer Likes, as Threads shows them. 5086
posts[].content.reply_count integer Replies, as Threads shows them. 528
posts[].content.repost_count integer Reposts, as Threads shows them. 266
posts[].content.taken_at_unix integer When it was posted, as a Unix time in seconds. 1,790,355,021
posts[].url string The thread's link. https://www.threads.com/@zuck/post/Ddt7cL5EfUG
posts[].content object The post. 7 fields
posts[].content.media_type integer Threads' media type code for the post. 8
posts[].content.quote_count integer Quotes, as Threads shows them. 49
posts[].type string What kind of item it is, such as thread. thread
posts array The returned threads. 5 records
result_count integer How many results this answer holds. 5
REST API · MCP server

Call it from your code, or ask your agent

Set UPSCRAPE_API_KEY to your key and copy a working request.

curl --request POST \  --url https://data.upscrape.com/execute \  --header "Authorization: Bearer $UPSCRAPE_API_KEY" \  --header "Content-Type: application/json" \  --header "Prefer: wait=30" \  --data '{  "capability": "threads.profile.feed",  "input": {    "feed": "media",    "handle": "zuck",    "limit": 5  }}'
In your AI agent Claude · Cursor · any MCP client
1Add the Upscrape MCP server
https://data.upscrape.com/mcp
2Ask for the data in plain words

Using Upscrape, get Mark Zuckerberg's (@zuck) latest media posts on Threads and rank them by likes.

The agent finds the endpoint, shows you the price, and runs it with your credits.
Threads

More from the Threads API

Same data, other platforms

The same data from other platforms

Questions

Threads Profile Feed API FAQ

The short answers. The docs have the long ones.

Still have a question? Talk to the people who build the endpoints.
How much does the Threads Profile Feed API cost?

1 credit per successful call, shown before it runs. You buy credits once, and paid credits never expire.

What do I send?

Send handle. The input fields below list every option with its type and limits.

Do I need a Threads login?

No. It reads public Threads data; nothing runs on your account.

Can my AI agent call it?

Yes, over MCP: the agent finds threads.profile.feed, checks its price and runs it with the same credits as the REST API.

Get started

Your first Threads call is free.

Up to 100 free credits to start, no card needed.