At a glance
Capabilities
An unsupported call returns501 resource.not_supported. A Beta row depends on a Threads scope that Meta has not granted to SocialAPI’s app for every account: see Beta scopes. Reply moderation, mentions, and insights need a scope that an account connected before 2026-10-17 does not hold: reconnect such an account to use them.
The cross-platform matrix is on Platforms.
Connect an account
Connect withPOST /v1/accounts/connect and "platform": "threads". The shared flow, request fields, and result are in Connect accounts, and the redirect parameters are in Redirect parameters.
401 platform.threads.auth, the person revoked access or the refresh failed: reconnect the account. See Reconnect an account.
Replies
List the replies to a post withGET /v1/inbox/comments/{postId}, where postId is the post’s platform ID. Reply and delete work as described in Comments. Threads calls a comment a reply.
- Hide and unhide: only replies from other accounts. They need the scope
threads_manage_replies. - Delete: only replies your account wrote, and it works without
threads_manage_replies. A reply from another account cannot be deleted: hide it instead. - A like and a private reply return
501 resource.not_supported.
Mentions
A mention is a public Threads post that tags your account.GET /v1/accounts/{id}/mentions lists mentions, and POST /v1/accounts/{id}/mentions/reply replies to one. The mention.received event delivers a mention as it happens, and the list returns the same mention with the same id, so you can match them. Details are in Mentions.
Reply to a mention:
media_id is the id from the list response. An account connected without threads_manage_mentions gets 403 with a platform.threads.<code> error code on the list, where <code> is Meta’s error code. Reconnect the account to add the scope.
Insights
GET /v1/platforms/threads/insights returns post-level or account-level metrics. It needs threads_manage_insights.
Post-level metrics for one post:
level=account:
value), a dated series (values), or, for follower_demographics, a breakdown. Account-level views is a series, follower_demographics is a breakdown, and the other account-level metrics are scalars.
follower_demographicsneeds exactly onebreakdownand rejectssinceanduntil.follower_demographicson an account with fewer than 100 followers returns422 platform.threads.801.follower_demographicsreturnsbreakdown, a list of{ "dimension", "value" }rows, for example{ "dimension": "US", "value": 540 }withbreakdown=country.dimensionis a country code, a city, an age range, or a gender, matching thebreakdownyou sent.- Metrics for a new post appear after a delay, and a deleted post returns nothing. Both return an empty result, not an error.
400 codes for these parameters are in Errors.
Profile discovery
GET /v1/platforms/threads/profile-lookup returns the public profile for an exact username. A leading @ is optional. It needs threads_profile_discovery.
- The lookup matches the exact username. There is no prefix or fuzzy search.
- Only profiles with 100 or more followers are discoverable.
404 resource.not_foundmeans the username is not discoverable. Threads gives the same answer when the account does not exist, has fewer than 100 followers, or is outside the access tier, so the three cases look the same.- Threads allows 1,000 lookups per user per rolling 24 hours. More returns
429 platform.threads.rate_limit.
Webhook events
Threads accounts emit these events to your webhook endpoints. Payloads are in Webhook events.
Every
post.* event in Webhook events is emitted for this platform.
Limits
GET /v1/accounts/{id}/limits returns posts_remaining, posts_total, replies_remaining, and replies_total.
Scopes
SocialAPI’s Meta Threads app requests these scopes at connect. You apply for no app review. Each scope belongs to the account permissions in the last column, and the consent screen asks for the scopes of the permissions you selected.threads_basic is always requested.
Threads asks for publishing and deleting as 1 pair of scopes shared by
posts.write and comments.write, so the consent screen can show more than you selected. The account stays limited to the permissions you selected.
threads_manage_mentions, threads_manage_replies, and threads_manage_insights are requested since 2026-10-17. An account connected before that date does not hold them: a call that needs one returns 403 with a platform.threads.<code> error code, where <code> is Meta’s error code. Reconnect the account to add them.
Beta scopes
These further scopes are requested only for accounts enrolled in the beta:
Until Meta grants a scope for every account, a call that needs it from an account without it returns
403 with a platform.threads.<code> error code, where <code> is Meta’s error code. A beta scope is added when the account connects: reconnect the account to add one granted later.
Related
- Threads publishing: fields, media rules, and quirks for publishing
- Connect accounts: the shared connect flow
- Platforms: the capability matrix
- Errors: every error code