TikTok Profile Scraper avatar

TikTok Profile Scraper

Pricing

from $0.50 / 1,000 tiktok profiles

Go to Apify Store
TikTok Profile Scraper

TikTok Profile Scraper

Scrape TikTok public profiles. Returns username, display name, bio, follower count, following count, like count, video count, verified status, and avatar URL. No login required. Pay-per-result.

Pricing

from $0.50 / 1,000 tiktok profiles

Rating

0.0

(0)

Developer

Ale

Ale

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Pass in a list of TikTok usernames, get back their public profile data. No login, no API key, no cookies. Just HTTP.

Immune to API signature rotation. Most TikTok scrapers call TikTok's signed JSON API — when TikTok rotates their X-Bogus / X-Gnarly signing keys (every few months), those scrapers go dark until their owners port the new algorithm. This one parses TikTok's server-rendered HTML instead, so the signing-rotation cycle doesn't take it offline. (Caveat: if TikTok ever changes the HTML rehydration schema or gates the HTML behind a JS challenge, that's a different break — we monitor and update. The point is it's structurally independent of the signing treadmill, not invulnerable.)

This actor returns one item per profile — not one per video. If you want clean, structured profile metadata for lead generation, panel research, or competitor tracking, this is the right tool. If you need full video timelines, use a video scraper instead.

What you get

For every username you pass in, the scraper hits TikTok's public profile page and pulls the rehydration block — the same JSON the TikTok webapp uses to render the profile. About 18 fields per profile, including:

  • Stable user ID + secUid (survive username changes)
  • Username, display name, bio, link in bio
  • Follower / following / video counts
  • Verified badge, private flag, TikTok Shop seller flag + category
  • Account language and account creation timestamp
  • High-resolution avatar URL
  • Profile URL and scrape timestamp

If TikTok soft-blocks a proxy IP mid-run, the scraper rotates to a fresh session and retries the profile (up to maxIPRotations times, default 5). One bad IP doesn't kill the batch.

Input

{
"profiles": ["charlidamelio", "khaby.lame", "mrbeast"]
}

Usernames can be plain (charlidamelio), at-prefixed (@charlidamelio), or full URLs (https://www.tiktok.com/@charlidamelio). All three normalize to the same thing.

Available input fields

FieldTypeDefaultDescription
profilesarrayrequiredUsernames, @handles, or profile URLs
maxIPRotationsinteger5How many times to retry a profile with a fresh session if TikTok soft-blocks the IP
proxyConfigurationobjectRESIDENTIALApify proxy. Residential strongly recommended — TikTok rate-limits datacenter IPs hard

Output

One item per profile.

{
"username": "charlidamelio",
"user_id": "5831967",
"sec_uid": "MS4wLjABAAAA-VASjiXTh7wDDyXvjk10VFhMWUAoxr8bgfO1kAL1-9s",
"display_name": "charli d'amelio",
"bio": null,
"bio_link": "https://youtube.com/@charlidamelio",
"follower_count": 158300000,
"following_count": 1394,
"like_count": null,
"video_count": 3154,
"verified": true,
"is_private": false,
"is_seller": false,
"commerce_category": null,
"language": "en",
"account_created_at": "2015-11-14T12:57:18Z",
"avatar_url": "https://p16-common-sign.tiktokcdn-eu.com/tos-maliva-avt-0068/...",
"profile_url": "https://www.tiktok.com/@charlidamelio",
"scraped_at": "2026-06-12T06:13:15Z"
}

A few notes about the fields

  • user_id is the stable numeric ID. Use it as a primary key — TikTok usernames can change but IDs cannot.
  • bio_link is the URL the creator placed in their bio (Linktree, YouTube, store, Instagram, etc.). Null when they haven't set one. This is usually the most valuable field for lead generation.
  • is_seller + commerce_category flag TikTok Shop sellers. Filter on these to build a panel of creators with monetised shops.
  • account_created_at is useful for trust scoring — brand-new accounts are higher risk for bot/spam analyses.
  • like_count (total likes across all videos) is sometimes null. TikTok has been quietly removing this from the public profile payload for some accounts — when it's there we return it, when it isn't we set null instead of guessing.
  • follower_count, following_count, video_count are integers, not the abbreviated "158.3M" strings you see on the page.
  • verified is the blue check.
  • bio is null if the profile has no bio set.
  • avatar_url is the highest-resolution variant TikTok exposes (usually 1080×1080).

Examples

Single profile

{"profiles": ["charlidamelio"]}

Mixed input formats

{
"profiles": [
"charlidamelio",
"@khaby.lame",
"https://www.tiktok.com/@mrbeast"
]
}

Competitor or influencer panel

{
"profiles": ["nike", "adidas", "newbalance", "puma"],
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

TikTok Shop seller research

Pass in a list of usernames, then filter the dataset by is_seller: true to get only the creators with monetised shops, along with their commerce_category.

Pricing

Pay per result.

EventPrice
Actor start$0.005
Each profile delivered$0.0005

Some quick math:

  • 10 profiles = $0.010 total
  • 100 profiles = $0.055 total
  • 1,000 profiles = $0.505 total

No monthly fees. No minimum spend. You only pay for profiles the scraper actually returns — if TikTok blocks a profile and we can't recover it, you aren't charged for that profile.

How to use it from an AI agent

The actor is exposed on Apify's MCP endpoint:

https://mcp.apify.com?tools=santamaria-automations/tiktok-profile-scraper

This works with Claude Desktop, Claude.ai, Cursor, VS Code, LangChain, and any other MCP client.

Example prompt:

Use tiktok-profile-scraper to get profile data for charlidamelio, khaby.lame, and mrbeast. Show me a table of follower count, bio link, and account age, sorted by follower count.

Caveats

  • Only public accounts can be scraped. Private accounts return basic profile fields with is_private: true and most stats null.
  • like_count and bio may be null even for big accounts — TikTok doesn't always expose those fields in the public payload.
  • Avatar URLs are signed and expire after a few months. Re-scrape if you need fresh ones.
  • Residential proxy is strongly recommended. Datacenter IPs work occasionally but TikTok blocks them aggressively.

Issues, feature requests