↑ ↓ to move ↵ to open
Threads API · Endpoint

Threads Post API

Get one post from its link, or its handle and ID: text, likes, replies, reposts, quotes and post time.

  • 1 credit per call
  • Failed calls are free
  • Updated
  • threads.post
Response completed
{  "title": "Instagram (@instagram) on Threads",  "handle": "instagram",  "canonical_url": "https://www.threads.com/@instagram/post/DeRpgdFlhJa",  "description": "there are morning people and then there are people who are correct",  "post_id": "DeRpgdFlhJa",  "content": {    "caption": "there are morning people and then there are people who are correct",    "like_count": 386,    "media_type": 19,    "quote_count": 4,    "reply_count": 55,    "repost_count": 20,    "taken_at_unix": 1791553578  }}
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 one of The author's handle, as an alternative to the link. Send it with post_id.
post_id string one of The post's short ID from its link, sent with handle.
post_url string one of The post's www.threads.com link. Send it alone. https://www.threads.com/@instagram/post/DeRpgdF…
Response

Fields it returns

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

FieldTypeWhat it isExample
content object The post. 7 fields
content.caption string The post's text. there are morning people and then there are people who are corr…
content.like_count integer Likes, as Threads shows them. 386
content.reply_count integer Replies, as Threads shows them. 55
content.repost_count integer Reposts, as Threads shows them. 20
content.quote_count integer Quotes, as Threads shows them. 4
content.taken_at_unix integer When it was posted, as a Unix time in seconds. 1,791,553,578
content.media_type integer Threads' media type code for the post. 19
handle string The posting account's handle. instagram
title string The page title Threads shows. Instagram (@instagram) on Threads
canonical_url string The page's address on Threads. https://www.threads.com/@instagram/post/DeRpgdFlhJa
description string The post's text, as the page shows it. there are morning people and then there are people who are corr…
post_id string Threads' ID for the post. DeRpgdFlhJa
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.post",  "input": {    "post_url": "https://www.threads.com/@instagram/post/DeRpgdFlhJa"  }}'
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

With Upscrape, open threads.com/@instagram/post/DeRpgdFlhJa and tell me its likes, replies, reposts and quotes.

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 Post 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 Post API cost?

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

What do I send?

Every input is optional; the input fields below list what each one does.

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