# Threads API guide



## Start with Threads



Find public Threads posts or accounts, resolve a selected author and inspect a post discussion. Account search and post search answer different questions.



These requests use your API key and can spend credits. Check the current price on the endpoint page; each new page is a separate request. Later examples use illustrative identifiers: replace them with values from your earlier response.



### 1. Find relevant posts



Retain returned post URLs and author handles. The search contract does not declare cursor paging; do not keep inventing page numbers. [Parameters and current cost →](https://www.monocrawl.com/docs/endpoints/threads/search)



**threads/search**

```
curl "https://www.monocrawl.com/v1/threads/search?query=developer%20tools" \
  -H "x-api-key: mn_your_key_here"
```



### 2. Resolve an author



Replace this illustrative handle with an author from your search results. Resolve identity before aggregating posts by display name. [Parameters and current cost →](https://www.monocrawl.com/docs/endpoints/threads/profile)



**threads/profile**

```
curl "https://www.monocrawl.com/v1/threads/profile?handle=zuck" \
  -H "x-api-key: mn_your_key_here"
```



### 3. Inspect a discussion



Use a returned post URL and preserve any returned comment continuation and relationship fields. [Parameters and current cost →](https://www.monocrawl.com/docs/endpoints/threads/post-comments)



**threads/post-comments**

```
curl "https://www.monocrawl.com/v1/threads/post-comments?url=https%3A%2F%2Fwww.threads.com%2F%40zuck%2Fpost%2FDZpPDXbCeTt" \
  -H "x-api-key: mn_your_key_here"
```



## Choose filters with the source behavior in mind



| Control | Behavior and limits |
| --- | --- |
| Search window | Only use the declared start_date and end_date inputs. Search and user-posts do not declare page or cursor controls. [Endpoint reference →](https://www.monocrawl.com/docs/endpoints/threads/search) |
| Discussion paging | Preserve the post URL when following the comment cursor; absence of continuation is not proof of exhaustive history. [Endpoint reference →](https://www.monocrawl.com/docs/endpoints/threads/post-comments) |



Source availability, ordering and field coverage can change. Inspect warnings and partial-result metadata alongside the rows. See [runnable workflows](https://www.monocrawl.com/docs/workflows), [metric semantics](https://www.monocrawl.com/docs/metric-semantics), [computed fields](https://www.monocrawl.com/docs/computed-fields) and the [pagination matrix](https://www.monocrawl.com/docs/pagination).



## Match the operation to your task



| Your task | Endpoint | When to use it |
| --- | --- | --- |
| Discover accounts | [`search-users`](https://www.monocrawl.com/docs/endpoints/threads/search-users) | Search for users rather than treating post authors as a complete account directory. |
| Read one account feed | [`user-posts`](https://www.monocrawl.com/docs/endpoints/threads/user-posts) | A bounded account read. Do not assume the same continuation as post comments. |
| Resolve one post | [`post`](https://www.monocrawl.com/docs/endpoints/threads/post) | Use its source URL, and distinguish the post author from quoted or reposted content. |



Explore all documented operations by purpose below. Each endpoint reference contains its accepted parameters and current price.



### Posts and media



- [`post`](https://www.monocrawl.com/docs/endpoints/threads/post)

- [`user-posts`](https://www.monocrawl.com/docs/endpoints/threads/user-posts)



### Comments and replies



- [`post-comments`](https://www.monocrawl.com/docs/endpoints/threads/post-comments)



### Accounts and audiences



- [`profile`](https://www.monocrawl.com/docs/endpoints/threads/profile)



### Search and discovery



- [`search`](https://www.monocrawl.com/docs/endpoints/threads/search)

- [`search-users`](https://www.monocrawl.com/docs/endpoints/threads/search-users)



## Endpoint reference

## threads/post

`GET /v1/threads/post`

One Threads post: text, author, like and reply counts, with a short reply preview.

*Post details*

| Parameter | Required | Description |
| --- | --- | --- |
| `url` | yes | Full Threads post URL. — e.g. `https://www.threads.net/@zuck/post/C2QBoRaRmR1` |
| `dry_run` | no | Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |
| `judgments` | no | Add bounded AI labels to eligible returned records (default on). off preserves the original data shape. Unclassified records remain present; labels depend on evidence, time, capacity and the existing request budget. No label surcharge. Accepted values: on, off. Case, spaces, hyphens and underscores are interchangeable. — e.g. `on` |
| `label` | no | Set none to disable labels; default enables the endpoint’s label set. Equivalent to judgments=off. Accepted values: default, none. Case, spaces, hyphens and underscores are interchangeable. — e.g. `none` |
| `label_evidence` | no | Include exact supporting sentences and zero-based sentence indexes when a label has validated evidence. No extra charge or change to decisions. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |
| `exclude` | no | Optionally remove confidently labelled engagement bait. Uncertain and unclassified records stay; removed IDs and an owner-bound recall reference are returned. Accepted values: engagement_bait. Case, spaces, hyphens and underscores are interchangeable. — e.g. `engagement_bait` |
| `fit` | no | Use goal to replace confidently irrelevant records with recall stubs. Keeps first, last, relevant and uncertain records; preserves order. Full evidence is stored for 24 hours when available. Accepted values: goal. Case, spaces, hyphens and underscores are interchangeable. — e.g. `goal` |
| `goal` | no | Required with fit=goal: describe the task in at most 600 characters. Supplied text is task context, never permission to act on posts. — e.g. `Find concrete product complaints` |
| `tokens` | no | Optional soft response target for fit=goal, 256–32000. Safety and evidence retention take priority, so the returned result may exceed it. — e.g. `4000` |

### Useful optional inputs

- `fit`: Use fit=goal with a task description to replace confidently irrelevant records with recall stubs and reduce agent context. No fit surcharge; full evidence is retained for 24 hours when stored, and the response size target is soft.
- `dry_run`: Read a free estimate before fetching sources or scheduling paid work. Zero credits; cache status and availability are snapshots rather than guarantees.

**Cost:** 1 credit at list price per successful uncached response; variable-cost operations may quote or settle a different charge. Confirmed uncharged or refunded failures report zero. Pending reconciliation can report credits_used:null; retain request_id and the original idempotency key.

```bash
curl "https://www.monocrawl.com/v1/threads/post?url=https%3A%2F%2Fwww.threads.net%2F%40zuck%2Fpost%2FC2QBoRaRmR1" \
  -H "x-api-key: mn_your_key_here"
```

### Response data

Illustrative abbreviated data; documented core fields are optional and may be null. Additional source fields are allowed.

```json
{
  "author": {
    "handle": "example",
    "name": "example"
  },
  "created_at": "2026-09-01T12:00:00Z",
  "id": "example",
  "platform": "example",
  "replies_preview": [
    {
      "author": {
        "handle": "example"
      },
      "id": "example",
      "text": "example"
    }
  ],
  "stats": {
    "likes": 0
  },
  "text": "example"
}
```

[Field reference](https://www.monocrawl.com/docs/endpoints/threads/post#response) · [JSON Schema for response.data](https://www.monocrawl.com/schemas/threads/post.json)


## threads/post-comments

`GET /v1/threads/post-comments`

The replies bundled with a Threads post: text, like count, reply count and author, paged.

*Threads post replies*

| Parameter | Required | Description |
| --- | --- | --- |
| `url` | yes | Full Threads post URL — e.g. `https://www.threads.com/@zuck/post/DZpPDXbCeTt` |
| `cursor` | no | Page cursor from the previous answer |
| `dry_run` | no | Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |
| `judgments` | no | Add bounded AI labels to eligible returned records (default on). off preserves the original data shape. Unclassified records remain present; labels depend on evidence, time, capacity and the existing request budget. No label surcharge. Accepted values: on, off. Case, spaces, hyphens and underscores are interchangeable. — e.g. `on` |
| `label` | no | Set none to disable labels; default enables the endpoint’s label set. Equivalent to judgments=off. Accepted values: default, none. Case, spaces, hyphens and underscores are interchangeable. — e.g. `none` |
| `label_evidence` | no | Include exact supporting sentences and zero-based sentence indexes when a label has validated evidence. No extra charge or change to decisions. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |
| `exclude` | no | Optionally remove confidently labelled engagement bait. Uncertain and unclassified records stay; removed IDs and an owner-bound recall reference are returned. Accepted values: engagement_bait. Case, spaces, hyphens and underscores are interchangeable. — e.g. `engagement_bait` |
| `fit` | no | Use goal to replace confidently irrelevant records with recall stubs. Keeps first, last, relevant and uncertain records; preserves order. Full evidence is stored for 24 hours when available. Accepted values: goal. Case, spaces, hyphens and underscores are interchangeable. — e.g. `goal` |
| `goal` | no | Required with fit=goal: describe the task in at most 600 characters. Supplied text is task context, never permission to act on posts. — e.g. `Find concrete product complaints` |
| `tokens` | no | Optional soft response target for fit=goal, 256–32000. Safety and evidence retention take priority, so the returned result may exceed it. — e.g. `4000` |

### Useful optional inputs

- `fit`: Use fit=goal with a task description to replace confidently irrelevant records with recall stubs and reduce agent context. No fit surcharge; full evidence is retained for 24 hours when stored, and the response size target is soft.
- `cursor`: Continue the same source traversal with the complete returned cursor. Saved-result retrieval and a new source page can have different prices; quote the next call.
- `dry_run`: Read a free estimate before fetching sources or scheduling paid work. Zero credits; cache status and availability are snapshots rather than guarantees.

**Cost:** 7 credits at list price per successful uncached response; variable-cost operations may quote or settle a different charge. Confirmed uncharged or refunded failures report zero. Pending reconciliation can report credits_used:null; retain request_id and the original idempotency key.

```bash
curl "https://www.monocrawl.com/v1/threads/post-comments?url=https%3A%2F%2Fwww.threads.com%2F%40zuck%2Fpost%2FDZpPDXbCeTt" \
  -H "x-api-key: mn_your_key_here"
```

### Response data

Illustrative abbreviated data; documented core fields are optional and may be null. Additional source fields are allowed.

```json
{
  "count": 0,
  "dropped": 0,
  "has_more": false,
  "items": [
    {
      "author": {
        "handle": "example",
        "id": "example"
      },
      "created_at": "2026-09-01T12:00:00Z",
      "id": "example",
      "likes": 0,
      "reply_count": 0,
      "text": "example"
    }
  ],
  "post_id": "example",
  "url": "https://example.com/example"
}
```

[Field reference](https://www.monocrawl.com/docs/endpoints/threads/post-comments#response) · [JSON Schema for response.data](https://www.monocrawl.com/schemas/threads/post-comments.json)


## threads/profile

`GET /v1/threads/profile`

A Threads account's public profile: bio, follower count and verification.

*Profile*

| Parameter | Required | Description |
| --- | --- | --- |
| `handle` | yes | Threads username without the @. An optional leading @ is accepted and removed before lookup. — e.g. `zuck` |
| `dry_run` | no | Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |
| `judgments` | no | Add bounded AI labels to eligible returned records (default on). off preserves the original data shape. Unclassified records remain present; labels depend on evidence, time, capacity and the existing request budget. No label surcharge. Accepted values: on, off. Case, spaces, hyphens and underscores are interchangeable. — e.g. `on` |
| `label` | no | Set none to disable labels; default enables the endpoint’s label set. Equivalent to judgments=off. Accepted values: default, none. Case, spaces, hyphens and underscores are interchangeable. — e.g. `none` |
| `label_evidence` | no | Include exact supporting sentences and zero-based sentence indexes when a label has validated evidence. No extra charge or change to decisions. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |
| `exclude` | no | Optionally remove confidently labelled engagement bait. Uncertain and unclassified records stay; removed IDs and an owner-bound recall reference are returned. Accepted values: engagement_bait. Case, spaces, hyphens and underscores are interchangeable. — e.g. `engagement_bait` |
| `fit` | no | Use goal to replace confidently irrelevant records with recall stubs. Keeps first, last, relevant and uncertain records; preserves order. Full evidence is stored for 24 hours when available. Accepted values: goal. Case, spaces, hyphens and underscores are interchangeable. — e.g. `goal` |
| `goal` | no | Required with fit=goal: describe the task in at most 600 characters. Supplied text is task context, never permission to act on posts. — e.g. `Find concrete product complaints` |
| `tokens` | no | Optional soft response target for fit=goal, 256–32000. Safety and evidence retention take priority, so the returned result may exceed it. — e.g. `4000` |

### Useful optional inputs

- `fit`: Use fit=goal with a task description to replace confidently irrelevant records with recall stubs and reduce agent context. No fit surcharge; full evidence is retained for 24 hours when stored, and the response size target is soft.
- `dry_run`: Read a free estimate before fetching sources or scheduling paid work. Zero credits; cache status and availability are snapshots rather than guarantees.

**Cost:** 1 credit at list price per successful uncached response; variable-cost operations may quote or settle a different charge. Confirmed uncharged or refunded failures report zero. Pending reconciliation can report credits_used:null; retain request_id and the original idempotency key.

```bash
curl "https://www.monocrawl.com/v1/threads/profile?handle=zuck" \
  -H "x-api-key: mn_your_key_here"
```

### Response data

Illustrative abbreviated data; documented core fields are optional and may be null. Additional source fields are allowed.

```json
{
  "avatar_url": "https://example.com/example",
  "bio": "example",
  "followers": 0,
  "handle": "example",
  "id": "example",
  "name": "example",
  "platform": "example",
  "private": false,
  "url": "https://example.com/example",
  "verified": false
}
```

[Field reference](https://www.monocrawl.com/docs/endpoints/threads/profile#response) · [JSON Schema for response.data](https://www.monocrawl.com/schemas/threads/profile.json)


## threads/search

`GET /v1/threads/search`

Search Threads posts by keyword: text, author, like and reply counts.

*Post search*

| Parameter | Required | Description |
| --- | --- | --- |
| `query` | yes | Search term. — e.g. `coffee` |
| `start_date` | no | Earliest post date, YYYY-MM-DD. |
| `end_date` | no | Latest post date, YYYY-MM-DD. |
| `dry_run` | no | Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |
| `judgments` | no | Add bounded AI labels to eligible returned records (default on). off preserves the original data shape. Unclassified records remain present; labels depend on evidence, time, capacity and the existing request budget. No label surcharge. Accepted values: on, off. Case, spaces, hyphens and underscores are interchangeable. — e.g. `on` |
| `label` | no | Set none to disable labels; default enables the endpoint’s label set. Equivalent to judgments=off. Accepted values: default, none. Case, spaces, hyphens and underscores are interchangeable. — e.g. `none` |
| `label_evidence` | no | Include exact supporting sentences and zero-based sentence indexes when a label has validated evidence. No extra charge or change to decisions. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |
| `exclude` | no | Optionally remove confidently labelled engagement bait. Uncertain and unclassified records stay; removed IDs and an owner-bound recall reference are returned. Accepted values: engagement_bait. Case, spaces, hyphens and underscores are interchangeable. — e.g. `engagement_bait` |
| `fit` | no | Use goal to replace confidently irrelevant records with recall stubs. Keeps first, last, relevant and uncertain records; preserves order. Full evidence is stored for 24 hours when available. Accepted values: goal. Case, spaces, hyphens and underscores are interchangeable. — e.g. `goal` |
| `goal` | no | Required with fit=goal: describe the task in at most 600 characters. Supplied text is task context, never permission to act on posts. — e.g. `Find concrete product complaints` |
| `tokens` | no | Optional soft response target for fit=goal, 256–32000. Safety and evidence retention take priority, so the returned result may exceed it. — e.g. `4000` |

### Useful optional inputs

- `fit`: Use fit=goal with a task description to replace confidently irrelevant records with recall stubs and reduce agent context. No fit surcharge; full evidence is retained for 24 hours when stored, and the response size target is soft.
- `dry_run`: Read a free estimate before fetching sources or scheduling paid work. Zero credits; cache status and availability are snapshots rather than guarantees.

**Cost:** 1 credit at list price per successful uncached response; variable-cost operations may quote or settle a different charge. Confirmed uncharged or refunded failures report zero. Pending reconciliation can report credits_used:null; retain request_id and the original idempotency key.

```bash
curl "https://www.monocrawl.com/v1/threads/search?query=coffee" \
  -H "x-api-key: mn_your_key_here"
```

### Response data

Illustrative abbreviated data; documented core fields are optional and may be null. Additional source fields are allowed.

```json
{
  "items": [
    {
      "author": {
        "avatar_url": "https://example.com/example",
        "handle": "example",
        "id": "example",
        "name": "example",
        "verified": false
      },
      "carousel": [
        {}
      ],
      "code": "example",
      "created_at": "2026-09-01T12:00:00Z",
      "display_url": "https://example.com/example",
      "has_audio": false,
      "id": "example",
      "media_urls": [
        "example"
      ],
      "platform": "example",
      "stats": {
        "likes": 0,
        "quotes": 0,
        "replies": 0,
        "reposts": 0
      },
      "text": "example",
      "thumbnail_url": "https://example.com/example",
      "url": "https://example.com/example",
      "video_url": "https://example.com/example"
    }
  ]
}
```

[Field reference](https://www.monocrawl.com/docs/endpoints/threads/search#response) · [JSON Schema for response.data](https://www.monocrawl.com/schemas/threads/search.json)


## threads/search-users

`GET /v1/threads/search-users`

Accounts matching a query on Threads: handle, name, verification and avatar.

*Threads user search*

| Parameter | Required | Description |
| --- | --- | --- |
| `query` | yes | Name or handle to search for — e.g. `nasa` |
| `dry_run` | no | Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |
| `judgments` | no | Add bounded AI labels to eligible returned records (default on). off preserves the original data shape. Unclassified records remain present; labels depend on evidence, time, capacity and the existing request budget. No label surcharge. Accepted values: on, off. Case, spaces, hyphens and underscores are interchangeable. — e.g. `on` |
| `label` | no | Set none to disable labels; default enables the endpoint’s label set. Equivalent to judgments=off. Accepted values: default, none. Case, spaces, hyphens and underscores are interchangeable. — e.g. `none` |
| `label_evidence` | no | Include exact supporting sentences and zero-based sentence indexes when a label has validated evidence. No extra charge or change to decisions. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |
| `exclude` | no | Optionally remove confidently labelled engagement bait. Uncertain and unclassified records stay; removed IDs and an owner-bound recall reference are returned. Accepted values: engagement_bait. Case, spaces, hyphens and underscores are interchangeable. — e.g. `engagement_bait` |
| `fit` | no | Use goal to replace confidently irrelevant records with recall stubs. Keeps first, last, relevant and uncertain records; preserves order. Full evidence is stored for 24 hours when available. Accepted values: goal. Case, spaces, hyphens and underscores are interchangeable. — e.g. `goal` |
| `goal` | no | Required with fit=goal: describe the task in at most 600 characters. Supplied text is task context, never permission to act on posts. — e.g. `Find concrete product complaints` |
| `tokens` | no | Optional soft response target for fit=goal, 256–32000. Safety and evidence retention take priority, so the returned result may exceed it. — e.g. `4000` |

### Useful optional inputs

- `fit`: Use fit=goal with a task description to replace confidently irrelevant records with recall stubs and reduce agent context. No fit surcharge; full evidence is retained for 24 hours when stored, and the response size target is soft.
- `dry_run`: Read a free estimate before fetching sources or scheduling paid work. Zero credits; cache status and availability are snapshots rather than guarantees.

**Cost:** 1 credit at list price per successful uncached response; variable-cost operations may quote or settle a different charge. Confirmed uncharged or refunded failures report zero. Pending reconciliation can report credits_used:null; retain request_id and the original idempotency key.

```bash
curl "https://www.monocrawl.com/v1/threads/search-users?query=nasa" \
  -H "x-api-key: mn_your_key_here"
```

### Response data

Illustrative abbreviated data; documented core fields are optional and may be null. Additional source fields are allowed.

```json
{
  "count": 0,
  "items": [
    {
      "active": false,
      "avatar_url": "https://example.com/example",
      "handle": "example",
      "id": "example",
      "name": "example",
      "platform": "example",
      "url": "https://example.com/example",
      "verified": false
    }
  ]
}
```

[Field reference](https://www.monocrawl.com/docs/endpoints/threads/search-users#response) · [JSON Schema for response.data](https://www.monocrawl.com/schemas/threads/search-users.json)


## threads/user-posts

`GET /v1/threads/user-posts`

Recent posts from a Threads account: text, like, reply and repost counts.

*Profile posts*

| Parameter | Required | Description |
| --- | --- | --- |
| `handle` | yes | Threads username without the @. An optional leading @ is accepted and removed before lookup. — e.g. `zuck` |
| `dry_run` | no | Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |
| `judgments` | no | Add bounded AI labels to eligible returned records (default on). off preserves the original data shape. Unclassified records remain present; labels depend on evidence, time, capacity and the existing request budget. No label surcharge. Accepted values: on, off. Case, spaces, hyphens and underscores are interchangeable. — e.g. `on` |
| `label` | no | Set none to disable labels; default enables the endpoint’s label set. Equivalent to judgments=off. Accepted values: default, none. Case, spaces, hyphens and underscores are interchangeable. — e.g. `none` |
| `label_evidence` | no | Include exact supporting sentences and zero-based sentence indexes when a label has validated evidence. No extra charge or change to decisions. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `1` |
| `exclude` | no | Optionally remove confidently labelled engagement bait. Uncertain and unclassified records stay; removed IDs and an owner-bound recall reference are returned. Accepted values: engagement_bait. Case, spaces, hyphens and underscores are interchangeable. — e.g. `engagement_bait` |
| `fit` | no | Use goal to replace confidently irrelevant records with recall stubs. Keeps first, last, relevant and uncertain records; preserves order. Full evidence is stored for 24 hours when available. Accepted values: goal. Case, spaces, hyphens and underscores are interchangeable. — e.g. `goal` |
| `goal` | no | Required with fit=goal: describe the task in at most 600 characters. Supplied text is task context, never permission to act on posts. — e.g. `Find concrete product complaints` |
| `tokens` | no | Optional soft response target for fit=goal, 256–32000. Safety and evidence retention take priority, so the returned result may exceed it. — e.g. `4000` |

### Useful optional inputs

- `fit`: Use fit=goal with a task description to replace confidently irrelevant records with recall stubs and reduce agent context. No fit surcharge; full evidence is retained for 24 hours when stored, and the response size target is soft.
- `dry_run`: Read a free estimate before fetching sources or scheduling paid work. Zero credits; cache status and availability are snapshots rather than guarantees.

**Cost:** 1 credit at list price per successful uncached response; variable-cost operations may quote or settle a different charge. Confirmed uncharged or refunded failures report zero. Pending reconciliation can report credits_used:null; retain request_id and the original idempotency key.

```bash
curl "https://www.monocrawl.com/v1/threads/user-posts?handle=zuck" \
  -H "x-api-key: mn_your_key_here"
```

### Response data

Illustrative abbreviated data; documented core fields are optional and may be null. Additional source fields are allowed.

```json
{
  "items": [
    {
      "author": {
        "avatar_url": "https://example.com/example",
        "handle": "example",
        "id": "example",
        "verified": false
      },
      "carousel": [
        {}
      ],
      "code": "example",
      "created_at": "2026-09-01T12:00:00Z",
      "display_url": "https://example.com/example",
      "has_audio": false,
      "id": "example",
      "media_urls": [
        "example"
      ],
      "platform": "example",
      "stats": {
        "likes": 0,
        "quotes": 0,
        "replies": 0,
        "reposts": 0
      },
      "text": "example",
      "thumbnail_url": "https://example.com/example",
      "url": "https://example.com/example",
      "video_url": "https://example.com/example"
    }
  ]
}
```

[Field reference](https://www.monocrawl.com/docs/endpoints/threads/user-posts#response) · [JSON Schema for response.data](https://www.monocrawl.com/schemas/threads/user-posts.json)

