TikTok Video, Profile & Comments Scraper — No Login
Pricing
Pay per event
TikTok Video, Profile & Comments Scraper — No Login
Full TikTok video stats (plays, likes, comments, shares, saves, music, hashtags) from any video URL, exact profile stats for any username, and the comments and replies of each video. No login, no API key, no proxies needed.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Ken Digital
Maintained by CommunityActor stats
0
Bookmarked
23
Total users
6
Monthly active users
2 days ago
Last modified
Categories
Share
Turn any TikTok video URL into a full stats row, and any username into exact profile numbers. Reads the data TikTok itself embeds in its pages, so it needs no login, no API key and no proxy, and it runs in seconds on 256 MB of memory.
New name: this actor is now
cycha/tiktok-scraper(it wasjoyouscam35875/tiktok-scraperuntil 21 October 2026). If an API call or integration stopped working, update the name, or use the actor IDUV8NNxfGts4hDdg9f, which never changes.
Videos (per URL or ID): plays, likes, comments, shares, saves, reposts, description, hashtags, mentions, post date, duration, cover, music (title, author, original or not), author (username, nickname, verified, followers, total likes), photo-post detection, country of creation, ad and AI-generated flags.
Comments (per video, optional): text, likes, reply count, pinned and liked-by-creator flags, post date, language, author username, nickname and avatar, plus threaded replies with parentCommentId.
Profiles (per username): exact follower, following, total-likes, video and friend counts (not the rounded "163M" shown on the page), nickname, bio, bio link, verified, private, organization, seller and commerce flags, language, account creation date, avatar.
What it does not do, on purpose
TikTok only serves a profile's video list, hashtag feeds and search results to logged-in browser sessions with a verified device fingerprint. Plain requests, headless browsers and residential proxies all get empty responses (checked September 2026). This actor does not pretend otherwise: give it video URLs and usernames and it returns complete, exact data every time. If you need to discover videos first, pair it with a search or hashtag actor, then feed the URLs here for the numbers.
Quick start
{"videoUrls": ["https://www.tiktok.com/@selllestin/video/7678609956152560916","https://vm.tiktok.com/ZMabc123/"],"profiles": ["@khaby.lame", "https://www.tiktok.com/@charlidamelio"],"includeComments": true,"maxCommentsPerVideo": 200,"includeReplies": true}
Input
| Field | Type | Description |
|---|---|---|
videoUrls | array | Video or photo-post URLs, short links (vm.tiktok.com, tiktok.com/t/) or bare numeric IDs. |
profiles | array | Usernames with or without @, or profile URLs. |
includeComments | boolean | Also scrape the comments of every video in videoUrls. Default false. |
maxCommentsPerVideo | integer | Top-level comments per video, in TikTok's order. Default 100; 0 = as many as TikTok returns. |
includeReplies | boolean | Also fetch replies under each comment. Default false. |
maxRepliesPerComment | integer | Default 10; 0 = all. |
proxyConfiguration | object | Optional and off by default, because it is not needed. Apify datacenter proxies or your own proxy URLs can be used; residential proxies are not supported. |
At least one of videoUrls or profiles is required.
Output
One row per video ("type": "video") or profile ("type": "profile"). Items TikTok refuses (removed video, private or banned account) come back as a row with an error field and are not billed.
Video row (abridged):
{"type": "video","id": "7678609956152560916","url": "https://www.tiktok.com/@selllestin/video/7678609956152560916","description": "#cooking #thebear #wellness #chef","hashtags": ["cooking", "thebear", "wellness", "chef"],"createdAt": "2026-08-27T06:48:25+00:00","isImagePost": true,"plays": 137300,"likes": 21000,"comments": 203,"shares": 466,"saves": 2658,"reposts": 0,"authorUsername": "selllestin","authorNickname": "Sellestin","authorVerified": false,"authorFollowers": 52400,"authorHearts": 4800000,"musicTitle": "original sound","musicAuthor": "filips","musicIsOriginal": true,"locationCreated": "NL","isAd": false,"scrapedAt": "2026-09-21T20:00:00+00:00"}
Profile row (abridged):
{"type": "profile","username": "khaby.lame","url": "https://www.tiktok.com/@khaby.lame","nickname": "Khabane lame","signature": "Se vuoi ridere sei nel posto giusto😎 If u wanna laugh u r in the right place😎","bioLink": null,"verified": true,"privateAccount": false,"followers": 162988580,"following": 81,"hearts": 2680674378,"videos": 1353,"createdAt": "2016-08-10T21:22:34+00:00","scrapedAt": "2026-09-21T20:00:00+00:00"}
Comment row (abridged):
{"type": "comment","videoId": "7678609956152560916","videoUrl": "https://www.tiktok.com/@selllestin/video/7678609956152560916","commentId": "7679093892465885973","parentCommentId": null,"isReply": false,"text": "...","hasImage": false,"createdAt": "2026-08-28T10:46:29+00:00","likes": 228,"replyCount": 2,"isPinned": false,"isLikedByCreator": true,"authorUsername": "diffgmg","authorNickname": "ssz","authorUrl": "https://www.tiktok.com/@diffgmg","scrapedAt": "2026-09-22T20:00:00+00:00"}
Sticker and image comments come back with an empty text and hasImage: true. TikTok's reported comment count includes replies and deleted comments, so the number you can collect is usually lower than the counter on the video.
videoPlayUrl, videoDownloadUrl, musicPlayUrl and image URLs are signed and expire after a few hours; download what you need right away.
Pricing
Pay per event: one video event per video row and one profile event per profile row, plus a tiny actor-start fee. Error rows are free. Comments are free during their launch period; a per-comment price will be announced on this page with Apify's standard 14-day notice before it applies.
Use cases
- Track performance of your own or competitors' posts over time (schedule the actor and diff the numbers)
- Influencer vetting: exact follower and like counts, verified and commerce flags, bio links
- Campaign reporting: feed the video URLs from a campaign, get the numbers in one sheet
- Enrich video URLs collected elsewhere with stats, music and hashtags
- Audience research and sentiment analysis from comments and replies
Integrations
Run it from the Apify API, the JavaScript or Python client, the CLI, schedules, or as an MCP tool. Export to JSON, CSV, Excel, or push rows to Google Sheets, Make, Zapier or n8n.
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>")run = client.actor("cycha/tiktok-scraper").call(run_input={"videoUrls": ["https://www.tiktok.com/@selllestin/video/7678609956152560916"],"profiles": ["@khaby.lame"],})for row in client.dataset(run["defaultDatasetId"]).iterate_items():print(row["type"], row.get("url"), row.get("plays") or row.get("followers"))
FAQ
Why are there no hashtag or search inputs anymore? TikTok stopped serving those feeds to anything but logged-in, fingerprint-verified browsers. Earlier versions of this actor tried and returned nothing, which is worse than being honest about it.
Are the numbers exact? Profile counts come from TikTok's exact counters (statsV2). Video counts are what TikTok reports at scrape time; very large numbers may be rounded by TikTok itself.
Photo posts? Supported. isImagePost is true and imageCount tells you how many slides.
Is it legal? The actor reads publicly visible data. You are responsible for how you use it and for complying with TikTok's terms and local law.
Feedback
Missing a field, hit a bug, or need an input this actor doesn't take yet? Open an issue on the actor's Issues tab. If the TikTok Video, Profile & Comments Scraper saved you time, a short review on the Store page helps other people find it.
Related actors by the same developer
| Actor | What it does |
|---|---|
| TikTok Transcript Scraper | Transcripts of TikTok videos, in the spoken language or English |
| YouTube Channel Scraper | All videos and Shorts of a channel with stats |
| YouTube Comments Scraper | Comments and replies with video stats |
| Google Trends Scraper | Interest over time, related queries and regions for up to 500 keywords |
| Amazon Scraper | Search results and product details in 17 countries |