TikTok User Scraper - Profiles, Followers & Stats (No Login)
Scrape TikTok profiles without login or API key. Get followers, likes, bio, verified status & stats. Export CSV/JSON. Only $0.35 per 1,000 profiles.
How it works
- 1Open it on Apify
Hit Run on Apify — it opens the tool in the cloud, no install.
- 2Set the inputs
Adjust
profiles,startUrls,sessionCookies(sensible defaults are pre-filled). - 3Click Run
The tool runs on Apify’s cloud and collects the data for you.
- 4Export the results
Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.
Pricing
$0.00035 per profile = $0.35 per 1,000
| You are charged for | When | Price |
|---|---|---|
| Profile returned | Charged once per profile returned. Failed/not-found lookups are not charged. | $0.00035 |
| Actor Start | Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). | $0.001 |
Pay-per-event pricing: you are billed per result, not per subscription — a run that returns nothing costs nothing beyond the start fee. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-08-04, and they are what you are actually charged.
Inputs
| Field | What it does | Type |
|---|---|---|
profiles | TikTok usernames (with or without @) to fetch full profile data for. | array |
startUrls | Or paste TikTok profile URLs (https://www.tiktok.com/@tiktok). | array |
sessionCookies | Optional — leave empty and the run works as normal. Profile look-ups go out keyless first; a built-in session only covers the handles that come back empty. Supply your own TikTok account cookie here to get a private rate limit that no other user shares. In Chrome, on a logged-in tiktok.com tab: F12 → Application → Cookies → copy the `sessionid` value. Paste one per line; several are rotated. | array |
notionConnector | Optional. Deliver the profiles to your connected Notion via Apify MCP connectors. | string |
notionParentId | Optional Notion database/data-source id to create the pages in. | string |
What you get
A structured dataset — each result includes fields like:
typeuniqueIdsecUidnicknamesignatureverifiedfollowerCountfollowingCountheartCountvideoCountavatarurlExport every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.
5 ready-to-run use cases
Scrape @MrBeast's TikTok Profile Stats
Get MrBeast's TikTok followers, total likes, video count and verified status in seconds. No login, no API key. Export JSON/CSV.
Get Charli D'Amelio's TikTok Follower & Like Counts
Pull Charli D'Amelio's TikTok follower count, hearts, bio and avatar instantly. Keyless creator analytics, export to JSON, CSV or Excel.
Scrape Top Brand TikTok Profiles (Nike, Netflix, NBA)
Benchmark Nike, Netflix, NBA, Red Bull and Duolingo TikTok stats in one run. Followers, likes and video counts. No login required.
Track Music Artist TikTok Follower Counts
Monitor Taylor Swift, Billie Eilish, The Weeknd, Bad Bunny and Ariana Grande TikTok follower and like counts. Keyless bulk export.
Bulk Scrape TikTok Profiles From URLs
Paste TikTok profile URLs and get full stats in bulk - followers, hearts, video count, secUid. No API key, no proxy. Export JSON/CSV.
Related tools in Social Media Scrapers
Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.
Reddit Scraper
Scrape Reddit posts and comments from any subreddit or user profile. Sort by top/hot/new, filter by score, get clean text. No key or login needed.
Reddit Posts Search Scraper
Search Reddit by keyword across the site or one subreddit and export matching posts as JSON. Sort by relevance, top, new or hot. No code needed.
Reddit Video Scraper & Downloader
Download v.redd.it videos from any subreddit or Reddit user, with audio muxed in plus metadata. Filter by sort, time, and duration. No login or API key.
Telegram Channel Scraper
Scrape public Telegram channels without login or an API key. Get posts with text, date, views, media, plus channel title and subscriber count.
Pinterest Search Scraper
Scrape Pinterest search results by keyword. Get pins as JSON: image/video URLs, destination links, save and comment counts. No login, paginated.
Bluesky Scraper
Scrape Bluesky posts by keyword or handle. Get post text, URLs, likes, reposts, and full profiles as clean JSON. No login or API key needed.
Where this tool sits
- Categories
- Social Media Scrapers
- Platforms
- TikTok
⚡ TikTok User Scraper — Profiles, Followers & Stats (No Login, No API Key, No Proxy)
Get full TikTok profile data without a login, API key, or proxy. Feed it usernames and get back followers, following, total likes (hearts), video count, bio, verified status, avatar and secUid — ideal for influencer discovery, creator vetting, lead lists and audience research. Export to JSON, CSV or Excel, call the API, or deliver to Notion. $0.35 per 1,000 profiles plus a $0.001 run-start fee, flat on every Apify plan — the cheapest TikTok profile scraper on the market.
> No account. No proxy. Paste handles and run.
Why this scraper wins
- 🔓 Keyless & proxy-free — no login, no API key, no cookies to paste, and no proxy to buy. Paste handles, press Start.
- 🛡️ Real numbers, not degraded ones — TikTok serves rounded or decoy stats to clients it has flagged. This Actor is built so the follower, like and video counts match what you see on the profile page while logged in.
- 💸 One flat rate — $0.35 / 1,000 profiles plus $0.001 per run start. No volume tiers, no plan gates, and the cheapest rate on the market for this job.
- 🧾 Only successful look-ups are billed — misses, blocks, duplicates and empty runs cost nothing beyond the start fee.
- 🧹 Clean, flat records — one tidy object per profile, no nesting to unpack, ready for a spreadsheet or a CRM import.
- 📬 Built-in Notion delivery — push results straight into Notion via Apify connectors, zero code.
Input
| Field | Notes |
|---|---|
profiles | TikTok usernames to look up, with or without the @ (e.g. tiktok, @nba). |
startUrls | Or paste full profile URLs (https://www.tiktok.com/@tiktok); the handle is parsed out for you. |
sessionCookies | Optional. Your own TikTok sessionid cookie(s), one per line — see *Throughput and your own cookie* below. |
proxyConfiguration | Off by default — this scraper needs no proxy. Only add one at very high volume. |
notionConnector | Optional. Deliver each profile to your connected Notion via Apify MCP connectors. |
notionParentId | Optional Notion database / data-source id to create the pages in. |
Mix profiles and startUrls freely in one run; duplicates are looked up once. Input field names follow the conventions used across similar Actors, so switching over is usually a drop-in change — point your existing input at this Actor and it will normally run as-is.
Input example
{
"profiles": ["tiktok", "@nba", "khaby.lame"],
"startUrls": ["https://www.tiktok.com/@zachking"]
}
That run looks up four creators (the URL is reduced to the handle zachking) and returns four rows.
Throughput and your own cookie
Runs work out of the box: every handle is looked up keyless first, which is how it has always worked and needs nothing from you. When a look-up comes back empty, the run retries it through a built-in session before giving up — so you get a row instead of a gap.
That built-in session is shared across everyone using the Actor, so under heavy concurrent load it can be rate-limited. If you are pulling large lists and want throughput that nobody else can affect, paste your own TikTok sessionid into sessionCookies (Chrome: F12 → Application → Cookies → sessionid, one per line). It is entirely optional, it is used instead of the built-in session rather than on top of it, and a run with an expired or missing cookie simply falls back to the keyless path rather than failing.
Output (one record per profile)
{
"ok": true,
"type": "profile",
"id": "107955",
"uniqueId": "tiktok",
"secUid": "MS4wLjAB...",
"nickname": "TikTok",
"signature": "Make every second count.",
"verified": true,
"avatar": "https://p16-sign-va.tiktokcdn.com/....jpeg",
"followerCount": 94514481,
"followingCount": 6,
"heartCount": 460588561,
"videoCount": 1536,
"diggCount": 0,
"url": "https://www.tiktok.com/@tiktok"
}
Field reference
| Field | What it is |
|---|---|
ok | true on a real profile row, false on a diagnostic row — filter on this to split the two. |
type | Always profile for this Actor. |
id | TikTok's numeric user id. |
uniqueId | The @handle, without the @. |
secUid | TikTok's stable internal id for the account. It survives handle changes — store it if you plan to re-look-up a creator later. |
nickname | The display name shown above the bio. |
signature | The bio text, exactly as written, newlines included. |
verified | true for the blue check. |
avatar | Highest-resolution avatar URL TikTok exposes for the account. |
followerCount / followingCount | Follower and following totals. |
heartCount | Lifetime likes across all of the creator's videos ("Likes" on the profile). |
videoCount | Public videos currently on the profile. |
diggCount | Likes the creator has given out. Most accounts keep this private, so it is usually 0. |
url | Canonical profile URL, handy as a spreadsheet link column. |
Every field above comes from TikTok's own profile payload, so followerCount and heartCount are the real totals rather than rounded or degraded figures.
When a handle doesn't resolve
You get an explicit diagnostic row instead of a silent gap. Diagnostic rows carry ok: false, an errorCode, a human-readable error, and the profile that caused it:
{
"ok": false,
"errorCode": "NOT_FOUND",
"error": "The requested resource was not found (404) or is private/suspended.",
"profile": "handle_that_no_longer_exists"
}
errorCode | Meaning |
|---|---|
NOT_FOUND | The username does not exist, or the account was removed or suspended. |
BLOCKED | The look-up was refused for that handle. Re-running usually clears it. |
RATE_LIMITED | Throttled mid-run after the built-in retries. Split the batch or re-run the misses. |
NETWORK | A transport error reaching the source. Transient; retry. |
NO_RESULTS | Emitted once, at the end, when nothing in the whole run resolved. |
None of these are charged, so feeding in a stale handle list costs you nothing for the misses — you only ever pay for rows that came back with real data.
Pricing
$0.35 per 1,000 profiles ($0.00035 each), plus $0.001 each time a run starts — flat on every Apify plan, including the free one. No volume tiers, no plan gates, and only successful look-ups are charged. This is the cheapest rate on the market for TikTok profile data.
| Profiles in the run | Per-profile cost | Start fee | Total |
|---|---|---|---|
| 10 | $0.0035 | $0.001 | $0.0045 |
| 100 | $0.035 | $0.001 | $0.036 |
| 1,000 | $0.35 | $0.001 | $0.351 |
| 10,000 | $3.50 | $0.001 | $3.501 |
Because the start fee is charged once per run, batching handles into one run is materially cheaper than looping one-handle runs: 100 handles in a single run costs $0.036, where 100 separate runs would cost $0.135.
Billing mechanics
Two events exist and nothing else bills:
1. Actor start — $0.001, charged once when a run begins (per GB of memory; this Actor runs at 1 GB). 2. Profile returned — $0.00035, charged the moment a real profile row is written to the dataset.
Diagnostics, duplicates, blocked look-ups and no-result runs never trigger the per-profile fee. A run that returns nothing costs only the $0.001 start fee.
Limitations — read before you scale
Stated plainly, because you should know them before you build on this:
- Look-ups are paced. The Actor deliberately spaces requests roughly one per second to stay well
inside the source's limits. Expect around 45–50 profiles per minute; a 3,000-handle run takes about an hour. The default run timeout is 60 minutes, so split very large lists across runs (or raise the timeout in the run options).
- No videos here. This Actor returns profile records only. It does not return a creator's video list,
comments, hashtags or search results — use the companion TikTok Scraper for those.
- No follower or following lists. This Actor returns the counts only, never the actual list of
accounts behind followerCount / followingCount. That is not a setting you can turn on here — use a dedicated follower-list Actor if you need the names.
- No emails or phone numbers. Only what a logged-out visitor can see on the profile: bio text,
counts, avatar, verified badge. If a creator writes their email into their bio it lands in signature, but there is no separate contact field.
diggCountis usually 0. Most accounts hide their liked-videos count; the field is reported as TikTok
reports it rather than guessed.
- Private and region-blocked accounts return
NOT_FOUNDorBLOCKEDrather than partial data. That is
deliberate — a diagnostic row you can act on beats a half-populated row you might trust.
- Counts are point-in-time. Follower numbers move constantly; re-run on a schedule if you need a
trend rather than a snapshot.
- Empty input stops the run. If you supply neither
profilesnorstartUrls, the run stops
immediately with a BAD_INPUT message and no per-profile fee is charged.
FAQ
Do I need a TikTok account, cookies, or a proxy? No. Look-ups go out keyless and the Actor runs proxy-free by default. The sessionCookies and proxyConfiguration inputs exist only for high-volume users who want a rate limit of their own — both are optional and both are empty by default.
Why are the follower counts different from what other tools return? TikTok serves degraded or decoy stats to clients it has flagged. This Actor is built to avoid that, so the numbers match what you see on the profile page.
How many handles can I pass in one run? As many as you like — there is no cap in the input. Practical limits come from pacing and the run timeout (see Limitations). The start fee is charged once per run, so batching is always cheaper.
Can I schedule it? Yes. Apify schedules work normally — a daily run over the same handle list gives you a clean follower-growth time series in the dataset.
How do I get the data out? Download the dataset as JSON, CSV, Excel or XML from the run page, hit the Dataset API from your own code, or set notionConnector to push each profile into Notion automatically.
What happens to duplicates? They are de-duplicated by handle before the look-up and again by uniqueId after it, so you are never charged twice for the same creator in one run.
Want the videos too? Use the companion TikTok Scraper for videos, hashtags, comments and search.