# TikTok API guide



## Start with TikTok



Look up public creators, collect their videos and read the discussion around a video. Use keyword, hashtag and sound discovery when you do not already know the account.



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. Start with a creator



Read the public identity and counts. Keep numeric account IDs as strings. [Parameters and current cost →](https://www.monocrawl.com/docs/endpoints/tiktok/profile)



**tiktok/profile**

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



### 2. Read their videos



Keep the same handle and filters while following the returned cursor. Choose a returned video URL for the next step. [Parameters and current cost →](https://www.monocrawl.com/docs/endpoints/tiktok/profile-videos)



**tiktok/profile-videos**

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



### 3. Read a video’s comments



Replace the example URL with a video URL from the previous response. A comment page and a reply thread are separate reads. [Parameters and current cost →](https://www.monocrawl.com/docs/endpoints/tiktok/post-comments)



**tiktok/post-comments**

```
curl "https://www.monocrawl.com/v1/tiktok/post-comments?url=https%3A%2F%2Fwww.tiktok.com%2F%40nasa%2Fvideo%2F7665075736742530317" \
  -H "x-api-key: mn_your_key_here"
```



## Choose filters with the source behavior in mind



| Control | Behavior and limits |
| --- | --- |
| Identity | Use a handle, with or without @. user_id is an exact numeric string, not sec_uid; retain the handle when using profile/full. Never convert a TikTok ID to a JavaScript Number. [Endpoint reference →](https://www.monocrawl.com/docs/endpoints/tiktok/profile-videos) |
| Ordering and region | sort_by accepts latest or popular. region defaults to GB and controls the source request location; it is not a filter for the creator’s residence. Keep both unchanged when paging. [Endpoint reference →](https://www.monocrawl.com/docs/endpoints/tiktok/profile-videos) |
| Search filters | sort_by accepts relevance (default) or most-liked, unlike the account feed’s latest/popular values. date_posted restricts the source query by publication date, for example past-week. A source that cannot honor a combination may reject it rather than silently return an unfiltered result. [Endpoint reference →](https://www.monocrawl.com/docs/endpoints/tiktok/search) |
| Continuation | Pass the returned cursor unchanged. max_cursor is a compatibility alias; cursor wins when both are supplied. A source page can contain fewer results than requested. No cursor is not a guarantee of complete account history. [Endpoint reference →](https://www.monocrawl.com/docs/endpoints/tiktok/profile-videos) |
| Content depth | A caption is not a transcript. Request the transcript endpoint for spoken words. trim selects the trimmed response representation; it is not a caption-length limit. [Endpoint reference →](https://www.monocrawl.com/docs/endpoints/tiktok/post) |



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 |
| --- | --- | --- |
| A known creator | [`profile`](https://www.monocrawl.com/docs/endpoints/tiktok/profile) | Account information without retrieving a video page. |
| A creator and a bounded content sample | [`profile/full`](https://www.monocrawl.com/docs/endpoints/tiktok/profile/full) | One bundle with component results and computed sample statistics. |
| Videos matching a phrase | [`search`](https://www.monocrawl.com/docs/endpoints/tiktok/search) | Keyword discovery; its results are not the account’s full publishing history. |
| One video’s caption and counts | [`post`](https://www.monocrawl.com/docs/endpoints/tiktok/post) | Use a transcript endpoint when you need spoken words instead of the caption. |



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



### Other operations



- [`ads-top`](https://www.monocrawl.com/docs/endpoints/tiktok/ads-top)

- [`effects`](https://www.monocrawl.com/docs/endpoints/tiktok/effects)

- [`hashtag`](https://www.monocrawl.com/docs/endpoints/tiktok/hashtag)

- [`location`](https://www.monocrawl.com/docs/endpoints/tiktok/location)

- [`similar-accounts`](https://www.monocrawl.com/docs/endpoints/tiktok/similar-accounts)



### Posts and media



- [`collection-videos`](https://www.monocrawl.com/docs/endpoints/tiktok/collection-videos)

- [`effect-videos`](https://www.monocrawl.com/docs/endpoints/tiktok/effect-videos)

- [`location-videos`](https://www.monocrawl.com/docs/endpoints/tiktok/location-videos)

- [`playlist-videos`](https://www.monocrawl.com/docs/endpoints/tiktok/playlist-videos)

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

- [`song`](https://www.monocrawl.com/docs/endpoints/tiktok/song)

- [`song-videos`](https://www.monocrawl.com/docs/endpoints/tiktok/song-videos)

- [`user-liked-videos`](https://www.monocrawl.com/docs/endpoints/tiktok/user-liked-videos)

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

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

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



### Comments and replies



- [`comment`](https://www.monocrawl.com/docs/endpoints/tiktok/comment)

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

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



### Search and discovery



- [`hashtags-popular`](https://www.monocrawl.com/docs/endpoints/tiktok/hashtags-popular)

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

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

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

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

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

- [`suggestions`](https://www.monocrawl.com/docs/endpoints/tiktok/suggestions)

- [`trending`](https://www.monocrawl.com/docs/endpoints/tiktok/trending)

- [`videos-popular`](https://www.monocrawl.com/docs/endpoints/tiktok/videos-popular)



### Transcripts



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



### Accounts and audiences



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

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

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

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

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

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

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



## Endpoint reference

## tiktok/ads-top

`GET /v1/tiktok/ads-top`

Creative Center popular ad selection. Includes public creative assets and source metrics. Cost bucket is not currency or spend; CTR is returned as supplied.

*Popular TikTok ads*

| Parameter | Required | Description |
| --- | --- | --- |
| `country` | no | Two-letter uppercase country. — e.g. `US` |
| `period` | no | Source window: 7, 30 or 180 days. Accepted values: 7, 30, 180. Case, spaces, hyphens and underscores are interchangeable. — e.g. `7` |
| `page` | no | Page number, 1-100. — e.g. `1` |
| `limit` | no | Requested page size, 1–20 (default 20); the source may return fewer. — e.g. `20` |
| `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

- `country`: Select the documented market or country filter. Read this endpoint’s country semantics; filtering and source request location can differ.
- `limit`: Bound the returned rows to what your task needs. A smaller limit does not necessarily reduce source calls or price; inspect the quote.
- `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/tiktok/ads-top" \
  -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
{
  "_warnings": [
    "example"
  ],
  "count": 0,
  "country": "example",
  "has_more": false,
  "items": [
    {
      "brand_name": "example",
      "cost_bucket": 0,
      "ctr": 0,
      "duration_seconds": 0,
      "id": "example",
      "industry_key": "example",
      "likes": 0,
      "objective_key": "example",
      "platform": "example",
      "text": "example",
      "thumbnail_url": "https://example.com/example",
      "video_urls": {}
    }
  ],
  "next_page": 0,
  "page": 0,
  "period": 0
}
```

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


## tiktok/collection-videos

`GET /v1/tiktok/collection-videos`

The videos saved to a public collection, one page at a time, with the same video shape as the rest of the TikTok routes.

*TikTok collection videos*

| Parameter | Required | Description |
| --- | --- | --- |
| `url` | yes | Collection URL — e.g. `https://www.tiktok.com/@tiktok/collection/favorites-7442134949027351314` |
| `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:** 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/tiktok/collection-videos?url=https%3A%2F%2Fwww.tiktok.com%2F%40tiktok%2Fcollection%2Ffavorites-7442134949027351314" \
  -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
{
  "collection_id": "example",
  "count": 0,
  "dropped": 0,
  "has_more": false,
  "items": [
    {
      "author": {
        "avatar_url": "https://example.com/example",
        "followers": 0,
        "handle": "example",
        "id": "example",
        "name": "example",
        "private": false,
        "verified": false
      },
      "caption": "example",
      "created_at": "2026-09-01T12:00:00Z",
      "duration_s": 0,
      "hashtags": [
        {}
      ],
      "id": "example",
      "images": [],
      "is_ad": false,
      "media_urls": [
        "example"
      ],
      "music": {
        "author": "example",
        "cover_url": "https://example.com/example",
        "duration_s": 0,
        "id": "example",
        "is_original": false,
        "play_url": "https://example.com/example",
        "title": "example"
      },
      "platform": "example",
      "stats": {
        "comments": 0,
        "likes": 0,
        "plays": 0,
        "saves": 0,
        "shares": 0
      },
      "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/tiktok/collection-videos#response) · [JSON Schema for response.data](https://www.monocrawl.com/schemas/tiktok/collection-videos.json)


## tiktok/comment

`GET /v1/tiktok/comment`

Bounded comment lookup within a specified post or parent thread. Returns found, comment, comments_scanned, search_complete and next_params. A completed paid scan may return found=false; this does not establish deletion. Each successful fresh scanned page costs at least 5 credits (or the underlying price if higher); failed pages are free and cache hits use their normal lower charge.

*Find a tiktok comment*

| Parameter | Required | Description |
| --- | --- | --- |
| `url` | yes | Public post or video URL. — e.g. `https://www.tiktok.com/@mrbeast/video/7654638524729216287` |
| `comment_id` | yes | Exact target comment ID as a string. — e.g. `7654640784985211670` |
| `parent_id` | no | For a reply lookup, the parent comment ID. Otherwise scans top-level comments. |
| `cursor` | no | Opaque continuation from the previous response. Preserve query or identity. |
| `max_pages` | no | Maximum source pages: 1-5, default 1. Catalog price reserves the five-page maximum; actual successful component charges are settled after execution. — e.g. `1` |
| `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:** 25 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/tiktok/comment?url=https%3A%2F%2Fwww.tiktok.com%2F%40mrbeast%2Fvideo%2F7654638524729216287&comment_id=7654640784985211670" \
  -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
{
  "_meta": {
    "billing": {
      "charged": 0,
      "list_price": 0,
      "maximum_component_credits": 0
    }
  },
  "_warnings": [
    "example"
  ],
  "comment": {
    "author": {
      "handle": "example",
      "id": "example",
      "name": "example"
    },
    "created_at": "2026-09-01T12:00:00Z",
    "id": "example",
    "likes": 0,
    "reply_count": 0,
    "text": "example"
  },
  "comments_scanned": 0,
  "complete": false,
  "found": false,
  "legs": [
    {
      "attempts": 0,
      "credits": 0,
      "endpoint": "example",
      "ok": false,
      "served_by": "example",
      "status": 0
    }
  ],
  "pages_fetched": 0,
  "partial": false,
  "platform": "example",
  "search_complete": false,
  "source_metadata": {
    "count": 0,
    "cursor": null,
    "has_more": false,
    "selection": {
      "order": "example",
      "scope": "example",
      "stable": false
    },
    "total": 0
  },
  "stop_reason": "example"
}
```

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


## tiktok/comment-replies

`GET /v1/tiktok/comment-replies`

The reply thread under one TikTok comment. Paged by cursor.

*Comment replies*

| Parameter | Required | Description |
| --- | --- | --- |
| `comment_id` | yes | Comment id from tiktok/post-comments. — e.g. `7623828115408274207` |
| `url` | yes | Full TikTok video URL. — e.g. `https://www.tiktok.com/@stoolpresidente/video/7623818255903329566` |
| `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:** 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/tiktok/comment-replies?comment_id=7623828115408274207&url=https%3A%2F%2Fwww.tiktok.com%2F%40stoolpresidente%2Fvideo%2F7623818255903329566" \
  -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": "7350000000000000003",
      "text": "Useful setup",
      "likes": 3,
      "reply_count": 0,
      "author": {
        "handle": "example_reader"
      }
    }
  ],
  "cursor": null,
  "has_more": null
}
```

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


## tiktok/effect-videos

`GET /v1/tiktok/effect-videos`

Public videos made with a TikTok effect, with engagement counts and the author on every row.

*TikTok effect videos*

| Parameter | Required | Description |
| --- | --- | --- |
| `effect_id` | yes | The effect id — e.g. `321535` |
| `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` |
| `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

- `limit`: Bound the returned rows to what your task needs. A smaller limit does not necessarily reduce source calls or price; inspect the quote.
- `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/tiktok/effect-videos?effect_id=321535" \
  -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,
  "effect_id": "example",
  "has_more": false,
  "items": [
    {
      "author": {
        "avatar_url": "https://example.com/example",
        "followers": 0,
        "following": 0,
        "handle": "example",
        "id": "example",
        "language": "example",
        "likes_count": 0,
        "name": "example",
        "region": "example",
        "videos_count": 0
      },
      "caption": "example",
      "created_at": "2026-09-01T12:00:00Z",
      "duration_s": 0,
      "id": "example",
      "images": [],
      "media_urls": [
        "example"
      ],
      "music": {
        "author": "example",
        "id": "example",
        "title": "example"
      },
      "platform": "example",
      "stats": {
        "comments": 0,
        "likes": 0,
        "plays": 0,
        "saves": 0,
        "shares": 0
      },
      "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/tiktok/effect-videos#response) · [JSON Schema for response.data](https://www.monocrawl.com/schemas/tiktok/effect-videos.json)


## tiktok/effects

`GET /v1/tiktok/effects`

TikTok effects (the camera filters creators apply) by id: name, designer, videos made with it, views and icon.

*TikTok effects*

| Parameter | Required | Description |
| --- | --- | --- |
| `ids` | yes | One or more effect ids, comma separated, up to ten — e.g. `321535` |
| `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:** 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/tiktok/effects?ids=321535" \
  -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,
  "has_more": false,
  "items": [
    {
      "designer": "example",
      "icon_url": "https://example.com/example",
      "id": "example",
      "name": "example",
      "platform": "example",
      "url": "https://example.com/example",
      "videos": 0,
      "views": 0
    }
  ],
  "requested": 0
}
```

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


## tiktok/hashtag

`GET /v1/tiktok/hashtag`

Public hashtag description and counts resolved by exact name on the first search page. A missing exact match does not establish that the tag does not exist. ID-only lookup is not supported.

*TikTok hashtag metadata*

| Parameter | Required | Description |
| --- | --- | --- |
| `hashtag` | yes | Exact hashtag name, optionally prefixed with #. — e.g. `fitness` |
| `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:** 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/tiktok/hashtag?hashtag=fitness" \
  -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
{
  "_warnings": [
    "example"
  ],
  "description": "example",
  "id": "example",
  "lookup_scope": "example",
  "name": "example",
  "platform": "example",
  "url": "https://example.com/example",
  "video_count": 0,
  "view_count": 0
}
```

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


## tiktok/hashtags-popular

`GET /v1/tiktok/hashtags-popular`

Anonymous public top-three board by country, window and optional industry. Ranked tags, source posts/views and relative popularity curves. Not the full ranking or live activity; no pagination.

*Popular TikTok hashtags*

| Parameter | Required | Description |
| --- | --- | --- |
| `country` | no | Country: US, FR, DE, IT, ES, GB, AR, AU, BR, CA, CO, EG, ID, IL, JP, KR, MY, MX, PH, SA, SG, ZA, TW, TH, TR, AE or VN. Accepted values: US, FR, DE, IT, ES, GB, AR, AU, BR, CA, CO, EG, ID, IL, JP, KR, MY, MX, PH, SA, SG, ZA, TW, TH, TR, AE, VN. Case, spaces, hyphens and underscores are interchangeable. — e.g. `US` |
| `period` | no | 7, 30 or 90 days; default 7. Accepted values: 7, 30, 90. Case, spaces, hyphens and underscores are interchangeable. — e.g. `7` |
| `industry` | no | Optional Creative Center industry ID: 10000000000 education; 11000000000 vehicles; 12000000000 baby/kids; 14000000000 beauty; 15000000000 tech; 17000000000 travel; 18000000000 household; 19000000000 pets; 21000000000 home improvement; 22000000000 apparel; 23000000000 news/entertainment; 25000000000 games; 27000000000 food; 28000000000 sports; 29000000000 health. — e.g. `14000000000` |
| `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` |
| `countryCode` | no | Compatibility alias for country. The canonical parameter takes precedence if both are supplied. — e.g. `US` |

### Useful optional inputs

- `country`: Select the documented market or country filter. Read this endpoint’s country semantics; filtering and source request location can differ.
- `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/tiktok/hashtags-popular" \
  -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
{
  "_warnings": [
    "example"
  ],
  "count": 0,
  "country": "example",
  "coverage": "example",
  "has_more": false,
  "items": [
    {
      "id": "example",
      "industry_ids": [
        "example"
      ],
      "name": "example",
      "popularity_curve": [
        {}
      ],
      "posts": 0,
      "rank": 0,
      "top_creators": [
        {}
      ],
      "views": 0
    }
  ],
  "period": 0,
  "platform": "example",
  "retrieved_at": "2026-09-01T12:00:00Z"
}
```

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


## tiktok/location

`GET /v1/tiktok/location`

One place: name, address, city, country, category and coordinates.

*TikTok place*

| Parameter | Required | Description |
| --- | --- | --- |
| `id` | yes | Place id from a video's location tag or place URL — e.g. `22535865202704586` |
| `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:** 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/tiktok/location?id=22535865202704586" \
  -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": "123",
  "name": "Example location"
}
```

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


## tiktok/location-videos

`GET /v1/tiktok/location-videos`

Videos tagged at a place, with captions, counts, authors and sounds; paged by cursor.

*TikTok place videos*

| Parameter | Required | Description |
| --- | --- | --- |
| `id` | yes | Place id from a video's location tag or place URL — e.g. `22535865202704586` |
| `cursor` | no | Cursor from the previous page |
| `limit` | no | Videos per page, at most 30 — e.g. `30` |
| `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

- `limit`: Bound the returned rows to what your task needs. A smaller limit does not necessarily reduce source calls or price; inspect the quote.
- `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/tiktok/location-videos?id=22535865202704586" \
  -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",
        "followers": 0,
        "handle": "example",
        "id": "example",
        "name": "example",
        "private": false,
        "verified": false
      },
      "caption": "example",
      "created_at": "2026-09-01T12:00:00Z",
      "duration_s": 0,
      "hashtags": [
        {}
      ],
      "id": "example",
      "images": [],
      "is_ad": false,
      "media_urls": [
        "example"
      ],
      "music": {
        "album": "example",
        "author": "example",
        "cover_url": "https://example.com/example",
        "duration_s": 0,
        "id": "example",
        "is_original": false,
        "play_url": "https://example.com/example",
        "title": "example"
      },
      "platform": "example",
      "stats": {
        "comments": 0,
        "likes": 0,
        "plays": 0,
        "saves": 0,
        "shares": 0
      },
      "thumbnail_url": "https://example.com/example",
      "url": "https://example.com/example",
      "video_url": "https://example.com/example"
    }
  ],
  "place_id": "example"
}
```

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


## tiktok/playlist-videos

`GET /v1/tiktok/playlist-videos`

The videos in a TikTok playlist: description, cover, duration, play URL, counts and author, in playlist order.

*TikTok playlist videos*

| Parameter | Required | Description |
| --- | --- | --- |
| `playlist_id` | yes | Playlist id from tiktok/user-playlists, or the playlist URL — e.g. `7681171537575824159` |
| `limit` | no | Videos per page, up to 30 — e.g. `10` |
| `cursor` | no | Cursor from a 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

- `limit`: Bound the returned rows to what your task needs. A smaller limit does not necessarily reduce source calls or price; inspect the quote.
- `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:** 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/tiktok/playlist-videos?playlist_id=7681171537575824159" \
  -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": {
        "avatar_url": "https://example.com/example",
        "handle": "example",
        "id": "example",
        "name": "example"
      },
      "caption": "example",
      "cover": "example",
      "created_at": "2026-09-01T12:00:00Z",
      "duration_s": 0,
      "id": "example",
      "images": [],
      "is_ad": false,
      "is_pinned": false,
      "media_urls": [
        "example"
      ],
      "music": {},
      "platform": "example",
      "play_url": "https://example.com/example",
      "region": "example",
      "stats": {
        "comments": 0,
        "downloads": 0,
        "likes": 0,
        "plays": 0,
        "saves": 0,
        "shares": 0
      },
      "thumbnail_url": "https://example.com/example",
      "url": "https://example.com/example",
      "video_url": "https://example.com/example"
    }
  ],
  "playlist_id": "example"
}
```

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


## tiktok/post

`GET /v1/tiktok/post`

One TikTok video: caption, author, duration and current engagement counts.

*Video details*

| Parameter | Required | Description |
| --- | --- | --- |
| `url` | yes | Full TikTok video URL. — e.g. `https://www.tiktok.com/@nasa/video/7665075736742530317` |
| `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/tiktok/post?url=https%3A%2F%2Fwww.tiktok.com%2F%40nasa%2Fvideo%2F7665075736742530317" \
  -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": "7350000000000000002",
  "url": "https://www.tiktok.com/@example_creator/video/7350000000000000002",
  "caption": "A desk setup",
  "created_at": "2026-09-01T12:00:00.000Z",
  "duration_s": 15,
  "stats": {
    "plays": 1200,
    "likes": 100,
    "comments": 12,
    "shares": null,
    "saves": 8
  }
}
```

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


## tiktok/post-comments

`GET /v1/tiktok/post-comments`

Comments on a TikTok video with like and reply counts. Paged by cursor.

*Video comments*

| Parameter | Required | Description |
| --- | --- | --- |
| `url` | yes | Full TikTok video URL. — e.g. `https://www.tiktok.com/@nasa/video/7665075736742530317` |
| `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:** 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/tiktok/post-comments?url=https%3A%2F%2Fwww.tiktok.com%2F%40nasa%2Fvideo%2F7665075736742530317" \
  -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": "7350000000000000003",
      "text": "Useful setup",
      "likes": 3,
      "reply_count": 0,
      "author": {
        "handle": "example_reader"
      }
    }
  ],
  "cursor": null,
  "has_more": null
}
```

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


## tiktok/post-transcript

`GET /v1/tiktok/post-transcript`

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

*Video transcript*

| Parameter | Required | Description |
| --- | --- | --- |
| `url` | yes | Full TikTok video URL. — e.g. `https://www.tiktok.com/@nasa/video/7665075736742530317` |
| `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/tiktok/post-transcript?url=https%3A%2F%2Fwww.tiktok.com%2F%40nasa%2Fvideo%2F7665075736742530317" \
  -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,
  "id": "example",
  "platform": "example",
  "transcript": "example",
  "url": "https://example.com/example"
}
```

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


## tiktok/profile

`GET /v1/tiktok/profile`

Public TikTok profile: identity, bio, follower/like/video counts.

*TikTok profile*

| Parameter | Required | Description |
| --- | --- | --- |
| `handle` | yes | TikTok username, with or without the leading @. An optional leading @ is accepted and removed before lookup. — e.g. `charlidamelio` |
| `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/tiktok/profile?handle=charlidamelio" \
  -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
}
```

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


## tiktok/profile-region

`GET /v1/tiktok/profile-region`

The region an account posts from, resolved from the account itself rather than guessed from its content.

*TikTok account region*

| Parameter | Required | Description |
| --- | --- | --- |
| `handle` | yes | TikTok 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:** 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/tiktok/profile-region?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
{
  "handle": "example",
  "platform": "example",
  "region": "example",
  "url": "https://example.com/example"
}
```

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


## tiktok/profile-videos

`GET /v1/tiktok/profile-videos`

Recent videos for a TikTok account, newest first, with per-video stats. Paged by cursor.

*Profile videos*

| Parameter | Required | Description |
| --- | --- | --- |
| `handle` | yes | TikTok username without the @. An optional leading @ is accepted and removed before lookup. — e.g. `nasa` |
| `cursor` | no | Opaque cursor from the previous page. |
| `user_id` | no | Numeric TikTok user id, kept as a string. Optional alongside the required handle; can speed up the primary source. This is not a sec_uid. — e.g. `6659752019493208069` |
| `sort_by` | no | latest (newest first, the default) or popular. latest is served by every source; popular is served by the source that can rank by popularity, so a continuation stays on that source. Accepted values: latest, popular. Case, spaces, hyphens and underscores are interchangeable. — e.g. `latest` |
| `region` | no | Two-letter country code for the source request location. It can affect availability and ranking; it does not filter creators by residence or audience country. Keep it unchanged when continuing. — e.g. `GB` |
| `max_cursor` | no | Primary-source alias for cursor. Use the previous response cursor unchanged. The canonical cursor parameter takes precedence when both are supplied. — e.g. `1734562353000` |
| `trim` | no | Boolean: true asks the primary source for its trimmed payload; false asks for the full source payload. The public response remains normalized; this is not an instruction to truncate captions. — e.g. `false` |
| `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

- `region`: Select the documented source market or request location. Read this endpoint’s region semantics; it does not generally prove creator residence.
- `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/tiktok/profile-videos?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": "7350000000000000002",
      "url": "https://www.tiktok.com/@example_creator/video/7350000000000000002",
      "caption": "A desk setup",
      "created_at": "2026-09-01T12:00:00.000Z",
      "duration_s": 15,
      "stats": {
        "plays": 1200,
        "likes": 100,
        "comments": 12,
        "shares": null,
        "saves": 8
      }
    }
  ],
  "cursor": null,
  "has_more": null
}
```

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


## tiktok/profile/full

`GET /v1/tiktok/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.

*TikTok 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. `mrbeast` |
| `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` |
| `user_id` | no | Exact numeric string, optional alongside handle; numeric ID-only profile lookup is not supported. |
| `sort_by` | no | latest or popular, forwarded to the videos component. Accepted values: latest, popular. Case, spaces, hyphens and underscores are interchangeable. — e.g. `latest` |
| `region` | no | Two-letter source region, forwarded unchanged. — e.g. `GB` |
| `trim` | no | Source trimming preference; does not permit the bundle to truncate returned records. — e.g. `false` |
| `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

- `region`: Select the documented source market or request location. Read this endpoint’s region semantics; it does not generally prove creator residence.
- `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:** 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/tiktok/profile/full?handle=mrbeast" \
  -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
  },
  "posts": [
    {
      "id": "7350000000000000002",
      "url": "https://www.tiktok.com/@example_creator/video/7350000000000000002",
      "caption": "A desk setup",
      "created_at": "2026-09-01T12:00:00.000Z",
      "duration_s": 15,
      "stats": {
        "plays": 1200,
        "likes": 100,
        "comments": 12,
        "shares": null,
        "saves": 8
      }
    }
  ],
  "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/tiktok/profile/full#response) · [JSON Schema for response.data](https://www.monocrawl.com/schemas/tiktok/profile/full.json)


## tiktok/search

`GET /v1/tiktok/search`

Search TikTok videos by keyword, newest-relevant first, with per-video engagement counts. Paged by cursor.

*Video search*

| Parameter | Required | Description |
| --- | --- | --- |
| `query` | yes | Search term. — e.g. `coffee brewing` |
| `cursor` | no | Opaque cursor from the previous page. |
| `region` | no | Two-letter country code for the source request location. It can affect availability and ranking; it does not filter creators by residence or audience country. Keep it unchanged when continuing. — e.g. `US` |
| `sort_by` | no | relevance (default) or most-liked. Accepted values: relevance, most_liked, latest, date_posted. Case, spaces, hyphens and underscores are interchangeable. |
| `date_posted` | no | Restrict by post date, e.g. past-week. Accepted values: all, all_time, yesterday, past_day, this_week, past_week, this_month, past_month, last_3_months, past_3_months, last_6_months, past_6_months. Case, spaces, hyphens and underscores are interchangeable. |
| `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` |
| `limit` | no | Optional requested distinct results, 1–120. Collection stops at the existing request spending and time limits, so fewer may be returned. Inspect partial, window_stop_reason and pages_fetched. Keep query, region, sort, dates and limit unchanged with the opaque cursor. Omit for one native page. — e.g. `120` |

### Useful optional inputs

- `date_posted`: Choose the documented source window for recent results; coverage can still be incomplete. The normal endpoint price applies; this does not buy a complete date archive.
- `region`: Select the documented source market or request location. Read this endpoint’s region semantics; it does not generally prove creator residence.
- `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/tiktok/search?query=coffee%20brewing" \
  -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": "7350000000000000002",
      "url": "https://www.tiktok.com/@example_creator/video/7350000000000000002",
      "caption": "A desk setup",
      "created_at": "2026-09-01T12:00:00.000Z",
      "duration_s": 15,
      "stats": {
        "plays": 1200,
        "likes": 100,
        "comments": 12,
        "shares": null,
        "saves": 8
      }
    }
  ],
  "cursor": null,
  "has_more": null
}
```

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


## tiktok/search-hashtag

`GET /v1/tiktok/search-hashtag`

Videos posted under a TikTok hashtag with engagement counts. Paged by cursor.

*Hashtag search*

| Parameter | Required | Description |
| --- | --- | --- |
| `hashtag` | yes | Hashtag without the #. — e.g. `coffee` |
| `cursor` | no | Opaque cursor from the previous page. |
| `region` | no | Two-letter country code for the source request location. It can affect availability and ranking; it does not filter creators by residence or audience country. Keep it unchanged when continuing. — e.g. `US` |
| `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

- `region`: Select the documented source market or request location. Read this endpoint’s region semantics; it does not generally prove creator residence.
- `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/tiktok/search-hashtag?hashtag=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": [
    {
      "id": "7350000000000000002",
      "url": "https://www.tiktok.com/@example_creator/video/7350000000000000002",
      "caption": "A desk setup",
      "created_at": "2026-09-01T12:00:00.000Z",
      "duration_s": 15,
      "stats": {
        "plays": 1200,
        "likes": 100,
        "comments": 12,
        "shares": null,
        "saves": 8
      }
    }
  ],
  "cursor": null,
  "has_more": null
}
```

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


## tiktok/search-music

`GET /v1/tiktok/search-music`

TikTok sounds matching a keyword: title, artist, duration, cover, a preview URL and how many videos use each.

*TikTok sound search*

| Parameter | Required | Description |
| --- | --- | --- |
| `query` | yes | Search words — e.g. `espresso` |
| `limit` | no | Sounds per page, up to 20 — e.g. `20` |
| `cursor` | no | Page cursor from the previous answer |
| `region` | no | Two-letter region — e.g. `US` |
| `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

- `region`: Select the documented source market or request location. Read this endpoint’s region semantics; it does not generally prove creator residence.
- `limit`: Bound the returned rows to what your task needs. A smaller limit does not necessarily reduce source calls or price; inspect the quote.
- `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/tiktok/search-music?query=espresso" \
  -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": [
    {
      "album": "example",
      "artists": [
        "example"
      ],
      "author": "example",
      "commercial": false,
      "cover": "example",
      "duration_seconds": 0,
      "id": "example",
      "is_original": false,
      "owner_handle": "example",
      "platform": "example",
      "play_url": "https://example.com/example",
      "title": "example",
      "url": "https://example.com/example",
      "video_count": 0
    }
  ],
  "query": "example",
  "region": "example"
}
```

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


## tiktok/search-top

`GET /v1/tiktok/search-top`

The top tab of a TikTok search: the videos TikTok ranks first for a query, as the standard video shape.

*TikTok top results*

| Parameter | Required | Description |
| --- | --- | --- |
| `query` | yes | Search query — e.g. `james webb telescope` |
| `publish_time` | no | Restrict to a publish window when supported Accepted values: all, all_time, yesterday, past_day, this_week, past_week, this_month, past_month, last_3_months, past_3_months, last_6_months, past_6_months. Case, spaces, hyphens and underscores are interchangeable. |
| `sort_by` | no | Sort order when supported Accepted values: relevance, most_liked, latest, date_posted. Case, spaces, hyphens and underscores are interchangeable. |
| `region` | no | Two-letter region — e.g. `US` |
| `cursor` | no | Opaque cursor from the previous page |
| `include_music` | no | Prefer a native search page with exact string music IDs and supplied author verification, at the same one-credit price. Supported for relevance order with no publish window. Results can differ from ordinary search; keep this option when following its cursor. Unavailable enrichment retains search results with a warning. Accepted values: true, false. Case, spaces, hyphens and underscores are interchangeable. — e.g. `true` |
| `search_mode` | no | default preserves the current source. precise requires include_music=true, relevance order and no publish window; it supplies source counters, exact music strings and content regions but may omit verification and subsecond duration. Keep options with its cursor. Accepted values: default, precise. Case, spaces, hyphens and underscores are interchangeable. — e.g. `precise` |
| `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

- `region`: Select the documented source market or request location. Read this endpoint’s region semantics; it does not generally prove creator residence.
- `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/tiktok/search-top?query=james%20webb%20telescope" \
  -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": "7350000000000000002",
      "url": "https://www.tiktok.com/@example_creator/video/7350000000000000002",
      "caption": "A desk setup",
      "created_at": "2026-09-01T12:00:00.000Z",
      "duration_s": 15,
      "stats": {
        "plays": 1200,
        "likes": 100,
        "comments": 12,
        "shares": null,
        "saves": 8
      }
    }
  ],
  "cursor": null,
  "has_more": null
}
```

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


## tiktok/search-users

`GET /v1/tiktok/search-users`

Search TikTok accounts by keyword. Paged by cursor.

*User search*

| Parameter | Required | Description |
| --- | --- | --- |
| `query` | yes | Search term. — e.g. `space` |
| `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:** 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/tiktok/search-users?query=space" \
  -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
{
  "cursor": null,
  "dropped": 0,
  "has_more": false,
  "items": [
    {
      "avatar_url": "https://example.com/example",
      "followers": 0,
      "following": 0,
      "handle": "example",
      "id": "example",
      "likes_count": 0,
      "name": "example",
      "platform": "example",
      "verified": false,
      "videos_count": 0
    }
  ]
}
```

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


## tiktok/similar-accounts

`GET /v1/tiktok/similar-accounts`

Lookalike TikTok creators for any handle: up to 30 Instagram-suggested accounts for the same creator are checked on TikTok, and each same-handle account that is verified or has at least 10,000 followers is returned with display name, avatar, bio, verification, privacy and follower, following, video and like counts. Rows carry similar_source and instagram_handle. Five credits; an empty list or an unknown handle is free, and a repeat within 15 minutes is served from cache.

*TikTok similar accounts*

| Parameter | Required | Description |
| --- | --- | --- |
| `handle` | yes | TikTok username of the creator to find lookalikes for, with or without @. An optional leading @ is accepted and removed before lookup. — e.g. `tillyramsay` |
| `instagram_handle` | no | Optional Instagram username of the same creator. Without it, the creator's Instagram account is found by an exact handle or exact name match, never a guess. |
| `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/tiktok/similar-accounts?handle=tillyramsay" \
  -H "x-api-key: mn_your_key_here"
```


## tiktok/song

`GET /v1/tiktok/song`

One TikTok sound: title, artists, duration and how many videos use it — the id feeds tiktok/song-videos.

*Sound details*

| Parameter | Required | Description |
| --- | --- | --- |
| `id` | yes | TikTok sound/clip id. — e.g. `7439295283975702544` |
| `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:** 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/tiktok/song?id=7439295283975702544" \
  -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
{
  "album": "example",
  "artists": [
    "example"
  ],
  "author": "example",
  "commercial": false,
  "cover": "example",
  "duration_seconds": 0,
  "id": "example",
  "is_original": false,
  "platform": "example",
  "play_url": "https://example.com/example",
  "title": "example",
  "url": "https://example.com/example",
  "video_count": 0
}
```

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


## tiktok/song-videos

`GET /v1/tiktok/song-videos`

Videos that use a specific TikTok sound — sound-trend intelligence. Paged by cursor.

*Videos using a sound*

| Parameter | Required | Description |
| --- | --- | --- |
| `id` | yes | TikTok sound/clip id. — e.g. `7439295283975702544` |
| `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:** 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/tiktok/song-videos?id=7439295283975702544" \
  -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
{
  "_meta": {
    "billing": {
      "charged": 0,
      "list_price": 0,
      "reason": "example"
    }
  },
  "count": 0,
  "dropped": 0,
  "has_more": false,
  "items": []
}
```

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


## tiktok/suggestions

`GET /v1/tiktok/suggestions`

What TikTok suggests as you type a query, in order, with the language and score of each suggestion.

*TikTok search suggestions*

| Parameter | Required | Description |
| --- | --- | --- |
| `query` | yes | Partial query to complete — e.g. `space` |
| `region` | no | Two-letter region for the suggestions — e.g. `US` |
| `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

- `region`: Select the documented source market or request location. Read this endpoint’s region semantics; it does not generally prove creator residence.
- `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/tiktok/suggestions?query=space" \
  -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": [
    {
      "language": "example",
      "position": 0,
      "score": 0,
      "text": "example"
    }
  ]
}
```

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


## tiktok/trending

`GET /v1/tiktok/trending`

TikTok's trending feed for a region — what is going viral right now, with per-video stats.

*Trending feed*

| Parameter | Required | Description |
| --- | --- | --- |
| `region` | yes | Two-letter region code. — e.g. `US` |
| `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:** 4 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/tiktok/trending?region=US" \
  -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"
      },
      "caption": "example",
      "created_at": "2026-09-01T12:00:00Z",
      "duration_s": 0,
      "hashtags": [],
      "id": "example",
      "images": [
        "example"
      ],
      "media_urls": [
        "example"
      ],
      "platform": "example",
      "region": "example",
      "stats": {
        "comments": 0,
        "likes": 0,
        "plays": 0,
        "saves": 0,
        "shares": 0
      },
      "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/tiktok/trending#response) · [JSON Schema for response.data](https://www.monocrawl.com/schemas/tiktok/trending.json)


## tiktok/user-audience

`GET /v1/tiktok/user-audience`

Retrieve source-reported country counts. Source percentages can be null. Calculated returned_count_share_percentage uses returned_count_total only; it is not whole-audience reach. Sampling method and collection time are unknown.

*Sampled audience geography*

| Parameter | Required | Description |
| --- | --- | --- |
| `handle` | yes | TikTok 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:** 30 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/tiktok/user-audience?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
{
  "platform": "tiktok",
  "locations": [
    {
      "country": "United Kingdom",
      "country_code": "GB",
      "count": 30,
      "percentage": null,
      "returned_count_share_percentage": 100
    }
  ],
  "returned_count_total": 30,
  "sampling": {
    "share_basis": "returned_country_counts",
    "methodology": null,
    "sampled_at": null
  }
}
```

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


## tiktok/user-followers

`GET /v1/tiktok/user-followers`

An account's followers with per-user follower counts. Paged by min_time cursor.

*Followers*

| Parameter | Required | Description |
| --- | --- | --- |
| `handle` | yes | TikTok username without the @ (or pass user_id). An optional leading @ is accepted and removed before lookup. — e.g. `stoolpresidente` |
| `user_id` | no | Numeric user id — alternative to handle. |
| `cursor` | no | min_time value 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` |

### 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:** 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/tiktok/user-followers?handle=stoolpresidente" \
  -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
{
  "cursor": null,
  "dropped": 0,
  "items": [
    {
      "avatar_url": "https://example.com/example",
      "bio": "example",
      "followers": 0,
      "following": 0,
      "handle": "example",
      "id": "example",
      "language": "example",
      "name": "example",
      "platform": "example",
      "region": "example"
    }
  ]
}
```

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


## tiktok/user-following

`GET /v1/tiktok/user-following`

The accounts a TikTok user follows. Paged by min_time cursor.

*Following*

| Parameter | Required | Description |
| --- | --- | --- |
| `handle` | yes | TikTok username without the @. An optional leading @ is accepted and removed before lookup. — e.g. `stoolpresidente` |
| `cursor` | no | min_time value 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` |

### 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:** 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/tiktok/user-following?handle=stoolpresidente" \
  -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
{
  "cursor": null,
  "dropped": 0,
  "items": [
    {
      "avatar_url": "https://example.com/example",
      "bio": "example",
      "followers": 0,
      "following": 0,
      "handle": "example",
      "id": "example",
      "language": "example",
      "name": "example",
      "platform": "example",
      "region": "example"
    }
  ]
}
```

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


## tiktok/user-liked-videos

`GET /v1/tiktok/user-liked-videos`

Videos an account has liked, when it shows its likes publicly; empty otherwise. Same video shape as the profile-videos route.

*TikTok liked videos*

| Parameter | Required | Description |
| --- | --- | --- |
| `handle` | no | TikTok username without the @ (or pass sec_uid) An optional leading @ is accepted and removed before lookup. — e.g. `tiktok` |
| `sec_uid` | no | The account's secUid — alternative to handle |
| `cursor` | no | Cursor from the previous page |
| `limit` | no | Videos per page, at most 35 — e.g. `30` |
| `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

- `limit`: Bound the returned rows to what your task needs. A smaller limit does not necessarily reduce source calls or price; inspect the quote.
- `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/tiktok/user-liked-videos?handle=tiktok" \
  -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
{
  "_meta": {
    "billing": {
      "charged": 0,
      "list_price": 0,
      "reason": "example"
    }
  },
  "count": 0,
  "cursor": null,
  "dropped": 0,
  "has_more": false,
  "items": []
}
```

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


## tiktok/user-live

`GET /v1/tiktok/user-live`

Whether an account is live right now and, when it is, the room: title, cover, start time and viewer counts.

*TikTok live status*

| Parameter | Required | Description |
| --- | --- | --- |
| `handle` | yes | TikTok 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:** 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/tiktok/user-live?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
{
  "is_live": false,
  "platform": "example",
  "room": {
    "cover_url": "https://example.com/example",
    "id": "example",
    "mode": 0,
    "started_at": "2026-09-01T12:00:00Z",
    "status": 0,
    "subscribers_only": false,
    "total_entered": 0,
    "viewers": 0
  },
  "user": {
    "avatar_url": "https://example.com/example",
    "bio": "example",
    "followers": 0,
    "following": 0,
    "handle": "example",
    "id": "example",
    "name": "example",
    "verified": false
  }
}
```

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


## tiktok/user-playlists

`GET /v1/tiktok/user-playlists`

The playlists a creator has published: name, video count, cover and URL; paged by cursor.

*TikTok playlists*

| Parameter | Required | Description |
| --- | --- | --- |
| `handle` | no | TikTok username without the @ (or pass sec_uid) An optional leading @ is accepted and removed before lookup. — e.g. `tiktok` |
| `sec_uid` | no | The account's secUid — alternative to handle |
| `cursor` | no | Cursor from the previous page |
| `limit` | no | Playlists per page, at most 35 — e.g. `20` |
| `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

- `limit`: Bound the returned rows to what your task needs. A smaller limit does not necessarily reduce source calls or price; inspect the quote.
- `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/tiktok/user-playlists?handle=tiktok" \
  -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": [
    {
      "cover_url": "https://example.com/example",
      "id": "example",
      "name": "example",
      "platform": "example",
      "url": "https://example.com/example",
      "video_count": 0
    }
  ]
}
```

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


## tiktok/user-reposts

`GET /v1/tiktok/user-reposts`

Videos an account has reposted, newest first; paged by cursor.

*TikTok reposts*

| Parameter | Required | Description |
| --- | --- | --- |
| `handle` | no | TikTok username without the @ (or pass sec_uid) An optional leading @ is accepted and removed before lookup. — e.g. `tiktok` |
| `sec_uid` | no | The account's secUid — alternative to handle |
| `cursor` | no | Cursor from the previous page |
| `limit` | no | Videos per page, at most 35 — e.g. `30` |
| `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

- `limit`: Bound the returned rows to what your task needs. A smaller limit does not necessarily reduce source calls or price; inspect the quote.
- `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/tiktok/user-reposts?handle=tiktok" \
  -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",
        "followers": 0,
        "handle": "example",
        "id": "example",
        "name": "example",
        "private": false,
        "verified": false
      },
      "caption": "example",
      "created_at": "2026-09-01T12:00:00Z",
      "duration_s": 0,
      "hashtags": [
        {}
      ],
      "id": "example",
      "images": [],
      "is_ad": false,
      "media_urls": [
        "example"
      ],
      "music": {
        "album": "example",
        "author": "example",
        "cover_url": "https://example.com/example",
        "duration_s": 0,
        "id": "example",
        "is_original": false,
        "play_url": "https://example.com/example",
        "title": "example"
      },
      "platform": "example",
      "stats": {
        "comments": 0,
        "likes": 0,
        "plays": 0,
        "saves": 0,
        "shares": 0
      },
      "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/tiktok/user-reposts#response) · [JSON Schema for response.data](https://www.monocrawl.com/schemas/tiktok/user-reposts.json)


## tiktok/videos-popular

`GET /v1/tiktok/videos-popular`

Anonymous public top-four recent-video board. Source-period and lifetime views, organic views, engagement and six-second view rate, with creators. May include sponsored content. Not the full ranking; no likes/comments/shares are supplied.

*Popular TikTok videos*

| Parameter | Required | Description |
| --- | --- | --- |
| `country` | no | US, JP, VN, TH or ID. Accepted values: US, JP, VN, TH, ID. Case, spaces, hyphens and underscores are interchangeable. — e.g. `US` |
| `period` | no | 7 or 30 days; recent-creation board. Source period end is returned. Accepted values: 7, 30. Case, spaces, hyphens and underscores are interchangeable. — e.g. `7` |
| `sort` | no | views, engagement or six_second_views. Accepted values: views, engagement, six_second_views. Case, spaces, hyphens and underscores are interchangeable. — e.g. `views` |
| `limit` | no | 1–4, default 4. Public anonymous sample only; no pagination. — e.g. `4` |
| `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` |
| `countryCode` | no | Compatibility alias for country. The canonical parameter takes precedence if both are supplied. — e.g. `US` |

### 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.
- `country`: Select the documented market or country filter. Read this endpoint’s country semantics; filtering and source request location can differ.
- `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/tiktok/videos-popular" \
  -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
{
  "_warnings": [
    "example"
  ],
  "count": 0,
  "country": "example",
  "coverage": "example",
  "has_more": false,
  "items": [
    {
      "author": {
        "followers": 0,
        "handle": "example",
        "id": "example",
        "name": "example"
      },
      "caption": "example",
      "cover_url": "https://example.com/example",
      "created_at": "2026-09-01T12:00:00Z",
      "id": "example",
      "metrics": {
        "engagement_rate": 0,
        "lifetime_organic_views": 0,
        "lifetime_views": 0,
        "organic_views": 0,
        "six_second_view_rate": 0,
        "views": 0
      },
      "platform": "example",
      "rank": 0,
      "url": "https://example.com/example"
    }
  ],
  "period": 0,
  "platform": "example",
  "retrieved_at": "2026-09-01T12:00:00Z",
  "sort": "example",
  "source_period_end": "example"
}
```

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

