# TikTok User Profile Scraper (`scrapier/tiktok-user-profile-scraper`) Actor

📱 TikTok User Profile Scraper extracts public profile data—bio, username, followers, likes, video count, links & latest posts. 🔎 Get engagement stats & hashtags for influencer vetting, competitor research & social analytics. 🚀 Fast, reliable, export-ready (CSV/JSON).

- **URL**: https://apify.com/scrapier/tiktok-user-profile-scraper.md
- **Developed by:** [Scrapier](https://apify.com/scrapier) (community)
- **Categories:** Social media, Developer tools, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.99 / 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.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

### TikTok User Profile Scraper

The TikTok User Profile Scraper is a fast, reliable TikTok profile scraper that extracts structured public profile data at scale — handles, display names, bios, followers/following, likes, video counts, avatars, and share metadata — ready for analysis and exports. It solves the repetitive task of opening profiles one-by-one by turning them into clean JSON for dashboards, research, and enrichment. Built for marketers, developers, data analysts, and researchers, this TikTok user data extractor supports handles, numeric IDs, or full profile URLs in bulk, enabling automation-ready pipelines and large-scale creator vetting.

### What data / output can you get?

Below are real output fields produced by the TikTok profile crawler (one dataset item per unique profile). Exports are available as JSON, CSV, or Excel.

| Data field | Description | Example value |
| --- | --- | --- |
| unique_id | Profile handle | "nike" |
| uid | Numeric user ID | "208464585232822272" |
| nickname | Display name | "Nike" |
| signature | Bio text | "Just do it." |
| follower_count | Followers count | 12234000 |
| following_count | Following count | 25 |
| total_favorited | Total likes | 145000000 |
| aweme_count | Video count | 320 |
| sec_uid | sec_uid token | "MS4wLjABAAAA..." |
| bio_url | Link in bio (raw) | "https://www.nike.com" |
| bio_secure_url | Link safety redirect | "https://www.tiktoklinksafety.eu/link/v2?...&target=https%3A%2F%2Fwww.nike.com" |
| share_info.share_url | Canonical share URL | "https://www.tiktok.com/@nike?sec_uid=...&source=h5_m" |
| share_info.share_title | Share title | "Nike on TikTok" |
| avatar_thumb.url_list | Avatar URLs (thumb) | ["https://p16-sign-sg.tiktokcdn.com/…"] |

Bonus objects include:
- Avatar blocks at multiple sizes: avatar_thumb, avatar_medium, avatar_300x300, avatar_168x168, avatar_larger (each with uri, url_list, url_prefix).
- Business/commercial hints in biz_account_info: leads_gen, permission_list, rba_user_info.company_name.
- Additional stats and flags: mplatform_followers_count, verification_type, with_commerce_entry, original_musician, tab_settings, privacy_setting, and more.

### Key features

- 🚀 Bulk input, flexible targeting  
  Add creators via handles (usernames), numeric user IDs, or full profile URLs — perfect for a bulk TikTok user scraper workflow.

- 🧭 Direct-to-site with smart proxy fallbacks  
  Tries direct HTTPS first, then Apify datacenter proxy, and finally residential (up to 3 residential attempts per URL). After the first residential success, subsequent jobs stick to residential for stability.

- 🧹 Deduplicated, structured results  
  Results are deduplicated by unique_id and pushed as clean JSON — ideal for TikTok user info export CSV/JSON/Excel.

- 🧠 Accurate metadata extraction  
  Captures share_info, avatars, bio links (including bio_secure_url), commerce hints (biz_account_info), and engagement stats for research and analytics.

- 🧪 Resilient by design  
  Built-in retry logic and reasoned error handling for anti-bot challenges and hydration gaps — production-ready TikTok user scraper API pipelines.

- 🔌 Developer-friendly & integration-ready  
  Works seamlessly with the Apify platform and API. Automate with Make, n8n, Zapier or consume via Python for TikTok profile scraper Python workflows.

- 🔒 No login required  
  Scrapes publicly visible profiles only — no cookies or account needed.

### How to use TikTok User Profile Scraper - step by step

1. Sign in to Apify and open the TikTok User Profile Scraper actor.
2. Choose your input method:  
   - usernames: TikTok handles (with or without “@”)  
   - userIds: numeric TikTok user IDs (as strings)  
   - urls: full profile URLs  
   Provide at least one entry across these lists.
3. (Optional) Configure proxyConfiguration if your team uses Apify Proxy (e.g., to standardize geography or billing). Defaults work for most users.
4. Click Start. The scraper will queue your creators and begin fetching profiles.
5. The actor tries direct requests first, then fails over to Apify proxies as needed (datacenter → residential). You’ll see progress and any warnings in the run logs.
6. Once complete, open the “Profiles” dataset to review results.
7. Export your data in your preferred format (JSON, CSV, or Excel) for analysis, dashboards, or pipelines.

Pro Tip: Use the Apify API to trigger runs and download datasets programmatically for automated TikTok user metadata extraction in your data stack.

### Use cases

| Use case name | Description |
| --- | --- |
| Influencer vetting for marketing | Evaluate creators by extracting follower_count, total_favorited, aweme_count, and bios to shortlist partners quickly. |
| Competitor profile tracking | Monitor competitor handles at scale and export structured snapshots for trend analysis over time. |
| Social analytics & dashboards | Feed clean JSON into BI tools to measure audience growth and content cadence with repeatable runs. |
| Academic & market research | Collect public TikTok user metadata for studies on creator ecosystems and platform dynamics. |
| API-driven enrichment | Integrate a TikTok user scraper API workflow to enrich internal records with unique_id, uid, and share_info links. |
| Creator databases & catalogs | Build searchable catalogs of target niches using bios, commerce hints, and avatar metadata. |

### Why choose TikTok User Profile Scraper?

Purpose-built for precision, scalability, and automation — without browser extensions or fragile emulation.

- 🎯 High-accuracy field mapping: Extracts the profile JSON shape aligned to webapp.user-detail hydration.
- 📈 Scales to batches: Handles large lists via usernames, userIds, and urls with automatic deduplication by unique_id.
- 🧰 Developer-ready: Use via Apify’s API for bulk TikTok user scraper pipelines and TikTok user data extractor workflows in Python.
- 🔄 Reliable fallbacks: Direct → datacenter → residential (sticky after first success) with up to 3 residential attempts per URL.
- 🔌 Integrations-friendly: Export to CSV/JSON/Excel and plug into Make, n8n, or Zapier automations.
- 🛡️ Ethical by design: Scrapes publicly visible profiles only; no login or cookies required.
- 💸 Cost-effective vs extensions: Stable infrastructure designed for consistent runs, avoiding fragile browser plugins.

### Is it legal / ethical to use TikTok User Profile Scraper?

Yes — when used responsibly. This actor accesses only publicly visible profile pages and does not log in or access private data.

Guidelines for compliant use:
- Scrape only public data and respect platform terms and applicable laws (e.g., GDPR, CCPA).
- Avoid collecting or processing sensitive personal data.
- Use results responsibly for research, analytics, or enrichment — not for spam.
- Consult your legal team for edge cases or jurisdiction-specific requirements.

### Input parameters & output format

#### Example JSON input
```json
{
  "usernames": ["nike", "@nickiminaj"],
  "userIds": ["208464585232822272"],
  "urls": ["https://www.tiktok.com/@somecreator"],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
````

Parameter details:

- usernames (array of string)\
  Description: One handle per line (examples: nike, @nike). Leave blank if you use IDs or URLs instead.\
  Default: empty\
  Required: no

- userIds (array of string)\
  Description: Long number IDs only (digits as text). Skip if using usernames or profile URLs.\
  Default: empty\
  Required: no

- urls (array of string)\
  Description: Paste TikTok profile links here. You can leave this empty when usernames or IDs are enough.\
  Default: empty\
  Required: no

- proxyConfiguration (object)\
  Description: Standard Apify Proxy picker — choose groups or turn off if you don’t need it.\
  Default: {"useApifyProxy": true}\
  Required: no

Note: Provide at least one entry across usernames, userIds, or urls to run.

#### Example JSON output

Each pushed dataset item is one unique profile (deduped by unique\_id). Below is a truncated example with real field names:

```json
{
  "account_type": 3,
  "ad_virtual": false,
  "avatar_168x168": {
    "uri": "tos-.../avatar_168",
    "url_list": ["https://p16-sign-sg.tiktokcdn.com/obj/tos-...~tplv-...-168x168.image"],
    "url_prefix": "https://p16-sign-sg.tiktokcdn.com/"
  },
  "avatar_300x300": {
    "uri": "tos-.../avatar_300",
    "url_list": ["https://p16-sign-sg.tiktokcdn.com/obj/tos-...~tplv-...-300x300.image"],
    "url_prefix": "https://p16-sign-sg.tiktokcdn.com/"
  },
  "avatar_larger": { "uri": null, "url_list": [], "url_prefix": null },
  "avatar_medium": { "uri": null, "url_list": [], "url_prefix": null },
  "avatar_thumb": {
    "uri": "tos-.../avatar_thumb",
    "url_list": ["https://p16-sign-sg.tiktokcdn.com/obj/tos-...~tplv-...-100x100.image"],
    "url_prefix": "https://p16-sign-sg.tiktokcdn.com/"
  },
  "aweme_count": 320,
  "bio_secure_url": "https://www.tiktoklinksafety.eu/link/v2?aid=1233&lang=en&scene=bio_url&target=https%3A%2F%2Fwww.nike.com",
  "bio_url": "https://www.nike.com",
  "biz_account_info": {
    "added_contact_and_link_list": null,
    "android_download_app_link": "",
    "coupon_list": null,
    "ios_download_app_link": "",
    "leads_gen": {
      "action_name": "",
      "business_data": "",
      "has_leads_gen": false,
      "page_id": 0,
      "schema_url": ""
    },
    "permission_list": ["001002", "001003", "001004"],
    "rba_user_info": { "company_name": "Nike, Inc." }
  },
  "can_message_follow_status_list": [0, 1, 2, 4],
  "category": "",
  "commerce_user_info": { "ad_revenue_rits": null },
  "commerce_user_level": 0,
  "custom_verify": "",
  "enterprise_verify_reason": "Verified account",
  "favoriting_count": 250000,
  "follow_status": 0,
  "follower_count": 12234000,
  "follower_status": 0,
  "following_count": 25,
  "forward_count": 0,
  "has_open_favorite": true,
  "ins_id": "",
  "is_acquaintance": false,
  "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 },
  "nickname": "Nike",
  "original_musician": {
    "digg_count": 0,
    "music_count": 0,
    "music_used_count": 0,
    "new_release_clip_ids": null
  },
  "post_push_notification_status": 2,
  "privacy_setting": { "following_visibility": 0 },
  "profile_tab_type": 0,
  "recommend_reason_relation": "",
  "room_id": 0,
  "sec_uid": "MS4wLjABAAAA...",
  "secret": 0,
  "share_info": {
    "now_invitation_card_image_urls": null,
    "share_desc": "Check out Nike! #TikTok",
    "share_title": "Nike on TikTok",
    "share_url": "https://www.tiktok.com/@nike?sec_uid=MS4wLjABAAAA...&source=h5_m"
  },
  "short_id": "0",
  "show_effect_list": true,
  "show_favorite_list": true,
  "show_messaging_entrance_on_profile": true,
  "signature": "Just do it.",
  "signature_language": "un",
  "story_status": 0,
  "supporting_ngo": {},
  "tab_settings": {
    "private_tab": { "private_tab_style": 1, "show_private_tab": false },
    "repost_tab": { "repost_tab_all_visible": true, "show_repost_tab_other": 1 }
  },
  "total_favorited": 145000000,
  "twitter_id": "",
  "twitter_name": "",
  "uid": "208464585232822272",
  "unique_id": "nike",
  "verification_type": 0,
  "visible_videos_count": 320,
  "watch_status": false,
  "with_commerce_enterprise_tab_entry": true,
  "with_commerce_entry": true,
  "with_new_goods": false,
  "youtube_channel_id": "",
  "youtube_channel_title": ""
}
```

Fields like company\_name, permission\_list, and avatars may be enriched if available; some optional fields can be empty when not present on the public page.

### FAQ

#### Do I need to log in or provide cookies to scrape TikTok profiles?

No. The TikTok User Profile Scraper works without login and collects data from publicly visible profiles only.

#### Can I use this with an API or Python?

Yes. Run the actor via the Apify API and consume datasets programmatically for a TikTok user scraper API pipeline. It also fits TikTok profile scraper Python workflows where you download JSON/CSV and process it in your scripts.

#### What inputs are supported — handles, IDs, or URLs?

All three. You can scrape TikTok user profiles by providing usernames, numeric userIds, or profile urls. Add at least one entry across these to start a run.

#### Does this extract followers lists?

No. This tool focuses on public profile metadata (e.g., follower\_count, total\_favorited, aweme\_count, bio, avatars). It is not a TikTok followers list scraper.

#### How does it handle blocks or missing data?

It tries direct requests first, then Apify datacenter proxy, and finally residential — with up to 3 residential attempts per URL. Some fields may be unavailable if not present on the public page.

#### Can I export results to CSV or Excel?

Yes. After the run, open the “Profiles” dataset and export as JSON, CSV, or Excel for spreadsheets and reporting.

#### Is there a Chrome extension for this?

This is an Apify actor optimized for reliability and scale. While some look for a TikTok user profile scraper Chrome extension, server-side runs are more stable for automation and batch jobs.

#### Is scraping TikTok profiles legal?

Yes — when done responsibly and in compliance with TikTok’s terms and applicable laws. This actor only accesses public pages. Always verify your use case with your legal team.

### Closing CTA / Final thoughts

The TikTok User Profile Scraper is built to reliably scrape TikTok user profiles at scale and export clean, structured data. With flexible inputs (handles, IDs, URLs), robust proxy fallbacks, and deduplicated JSON, it powers influencer vetting, competitor research, and analytics with ease. Marketers, analysts, researchers, and developers can integrate it via the Apify API, automate exports, and plug results into Python workflows or no-code tools. Start extracting smarter TikTok user metadata and turn profile pages into actionable insights today.

### What are other Tiktok scraping tools?

If you want to scrape specific Tiktok data, you can use any of the dedicated scrapers below for faster and more targeted results.

| Scraper Name | Scraper Name |
|---|---|
| [Tiktok Ads Scraper](https://apify.com/scrapier/tiktok-ads-scraper) | [Tiktok Profile Lead Scraper](https://apify.com/scrapier/tiktok-profile-lead-scraper) |
| [Tiktok B2b Email Scraper](https://apify.com/scrapier/tiktok-b2b-email-scraper) | [Tiktok Profile Phone Number Scraper](https://apify.com/scrapier/tiktok-profile-phone-number-scraper) |
| [Tiktok B2b Lead Scraper](https://apify.com/scrapier/tiktok-b2b-lead-scraper) | [TikTok Profile Scraper](https://apify.com/scrapier/tiktok-profile-scraper) |
| [Tiktok B2b Phone Number Scraper](https://apify.com/scrapier/tiktok-b2b-phone-number-scraper) | [TikTok Profile Videos API Scraper](https://apify.com/scrapier/tiktok-profile-videos-api-scraper) |
| [Tiktok Comments Scraper](https://apify.com/scrapier/tiktok-comments-scraper) | [Tiktok Scraper](https://apify.com/scrapier/tiktok-scraper) |
| [Tiktok Data Extractor Scraper](https://apify.com/scrapier/tiktok-data-extractor-scraper) | [TikTok Trending Creator Insights Scraper](https://apify.com/scrapier/tiktok-trending-creator-insights-scraper) |
| [Tiktok Discover Scraper](https://apify.com/scrapier/tiktok-discover-scraper) | [Tiktok Trending Creator Scraper](https://apify.com/scrapier/tiktok-trending-creator-scraper) |
| [Tiktok Email Scraper](https://apify.com/scrapier/tiktok-email-scraper) | [TikTok Trending Hashtags Analytics Scraper](https://apify.com/scrapier/tiktok-trending-hashtags-analytics-scraper) |
| [TikTok Followers API Scraper](https://apify.com/scrapier/tiktok-followers-api-scraper) | [TikTok Trending Hashtags Scraper](https://apify.com/scrapier/tiktok-trending-hashtags-scraper) |
| [Tiktok Hashtag Scraper](https://apify.com/scrapier/tiktok-hashtag-scraper) | [Tiktok Trending Videos Insights](https://apify.com/scrapier/tiktok-trending-videos-insights) |
| [Tiktok Lead Scraper](https://apify.com/scrapier/tiktok-lead-scraper) | [TikTok Trending Videos Scraper](https://apify.com/scrapier/tiktok-trending-videos-scraper) |
| [Tiktok Phone Number Scraper](https://apify.com/scrapier/tiktok-phone-number-scraper) | [Tiktok Video Scraper](https://apify.com/scrapier/tiktok-video-scraper) |
| [Tiktok Profile Email Scraper](https://apify.com/scrapier/tiktok-profile-email-scraper) |  |

# Actor input Schema

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

🎪 One handle per line (examples: nike, @nike). 💡 Leave blank if you use IDs or URLs instead.

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

📋 Long number IDs only (digits as text). ✏️ Skip this section if you’re using usernames or profile URLs.

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

🎬 Paste TikTok profile links here. 💤 You can leave this empty when usernames or IDs are enough.

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

⚙️ Standard Apify Proxy picker — choose groups or turn off if you don’t need it. 💚 Your choice!

## Actor input object example

```json
{
  "usernames": [
    "nike"
  ],
  "userIds": [
    "208464585232822272"
  ],
  "urls": [
    "https://www.tiktok.com/@nickiminaj"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# 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": [
        "208464585232822272"
    ],
    "urls": [
        "https://www.tiktok.com/@nickiminaj"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapier/tiktok-user-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 = {
    "usernames": ["nike"],
    "userIds": ["208464585232822272"],
    "urls": ["https://www.tiktok.com/@nickiminaj"],
    "proxyConfiguration": { "useApifyProxy": True },
}

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

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).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": [
    "208464585232822272"
  ],
  "urls": [
    "https://www.tiktok.com/@nickiminaj"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call scrapier/tiktok-user-profile-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapier/tiktok-user-profile-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "TikTok User Profile Scraper",
        "description": "📱 TikTok User Profile Scraper extracts public profile data—bio, username, followers, likes, video count, links & latest posts. 🔎 Get engagement stats & hashtags for influencer vetting, competitor research & social analytics. 🚀 Fast, reliable, export-ready (CSV/JSON).",
        "version": "0.1",
        "x-build-id": "LlyRuzvH2aAi1M9UT"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapier~tiktok-user-profile-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapier-tiktok-user-profile-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/scrapier~tiktok-user-profile-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapier-tiktok-user-profile-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/scrapier~tiktok-user-profile-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapier-tiktok-user-profile-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "usernames": {
                        "title": "👤 Username(s)",
                        "type": "array",
                        "description": "🎪 One handle per line (examples: nike, @nike). 💡 Leave blank if you use IDs or URLs instead.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "userIds": {
                        "title": "🔑 User ID(s)",
                        "type": "array",
                        "description": "📋 Long number IDs only (digits as text). ✏️ Skip this section if you’re using usernames or profile URLs.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "urls": {
                        "title": "🔗 Profile URL(s)",
                        "type": "array",
                        "description": "🎬 Paste TikTok profile links here. 💤 You can leave this empty when usernames or IDs are enough.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "proxyConfiguration": {
                        "title": "🛡️ Connection & privacy (optional)",
                        "type": "object",
                        "description": "⚙️ Standard Apify Proxy picker — choose groups or turn off if you don’t need it. 💚 Your choice!"
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
