## 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)
