# TikTok profile scrapper

**Action ID:** `tiktok_user_scrapper`

## Description

Scrape a TikTok user's profile.

## Connection

| Name               | Description                                 | Required | Category |
| ------------------ | ------------------------------------------- | -------- | -------- |
| PixelML Connection | The PixelML connection to call PixelML API. | True     | pixelml  |

## Input Parameters

| Name     | Type   | Required | Default | Description                               |
| -------- | ------ | :------: | ------- | ----------------------------------------- |
| username | string |     ✓    | -       | The username of the TikTok user to scrape |

<details>

<summary>View JSON Schema</summary>

```json
{
  "description": "TikTok profile scrapper node input.",
  "properties": {
    "username": {
      "description": "The username of the TikTok user.",
      "title": "TikTok username",
      "type": "string"
    }
  },
  "required": [
    "username"
  ],
  "title": "TikTokUserScrapperNodeInput",
  "type": "object"
}
```

</details>

## Output Parameters

| Name      | Type    | Description                                  |
| --------- | ------- | -------------------------------------------- |
| id        | string  | The unique ID of the TikTok user             |
| url       | string  | The URL of the TikTok user's profile         |
| username  | string  | The username of the TikTok user              |
| nickname  | string  | The display nickname of the TikTok user      |
| bio       | string  | The biography/description of the TikTok user |
| followers | integer | The number of followers the user has         |
| following | integer | The number of accounts the user is following |
| likes     | integer | Total likes received across all videos       |
| videos    | integer | The number of videos posted by the user      |
| verified  | boolean | Whether the TikTok user is verified          |
| avatar    | string  | The URL of the user's avatar image           |

<details>

<summary>View JSON Schema</summary>

```json
{
  "description": "TikTok profile scrapper node output.",
  "properties": {
    "id": {
      "description": "The ID of the TikTok user.",
      "title": "ID",
      "type": "string"
    },
    "url": {
      "description": "The URL of the TikTok user's profile.",
      "title": "URL",
      "type": "string"
    },
    "username": {
      "description": "The username of the TikTok user.",
      "title": "Username",
      "type": "string"
    },
    "nickname": {
      "description": "The nickname of the TikTok user.",
      "title": "Nickname",
      "type": "string"
    },
    "bio": {
      "description": "The biography of the TikTok user.",
      "title": "Biography",
      "type": "string"
    },
    "followers": {
      "description": "The number of followers of the TikTok user.",
      "title": "Followers count",
      "type": "integer"
    },
    "following": {
      "description": "The number of accounts the TikTok user is following.",
      "title": "Following count",
      "type": "integer"
    },
    "likes": {
      "description": "The total number of likes received by the TikTok user.",
      "title": "Likes count",
      "type": "integer"
    },
    "videos": {
      "description": "The number of videos posted by the TikTok user.",
      "title": "Videos count",
      "type": "integer"
    },
    "verified": {
      "description": "Whether the TikTok user is verified.",
      "title": "Verified",
      "type": "boolean"
    },
    "avatar": {
      "description": "The URL of the TikTok user's avatar.",
      "title": "Avatar URL",
      "type": "string"
    }
  },
  "required": [
    "id",
    "url",
    "username",
    "nickname",
    "bio",
    "followers",
    "following",
    "likes",
    "videos",
    "verified",
    "avatar"
  ],
  "title": "TikTokUserScrapperNodeOutput",
  "type": "object"
}
```

</details>

## How It Works

This node uses the PixelML API to scrape publicly available information from a TikTok user's profile. You provide a TikTok username, and the node retrieves comprehensive profile data including follower counts, engagement metrics, profile information, and avatar images. The scraping is performed through PixelML's infrastructure, which handles rate limiting and TikTok's anti-scraping measures.

## Usage Examples

### Example 1: Scrape Influencer Profile

**Input:**

```
username: "charlidamelio"
```

**Output:**

```
id: "5831967"
url: "https://www.tiktok.com/@charlidamelio"
username: "charlidamelio"
nickname: "charli d'amelio"
bio: "i hope you're happy :)"
followers: 155200000
following: 1167
likes: 11800000000
videos: 2156
verified: true
avatar: "https://p16-sign-va.tiktokcdn.com/avatar.jpg"
```

### Example 2: Research Competitor Account

**Input:**

```
username: "brandaccount"
```

**Output:**

```
id: "98765432"
url: "https://www.tiktok.com/@brandaccount"
username: "brandaccount"
nickname: "Brand Name"
bio: "Official Account | Shop Link Below"
followers: 250000
following: 342
likes: 5600000
videos: 450
verified: true
avatar: "https://p16-sign-va.tiktokcdn.com/brand-avatar.jpg"
```

### Example 3: Analyze Content Creator Stats

**Input:**

```
username: "smallcreator"
```

**Output:**

```
id: "123456789"
url: "https://www.tiktok.com/@smallcreator"
username: "smallcreator"
nickname: "Small Creator"
bio: "Making content daily!"
followers: 12500
following: 890
likes: 156000
videos: 145
verified: false
avatar: "https://p16-sign-va.tiktokcdn.com/creator-avatar.jpg"
```

## Common Use Cases

* **Influencer Research**: Analyze influencer profiles for partnership opportunities and audience sizing
* **Competitor Analysis**: Track competitor accounts' growth metrics and engagement statistics
* **Content Strategy**: Research successful creators in your niche to inform content strategies
* **Lead Generation**: Identify and collect information about potential brand ambassadors or partners
* **Market Research**: Gather data on TikTok users within specific demographics or industries
* **Campaign Tracking**: Monitor brand accounts and campaign performance over time
* **Verification Checks**: Verify authenticity and metrics of accounts before partnerships

## Error Handling

| Error Type              | Cause                                              | Solution                                                                             |
| ----------------------- | -------------------------------------------------- | ------------------------------------------------------------------------------------ |
| User Not Found          | Username doesn't exist on TikTok                   | Verify the username spelling and that the account exists                             |
| Private Account         | User profile is set to private                     | This node can only scrape public profiles; request access or use different account   |
| Rate Limit Exceeded     | Too many scraping requests in short period         | Implement delays between requests or upgrade your PixelML plan                       |
| Connection Failed       | Invalid or expired PixelML connection              | Verify your PixelML connection credentials are valid                                 |
| Account Suspended       | Target TikTok account has been suspended or banned | Choose a different account to scrape                                                 |
| Timeout Error           | Scraping operation took too long to complete       | Retry the request or check if TikTok is experiencing issues                          |
| Invalid Username Format | Username contains invalid characters or format     | Ensure username follows TikTok's username rules (alphanumeric, underscores, periods) |

## Notes

* **Public Profiles Only**: This node can only scrape publicly accessible TikTok profiles. Private accounts will return errors.
* **Real-Time Data**: The data retrieved reflects the current state of the profile at the time of scraping.
* **Rate Limiting**: PixelML implements rate limiting to comply with TikTok's terms of service. Space out your requests appropriately.
* **Username Format**: Use the TikTok username without the @ symbol (e.g., "charlidamelio" not "@charlidamelio").
* **Data Freshness**: For frequently changing metrics (followers, likes), consider caching strategies to minimize API calls.
* **API Costs**: Each profile scrape consumes PixelML API credits. Monitor your usage to control costs.
* **Compliance**: Ensure your use of scraped data complies with TikTok's terms of service and data privacy regulations.
* **Metric Changes**: TikTok occasionally changes what metrics are publicly visible. The output may vary over time.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.agenticflow.ai/reference/nodes/tiktok_user_scrapper.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
