# X API guide



## Start with X



Read public accounts, their posts and replies to a known post. Preserve conversation IDs and reply relationships when analysing a discussion.



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. Read the account



Use the username without @. Verification and public counts describe the returned account snapshot. [Parameters and current cost →](https://www.monocrawl.com/docs/endpoints/x/profile)



**x/profile**

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



### 2. Collect a page of posts



Keep each post ID as a string and retain its original URL. Follow only the continuation returned by this endpoint. [Parameters and current cost →](https://www.monocrawl.com/docs/endpoints/x/tweets)



**x/tweets**

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



### 3. Open one post



Replace the example URL with a returned post URL. The result contains the text, author and available engagement counts. [Parameters and current cost →](https://www.monocrawl.com/docs/endpoints/x/tweet)



**x/tweet**

```
curl "https://www.monocrawl.com/v1/x/tweet?url=https%3A%2F%2Fx.com%2Fnasa%2Fstatus%2F2095621168208248911" \
  -H "x-api-key: mn_your_key_here"
```



## Choose filters with the source behavior in mind



| Control | Behavior and limits |
| --- | --- |
| Keyword discovery | mode defaults to latest (newest first); top uses source relevance ranking. mode wins over sort, which wins over sort_by. Query operators include from:handle, to:handle, lang:en, min_faves:100, quoted phrases and -word. from_date/to_date set ISO-date bounds. Set include_reposts explicitly to true or false: omitted behavior can vary across sources. Keep the same query, mode and repost setting across pages. [Endpoint reference →](https://www.monocrawl.com/docs/endpoints/x/search-tweets) |
| Identity | Use the account handle without @. Retain post IDs as strings and pass the source post URL to tweet. Names and biographies are account-entered text, not verified identity. [Endpoint reference →](https://www.monocrawl.com/docs/endpoints/x/profile) |
| Account feeds | Carry the handle and opaque cursor together. Account feeds, replies and media are different views; do not reuse their tokens across endpoints. Returned ordering can include pinned or source-ranked content. [Endpoint reference →](https://www.monocrawl.com/docs/endpoints/x/tweets) |
| Reply scope | Supply the post ID; the route also accepts a post URL. from_date and to_date are ISO-date filters for this reply operation. Do not assume an account feed supports those same filters. [Endpoint reference →](https://www.monocrawl.com/docs/endpoints/x/tweet-replies) |
| Relationships and coverage | Keep in_reply_to_id and conversation_id where supplied. Reply and quote counts do not include the text of those posts. Protected, deleted or unavailable posts may not be retrievable. [Endpoint reference →](https://www.monocrawl.com/docs/endpoints/x/tweet) |
| Metric meaning | Retweets, replies, quotes, bookmarks and views are separate source counters. Missing views are unknown. verified_blue denotes the source’s blue-verification flag, not an independent identity check. [Endpoint reference →](https://www.monocrawl.com/docs/endpoints/x/tweet) |



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 |
| --- | --- | --- |
| Replies to one post | [`tweet-replies`](https://www.monocrawl.com/docs/endpoints/x/tweet-replies) | Use the numeric post ID and preserve conversation and parent IDs. |
| Posts matching a phrase | [`search-tweets`](https://www.monocrawl.com/docs/endpoints/x/search-tweets) | Choose latest or top and use advanced query operators for account, language or exact-phrase constraints. |
| Media from an account | [`user-media`](https://www.monocrawl.com/docs/endpoints/x/user-media) | A media-specific account view with its own continuation contract. |
| Quoted posts | [`quotes`](https://www.monocrawl.com/docs/endpoints/x/quotes) | Quotes and replies are different relationships; inspect the endpoint’s accepted identifier. |
| A profile and recent posts together | [`profile/full`](https://www.monocrawl.com/docs/endpoints/x/profile/full) | A bounded bundle, with component success and sample statistics. |



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



### Other operations



- [`community`](https://www.monocrawl.com/docs/endpoints/x/community)

- [`mentions`](https://www.monocrawl.com/docs/endpoints/x/mentions)



### Posts and media



- [`community-tweets`](https://www.monocrawl.com/docs/endpoints/x/community-tweets)

- [`quotes`](https://www.monocrawl.com/docs/endpoints/x/quotes)

- [`retweeters`](https://www.monocrawl.com/docs/endpoints/x/retweeters)

- [`tweet`](https://www.monocrawl.com/docs/endpoints/x/tweet)

- [`tweets`](https://www.monocrawl.com/docs/endpoints/x/tweets)

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



### Accounts and audiences



- [`following`](https://www.monocrawl.com/docs/endpoints/x/following)

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

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

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



### Search and discovery



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

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



### Comments and replies



- [`tweet-replies`](https://www.monocrawl.com/docs/endpoints/x/tweet-replies)



### Transcripts



- [`tweet-transcript`](https://www.monocrawl.com/docs/endpoints/x/tweet-transcript)



## Endpoint reference

## x/community

`GET /v1/x/community`

One X community: name, description, member count and rules.

*Community*

| Parameter | Required | Description |
| --- | --- | --- |
| `url` | yes | Full x.com community URL. — e.g. `https://x.com/i/communities/1926186499399139650` |
| `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` |

### Useful optional inputs

- `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:** 3 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/x/community?url=https%3A%2F%2Fx.com%2Fi%2Fcommunities%2F1926186499399139650" \
  -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
{
  "banner": "example",
  "created_at": "2026-09-01T12:00:00Z",
  "description": "example",
  "id": "example",
  "is_nsfw": false,
  "join_policy": "example",
  "members": 0,
  "name": "example",
  "platform": "example",
  "rule_details": [
    {
      "description": "example",
      "id": "example",
      "name": "example"
    }
  ],
  "rules": [
    "example"
  ]
}
```

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


## x/community-tweets

`GET /v1/x/community-tweets`

Recent tweets inside an X community with authors and engagement counts.

*Community tweets*

| Parameter | Required | Description |
| --- | --- | --- |
| `url` | yes | Full x.com community URL. — e.g. `https://x.com/i/communities/1926186499399139650` |
| `cursor` | no | Opaque continuation cursor from the preceding response; keep the same community URL. |
| `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:** 2 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/x/community-tweets?url=https%3A%2F%2Fx.com%2Fi%2Fcommunities%2F1926186499399139650" \
  -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
{
  "dropped": 0,
  "items": [
    {
      "author": {
        "handle": "example",
        "id": "example",
        "name": "example",
        "verified_blue": false
      },
      "created_at": "2026-09-01T12:00:00Z",
      "id": "example",
      "platform": "example",
      "stats": {
        "bookmarks": 0,
        "likes": 0,
        "quotes": 0,
        "replies": 0,
        "retweets": 0,
        "views": 0
      },
      "text": "example",
      "url": "https://example.com/example"
    }
  ]
}
```

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


## x/following

`GET /v1/x/following`

The accounts an X account follows, as profile cards — handle, name, bio, location, follower/following/post counts, join date, avatar — up to 200 a page with cursor pagination.

*Following*

| Parameter | Required | Description |
| --- | --- | --- |
| `handle` | yes | X username without the @. An optional leading @ is accepted and removed before lookup. — e.g. `monzo` |
| `limit` | no | Requested rows per response, 1–1000. The source may return fewer. Remaining rows from an already purchased page use a saved cursor and cost zero to retrieve for up to one hour; further native source pages use this endpoint’s normal price. — e.g. `5` |
| `cursor` | no | Use the returned cursor unchanged, retaining the original query, filters and limit. Saved mlo1. cursors retrieve already purchased rows at zero credits for up to one hour. A native source cursor, when supplied, starts a normally priced source page. Quote with dry_run before continuing. |
| `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` |

### Useful optional inputs

- `limit`: Bound the returned rows to what your task needs. A smaller limit does not necessarily reduce source calls or price; inspect the quote.
- `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:** 3 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/x/following?handle=monzo" \
  -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,
  "cursor": null,
  "dropped": 0,
  "handle": "example",
  "has_more": false,
  "items": [
    {
      "avatar_url": "https://example.com/example",
      "bio": "example",
      "created_at": "2026-09-01T12:00:00Z",
      "followers": 0,
      "following": 0,
      "handle": "example",
      "id": "example",
      "likes_count": 0,
      "location": "example",
      "name": "example",
      "platform": "example",
      "protected": false,
      "tweets_count": 0,
      "url": "https://example.com/example",
      "verified_legacy": false
    }
  ],
  "page_size": 0,
  "platform": "example"
}
```

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


## x/mentions

`GET /v1/x/mentions`

Public X posts that mention an account, newest first, 20 a page: each as a full post card with its author, counts, media and links, with cursor pagination and an optional date window.

*Mentions*

| Parameter | Required | Description |
| --- | --- | --- |
| `handle` | yes | X username without the @. An optional leading @ is accepted and removed before lookup. — e.g. `monzo` |
| `cursor` | no | Opaque cursor from the previous page's cursor field. |
| `from_date` | no | ISO date lower bound on post time. — e.g. `2026-08-01` |
| `to_date` | no | ISO date upper bound on post time. — e.g. `2026-09-01` |
| `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` |

### Useful optional inputs

- `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:** 3 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/x/mentions?handle=monzo" \
  -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": [],
  "cursor": null
}
```

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


## x/profile

`GET /v1/x/profile`

An X account's public profile: bio, follower and post counts, blue-verification.

*Profile*

| Parameter | Required | Description |
| --- | --- | --- |
| `handle` | yes | X username without the @. An optional leading @ is accepted and removed before lookup. — 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/x/profile?handle=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
{
  "id": "7350000000000000001",
  "handle": "example_creator",
  "name": "Example Creator",
  "followers": 12000,
  "following": 180,
  "bio": null,
  "verified": false,
  "tweets_count": 96,
  "verified_blue": false
}
```

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


## x/profile/full

`GET /v1/x/profile/full`

A real public profile plus one page of posts/videos, preserving original normalized component fields and source order. HTTP 200 may be partial: inspect complete, partial and legs. Failed profile: no posts requested, zero charge. Failed posts: profile retained and only that successful component charged. Cached components use the public cache-hit price. Computed fields summarize the returned page, including available engagement averages and observed posting frequency. Missing metrics remain unknown.

*X profile with posts (one page)*

| Parameter | Required | Description |
| --- | --- | --- |
| `handle` | yes | Public profile identifier. LinkedIn accepts /company/name or /in/name URLs. An optional leading @ is accepted and removed before lookup. — e.g. `NASA` |
| `posts` | no | Desired page size, 1-100. Existing components choose their own page size; the entire single source page is preserved, even if longer or shorter, so no records are skipped between cursors. No automatic extra pages. — e.g. `25` |
| `cursor` | no | Opaque posts_cursor from the previous response; use posts_pagination.next_params to retain all required context. Unsupported component continuation is refused before calls. |
| `include` | no | CSV: posts and/or computed (default both), or profile alone. Profile is always returned. Computed is arithmetic over this page only, not an AI summary. — e.g. `posts,computed` |
| `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:** 5 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/x/profile/full?handle=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
{
  "profile": {
    "id": "7350000000000000001",
    "handle": "example_creator",
    "name": "Example Creator",
    "followers": 12000,
    "following": 180,
    "bio": null,
    "verified": false,
    "tweets_count": 96,
    "verified_blue": false
  },
  "posts": [
    {
      "id": "1900000000000000001",
      "text": "Our workspace guide is ready.",
      "created_at": "2026-09-01T12:00:00.000Z",
      "author": {
        "handle": "example_creator",
        "name": "Example Creator"
      },
      "stats": {
        "likes": 42,
        "retweets": 8,
        "replies": 5,
        "views": null
      }
    }
  ],
  "complete": true,
  "partial": false,
  "posts_cursor": null,
  "posts_pagination": {
    "returned": 1,
    "has_more": null,
    "next_params": null
  }
}
```

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


## x/quotes

`GET /v1/x/quotes`

The posts that quote a public X post, newest first, 20 a page: each as a full post card with quoted_tweet_id set, its author and counts, with cursor pagination and an optional date window.

*Quote posts*

| Parameter | Required | Description |
| --- | --- | --- |
| `id` | yes | Numeric post id. Pass url instead if you only have the link. — e.g. `1876576540177105257` |
| `url` | no | An x.com or twitter.com status link; the id is read from it locally. — e.g. `https://x.com/monzo/status/1876576540177105257` |
| `cursor` | no | Opaque cursor from the previous page's cursor field. |
| `from_date` | no | ISO date lower bound on quote time. — e.g. `2026-08-01` |
| `to_date` | no | ISO date upper bound on quote time. — e.g. `2026-09-01` |
| `include_replies` | no | false to leave out quotes that are themselves replies. Default true. — e.g. `true` |
| `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` |

### Useful optional inputs

- `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:** 3 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/x/quotes?id=1876576540177105257" \
  -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": [],
  "cursor": null
}
```

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


## x/retweeters

`GET /v1/x/retweeters`

The accounts that reposted a public X post, as profile cards with follower counts and join dates, with cursor pagination.

*Retweeters*

| Parameter | Required | Description |
| --- | --- | --- |
| `id` | yes | Numeric post id. Pass url instead if you only have the link. — e.g. `1876576540177105257` |
| `url` | no | An x.com or twitter.com status link; the id is read from it locally. — e.g. `https://x.com/monzo/status/1876576540177105257` |
| `cursor` | no | Opaque cursor from the previous page's cursor field. |
| `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` |

### Useful optional inputs

- `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:** 3 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/x/retweeters?id=1876576540177105257" \
  -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": [],
  "cursor": null
}
```

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


## x/search-tweets

`GET /v1/x/search-tweets`

Keyword search over public X posts, newest or top first: text, author card, like/repost/reply/quote/view counts, media, hashtags, mentions and links — 20 posts a page with cursor pagination.

*Search posts*

| Parameter | Required | Description |
| --- | --- | --- |
| `query` | yes | Search terms. X's advanced operators work: from:handle, to:handle, lang:en, min_faves:100, "exact phrase", -word. — e.g. `Monzo bank` |
| `mode` | no | latest (default) for newest first, top for X's relevance ranking. Accepted values: latest, top. Case, spaces, hyphens and underscores are interchangeable. — e.g. `latest` |
| `cursor` | no | Opaque cursor from the previous page's cursor field. |
| `from_date` | no | ISO date lower bound (translated to X's since_time operator). — e.g. `2026-08-01` |
| `to_date` | no | ISO date upper bound (translated to X's until_time operator). — e.g. `2026-09-01` |
| `include_reposts` | no | Set true to include reposts or false to exclude them. Set this explicitly and preserve it across pages; omitted behavior can differ across sources. — e.g. `false` |
| `sort` | no | Alias for mode: latest or top. mode takes precedence; otherwise sort takes precedence over sort_by. Equivalent spellings share the response cache. Accepted values: latest, top. Case, spaces, hyphens and underscores are interchangeable. — e.g. `latest` |
| `sort_by` | no | Alias for mode: latest or top. mode, then sort, take precedence. Equivalent spellings share the response cache. Accepted values: latest, top. Case, spaces, hyphens and underscores are interchangeable. — e.g. `top` |
| `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

- `sort`: Choose the documented source ordering before paging through results. Ordering keeps the normal endpoint price and does not guarantee exhaustive results.
- `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/x/search-tweets?query=Monzo%20bank" \
  -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": [
    {
      "id": "1900000000000000001",
      "text": "Our workspace guide is ready.",
      "created_at": "2026-09-01T12:00:00.000Z",
      "author": {
        "handle": "example_creator",
        "name": "Example Creator"
      },
      "stats": {
        "likes": 42,
        "retweets": 8,
        "replies": 5,
        "views": null
      }
    }
  ],
  "cursor": null,
  "has_more": null
}
```

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


## x/tweet

`GET /v1/x/tweet`

One X post: text, author and current engagement counts.

*Post details*

| Parameter | Required | Description |
| --- | --- | --- |
| `url` | yes | Full X post URL. — e.g. `https://x.com/nasa/status/2095621168208248911` |
| `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/x/tweet?url=https%3A%2F%2Fx.com%2Fnasa%2Fstatus%2F2095621168208248911" \
  -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
{
  "id": "1900000000000000001",
  "text": "Our workspace guide is ready.",
  "created_at": "2026-09-01T12:00:00.000Z",
  "author": {
    "handle": "example_creator",
    "name": "Example Creator"
  },
  "stats": {
    "likes": 42,
    "retweets": 8,
    "replies": 5,
    "views": null
  }
}
```

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


## x/tweet-replies

`GET /v1/x/tweet-replies`

The replies under a public X post, newest first, 20 a page: each reply as a full post card with its author, counts and in_reply_to_id / conversation_id so threads can be rebuilt.

*Post replies*

| Parameter | Required | Description |
| --- | --- | --- |
| `id` | yes | Numeric post id. Pass url instead if you only have the link. — e.g. `1876576540177105257` |
| `url` | no | An x.com or twitter.com status link; the id is read from it locally. — e.g. `https://x.com/monzo/status/1876576540177105257` |
| `cursor` | no | Opaque cursor from the previous page's cursor field. |
| `from_date` | no | ISO date lower bound on reply time. — e.g. `2026-08-01` |
| `to_date` | no | ISO date upper bound on reply time. — e.g. `2026-09-01` |
| `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:** 5 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/x/tweet-replies?id=1876576540177105257" \
  -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": [
    {
      "id": "1900000000000000001",
      "text": "Our workspace guide is ready.",
      "created_at": "2026-09-01T12:00:00.000Z",
      "author": {
        "handle": "example_creator",
        "name": "Example Creator"
      },
      "stats": {
        "likes": 42,
        "retweets": 8,
        "replies": 5,
        "views": null
      }
    }
  ],
  "cursor": null,
  "has_more": null
}
```

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


## x/tweet-transcript

`GET /v1/x/tweet-transcript`

The spoken words of a video in an X post as text. transcript is null when the video has no speech or captions — that is the honest answer, not an error.

*Video transcript*

| Parameter | Required | Description |
| --- | --- | --- |
| `url` | yes | Full X post URL containing a video under ~2 minutes. — e.g. `https://x.com/TheoVon/status/1916982720317821050` |
| `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` |

### Useful optional inputs

- `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:** 5 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/x/tweet-transcript?url=https%3A%2F%2Fx.com%2FTheoVon%2Fstatus%2F1916982720317821050" \
  -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
{
  "has_transcript": false,
  "platform": "example",
  "transcript": "example",
  "url": "https://example.com/example"
}
```

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


## x/tweets

`GET /v1/x/tweets`

Recent posts for an X account with like, repost, reply and view counts.

*Recent posts*

| Parameter | Required | Description |
| --- | --- | --- |
| `handle` | yes | X username without the @. An optional leading @ is accepted and removed before lookup. — e.g. `nasa` |
| `cursor` | no | Opaque cursor from the previous page. |
| `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:** 3 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/x/tweets?handle=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
{
  "items": [
    {
      "id": "1900000000000000001",
      "text": "Our workspace guide is ready.",
      "created_at": "2026-09-01T12:00:00.000Z",
      "author": {
        "handle": "example_creator",
        "name": "Example Creator"
      },
      "stats": {
        "likes": 42,
        "retweets": 8,
        "replies": 5,
        "views": null
      }
    }
  ],
  "cursor": null,
  "has_more": null
}
```

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


## x/user-followers

`GET /v1/x/user-followers`

An X account's followers as profile cards — handle, name, bio, location, follower/following/post counts, join date, avatar — up to 200 a page with cursor pagination.

*Followers*

| Parameter | Required | Description |
| --- | --- | --- |
| `handle` | yes | X username without the @. An optional leading @ is accepted and removed before lookup. — e.g. `monzo` |
| `limit` | no | Requested rows per response, 1–1000. The source may return fewer. Remaining rows from an already purchased page use a saved cursor and cost zero to retrieve for up to one hour; further native source pages use this endpoint’s normal price. — e.g. `5` |
| `cursor` | no | Use the returned cursor unchanged, retaining the original query, filters and limit. Saved mlo1. cursors retrieve already purchased rows at zero credits for up to one hour. A native source cursor, when supplied, starts a normally priced source page. Quote with dry_run before continuing. |
| `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` |

### Useful optional inputs

- `limit`: Bound the returned rows to what your task needs. A smaller limit does not necessarily reduce source calls or price; inspect the quote.
- `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:** 3 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/x/user-followers?handle=monzo" \
  -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,
  "cursor": null,
  "dropped": 0,
  "handle": "example",
  "has_more": false,
  "items": [
    {
      "avatar_url": "https://example.com/example",
      "bio": "example",
      "created_at": "2026-09-01T12:00:00Z",
      "followers": 0,
      "following": 0,
      "handle": "example",
      "id": "example",
      "likes_count": 0,
      "location": "example",
      "name": "example",
      "platform": "example",
      "protected": false,
      "tweets_count": 0,
      "url": "https://example.com/example",
      "verified_legacy": false
    }
  ],
  "page_size": 0,
  "platform": "example"
}
```

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


## x/user-media

`GET /v1/x/user-media`

An X account's own posts that carry photos or video (replies left out), newest first: each as a full post card with its media urls, counts and author. A page covers 20 posts and `scanned` says how many were read, so a short page means few media posts in that stretch, not the end.

*Media posts*

| Parameter | Required | Description |
| --- | --- | --- |
| `handle` | yes | X username without the @. An optional leading @ is accepted and removed before lookup. — e.g. `monzo` |
| `cursor` | no | Opaque cursor from the previous page's cursor field. |
| `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:** 3 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/x/user-media?handle=monzo" \
  -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,
  "cursor": null,
  "dropped": 0,
  "has_more": false,
  "items": [
    {
      "author": {
        "avatar_url": "https://example.com/example",
        "bio": "example",
        "bio_link": "https://example.com/example",
        "cover_url": "https://example.com/example",
        "created_at": "2026-09-01T12:00:00Z",
        "followers": 0,
        "following": 0,
        "handle": "example",
        "id": "example",
        "location": "example",
        "name": "example",
        "platform": "example",
        "tweets_count": 0,
        "url": "https://example.com/example",
        "verified_blue": false
      },
      "created_at": "2026-09-01T12:00:00Z",
      "duration_s": 0,
      "engagement": {
        "likes": 0,
        "replies": 0,
        "reposts": 0
      },
      "hashtags": [],
      "id": "example",
      "images": [
        "example"
      ],
      "lang": "example",
      "links": [],
      "media": [
        {}
      ],
      "media_urls": [
        "example"
      ],
      "mentions": [],
      "platform": "example",
      "reply": {
        "conversation_id": "example",
        "is_reply": false
      },
      "source": "example",
      "stats": {
        "bookmarks": 0,
        "likes": 0,
        "quotes": 0,
        "replies": 0,
        "retweets": 0,
        "views": 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/x/user-media#response) · [JSON Schema for response.data](https://www.monocrawl.com/schemas/x/user-media.json)


## x/user-search

`GET /v1/x/user-search`

Keyword search over X accounts: profile cards with handle, name, bio, location, follower/following/post counts, join date and avatar, with cursor pagination.

*Search accounts*

| Parameter | Required | Description |
| --- | --- | --- |
| `query` | yes | Keywords matched against account names, handles and bios. — e.g. `fintech founder` |
| `cursor` | no | Opaque cursor from the previous page's cursor field. |
| `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:** 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/x/user-search?query=fintech%20founder" \
  -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,
  "cursor": null,
  "dropped": 0,
  "has_more": false,
  "items": [
    {
      "avatar_url": "https://example.com/example",
      "bio": "example",
      "created_at": "2026-09-01T12:00:00Z",
      "followers": 0,
      "following": 0,
      "handle": "example",
      "id": "example",
      "likes_count": 0,
      "location": "example",
      "name": "example",
      "platform": "example",
      "protected": false,
      "tweets_count": 0,
      "url": "https://example.com/example",
      "verified_blue": false,
      "verified_legacy": false
    }
  ],
  "query": "example"
}
```

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

