# Tiktok User Profile API (`novi/tiktok-user-info-api`) Actor

Get infomation a TikTok profile/user with fast API. Gain access to TikTok user information with remarkable speed and efficiency through our high-performance API. Real-time, authentic data. No pre-built databases.

- **URL**: https://apify.com/novi/tiktok-user-info-api.md
- **Developed by:** [Novi](https://apify.com/novi) (community)
- **Categories:** Social media, Lead generation
- **Stats:** 4,137 total users, 126 monthly users, 100.0% runs succeeded, 31 bookmarks
- **User rating**: 4.07 out of 5 stars

## Pricing

from $4.50 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## TikTok User Info API

This scraper provides information about a TikTok user including details: name, nickname, ID, bio, followers/following
numbers, play, share and comment count, etc.

Since TikTok doesn't provide a good and free API, this actor should help you to retrieve data from it as an Unofficial
API.

**The TikTok User Information Data scraper supports the following features:**

- **User details** - Retrieve all user-related information.

##### If you want to get specific data from TikTok

You can use the scrapers below. Each scraper is made to help you get different kinds of TikTok data, like hashtags,
search results, profiles, or everything at once. You can look at them to see which one you need.

| [🎹️ Fast TikTok API](https://apify.com/novi/fast-tiktok-api)                                | [📹️ TikTok Trend API](https://apify.com/novi/tiktok-trend-api)            | [🔍️ TikTok Search API](https://apify.com/novi/tiktok-search-api)             |
|:---------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------|:------------------------------------------------------------------------------|
| [🧛️ TikTok User API](https://apify.com/novi/tiktok-user-api)                                | [🧛️ TikTok User Info API](https://apify.com/novi/tiktok-user-info-api)    | [#️ TikTok Hashtag API](https://apify.com/novi/tiktok-hashtag-api)            |
| [🛍️ TikTok Shop API](https://apify.com/novi/tiktok-shop-scraper)                            | [👤️ TikTok Followers API](https://apify.com/novi/tiktok-followers-api)    | [⚡️ TikTok Scraper (pay-per-result)](https://apify.com/xtdata/tiktok-scraper) |
| [💬 TikTok Comment API](https://apify.com/novi/tiktok-comment-api)                           | [🎶 TikTok Music API](https://apify.com/novi/tiktok-sound-api)             | [🎶 TikTok Music Trend API](https://apify.com/novi/tiktok-music-trend-api)    |
| [🐦 Twitter - X.com Scraper](https://apify.com/xtdata/twitter-x-scraper)                     | [👤️ TikTok Profile Video Scraper](https://apify.com/novi/tiktok-user-api) |                                                                               |                                                                               |
| [🎶 Tiktok Scraper Ultimate (pay-per-event)](https://apify.com/novi/tiktok-scraper-ultimate) |                                                                            |                                                                               |

### Bugs, fixes, updates and changelog

This scraper is under active development. If you have any feature requests you can create an issue from here.

### Input Parameters

The input of this scraper should be JSON containing the list of pages on TikTok User Info API that should be visited.
Required fields are:

| **FIELD**                        | **Type**     |     | **Description**                                                                                                                |     |     |
|----------------------------------|--------------|:----|--------------------------------------------------------------------------------------------------------------------------------|-----|-----|
| usernames                        | List<String> |     | Username list of User to scrap. use when you don't want to use full URL. Use either username or url. Name has higher priority. |     |     |
| userIds                          | List<String> |     | User ID list, get from other TikTok API.                                                                                       |     |     |
| urls                             | List<String> |     | User URL list from TikTok. Ex: https://www.tiktok.com/@nickiminai                                                              |     |     |
| username (*default: nickiminai*) | String       |     | Username of User to scrap. use when you don't want to use full URL. Use either username or url. Name has higher priority.      |     |     |
| userId                           | String       |     | User ID, get from other TikTok API.                                                                                            |     |     |
| url                              | String       |     | User URL from TikTok. Ex: https://www.tiktok.com/@nickiminai                                                                   |     |     |

### Compute Unit Consumption

The actor optimized to run blazing fast and scrape many as listings as possible. Therefore, it forefronts all listing
detail requests. If actor doesn't block very often it'll scrape 100 listings in 30 seconds with ~0.03-0.07 compute
units.

### How to Scrape TikTok User Data

#### 1. Scrape User Data using usernames

![Scrape By Username](https://github.com/user-attachments/assets/1d2ffc34-5b8a-4470-8255-34f7927b66e6)

```json
{
  "usernames": [
    "breannashiveley",
    "nickiminai"
  ]
}
```

#### 2. Scrape User Data using user's IDs

![Scrape By User's ID](https://github.com/user-attachments/assets/d3331093-5674-4d4f-9bac-9fc14b205fba)

```json
{
  "userIds": [
    "208464585232822272"
  ]
}
```

#### 3. Scrape User Data using URLs to profile

![Scrape By URL](https://github.com/user-attachments/assets/a43f5c95-c888-47ce-a3a8-718e4e16fb07)

```json
{
  "urls": [
    "https://www.tiktok.com/@nickiminai"
  ]
}
```

### During the Run

During the run, the actor will output messages letting you know what is going on. Each message always contains a short
label specifying which page from the provided list is currently specified. When items are loaded from the page, you
should see a message about this event with a loaded item count and total item count for each page.

If you provide incorrect input to the actor, it will immediately stop with failure state and output an explanation of
what is wrong.

### TikTok User Information API Export

During the run, the actor stores results into a dataset. Each item is a separate item in the dataset.

You can manage the results in any language (Python, PHP, Node JS/NPM). See the FAQ or our API references to learn more
about getting results from this TikTok User Info API actor.

#### User Information In JSON format.

```json
{
  "uid": "208464585232822272",
  "unique_id": "nike",
  "nickname": "Nike",
  "bio_url": "https://linkin.bio/nike",
  "total_favorited": 18443294,
  "twitter_id": "",
  "twitter_name": "",
  "account_type": 3,
  "ad_virtual": false,
  "advance_feature_item_order": [
    20
  ],
  "apple_account": 0,
  "avatar_168x168": {
    "uri": "tos-useast5-avt-0068-tx/908fe11a62bf22cd36dbea27296d670c",
    "url_list": [
      "https://p16-sign-va.tiktokcdn.com/tos-maliva-avt-0068/908fe11a62bf22cd36dbea27296d670c~c5_168x168.webp?x-expires=1699977600&x-signature=iO8Z1uKpRG5jynA%2BAw6ND6SztR8%3D",
      "https://p16-sign-va.tiktokcdn.com/tos-maliva-avt-0068/908fe11a62bf22cd36dbea27296d670c~c5_168x168.jpeg?x-expires=1699977600&x-signature=H259CrWXtp3plTsl7lZaQoXxAlA%3D"
    ],
    "url_prefix": null
  },
  "avatar_300x300": {
    "uri": "tos-useast5-avt-0068-tx/908fe11a62bf22cd36dbea27296d670c",
    "url_list": [
      "https://p16-sign-va.tiktokcdn.com/tos-maliva-avt-0068/908fe11a62bf22cd36dbea27296d670c~c5_300x300.webp?x-expires=1699977600&x-signature=iIBpadLQcRPvfauyfLZGDd4miBA%3D",
      "https://p16-sign-va.tiktokcdn.com/tos-maliva-avt-0068/908fe11a62bf22cd36dbea27296d670c~c5_300x300.jpeg?x-expires=1699977600&x-signature=4jE9MYyxQqrMAoONVnjT8S6tenw%3D"
    ],
    "url_prefix": null
  },
  "avatar_larger": {
    "uri": "tos-useast5-avt-0068-tx/908fe11a62bf22cd36dbea27296d670c",
    "url_list": [
      "https://p16-sign-va.tiktokcdn.com/tos-maliva-avt-0068/908fe11a62bf22cd36dbea27296d670c~c5_1080x1080.webp?x-expires=1699977600&x-signature=rbAuiQKYSjzHCrJ8DDYuZ2xie%2BM%3D",
      "https://p16-sign-va.tiktokcdn.com/tos-maliva-avt-0068/908fe11a62bf22cd36dbea27296d670c~c5_1080x1080.jpeg?x-expires=1699977600&x-signature=%2BOXf0mltFENXz9mWAq%2BnYFKi%2FSY%3D"
    ],
    "url_prefix": null
  },
  "avatar_medium": {
    "uri": "tos-useast5-avt-0068-tx/908fe11a62bf22cd36dbea27296d670c",
    "url_list": [
      "https://p16-sign-va.tiktokcdn.com/tos-maliva-avt-0068/908fe11a62bf22cd36dbea27296d670c~c5_720x720.webp?x-expires=1699977600&x-signature=GPjdachqxaJQ5n%2Fvp0CWvNlQlZw%3D",
      "https://p16-sign-va.tiktokcdn.com/tos-maliva-avt-0068/908fe11a62bf22cd36dbea27296d670c~c5_720x720.jpeg?x-expires=1699977600&x-signature=PDiBDkKfHRlHfpayHuZuJsd3BTg%3D"
    ],
    "url_prefix": null
  },
  "avatar_thumb": {
    "uri": "tos-useast5-avt-0068-tx/908fe11a62bf22cd36dbea27296d670c",
    "url_list": [
      "https://p16-sign-va.tiktokcdn.com/tos-maliva-avt-0068/908fe11a62bf22cd36dbea27296d670c~c5_100x100.webp?x-expires=1699977600&x-signature=ERmi0FWi6rbmcIi0mfTVLBVmGRc%3D",
      "https://p16-sign-va.tiktokcdn.com/tos-maliva-avt-0068/908fe11a62bf22cd36dbea27296d670c~c5_100x100.jpeg?x-expires=1699977600&x-signature=ocQkV7q0ydjHek3b2seZhAjNTdA%3D"
    ],
    "url_prefix": null
  },
  "aweme_count": 780,
  "bio_secure_url": "https://www.tiktok.com/link/?aid=1233&lang=en&scene=bio_url&target=https%3A%2F%2Flinkin.bio%2Fnike&owner_suid=MS4wLjABAAAA_3ndMt8d_tECTdpKgCxcx238tOnQZX-20wqN01aMui5zQ7hsqSdff-jC5qYC-Cl_",
  "biz_account_info": {
    "added_contact_and_link_list": null,
    "coupon_list": null,
    "leads_gen": {
      "action_name": "",
      "business_data": "",
      "has_leads_gen": false,
      "page_id": 0,
      "schema_url": ""
    },
    "permission_list": [
      "001001",
      "001002",
      "001003",
      "001004",
      "001005",
      "002001",
      "002002",
      "002005",
      "004001",
      "004006",
      "004009",
      "004012",
      "006001",
      "007001",
      "007003",
      "007004",
      "007005",
      "008001",
      "010001",
      "010002",
      "010003",
      "015001",
      "015002",
      "015003",
      "018003",
      "020001",
      "021001",
      "018001"
    ]
  },
  "can_message_follow_status_list": [
    0,
    1,
    2,
    4
  ],
  "category": "Sports, Fitness & Outdoors",
  "commerce_user_info": {
    "ad_revenue_rits": null
  },
  "commerce_user_level": 0,
  "custom_verify": "",
  "display_qna_on_profile": 1,
  "enterprise_verify_reason": "Verified account",
  "favoriting_count": 0,
  "follow_status": 0,
  "follower_count": 5020466,
  "follower_status": 0,
  "following_count": 180,
  "forward_count": 0,
  "ins_id": "nike",
  "is_block": false,
  "is_blocked": false,
  "is_effect_artist": false,
  "is_star": false,
  "live_commerce": false,
  "live_push_notification_status": 2,
  "message_chat_entry": true,
  "mplatform_followers_count": 0,
  "music_tab_info": {
    "show_artist_pick_videos": false
  },
  "original_musician": {
    "digg_count": 0,
    "music_count": 0,
    "music_used_count": 0,
    "new_release_clip_ids": null
  },
  "privacy_setting": {
    "following_visibility": 2
  },
  "profile_tab_type": 0,
  "recommend_reason_relation": "",
  "room_id": 0,
  "sec_uid": "MS4wLjABAAAA_3ndMt8d_tECTdpKgCxcx238tOnQZX-20wqN01aMui5zQ7hsqSdff-jC5qYC-Cl_",
  "secret": 0,
  "share_info": {
    "bool_persist": 1,
    "now_invitation_card_image_urls": null,
    "share_desc": "Check out Nike! #TikTok",
    "share_desc_info": "TikTok: Make Every Second Count",
    "share_image_url": {
      "uri": "tos-useast5-p-0068-tx/105776f7806b459cb32f294ebd046503_1699287598",
      "url_list": [
        "https://p16-sign.tiktokcdn-us.com/obj/tos-useast5-p-0068-tx/105776f7806b459cb32f294ebd046503_1699287598?x-expires=1699826400&x-signature=20%2FtSclpyuGPlE1pLbsOh3Xc4h8%3D",
        "https://p19-sign.tiktokcdn-us.com/obj/tos-useast5-p-0068-tx/105776f7806b459cb32f294ebd046503_1699287598?x-expires=1699826400&x-signature=ew%2F%2BslI6sHcrLICt8iUolIVj%2BmU%3D"
      ],
      "url_prefix": null
    },
    "share_title": "Join TikTok and see what I’ve been up to!",
    "share_title_myself": "",
    "share_title_other": "",
    "share_url": "https://www.tiktok.com/@nike?_r=1&_d=e9cbalc6a27625&sec_uid=MS4wLjABAAAA_3ndMt8d_tECTdpKgCxcx238tOnQZX-20wqN01aMui5zQ7hsqSdff-jC5qYC-Cl_&share_author_id=208464585232822272&sharer_language=en&source=h5_m&u_code=e9cbcf4gk687hf"
  },
  "short_id": "0",
  "show_effect_list": true,
  "show_favorite_list": false,
  "signature": "",
  "signature_language": "un",
  "story_status": 0,
  "supporting_ngo": {},
  "tab_settings": {
    "private_tab": {
      "private_tab_style": 1,
      "show_private_tab": false
    }
  },
  "verification_type": 0,
  "video_icon": {
    "uri": "",
    "url_list": [],
    "url_prefix": null
  },
  "watch_status": false,
  "with_commerce_enterprise_tab_entry": false,
  "with_commerce_entry": false,
  "with_new_goods": false,
  "youtube_channel_id": "",
  "youtube_channel_title": ""
}
```

### Ethical Use and Data Practices

Our TikTok Scraper operates **without logging in to TikTok**. This means it **doesn't implicitly accept any of TikTok's
Terms of Service (ToS) that require a login**, as we only process data that's **publicly displayed and accessible to
everyone** without authentication.

We're fully committed to the principle of **privacy by design and by default**. All data collected **explicitly excludes
sensitive personal information or non-public data**.

Furthermore, our scraper runs on **Apify, an EU-based company**, which means our operations are designed to be \*
*compliant with relevant EU data protection regulations*\*, including GDPR, where applicable. You can find more
information about the legality of web scraping on Apify's
blog: <https://blog.apify.com/is-web-scraping-legal/>

We've implemented robust technical measures to ensure the scraper
operates gently and **doesn't impose an undue burden on TikTok's servers**. Our sole purpose is to facilitate \*
*responsible research and public data analysis*\*, and we strictly prohibit any use that could cause harm to any party or
the platform itself.

***

### Scrape any TikTok data you need with dedicated scrapers

If you want to get specific data from TikTok, you can use the scrapers below. Each scraper is made to help you get
different kinds of TikTok data, like hashtags, search results, profiles, or everything at once. You can look at them to
see which one you need.

#### **1. TikTok Actors**

|                                                                                                                                     |                                                                                                       |                                                                                            |
|-------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------|
| [⚡ Fast TikTok API (No WM)](https://apify.com/novi/fast-tiktok-api?fpr=7hce1m)                                                      | [👤 Tiktok User Profile API](https://apify.com/novi/tiktok-user-info-api?fpr=7hce1m)                  | [🔍 Advanced Search TikTok](https://apify.com/novi/advanced-search-tiktok-api?fpr=7hce1m)  |
| [🔎 TikTok Search Scraper](https://apify.com/novi/tiktok-search-api?fpr=7hce1m)                                                     | [📈 Tiktok Trend API](https://apify.com/novi/tiktok-trend-api?fpr=7hce1m)                             | [💬 TikTok Comment API](https://apify.com/novi/tiktok-comment-api?fpr=7hce1m)              |
| [🎞️ TikTok Profile Videos API](https://apify.com/novi/tiktok-user-api?fpr=7hce1m)                                                  | [#️⃣ TikTok Hashtag API](https://apify.com/novi/tiktok-hashtag-api?fpr=7hce1m)                        | [🎵 TikTok Sound Music API](https://apify.com/novi/tiktok-sound-api?fpr=7hce1m)            |
| [👥 TikTok Followers API](https://apify.com/novi/tiktok-followers-api?fpr=7hce1m)                                                   | [🔢 Multiple Hashtags Scraper](https://apify.com/novi/multiple-tiktok-hashtag-scraper?fpr=7hce1m)     | [🏆 TikTok Scraper Ultimate](https://apify.com/novi/tiktok-scraper-ultimate?fpr=7hce1m)    |
| [🎶 TikTok Music Trend API](https://apify.com/novi/tiktok-music-trend-api?fpr=7hce1m)                                               | [🛍️ TikTok Shop Scraper](https://apify.com/novi/tiktok-shop-scraper?fpr=7hce1m)                      | [💰 TikTok Scraper (Pay per video)](https://apify.com/novi/fast-tiktok-scraper?fpr=7hce1m) |
| [📄 Fast TikTok API (Simple)](https://www.google.com/search?q=https://apify.com/novi/fast-tiktok-api-with-simple-result?fpr=7hce1m) | [🆔 TikTok User Profile Scraper](https://apify.com/xtdata/tiktok-user-information-scraper?fpr=7hce1m) | [📍 TikTok Location API](https://apify.com/novi/tiktok-location-api?fpr=7hce1m)            |
| [🤖 TikTok AI Video Scraper](https://apify.com/novi/tiktok-ai-video-scraper?fpr=7hce1m)                                             | [🗯️ TikTok Comment (Novi)](https://apify.com/novi/tiktok-comment-scraper?fpr=7hce1m)                 | [🏷️ TikTok Scraper (Fixed price)](https://apify.com/xtdata/tiktok-scraper?fpr=7hce1m)     |
| [🗣️ TikTok Comment + Replies](https://apify.com/xtdata/tiktok-comment-scraper?fpr=7hce1m)                                          |                                                                                                       |                                                                                            |

#### **2. X.com (Twitter) Actors**

|                                                                                       |                                                                                                           |                                                                                                           |
|---------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------|
| [🐦 X.com Twitter API Scraper](https://apify.com/xtdata/twitter-x-scraper?fpr=7hce1m) | [🐦 X.com Twitter User Tweets Scraper](https://apify.com/xtdata/twitter-x-user-tweets-scraper?fpr=7hce1m) | [🐦 X.com Twitter User Tweets Scraper](https://apify.com/xtdata/twitter-x-user-search-scraper?fpr=7hce1m) |

#### **3. YouTube Actors**

|                                                                                       |  |  |
|---------------------------------------------------------------------------------------|--|--|
| [📜 YouTube Transcript API](https://apify.com/novi/youtube-transcript-api?fpr=7hce1m) |  |  |

# Actor input Schema

## `usernames` (type: `array`):

Username of User to scrap. Username has highest priority. Ex: nike

## `userIds` (type: `array`):

User ID, get from other TikTok API data. Ex: 6714563164218679553

## `urls` (type: `array`):

User URL from TikTok. Ex: https://www.tiktok.com/@nickiminai

## `username` (type: `string`):

Username of User to scrap. Username has highest priority. Ex: nike

## `userId` (type: `string`):

User ID, get from other TikTok API data. Ex: 6714563164218679553

## `url` (type: `string`):

User URL from TikTok. Ex: https://www.tiktok.com/@nickiminai

## Actor input object example

```json
{
  "usernames": [
    "nike"
  ],
  "userIds": [
    "6714563164218679553"
  ],
  "username": "nike"
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "usernames": [
        "nike"
    ],
    "userIds": [
        "6714563164218679553"
    ],
    "username": "nike"
};

// Run the Actor and wait for it to finish
const run = await client.actor("novi/tiktok-user-info-api").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "usernames": ["nike"],
    "userIds": ["6714563164218679553"],
    "username": "nike",
}

# Run the Actor and wait for it to finish
run = client.actor("novi/tiktok-user-info-api").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "usernames": [
    "nike"
  ],
  "userIds": [
    "6714563164218679553"
  ],
  "username": "nike"
}' |
apify call novi/tiktok-user-info-api --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,novi/tiktok-user-info-api"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/aRyuXtgVLFE0ClGGm/builds/XfUSbIScZtpyXVnoa/openapi.json
