> ## Documentation Index
> Fetch the complete documentation index at: https://docs.social-api.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Threads

> Connect and interact with Threads accounts via the Meta Threads API.

<Badge>Available</Badge>

**Managed connector** - SocialAPI handles the Meta Threads App and platform app review for you. No customer-side Meta for Developers registration required. See [Platform credentials](/guides/platform-credentials).

Threads is fully supported for posts, comments, moderation, and publishing.

## At a glance

| Field         | Value                                       |
| ------------- | ------------------------------------------- |
| Platform slug | `threads`                                   |
| Auth type     | OAuth 2.0 (Meta)                            |
| API           | Threads Graph API                           |
| Best for      | Text-first posting and replying on Threads. |

## Capabilities

| Feature                               | Supported | Notes                                                                                                                                                            |
| ------------------------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| List posts                            | Yes       | Text posts, images, videos, carousels                                                                                                                            |
| Comments                              | Yes       | Replies to a specific post                                                                                                                                       |
| Reply to comment                      | Yes       |                                                                                                                                                                  |
| Comment replies (thread)              | Yes       | Fetch the reply thread under a comment                                                                                                                           |
| Moderate comment (hide/unhide/delete) | Yes       | Hide, unhide, and delete supported. Unknown actions return `501`.                                                                                                |
| Toggle post comments                  | No        | Not supported by Threads API                                                                                                                                     |
| DMs                                   | No        | Not supported by platform                                                                                                                                        |
| Reviews                               | No        | Not applicable                                                                                                                                                   |
| Mentions                              | Beta      | Polling via `GET /v1/accounts/{id}/mentions` plus an inbound webhook (field: `mentions`). Requires the `threads_manage_mentions` scope, pending Meta App Review. |
| Insights                              | Beta      | Post-level and account-level metrics. Requires the `threads_manage_insights` scope, pending Meta App Review.                                                     |
| Profile discovery                     | Beta      | Public profile lookup by exact username. Requires the `threads_profile_discovery` scope, pending Meta App Review.                                                |
| Create post                           | Yes       | Text, images, videos, carousels                                                                                                                                  |
| Delete post                           | Yes       |                                                                                                                                                                  |
| Update post                           | No        | Not supported by Threads API                                                                                                                                     |

## Connecting

```bash theme={null}
curl -X POST https://api.social-api.ai/v1/accounts/connect \
  -H "Authorization: Bearer $SOCAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "platform": "threads",
    "redirect_uri": "https://app.example.com/oauth/callback",
    "state": "session_abc123"
  }'
```

Response:

```json theme={null}
{
  "auth_url": "https://threads.net/oauth/authorize?client_id=...&state=...",
  "state": "4a8f2c1e9b3d7f06a5c2e8b4d1f3a7e2"
}
```

Redirect your user to `auth_url`. After they authorize, SocialAPI exchanges the code with Threads and redirects the user to your `redirect_uri` with the connection result. See [OAuth flows](/guides/oauth#step-3-receive-the-result-at-your-redirect_uri) for the redirect parameters.

## Reading samples

### List posts

```bash theme={null}
curl "https://api.social-api.ai/v1/accounts/{id}/posts?limit=10" \
  -H "Authorization: Bearer $SOCAPI_KEY"
```

Sample response:

```json theme={null}
{
  "data": [
    {
      "id": "17895695668004550",
      "platform": "threads",
      "caption": "Hello from Threads!",
      "media_type": "TEXT_POST",
      "permalink": "https://www.threads.net/@acmecorp/post/ABC123",
      "timestamp": "2026-03-01T12:00:00Z",
      "like_count": 18,
      "comments_count": 3,
      "account_id": "acc_01HZ9X3Q4R5M6N7P8V2K0W1J"
    }
  ],
  "count": 1
}
```

### List comments on a post

```bash theme={null}
curl "https://api.social-api.ai/v1/accounts/{id}/posts/17895695668004550/comments?limit=10" \
  -H "Authorization: Bearer $SOCAPI_KEY"
```

## Beta endpoints

These are live for beta accounts and gated on scopes still pending Meta App Review. See [Beta scopes pending review](#beta-scopes-pending-review).

### Insights

Post-level metrics for one post:

```bash theme={null}
curl "https://api.social-api.ai/v1/platforms/threads/insights?account_id=acc_01HZ9X3Q4R5M6N7P8V2K0W1J&level=media&post_id=17895695668004550" \
  -H "Authorization: Bearer $SOCAPI_KEY"
```

Account-level metrics, with an optional window:

```bash theme={null}
curl "https://api.social-api.ai/v1/platforms/threads/insights?account_id=acc_01HZ9X3Q4R5M6N7P8V2K0W1J&level=account&since=1712991600" \
  -H "Authorization: Bearer $SOCAPI_KEY"
```

Each metric comes back as either a scalar or a dated series, never both. Account-level `views` is a series; the rest are scalars.

```json theme={null}
{
  "data": {
    "metrics": {
      "followers_count": { "value": 1280 },
      "clicks": { "value": 47 },
      "views": {
        "values": [
          { "end_time": "2026-08-20T07:00:00Z", "value": 910 },
          { "end_time": "2026-08-21T07:00:00Z", "value": 1204 }
        ]
      }
    }
  }
}
```

Follower demographics need exactly one breakdown and reject `since` and `until`:

```bash theme={null}
curl "https://api.social-api.ai/v1/platforms/threads/insights?account_id=acc_01HZ9X3Q4R5M6N7P8V2K0W1J&level=account&metric=follower_demographics&breakdown=country" \
  -H "Authorization: Bearer $SOCAPI_KEY"
```

### Profile discovery

Look up a public profile by exact username. A leading `@` is optional.

```bash theme={null}
curl "https://api.social-api.ai/v1/platforms/threads/profile-lookup?account_id=acc_01HZ9X3Q4R5M6N7P8V2K0W1J&username=meta" \
  -H "Authorization: Bearer $SOCAPI_KEY"
```

A `404` means the username is not discoverable. Meta returns the same response whether the account does not exist, has fewer than 100 followers, or falls outside the access tier, so the three cases cannot be told apart.

### Mentions

Mentions use the standard mentions routes, which now cover Threads:

```bash theme={null}
curl "https://api.social-api.ai/v1/accounts/{id}/mentions?limit=20" \
  -H "Authorization: Bearer $SOCAPI_KEY"
```

## Publishing

Create a Threads post with optional platform-specific fields:

```bash theme={null}
curl -X POST https://api.social-api.ai/v1/posts \
  -H "Authorization: Bearer $SOCAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Hello from Threads!",
    "targets": [
      {
        "account_id": "acc_01HZ9X3Q4R5M6N7P8V2K0W1J",
        "platform_data": {
          "reply_control": "accounts_you_follow"
        }
      }
    ]
  }'
```

For the full field reference, media constraints, and error recovery, see [Threads posts](/posts/threads).

## Limitations and gotchas

* **Moderation.** Hide, unhide, and delete are supported. Unsupported moderation actions return `501`.
* **No post updates.** Threads does not support editing published posts. Use delete and re-create if needed.
* **Publishing.** Supports text posts, single images, single videos, and carousel posts.
* **Mentions have two paths.** The webhook delivers mentions in near real time but carries no message text: Meta's payload has only the post id, the mentioning username, and the media id. The polling endpoint returns the text. Use polling where the text matters, and the webhook to know when to poll.
* **Insight metric sets differ by level.** Post-level metrics are `views`, `likes`, `replies`, `reposts`, `quotes`, and `shares`. Account-level metrics are those five minus `shares`, plus `clicks`, `followers_count`, and `follower_demographics`. `shares` is post-only and `clicks` is account-only.
* **`follower_demographics` is fussy.** It needs exactly one `breakdown` (`country`, `city`, `age`, or `gender`), it rejects `since` and `until`, and Meta returns nothing unless the account has 100 or more followers.
* **Insights lag publishing.** Metrics for a new post can take a few minutes to appear, and deleted posts return nothing. Both come back as an empty result rather than an error.
* **Insight date range floor.** Insight queries reject timestamps before `1712991600` (2024-04-13). Mentions use a different floor, `1688540400`.
* **Profile discovery is exact-match only.** There is no fuzzy or prefix search, only profiles with 100 or more followers are discoverable, and the budget is 1000 lookups per user per rolling 24 hours.
* **Token refresh.** Threads tokens can expire. SocialAPI handles refresh automatically. If you receive `401` with `code: "platform.threads.auth"`, reconnect the account.

## Permissions

SocialAPI's managed Meta Threads App already requests these scopes on your behalf: `threads_basic`, `threads_content_publish`, `threads_read_replies`, `threads_delete`. You don't need to apply for any platform app review. See [Platform credentials](/guides/platform-credentials).

### Beta scopes pending review

Four further scopes are submitted to Meta but not yet granted: `threads_manage_replies`, `threads_manage_insights`, `threads_manage_mentions`, and `threads_profile_discovery`.

The endpoints behind them are built and documented, and they are requested only for accounts enrolled in the beta. Until Meta grants a scope, calls that depend on it return an upstream authorization error for any account outside our app's tester roster. Nothing you need to do: the scopes are added to your connection automatically once approval lands.

## Related

* [Platform credentials](/guides/platform-credentials)
* [OAuth flows](/guides/oauth)
* [Publishing to Threads](/posts/threads)
* [Errors](/guides/errors)
* [Interaction IDs](/guides/interaction-ids)
