SocialGrid — TikTok Scraper
Pricing
Pay per usage
SocialGrid — TikTok Scraper
Unified-schema TikTok profile and video data via a residential proxy (TikTok mandatory-login-walls datacenter IPs — see PLAN.md). Reduced-surface MVP: profile + single video only; posts-listing/comments/search/trending need TikTok's signed XHR API and are deferred.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Giovanni
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
4 days ago
Last modified
Categories
Share
Unofficial community Actor. Not affiliated with, endorsed by, or sponsored by TikTok.
Unified-schema TikTok profile and single-video data — flat, agent-ready JSON, never raw SIGI/universal-data blobs. Routed through Apify's residential proxy, which is required to bypass TikTok's mandatory-login-wall on datacenter IPs.
Why this vs. a raw-blob scraper
TikTok's own embedded JSON (SIGI_STATE/__UNIVERSAL_DATA_FOR_REHYDRATION__) is a sprawling internal app-state dump — hundreds of fields, most irrelevant, with no stable "here's the profile" shape. This actor extracts just what a creator-analytics workflow or an LLM agent needs — Author and Post objects shared across SocialGrid's YouTube/TikTok/Instagram scrapers — so the same downstream code works across platforms. Fields TikTok doesn't expose come back as null, never 0, so "no data" and "zero" are never confused.
What it does — and honestly, what it doesn't (yet)
Implemented and live-verified:
| Mode | Description | Key input |
|---|---|---|
profile | Account profile: display name, bio, avatar, follower/following/video counts, verified, external links | handle |
post | Single video detail: caption, engagement (views/likes/comments/shares), posted date, hashtags | videoUrl |
Explicitly NOT implemented in this MVP — posts (video listing), comments, search, and trending all throw a clean notImplemented-style error, not fake or partial data. These require TikTok's signed XHR API (X-Bogus/msToken request signing), which is a separate, unsolved reverse-engineering effort, not a quick follow-up. If you need those, this actor isn't ready for them yet — check back or watch for a future version.
We verified there's no simpler fallback: no SSR-embedded video list on the profile page, /tag/*, /discover/*, /foryou, oEmbed, the legacy node/share endpoint, sitemap.xml, or Open Graph/JSON-LD meta tags expose a video list without the signed API.
Example output (mode: "profile")
{"success": true,"platform": "tiktok","mode": "profile","data": {"platform": "tiktok","id": "6614519312189947909","handle": "mrbeast","display_name": "MrBeast","bio": "Watch my latest video! 👇","avatar_url": "https://p16-common-sign.tiktokcdn-eu.com/...","verified": true,"followers": 129200000,"following": 353,"post_count": 462,"total_likes": 1300000000,"external_links": ["https://youtu.be/iYlODtkyw_I?si=..."],"is_private": false}}
Input
mode(required):profile | post— only these two are implemented, see abovehandle: account handle (@mrbeast) or full profile URL — required formode=profilevideoUrl: full TikTok video URL, must include the author's handle in the path (tiktok.com/@handle/video/123...) — required formode=postproxyGroup(defaultRESIDENTIAL): Apify proxy group. TikTok mandatory-login-walls datacenter IPs, so this must stayRESIDENTIALfor the actor to work at all — residential IPs are individually inconsistent (some still hit the login wall), so the actor retries with a fresh proxy session automatically
Usage
Apify CLI
apify actors call fulinlabs/socialgrid-tiktok-scraper \--input '{"mode": "profile", "handle": "@mrbeast"}'
REST API
curl "https://api.apify.com/v2/acts/fulinlabs~socialgrid-tiktok-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"mode": "post", "videoUrl": "https://www.tiktok.com/@mrbeast/video/..."}'
Pricing
Benchmarked against comparable Store TikTok actors (apidojo's TikTok Scraper/Profile Scraper at $0.30/1,000 posts or users, TikTok Shop Scraper at ~$2/1,000 results). Given this actor uses metered residential-proxy bandwidth per call (TikTok's login wall requires it — see Risks below), pricing is set slightly above a plain datacenter-proxy scraper:
profile/post: $1.50 per 1,000 results
Reliability & known risks
- Residential proxy bandwidth is metered and billed separately by Apify — every call costs proxy GB, tracked as volume grows.
- Individual residential IPs are inconsistently reliable; the actor retries with a fresh session, but a soak test under real production volume (and non-US regions) hasn't been run yet.
- A 6-hour canary schedule re-runs the live test suite (
getProfile+getPostagainst known fixtures) and alerts on failure.