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

# GET /v1/tiktok/profile — TikTok Creator Profiles

> Fetch a TikTok creator's public profile with bio, follower stats, and up to 24 recent videos including full engagement data per video.

`GET /v1/tiktok/profile` returns a creator's public profile plus their most recent videos with engagement stats. Pass a username or a full profile URL — you don't need to know any individual video URLs in advance. This makes it the right starting point for any agent workflow that needs to explore a creator's presence before deciding which videos to transcribe or analyze.

**Credits:** Free — 0 credits consumed.

## Endpoint

```
GET https://api.veedcrawl.com/v1/tiktok/profile
```

## Authentication

This endpoint requires an `x-api-key` header.

## Parameters

<ParamField query="username" type="string">
  TikTok username, with or without the leading `@`. Required if `url` is not provided.
</ParamField>

<ParamField query="url" type="string">
  Full TikTok profile URL — e.g. `https://www.tiktok.com/@charlidamelio`. Required if `username` is not provided.
</ParamField>

<ParamField query="limit" type="number">
  Number of recent videos to return. Min `1`, max `24`. Defaults to `12`.
</ParamField>

## Examples

```bash theme={null}
# By username
curl "https://api.veedcrawl.com/v1/tiktok/profile?username=charlidamelio&limit=12" \
  -H "x-api-key: YOUR_KEY"

# By profile URL
curl "https://api.veedcrawl.com/v1/tiktok/profile?url=https://www.tiktok.com/@charlidamelio" \
  -H "x-api-key: YOUR_KEY"
```

## Response

```json theme={null}
{
  "platform": "tiktok",
  "type": "profile",
  "username": "charlidamelio",
  "url": "https://www.tiktok.com/@charlidamelio",
  "author": {
    "username": "charlidamelio",
    "displayName": "charli d'amelio",
    "avatarUrl": null,
    "verified": false
  },
  "stats": {
    "followers": null,
    "following": null,
    "likes": null,
    "videos": 847
  },
  "videos": [
    {
      "platform": "tiktok",
      "type": "video",
      "id": "7380000000000000000",
      "url": "https://www.tiktok.com/@charlidamelio/video/738...",
      "title": "this one goes out to everyone who said i couldn't dance",
      "description": "#fyp #dance",
      "stats": {
        "views": 14200000,
        "likes": 2100000,
        "comments": 18400,
        "shares": 312000
      },
      "media": {
        "type": "video",
        "duration": 28.4,
        "thumbnailUrl": "https://..."
      },
      "tags": ["fyp", "dance"],
      "createdAt": "2026-04-21T14:33:00.000Z"
    }
  ]
}
```

<ResponseField name="platform" type="string">
  Always `"tiktok"` for this endpoint.
</ResponseField>

<ResponseField name="type" type="string">
  Always `"profile"` for this endpoint.
</ResponseField>

<ResponseField name="username" type="string">
  The creator's TikTok username.
</ResponseField>

<ResponseField name="url" type="string">
  The canonical profile URL.
</ResponseField>

<ResponseField name="author" type="object">
  Creator identity fields: `username`, `displayName`, `avatarUrl`, and `verified`.
</ResponseField>

<ResponseField name="stats" type="object">
  Aggregate account statistics: `followers`, `following`, `likes`, and `videos` (total post count).
</ResponseField>

<ResponseField name="videos" type="array">
  Array of recent videos, each a full `VideoMeta` object with `id`, `url`, `title`, `description`, `stats`, `media`, `tags`, and `createdAt`.
</ResponseField>

<Note>
  Each video in the `videos` array is a full `VideoMeta` object — the same shape returned by `/v1/metadata`. You can pass any `video.url` directly into `/v1/transcript` or `/v1/extract` without any additional lookup.
</Note>

<Tip>
  This endpoint is on the light rate limit tier — 120 requests per minute. At 24 videos per call, a single agent can pull performance data for up to 2,880 videos in one minute.
</Tip>
