{
  "data": {
    "id": "avqlipAW2al5Q7GrT",
    "actId": "IZHYLdcyWwLg3lPGd",
    "userId": "9Um4NEFR7z42j35AD",
    "startedAt": "2026-08-16T17:54:30.218Z",
    "finishedAt": "2026-08-16T17:55:27.421Z",
    "status": "SUCCEEDED",
    "meta": {
      "origin": "CLI"
    },
    "stats": {
      "durationMillis": 57136,
      "runTimeSecs": 57.136,
      "computeUnits": 0.06348444444444444,
      "imageSizeBytes": 525222400
    },
    "options": {
      "useCache": true,
      "betaPackages": false,
      "memoryMbytes": 4096,
      "diskMbytes": 8192
    },
    "exitCode": 0,
    "inputSchema": "{\n  \"title\": \"TikTok Profile Scraper input\",\n  \"type\": \"object\",\n  \"schemaVersion\": 1,\n  \"properties\": {\n    \"startUrls\": {\n      \"title\": \"TikTok profile URLs or handles\",\n      \"type\": \"array\",\n      \"description\": \"Add 1 to 1,000 public TikTok profile URLs or handles. Duplicate inputs are checked once. Each unique input creates one result row and adds usage.\",\n      \"editor\": \"stringList\",\n      \"items\": {\n        \"type\": \"string\"\n      },\n      \"default\": [\n        \"https://www.tiktok.com/@mrbeast\"\n      ],\n      \"prefill\": [\n        \"https://www.tiktok.com/@mrbeast\"\n      ],\n      \"minItems\": 1,\n      \"maxItems\": 1000\n    }\n  },\n  \"required\": [\n    \"startUrls\"\n  ]\n}",
    "readme": "# TikTok Profile Scraper – Creator Data & Stats\n\n## 📊 What does TikTok Profile Scraper do?\n\nPaste public TikTok profile URLs or handles and get clean creator data in bulk.\nUse it to enrich creator lists, compare audiences, collect public bio links,\nand refresh profile records.\n\nEvery unique input gets one flat, matched row. The row keeps the original\n`input`, canonical `channelUrl`, stable TikTok IDs, profile facts, account\nsignals, audience counts, quality labels, and a clear `status` and\n`statusReason`.\n\nThis Actor does not log in, use cookies, collect videos, access private\nprofiles, return follower lists, or bypass TikTok access controls. It reads\npublic profile surfaces only.\n\nWith TikTok Profile Scraper, you can:\n\n- 🆔 Match creators with user IDs, secure IDs, handles, and profile URLs.\n- 📈 Compare followers, following, friends, likes, and video counts.\n- 🔗 Collect public bio links and avatar URLs.\n- 🛍️ Find public commerce, seller, and category signals.\n- 🛡️ Keep public privacy, verification, and interaction settings.\n- 🚦 Get clear status rows when a profile is missing or unavailable.\n- 📦 Export results as JSON, JSONL, CSV, Excel, XML, RSS, or HTML.\n\n## 📦 What TikTok profile data can I extract?\n\nEach dataset row represents one attempted TikTok profile input.\n\n| Data group      | Example fields                                                                  |\n| --------------- | ------------------------------------------------------------------------------- |\n| 🆔 Identity     | `channelId`, `secUid`, `shortId`, `channelUrl`, `handle`                        |\n| 🧾 Profile      | `displayName`, `description`, `detectedEmails`, `detectedLinks`, account dates  |\n| 🔗 Public links | `bioLink`                                                                       |\n| 🛍️ Commerce     | `isCommerce`, `commerceCategory`, `isSeller`                                    |\n| 🛡️ Flags        | verification, privacy, interaction settings, playlist and music tabs            |\n| 📊 Counts       | `followersCount`, `followingCount`, `friendsCount`, `likesCount`, `videosCount` |\n| 🚦 Result       | `status`, `statusReason`, `observedAt`                                          |\n\nMissing public values stay `null`. `accountRegion` is a TikTok profile signal;\nit is not proof that a person lives in that country.\n\n## ⚙️ Can I use this Actor through an API?\n\nYes. Run it in Apify Console or through the Apify API, Python SDK, Node.js SDK,\nwebhooks, schedules, and Apify integrations.\n\n## 🎯 Why collect TikTok creator profiles?\n\n| Use case               | How the data helps                                                   |\n| ---------------------- | -------------------------------------------------------------------- |\n| 📋 Creator enrichment  | Add stable IDs, public audience facts, bio links, and trust signals. |\n| 📣 Campaign planning   | Compare audience size and account type before outreach.              |\n| 🛍️ Creator commerce    | Find public seller and commerce signals for partnership research.    |\n| 🕵️ Competitor research | Refresh public creator profiles and audience counts over time.       |\n| 🧱 Data products       | Feed normalized creator rows into CRMs, dashboards, and databases.   |\n\n## 💵 Pricing\n\nEach useful profile row triggers one `profile` event. Prices per 1,000 useful\nrows are:\n\n| Plan                    | Price |\n| ----------------------- | ----: |\n| Free                    | $1.50 |\n| Bronze                  | $1.30 |\n| Silver                  | $1.10 |\n| Gold, Platinum, Diamond | $0.90 |\n\nApify platform usage is charged separately. There is no paid Actor start event.\nOne useful row is an `ok` or `partial` profile snapshot written to the default\ndataset. Invalid, private, blocked, and failed inputs are not charged as profile\nresults. Each dataset row includes `isBillable` so this rule is visible.\n\n## 🚀 How do I use TikTok Profile Scraper?\n\n1. Open **TikTok Profile Scraper – Creator Data & Stats** in Apify Console.\n2. Paste one or more public profile URLs or handles.\n3. Click **Start**.\n4. Open **Output** to inspect the rows and run summary.\n5. Download the dataset or connect it to your workflow.\n\n## ⬇️ Input\n\nAdd 1 to 1,000 values in `startUrls`:\n\n```json\n{\n  \"startUrls\": [\"https://www.tiktok.com/@mrbeast\", \"@bayashi.tiktok\"]\n}\n```\n\nAccepted inputs include public profile URLs, `@handles`, and plain handles.\nExact duplicate values run once.\n\n## ⬆️ Output sample\n\n```json\n{\n  \"platform\": \"tiktok\",\n  \"input\": \"https://www.tiktok.com/@mrbeast\",\n  \"channelId\": \"6614519312189947909\",\n  \"channelUrl\": \"https://www.tiktok.com/@mrbeast\",\n  \"handle\": \"@mrbeast\",\n  \"displayName\": \"MrBeast\",\n  \"hasPlaylistTab\": true,\n  \"hasMusicTab\": false,\n  \"followersCount\": 129216030,\n  \"countPrecision\": {\n    \"followersCount\": \"exact\"\n  },\n  \"status\": \"ok\",\n  \"statusReason\": null,\n  \"observedAt\": \"2026-07-16T00:00:00.000Z\"\n}\n```\n\n### 📌 Run summary\n\nThe `OUTPUT` record reports input counts, output rows, billable rows, status\ncounts, useful rates, and run time. It does not contain raw pages, cookies, or\nprivate request details.\n\n## 🎯 Status and quality fields\n\n- `ok`: TikTok exposed stable target profile identity.\n- `partial`: useful public profile facts were found, but some facts are missing.\n- `private`, `login_required`, or `not_found`: the public profile could not be\n  read as a normal useful row.\n- `blocked`, `challenge`, or `rate_limited`: TikTok refused the public request\n  at that time.\n- `parser_miss`: a response loaded, but the Actor could not safely tie it to\n  the requested profile.\n- `invalid_input` or `failed`: the input was not a profile or the request failed.\n\n## 🔒 Source boundary and limits\n\n- Public logged-out profile surfaces only.\n- Full follower and following lists are not returned.\n- TikTok may show a profile while limiting other users, regions, or sessions.\n- Public fields and account settings can change without notice.\n- Counts are returned only when they are tied to the requested profile.\n- `detectedEmails` and `detectedLinks` are unverified clues from the public bio\n  and public link field. They can be missing or wrong.\n- The Actor does not open or crawl detected links.\n\n## ❓ FAQ\n\n### Does this Actor need login, cookies, or an API key?\n\nNo.\n\n### Why is `accountRegion` missing?\n\nTikTok does not expose it for every profile. When present, it is a platform\nsignal, not proof of residence or nationality.\n\n### How are duplicates handled?\n\nExact duplicate inputs are checked once. Use `channelId` as the strongest\ncross-run dedupe key when it is present.\n\n## 🛟 Support\n\nSend the run ID, input URL, expected profile, and observed row. Do not send\npasswords, cookies, or account credentials.\n\n## 🔗 Related social media scrapers\n\nContinue the same workflow on this platform or compare public data across\nplatforms.\n\n### Continue on TikTok\n\n- [TikTok Search Scraper](https://apify.com/chronometrica/tiktok-search-scraper)\n  — find public videos, creators, and metrics by keyword.\n- [TikTok Metrics Scraper](https://apify.com/chronometrica/tiktok-metrics-scraper)\n  — collect public video, profile, engagement, hashtag, and music data.\n- [TikTok Comments Scraper](https://apify.com/chronometrica/tiktok-comments-scraper)\n  — collect public comments, replies, authors, likes, and thread links.\n- [TikTok Transcript Scraper](https://apify.com/chronometrica/tiktok-transcript-scraper)\n  — extract public caption text and timestamped segments.\n\n### Compare profiles across platforms\n\n- [Facebook Page Scraper](https://apify.com/chronometrica/facebook-channel-scraper)\n  — collect public Page details, links, and audience stats.\n- [Instagram Profile Scraper](https://apify.com/chronometrica/instagram-channel-scraper)\n  — collect public profile details, links, and audience stats.\n- [YouTube Channel Scraper](https://apify.com/chronometrica/youtube-channel-scraper)\n  — collect public channel details, links, and audience stats.\n- [LinkedIn Profile Scraper](https://apify.com/chronometrica/linkedin-profile-scraper)\n  — collect public profile identity, headlines, and visible profile facts.\n- [X Profile Metrics Scraper](https://apify.com/chronometrica/x-profile-metrics)\n  — collect public profile details, audience counts, and activity stats.\n",
    "actorDefinition": {
      "$schema": "https://apify.com/schemas/v1/actor.ide.json",
      "actorSpecification": 1,
      "name": "tiktok-channel-scraper",
      "title": "TikTok Profile Scraper – Creator Data & Stats",
      "description": "Get clean public TikTok profile rows from URLs and handles, with stable IDs, audience stats, bio links, account signals, and clear status.",
      "categories": [
        "SOCIAL_MEDIA"
      ],
      "version": "0.1",
      "buildTag": "latest",
      "minMemoryMbytes": 512,
      "maxMemoryMbytes": 1024,
      "defaultRunOptions": {
        "timeoutSecs": 3600,
        "memoryMbytes": 1024
      },
      "input": {
        "title": "TikTok Profile Scraper input",
        "type": "object",
        "schemaVersion": 1,
        "properties": {
          "startUrls": {
            "title": "TikTok profile URLs or handles",
            "type": "array",
            "description": "Add 1 to 1,000 public TikTok profile URLs or handles. Duplicate inputs are checked once. Each unique input creates one result row and adds usage.",
            "editor": "stringList",
            "items": {
              "type": "string"
            },
            "default": [
              "https://www.tiktok.com/@mrbeast"
            ],
            "prefill": [
              "https://www.tiktok.com/@mrbeast"
            ],
            "minItems": 1,
            "maxItems": 1000
          }
        },
        "required": [
          "startUrls"
        ]
      },
      "output": {
        "actorOutputSchemaVersion": 1,
        "properties": {
          "dataset": {
            "type": "string",
            "title": "Channel snapshots",
            "template": "{{links.apiDefaultDatasetUrl}}/items"
          },
          "summary": {
            "type": "string",
            "title": "Run summary",
            "template": "{{links.apiRunKeyValueStoreUrl}}/records/OUTPUT"
          }
        }
      },
      "storages": {
        "dataset": {
          "actorSpecification": 1,
          "fields": {
            "$schema": "http://json-schema.org/draft-07/schema#",
            "type": "object",
            "properties": {
              "platform": {
                "type": "string",
                "title": "Platform",
                "description": "Source platform."
              },
              "input": {
                "type": "string",
                "title": "Original Input",
                "description": "Profile URL or handle supplied by the customer."
              },
              "channelId": {
                "type": [
                  "string",
                  "null"
                ],
                "title": "User ID",
                "description": "Stable numeric TikTok user ID."
              },
              "secUid": {
                "type": [
                  "string",
                  "null"
                ],
                "title": "Secure User ID",
                "description": "TikTok secure user ID used by profile data surfaces."
              },
              "shortId": {
                "type": [
                  "string",
                  "null"
                ],
                "title": "Short User ID",
                "description": "Older short user ID when TikTok exposes one."
              },
              "channelUrl": {
                "type": [
                  "string",
                  "null"
                ],
                "title": "Channel URL",
                "description": "Canonical public TikTok profile URL.",
                "format": "uri"
              },
              "handle": {
                "type": [
                  "string",
                  "null"
                ],
                "title": "Handle",
                "description": "Public TikTok handle, including @."
              },
              "displayName": {
                "type": [
                  "string",
                  "null"
                ],
                "title": "Name",
                "description": "Public profile name."
              },
              "description": {
                "type": [
                  "string",
                  "null"
                ],
                "title": "Bio",
                "description": "Public profile bio."
              },
              "detectedEmails": {
                "type": [
                  "array",
                  "null"
                ],
                "title": "Detected Emails",
                "description": "Unverified email-like strings detected in the public profile bio.",
                "items": {
                  "type": "string"
                }
              },
              "detectedLinks": {
                "type": [
                  "array",
                  "null"
                ],
                "title": "Detected Links",
                "description": "Unverified web links detected in the public bio or exposed by the profile.",
                "items": {
                  "type": "string"
                }
              },
              "language": {
                "type": [
                  "string",
                  "null"
                ],
                "title": "Profile Language",
                "description": "Language code exposed by the target profile."
              },
              "accountRegion": {
                "type": [
                  "string",
                  "null"
                ],
                "title": "Account Region",
                "description": "Region code exposed by TikTok for the account; not proof of residence."
              },
              "createdAt": {
                "type": [
                  "string",
                  "null"
                ],
                "title": "Created At",
                "description": "Account creation time when exposed.",
                "format": "date-time"
              },
              "handleModifiedAt": {
                "type": [
                  "string",
                  "null"
                ],
                "title": "Handle Changed At",
                "description": "Last handle change time when exposed.",
                "format": "date-time"
              },
              "displayNameModifiedAt": {
                "type": [
                  "string",
                  "null"
                ],
                "title": "Name Changed At",
                "description": "Last display-name change time when exposed.",
                "format": "date-time"
              },
              "bioLink": {
                "type": [
                  "string",
                  "null"
                ],
                "title": "Bio Link",
                "description": "Public link shown in the profile bio.",
                "format": "uri"
              },
              "avatarUrl": {
                "type": [
                  "string",
                  "null"
                ],
                "title": "Avatar",
                "description": "Best public avatar URL.",
                "format": "uri"
              },
              "isCommerce": {
                "type": [
                  "boolean",
                  "null"
                ],
                "title": "Commerce Account",
                "description": "True when TikTok marks the profile as a commerce account."
              },
              "commerceCategory": {
                "type": [
                  "string",
                  "null"
                ],
                "title": "Commerce Category",
                "description": "TikTok commerce category when exposed."
              },
              "isSeller": {
                "type": [
                  "boolean",
                  "null"
                ],
                "title": "Seller",
                "description": "True when TikTok marks the profile as a seller."
              },
              "isVerified": {
                "type": [
                  "boolean",
                  "null"
                ],
                "title": "Verified",
                "description": "True when TikTok marks the profile as verified."
              },
              "isPrivate": {
                "type": [
                  "boolean",
                  "null"
                ],
                "title": "Private",
                "description": "True when the account is private."
              },
              "isOrganization": {
                "type": [
                  "boolean",
                  "null"
                ],
                "title": "Organization",
                "description": "True when TikTok marks the account as an organization."
              },
              "isEmbedBanned": {
                "type": [
                  "boolean",
                  "null"
                ],
                "title": "Embedding Blocked",
                "description": "True when TikTok says profile content cannot be embedded."
              },
              "followingVisibility": {
                "type": [
                  "integer",
                  "null"
                ],
                "title": "Following Visibility",
                "description": "TikTok setting for who may view the account's following list."
              },
              "commentSetting": {
                "type": [
                  "integer",
                  "null"
                ],
                "title": "Comment Setting",
                "description": "TikTok's public comment permission setting."
              },
              "duetSetting": {
                "type": [
                  "integer",
                  "null"
                ],
                "title": "Duet Setting",
                "description": "TikTok's public duet permission setting."
              },
              "stitchSetting": {
                "type": [
                  "integer",
                  "null"
                ],
                "title": "Stitch Setting",
                "description": "TikTok's public stitch permission setting."
              },
              "downloadSetting": {
                "type": [
                  "integer",
                  "null"
                ],
                "title": "Download Setting",
                "description": "TikTok's public download permission setting."
              },
              "favoriteVideosPublic": {
                "type": [
                  "boolean",
                  "null"
                ],
                "title": "Liked Videos Public",
                "description": "True when the account makes liked videos public."
              },
              "hasPlaylistTab": {
                "type": [
                  "boolean",
                  "null"
                ],
                "title": "Playlist Tab",
                "description": "True when TikTok shows a playlist tab on the profile."
              },
              "hasMusicTab": {
                "type": [
                  "boolean",
                  "null"
                ],
                "title": "Music Tab",
                "description": "True when TikTok shows a music tab on the profile."
              },
              "followersCount": {
                "type": [
                  "integer",
                  "null"
                ],
                "title": "Followers",
                "description": "Public follower count."
              },
              "followingCount": {
                "type": [
                  "integer",
                  "null"
                ],
                "title": "Following",
                "description": "Public following count."
              },
              "friendsCount": {
                "type": [
                  "integer",
                  "null"
                ],
                "title": "Friends",
                "description": "Public mutual-follow count TikTok calls friends."
              },
              "likesCount": {
                "type": [
                  "integer",
                  "null"
                ],
                "title": "Likes",
                "description": "Total likes received by the profile's videos."
              },
              "videosCount": {
                "type": [
                  "integer",
                  "null"
                ],
                "title": "Videos",
                "description": "Public video count."
              },
              "diggCount": {
                "type": [
                  "integer",
                  "null"
                ],
                "title": "Liked Videos",
                "description": "Count TikTok exposes for videos liked by the account."
              },
              "countPrecision": {
                "type": [
                  "object",
                  "null"
                ],
                "title": "Count Precision",
                "description": "For each count: exact or unavailable."
              },
              "status": {
                "type": "string",
                "title": "Row Status",
                "description": "Result state for this input."
              },
              "statusReason": {
                "type": [
                  "string",
                  "null"
                ],
                "title": "Status Reason",
                "description": "Plain reason when the row is not fully available."
              },
              "isBillable": {
                "type": "boolean",
                "title": "Billable",
                "description": "True only when this row creates a profile charge."
              },
              "observedAt": {
                "type": "string",
                "title": "Collected At",
                "description": "Time this profile snapshot was collected.",
                "format": "date-time"
              }
            }
          },
          "views": {
            "overview": {
              "title": "Channel snapshots",
              "transformation": {
                "fields": [
                  "platform",
                  "input",
                  "channelId",
                  "secUid",
                  "channelUrl",
                  "handle",
                  "displayName",
                  "followersCount",
                  "followingCount",
                  "likesCount",
                  "videosCount",
                  "status",
                  "isBillable",
                  "observedAt"
                ]
              },
              "display": {
                "component": "table",
                "properties": {
                  "platform": {
                    "label": "Platform",
                    "format": "text"
                  },
                  "input": {
                    "label": "Original Input",
                    "format": "text"
                  },
                  "channelId": {
                    "label": "User ID",
                    "format": "text"
                  },
                  "secUid": {
                    "label": "Secure User ID",
                    "format": "text"
                  },
                  "channelUrl": {
                    "label": "Channel URL",
                    "format": "link"
                  },
                  "handle": {
                    "label": "Handle",
                    "format": "text"
                  },
                  "displayName": {
                    "label": "Name",
                    "format": "text"
                  },
                  "followersCount": {
                    "label": "Followers",
                    "format": "number"
                  },
                  "followingCount": {
                    "label": "Following",
                    "format": "number"
                  },
                  "likesCount": {
                    "label": "Likes",
                    "format": "number"
                  },
                  "videosCount": {
                    "label": "Videos",
                    "format": "number"
                  },
                  "status": {
                    "label": "Row Status",
                    "format": "text"
                  },
                  "isBillable": {
                    "label": "Billable",
                    "format": "boolean"
                  },
                  "observedAt": {
                    "label": "Collected At",
                    "format": "date"
                  }
                }
              }
            }
          }
        }
      },
      "dockerfile": "../Dockerfile",
      "readme": "# TikTok Profile Scraper – Creator Data & Stats\n\n## 📊 What does TikTok Profile Scraper do?\n\nPaste public TikTok profile URLs or handles and get clean creator data in bulk.\nUse it to enrich creator lists, compare audiences, collect public bio links,\nand refresh profile records.\n\nEvery unique input gets one flat, matched row. The row keeps the original\n`input`, canonical `channelUrl`, stable TikTok IDs, profile facts, account\nsignals, audience counts, quality labels, and a clear `status` and\n`statusReason`.\n\nThis Actor does not log in, use cookies, collect videos, access private\nprofiles, return follower lists, or bypass TikTok access controls. It reads\npublic profile surfaces only.\n\nWith TikTok Profile Scraper, you can:\n\n- 🆔 Match creators with user IDs, secure IDs, handles, and profile URLs.\n- 📈 Compare followers, following, friends, likes, and video counts.\n- 🔗 Collect public bio links and avatar URLs.\n- 🛍️ Find public commerce, seller, and category signals.\n- 🛡️ Keep public privacy, verification, and interaction settings.\n- 🚦 Get clear status rows when a profile is missing or unavailable.\n- 📦 Export results as JSON, JSONL, CSV, Excel, XML, RSS, or HTML.\n\n## 📦 What TikTok profile data can I extract?\n\nEach dataset row represents one attempted TikTok profile input.\n\n| Data group      | Example fields                                                                  |\n| --------------- | ------------------------------------------------------------------------------- |\n| 🆔 Identity     | `channelId`, `secUid`, `shortId`, `channelUrl`, `handle`                        |\n| 🧾 Profile      | `displayName`, `description`, `detectedEmails`, `detectedLinks`, account dates  |\n| 🔗 Public links | `bioLink`                                                                       |\n| 🛍️ Commerce     | `isCommerce`, `commerceCategory`, `isSeller`                                    |\n| 🛡️ Flags        | verification, privacy, interaction settings, playlist and music tabs            |\n| 📊 Counts       | `followersCount`, `followingCount`, `friendsCount`, `likesCount`, `videosCount` |\n| 🚦 Result       | `status`, `statusReason`, `observedAt`                                          |\n\nMissing public values stay `null`. `accountRegion` is a TikTok profile signal;\nit is not proof that a person lives in that country.\n\n## ⚙️ Can I use this Actor through an API?\n\nYes. Run it in Apify Console or through the Apify API, Python SDK, Node.js SDK,\nwebhooks, schedules, and Apify integrations.\n\n## 🎯 Why collect TikTok creator profiles?\n\n| Use case               | How the data helps                                                   |\n| ---------------------- | -------------------------------------------------------------------- |\n| 📋 Creator enrichment  | Add stable IDs, public audience facts, bio links, and trust signals. |\n| 📣 Campaign planning   | Compare audience size and account type before outreach.              |\n| 🛍️ Creator commerce    | Find public seller and commerce signals for partnership research.    |\n| 🕵️ Competitor research | Refresh public creator profiles and audience counts over time.       |\n| 🧱 Data products       | Feed normalized creator rows into CRMs, dashboards, and databases.   |\n\n## 💵 Pricing\n\nEach useful profile row triggers one `profile` event. Prices per 1,000 useful\nrows are:\n\n| Plan                    | Price |\n| ----------------------- | ----: |\n| Free                    | $1.50 |\n| Bronze                  | $1.30 |\n| Silver                  | $1.10 |\n| Gold, Platinum, Diamond | $0.90 |\n\nApify platform usage is charged separately. There is no paid Actor start event.\nOne useful row is an `ok` or `partial` profile snapshot written to the default\ndataset. Invalid, private, blocked, and failed inputs are not charged as profile\nresults. Each dataset row includes `isBillable` so this rule is visible.\n\n## 🚀 How do I use TikTok Profile Scraper?\n\n1. Open **TikTok Profile Scraper – Creator Data & Stats** in Apify Console.\n2. Paste one or more public profile URLs or handles.\n3. Click **Start**.\n4. Open **Output** to inspect the rows and run summary.\n5. Download the dataset or connect it to your workflow.\n\n## ⬇️ Input\n\nAdd 1 to 1,000 values in `startUrls`:\n\n```json\n{\n  \"startUrls\": [\"https://www.tiktok.com/@mrbeast\", \"@bayashi.tiktok\"]\n}\n```\n\nAccepted inputs include public profile URLs, `@handles`, and plain handles.\nExact duplicate values run once.\n\n## ⬆️ Output sample\n\n```json\n{\n  \"platform\": \"tiktok\",\n  \"input\": \"https://www.tiktok.com/@mrbeast\",\n  \"channelId\": \"6614519312189947909\",\n  \"channelUrl\": \"https://www.tiktok.com/@mrbeast\",\n  \"handle\": \"@mrbeast\",\n  \"displayName\": \"MrBeast\",\n  \"hasPlaylistTab\": true,\n  \"hasMusicTab\": false,\n  \"followersCount\": 129216030,\n  \"countPrecision\": {\n    \"followersCount\": \"exact\"\n  },\n  \"status\": \"ok\",\n  \"statusReason\": null,\n  \"observedAt\": \"2026-07-16T00:00:00.000Z\"\n}\n```\n\n### 📌 Run summary\n\nThe `OUTPUT` record reports input counts, output rows, billable rows, status\ncounts, useful rates, and run time. It does not contain raw pages, cookies, or\nprivate request details.\n\n## 🎯 Status and quality fields\n\n- `ok`: TikTok exposed stable target profile identity.\n- `partial`: useful public profile facts were found, but some facts are missing.\n- `private`, `login_required`, or `not_found`: the public profile could not be\n  read as a normal useful row.\n- `blocked`, `challenge`, or `rate_limited`: TikTok refused the public request\n  at that time.\n- `parser_miss`: a response loaded, but the Actor could not safely tie it to\n  the requested profile.\n- `invalid_input` or `failed`: the input was not a profile or the request failed.\n\n## 🔒 Source boundary and limits\n\n- Public logged-out profile surfaces only.\n- Full follower and following lists are not returned.\n- TikTok may show a profile while limiting other users, regions, or sessions.\n- Public fields and account settings can change without notice.\n- Counts are returned only when they are tied to the requested profile.\n- `detectedEmails` and `detectedLinks` are unverified clues from the public bio\n  and public link field. They can be missing or wrong.\n- The Actor does not open or crawl detected links.\n\n## ❓ FAQ\n\n### Does this Actor need login, cookies, or an API key?\n\nNo.\n\n### Why is `accountRegion` missing?\n\nTikTok does not expose it for every profile. When present, it is a platform\nsignal, not proof of residence or nationality.\n\n### How are duplicates handled?\n\nExact duplicate inputs are checked once. Use `channelId` as the strongest\ncross-run dedupe key when it is present.\n\n## 🛟 Support\n\nSend the run ID, input URL, expected profile, and observed row. Do not send\npasswords, cookies, or account credentials.\n\n## 🔗 Related social media scrapers\n\nContinue the same workflow on this platform or compare public data across\nplatforms.\n\n### Continue on TikTok\n\n- [TikTok Search Scraper](https://apify.com/chronometrica/tiktok-search-scraper)\n  — find public videos, creators, and metrics by keyword.\n- [TikTok Metrics Scraper](https://apify.com/chronometrica/tiktok-metrics-scraper)\n  — collect public video, profile, engagement, hashtag, and music data.\n- [TikTok Comments Scraper](https://apify.com/chronometrica/tiktok-comments-scraper)\n  — collect public comments, replies, authors, likes, and thread links.\n- [TikTok Transcript Scraper](https://apify.com/chronometrica/tiktok-transcript-scraper)\n  — extract public caption text and timestamped segments.\n\n### Compare profiles across platforms\n\n- [Facebook Page Scraper](https://apify.com/chronometrica/facebook-channel-scraper)\n  — collect public Page details, links, and audience stats.\n- [Instagram Profile Scraper](https://apify.com/chronometrica/instagram-channel-scraper)\n  — collect public profile details, links, and audience stats.\n- [YouTube Channel Scraper](https://apify.com/chronometrica/youtube-channel-scraper)\n  — collect public channel details, links, and audience stats.\n- [LinkedIn Profile Scraper](https://apify.com/chronometrica/linkedin-profile-scraper)\n  — collect public profile identity, headlines, and visible profile facts.\n- [X Profile Metrics Scraper](https://apify.com/chronometrica/x-profile-metrics)\n  — collect public profile details, audience counts, and activity stats.\n"
    },
    "buildNumber": "0.1.27",
    "actVersion": {
      "sourceType": "SOURCE_FILES",
      "buildTag": "latest",
      "versionNumber": "0.1"
    },
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0.06348444444444444
    }
  }
}