TikTok Profile Scraper (Pay Per Result) avatar

TikTok Profile Scraper (Pay Per Result)

Pricing

$0.75 / 1,000 tiktok profile results

Go to Apify Store
TikTok Profile Scraper (Pay Per Result)

TikTok Profile Scraper (Pay Per Result)

Scrape TikTok profiles by username: followers, bio, bio link, verified badge, TikTok Shop seller flag and category, avatar, plus latest posts with full metadata. No proxies needed, explicit not-found entries, batch up to 1000 handles. Compatible output with popular profile scrapers.

Pricing

$0.75 / 1,000 tiktok profile results

Rating

0.0

(0)

Developer

Yevhenii Molodtsov

Yevhenii Molodtsov

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

2

Monthly active users

4 days ago

Last modified

Share

Scrape TikTok profiles by username and get the complete author block — followers, bio, bio link, verified badge, TikTok Shop seller flag and seller category, avatar, account region — plus the latest posts with full metadata (stats, music, hashtags, mentions, subtitles, CDN URLs). No proxy setup needed. You pay only per result.

Why this scraper

  • 💰 Pay per result — a fraction of the price of comparable profile scrapers.
  • 🔁 Drop-in compatible input & output with the popular TikTok profile scrapers: profiles, resultsPerPage, download flags — and the same authorMeta item shape.
  • 🛍️ Commerce fields included: authorMeta.ttSeller and authorMeta.commerceUserInfo.category distinguish an actual TikTok Shop store from a creator who merely sells something.
  • 📇 One item per requested handle — guaranteed. Unresolvable handles produce an explicit {"input": "...", "error": "not_found"} item instead of a silently missing row.
  • 📦 Batching: up to 1000 handles per run.
  • 🪶 Profile-only mode: set resultsPerPage: 0 to skip posts entirely and get one compact item per handle with just the author block — the cheapest and fastest way to bulk-resolve profile metadata.

Input

{
"profiles": ["apifyoffice", "another_handle"],
"resultsPerPage": 1
}
  • profiles — usernames without @ (bare handles, @handle, and full profile URLs are all accepted). Up to 1000 per run.
  • resultsPerPage — latest posts per profile (each post is one paid result). 0 = profile-only mode.
  • excludePinnedPosts, oldestPostDate — optional post filters.
  • shouldDownload* flags are accepted for compatibility but are a no-op: media is never downloaded; TikTok CDN URLs are always returned instead. That is what keeps the per-result price low.

Output

One dataset item per post, with the author block nested under authorMeta:

{
"id": "7623273873403809054",
"text": "Post caption ...",
"createTimeISO": "2026-03-31T04:36:16.000Z",
"authorMeta": {
"id": "6809214858661659653",
"name": "lilianalazarin",
"profileUrl": "https://www.tiktok.com/@lilianalazarin",
"nickName": "Liliana Valeria",
"verified": false,
"signature": "dental • fitness • travel ...",
"bioLink": "https://beacons.ai/lilianalazarin",
"avatar": "https://p16-common-sign.tiktokcdn-us.com/...",
"commerceUserInfo": { "commerceUser": false },
"privateAccount": false,
"region": null,
"ttSeller": false,
"following": 630,
"friends": 48,
"fans": 43700,
"heart": 1600000,
"video": 2558
},
"musicMeta": { "musicName": "original sound", "musicId": "..." },
"videoMeta": { "height": 1280, "width": 720, "duration": 117, "coverUrl": "..." },
"diggCount": 3156,
"playCount": 37600,
"hashtags": [{ "name": "higienistadental" }],
"isPinned": true,
"input": "lilianalazarin",
"fromProfileSection": "videos"
}

Unresolvable handles produce an explicit error item:

{
"input": "deleted_user_123",
"error": "not_found",
"errorDescription": "Profile @deleted_user_123 not found — deleted or never existed."
}

Private accounts and profiles with zero posts still return one item with the full authorMeta block (posts simply aren't included).

Run status semantics

  • The run finishes SUCCEEDED when the batch was processed, including handles that turned out not to exist (those get explicit error items).
  • The run FAILS when a significant share of handles could not be fetched for technical reasons — so an automated caller can safely retry on non-SUCCEEDED statuses without ever consuming a half-empty dataset.

Notes

  • authorMeta.region is returned on a best-effort basis (TikTok does not always expose it); all other author fields are populated whenever the profile resolves.
  • Posts are returned newest-first. profileScrapeSections other than videos are not supported.