# Tiktok Profile Scraper (`alpha-scraper/tiktok-profile-scraper`) Actor

Extract detailed TikTok profile data with Tiktok Profile Scraper. Collect usernames, names, bios, profile images, followers, following, posts, and engagement metrics from one or multiple TikTok profiles in structured output.

- **URL**: https://apify.com/alpha-scraper/tiktok-profile-scraper.md
- **Developed by:** [Alpha Scraper](https://apify.com/alpha-scraper) (community)
- **Categories:** Social media, Other, Real estate
- **Stats:** 42 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $1.50 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
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 Profile Scraper – Overview

Tiktok Profile Scraper extracts structured profile information from TikTok usernames and returns one record for each processed profile. It is designed for profile-level research rather than individual videos, comments, or complete video libraries.

Tiktok Profile Scraper accepts one or multiple usernames through a simple list input. Usernames may include `@`, and the Actor normalizes the value before processing. The resulting record can contain profile identity, biography, image URLs, identifiers, audience metrics, and engagement-related counts when available.

Tiktok Profile Scraper is useful for creator discovery, influencer research, competitor analysis, market research, prospect research, and building profile datasets. The easiest workflow is to enter usernames, review the input, run the Actor, and inspect the structured dataset results.

> **🔍 Tiktok Profile Scraper at a glance**
>
> - Submit one or multiple TikTok usernames
> - Use usernames with or without `@`
> - Normalize username-style input automatically
> - Extract profile identity and biography information
> - Capture followers, following, posts, and engagement-related counts when available
> - Return structured records to the Apify dataset
> - Process each submitted username as a separate result

### 🔹 Tiktok Profile Scraper – Key Features

Tiktok Profile Scraper focuses on account-level information, giving you a compact profile snapshot without making video-level collection the main task.

#### 🔹 Tiktok Profile Scraper profile metadata

The Actor can return display name, username, biography, profile image URL, and higher-resolution profile image URL when available. These fields give you both readable profile information and useful references for organizing profile records.

#### 🔹 Tiktok Profile Scraper audience metrics

The output includes followers, following, and posts when available. It also includes heart and digg-related counts when those values can be found in the returned profile data.

#### 🔹 Multiple profiles in one Tiktok Profile Scraper run

You can submit multiple usernames in the same array. This is useful when you have a creator list, competitor list, research shortlist, or prospect dataset.

#### 🔹 Flexible username handling

A leading `@` is removed automatically. The underlying input handling also recognizes comma-separated or line-separated username values in supported input shapes, although the public Apify interface is configured as a username list.

#### 🔹 Structured Tiktok Profile Scraper output

Processed records are pushed to the default Apify dataset, making profile data available in a consistent structured form for inspection and further analysis.

> **💡 Why use Tiktok Profile Scraper?**
>
> - Build a TikTok profile dataset quickly
> - Compare creators using consistent fields
> - Collect usernames, bios, images, and audience metrics
> - Research multiple profiles in one run
> - Keep profile research separate from video scraping
> - Use structured records for downstream analysis

### 🔹 Tiktok Profile Scraper – What Data You Can Extract

Tiktok Profile Scraper returns a defined set of output fields for each processed username. A field can be `null` when the corresponding value is not available.

| Field                 | Description                                            |
| --------------------- | ------------------------------------------------------ |
| `full_name`           | Profile display name or full name when available       |
| `user_name`           | TikTok username associated with the profile            |
| `profile_pic_url`     | Profile image URL                                      |
| `profile_pic_url_hd`  | Higher-resolution profile image URL when available     |
| `biography`           | Profile biography or description                       |
| `uid`                 | User identifier when available                         |
| `sec_uid`             | Secondary user identifier when available               |
| `posts`               | Number of posts/videos when available                  |
| `followers`           | Follower count when available                          |
| `following`           | Following count when available                         |
| `heart`               | Heart/like-related total when available                |
| `digg_count`          | Digg-related count when available                      |
| `_requested_username` | Username requested for that record                     |
| `_http_status`        | HTTP status associated with the request when available |

For request or response problems, an output record can also contain `error` or `_error`. In certain unexpected response cases, `_raw_preview` may be present.

### 🔹 Tiktok Profile Scraper – How to Use It

Using Tiktok Profile Scraper requires only a small amount of setup. The public input schema exposes the fields needed for profile collection.

#### 🔹 Step 1: Add usernames

Use **🟢 Profile username(s)** and enter one or multiple TikTok usernames.

```json
{
  "username": [
    "@omoralwaysonfire07",
    "hamzakhanshayan",
    "noureenafrosepiya22"
  ]
}
```

The `@` prefix is supported and removed during normalization.

#### 🔹 Step 2: Review Tiktok Profile Scraper input settings

The input also contains **🟢 Proxy Configuration**, managed through the Apify input editor. Use the options available in the Actor UI according to your run requirements.

#### 🔹 Step 3: Start the run

Start the Actor after reviewing your usernames. Tiktok Profile Scraper processes the submitted profiles and sends the resulting records to the Apify dataset.

#### 🔹 Step 4: Review the results

Open the run dataset and inspect the returned profile records. Each processed username normally produces a corresponding result object.

> **📥 Input**
>
> - `username` — array of strings containing TikTok usernames
> - `proxyConfiguration` — object exposed through the Apify input editor
> - Recommended username format — `creatorname` or `@creatorname`

### 🔹 How to Scrape TikTok Profile Data from Multiple Usernames

Tiktok Profile Scraper is useful when your starting point is already a list of TikTok usernames. Instead of manually checking each profile, place the usernames in the input array and process them together.

For example, an influencer research project may start with a creator shortlist. A competitor study may begin with selected brand accounts. A prospecting workflow may already contain usernames from another source. In each case, Tiktok Profile Scraper can turn that list into structured profile records.

Because the output uses consistent field names, the records are easier to compare by followers, following, posts, biography, username, or available engagement metrics. Repeated runs can also be organized around the same profile list for later comparison.

### 🔹 Can You Use Tiktok Profile Scraper for Individual TikTok Videos?

Tiktok Profile Scraper is focused on profile-level information. It is not presented as the dedicated full-profile video collector or single-video scraper.

The supplied Actor description points users to a separate **TikTok Profile Videos Scraper** when the goal is to collect all videos from a profile. It also points to a separate **TikTok Video Scraper** for individual video scraping.

> **🎯 Choose the right workflow**
>
> - **Tiktok Profile Scraper** → profile metadata and profile-level metrics
> - **TikTok Profile Videos Scraper** → videos from a TikTok profile
> - **TikTok Video Scraper** → individual video scraping

### 🔹 Tiktok Profile Scraper – Use Cases

#### 🔹 Creator discovery with Tiktok Profile Scraper

Build structured creator lists and compare display names, biographies, audience counts, and available engagement metrics.

#### 🔹 Influencer research

Create an initial creator dataset before deeper content analysis. Profile metadata can help segment accounts by audience size or profile positioning.

#### 🔹 Competitor monitoring

Keep a repeatable profile snapshot for selected accounts. Running Tiktok Profile Scraper again can provide refreshed records for later comparison.

#### 🔹 Social media market research

Collect profile metadata for a defined set of usernames and study creator categories, audience size, publishing activity, or profile descriptions.

#### 🔹 Lead and prospect research

Known TikTok usernames can be enriched with profile metadata for early-stage research and prioritization. The biography field may provide useful context about how an account presents itself.

#### 🔹 Dataset preparation

Build a structured table of TikTok profiles for filtering, reporting, analysis, or downstream processing.

> **🚀 Use Tiktok Profile Scraper when your main question is about the account itself: who the creator is, how the profile is described, how large the audience is, and which profile metrics are available.**

### 🔹 Tiktok Profile Scraper – Input Details

#### 🔹 `username`

The `username` field is the primary input for Tiktok Profile Scraper.

- Type: array
- Editor: string list
- Purpose: provide one or multiple TikTok usernames
- `@` prefix: supported
- Multiple profiles: supported
- Recommended practice: one username per list item

Example:

```json
{
  "username": [
    "creator_one",
    "@creator_two",
    "creator_three"
  ]
}
```

The code also recognizes broader username-like input shapes, including full URL-like values and comma-separated or line-separated values, but the public interface is intended for usernames.

#### 🔹 `proxyConfiguration`

This input is an object managed through the Apify proxy editor.

- Type: object
- Purpose: configure the available proxy option for the run
- Recommended practice: use the settings provided in the Actor interface

> **📝 Input tip**
>
> - Keep the username list clean
> - Use one profile per list item
> - Avoid unnecessary spaces
> - Prefer the public input fields documented above

### 🔹 Tiktok Profile Scraper – Sample Output

A successful profile record can look like this:

```json
{
  "full_name": "Example Creator",
  "user_name": "example_creator",
  "profile_pic_url": "https://example.com/profile.jpg",
  "profile_pic_url_hd": "https://example.com/profile-hd.jpg",
  "biography": "Creator profile description",
  "uid": "1234567890",
  "sec_uid": "example-secondary-id",
  "posts": 120,
  "followers": 150000,
  "following": 350,
  "heart": 2300000,
  "digg_count": 1800000,
  "_requested_username": "example_creator",
  "_http_status": 200
}
```

This is an example of the output structure, not a promise of specific values. Actual data depends on what is available for the requested profile, and some fields may be `null`.

For unsuccessful or unexpected responses, the result may contain an error indicator instead of a complete profile record.

### 🔹 Tiktok Profile Scraper – Output and Data Handling

Tiktok Profile Scraper produces JSON-style structured records and pushes processed items to the default Apify dataset. The Actor also writes a JSON result file during execution.

The output separates profile identity, visual profile references, biography, identifiers, audience statistics, and engagement-related values. This makes the dataset suitable for profile comparison and basic creator analysis without collecting every TikTok video.

Each submitted username is processed individually, so a multi-profile run naturally creates multiple records. This row-like structure is useful when you want to compare accounts using the same field names.

### 🔹 Tiktok Profile Scraper – Pricing

The supplied `actor.json` and `main.py` do not specify a fixed monetary price for Tiktok Profile Scraper. No public pricing table is included in the supplied materials.

> **💰 Pricing note**
>
> - No fixed Actor price is stated in the supplied configuration.
> - Do not assume a specific per-profile amount from this README.
> - Check the current Apify Actor page and your run-cost information for the applicable charge.

This keeps pricing documentation accurate without reproducing internal billing details.

### 🔹 Tiktok Profile Scraper – Tips and Best Practices

#### 🔹 Use clean usernames

The most predictable input is the public `username` array with one TikTok username per item.

#### 🔹 Match the Actor to the task

Use Tiktok Profile Scraper for account-level data. Use the referenced video-focused Actors when your goal is profile videos or individual TikTok videos.

#### 🔹 Expect unavailable fields

A field can be `null` when its value is not present in the returned profile information. Do not automatically interpret `null` as zero.

#### 🔹 Review error records

Before calculating statistics, check records containing `error` or `_error`. An unsuccessful request should not be treated as a normal profile record.

#### 🔹 Keep repeated runs consistent

For monitoring or comparison, reuse the same username list and the same output fields so that records remain easy to compare.

> **⚠️ Important**
>
> - Not every output field is guaranteed to be populated for every profile.
> - Results depend on the profile information returned during the run.
> - Profile scraping, profile-video scraping, and single-video scraping are separate workflows.

### 🔹 Frequently Asked Questions About Tiktok Profile Scraper

#### 🔹 What is Tiktok Profile Scraper used for?

Tiktok Profile Scraper collects structured TikTok profile metadata for submitted usernames. Depending on available data, this can include name, username, biography, profile image URLs, identifiers, followers, following, posts, and engagement-related counts.

#### 🔹 Can Tiktok Profile Scraper process multiple usernames?

Yes. The public `username` input is an array, so multiple profiles can be submitted in one run. Each processed username is returned as its own record.

#### 🔹 Do I need the @ symbol?

No. Tiktok Profile Scraper removes a leading `@` during username normalization, so `creatorname` and `@creatorname` are both suitable.

#### 🔹 What data does Tiktok Profile Scraper return?

The main fields are `full_name`, `user_name`, `profile_pic_url`, `profile_pic_url_hd`, `biography`, `uid`, `sec_uid`, `posts`, `followers`, `following`, `heart`, and `digg_count`, plus request metadata such as `_requested_username` and `_http_status`.

#### 🔹 Can Tiktok Profile Scraper collect TikTok videos?

This Actor is intended for profile metadata, not as the dedicated profile-video or single-video scraper. The supplied configuration references separate Actors for those tasks.

#### 🔹 Can output fields be missing?

Yes. Some fields can be `null` when the corresponding value is unavailable in the returned profile data.

#### 🔹 What happens when a profile request fails?

A record may contain `error` or `_error`. Some unexpected response cases may also include `_raw_preview`.

#### 🔹 Is there a fixed price?

No fixed price is specified in the supplied Actor files. Review the current Apify Actor page and run-cost information for the actual applicable amount.

### 🔹 Support

Tiktok Profile Scraper is designed for a straightforward profile-data workflow: enter usernames, run the Actor, and review structured profile records in the dataset.

For questions, feature requests, or help choosing between profile, profile-video, and single-video scraping workflows:

- contact me by email : <alphascraper69@gmail.com>

# Actor input Schema

## `username` (type: `array`):

List of TikTok usernames (array). The actor will normalize them if needed.

## `proxyConfiguration` (type: `object`):

Apify proxy / custom proxy configuration used by the actor.

## Actor input object example

```json
{
  "username": [
    "@omoralwaysonfire07",
    "hamzakhanshayan",
    "noureenafrosepiya22",
    "@soniya_thapa0",
    "maishamoni298",
    "sad_life6700",
    "@nabila.mim10",
    "monika_mow"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `dataset` (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 = {
    "username": [
        "@omoralwaysonfire07",
        "hamzakhanshayan",
        "noureenafrosepiya22",
        "@soniya_thapa0",
        "maishamoni298",
        "sad_life6700",
        "@nabila.mim10",
        "monika_mow"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("alpha-scraper/tiktok-profile-scraper").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 = {
    "username": [
        "@omoralwaysonfire07",
        "hamzakhanshayan",
        "noureenafrosepiya22",
        "@soniya_thapa0",
        "maishamoni298",
        "sad_life6700",
        "@nabila.mim10",
        "monika_mow",
    ],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("alpha-scraper/tiktok-profile-scraper").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 '{
  "username": [
    "@omoralwaysonfire07",
    "hamzakhanshayan",
    "noureenafrosepiya22",
    "@soniya_thapa0",
    "maishamoni298",
    "sad_life6700",
    "@nabila.mim10",
    "monika_mow"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call alpha-scraper/tiktok-profile-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,alpha-scraper/tiktok-profile-scraper"
        }
    }
}
```

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/C9mdCvPs7mDV8AYdd/builds/s8JYJKWGAkzUSPCq8/openapi.json
