TikTok Profile Posts Scraper - Creator Feed Data
Pricing
from $1.50 / 1,000 post scrapeds
TikTok Profile Posts Scraper - Creator Feed Data
Scrape public TikTok profile posts with captions, engagement, media, hashtags, music, and creator metadata. Provider-backed, no cookies, MCP ready.
Pricing
from $1.50 / 1,000 post scrapeds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
3 days ago
Last modified
Categories
Share
TikTok Profile Posts Scraper
Scrape public TikTok profile posts from creator feeds with normalized, AI-agent-ready output. Give the actor one or more TikTok handles or profile URLs and it returns one dataset row per post with captions, engagement metrics, author metadata, music metadata, hashtags, cover URLs, direct play/download URLs when returned, and run-level provider diagnostics.
This actor is built for creator research, influencer discovery, social listening, competitive monitoring, content analysis, and workflow automation. It uses public-data provider APIs with ScrapeCreators as the recommended primary provider and SociaVault as fallback. It does not ask users for TikTok cookies, browser sessions, or account login.
What This Actor Does
TikTok Profile Posts Scraper focuses on one job: profile in, creator posts out. It accepts handles such as nike, @nike, or full profile URLs such as https://www.tiktok.com/@nike. For each public creator feed, it paginates through recent or popular posts, normalizes the provider response, deduplicates post IDs across all inputs, and writes clean records to the default dataset.
The actor is narrower than a general TikTok scraper on purpose. It does not scrape keyword search, hashtag feeds, comments, followers, following lists, or one-off post URLs. That tighter scope makes it easier for humans and AI agents to choose the right tool when the task is specifically "get posts from these TikTok profiles."
When To Use It
Use this actor when you already know the TikTok creators you want to analyze and need their public video history in a structured format.
Good fits include:
- Influencer research: collect recent posts, engagement counts, captions, sounds, and post dates from creator shortlists.
- Competitor tracking: monitor brand or competitor profile feeds and export new video metadata for analysis.
- Social listening: inspect what specific creators are posting without using TikTok cookies.
- Content research: mine captions, hashtags, music, and engagement metrics from creator feeds.
- Agency reporting: build CSV or JSON exports of posts from client, competitor, or campaign creator profiles.
- AI-agent workflows: let Claude, ChatGPT, Make, n8n, or Zapier fetch profile video rows through Apify MCP or API.
Do not use this actor for hashtag discovery, keyword search, single video details, TikTok comments, follower lists, or private TikTok data. Use a dedicated actor for those workflows.
Input
The fastest test input is:
{"profileHandles": ["stoolpresidente"],"maxPostsPerProfile": 10,"maxPagesPerProfile": 1,"maxTotalPosts": 50,"sortBy": "latest","region": "US","providerOrder": "scrapecreators-first","includeRawData": false}
Important Inputs
| Field | Type | Default | Description |
|---|---|---|---|
profileHandles | array | required | TikTok handles, @handles, or full profile URLs. |
maxPostsPerProfile | integer | 50 | Maximum posts saved from each profile. |
maxPagesPerProfile | integer | 10 | Safety cap for provider pagination per profile. |
maxTotalPosts | integer | 10000 | Whole-run billing and safety cap across all profiles. |
sortBy | string | latest | Request latest or popular profile posts when supported. |
region | string | US | Alpha-2 region code for provider requests. |
providerOrder | string | scrapecreators-first | Provider fallback order. |
includeRawData | boolean | false | Attach raw provider payloads for debugging. |
Output
Each dataset item is one TikTok profile post. The output is intentionally flat so spreadsheet tools, BI systems, and AI agents can read it without navigating deeply nested TikTok payloads.
| Field | Description |
|---|---|
profileHandle | Requested creator handle. |
videoId | TikTok video ID. |
videoUrl | Canonical TikTok video page URL when available. |
caption | Caption or description text. |
createdAt | Video publish timestamp in ISO format when returned. |
authorUsername | Creator handle returned by TikTok. |
authorNickname | Creator display name. |
authorVerified | Whether the creator is verified. |
authorFollowerCount | Creator follower count when returned. |
playCount | Views or play count. |
likeCount | Likes. |
commentCount | Comments. |
shareCount | Shares. |
collectCount | Saves or collects. |
engagementRate | Approximate engagement rate from likes, comments, shares, and views. |
coverUrl | Static cover image URL. |
playUrl | Direct signed TikTok play URL when returned. These URLs can expire. |
downloadUrl | Direct signed TikTok download URL when returned. These URLs can expire. |
noWatermarkUrl | No-watermark URL when TikTok and the provider return one. |
hashtags | Hashtags attached to the video. |
mentions | Mentioned TikTok handles from caption metadata. |
musicTitle | TikTok sound or song title. |
musicAuthor | Music artist or sound owner. |
The actor also writes OUTPUT and RUN_SUMMARY to the key-value store. These contain profile counts, provider status codes, provider errors, estimated PPE cost, providers used, and the final stop reason. This is useful when an automation needs to decide whether the run was empty, provider-blocked, or capped by billing settings.
Pricing
This actor uses pay per event:
| Event | Price | When charged |
|---|---|---|
apify-actor-start | $0.00005 | Once per run, scaled by memory. |
post-scraped | $0.0015 | Each validated TikTok profile post row persisted. |
A 10-video test run costs about $0.01505 before Apify platform usage costs. A 100-video run costs about $0.15005.
Provider Strategy
TikTok's public web surface is heavily protected and changes often, so this actor uses provider-backed public-data endpoints instead of fragile browser scraping. The default chain is:
- ScrapeCreators
- SociaVault
You can force one provider with scrapecreators-only or sociavault-only for testing. If the actor owner has not configured at least one provider key, the run exits with a clear diagnostic message instead of failing with a stack trace.
Limits
- Only public TikTok profile video data is supported.
- Direct TikTok CDN URLs may expire. Download important media promptly.
- No-watermark URLs are returned only when TikTok and the provider expose them.
- Ordering can vary by provider and TikTok freshness.
- Results can differ by region.
- Private, deleted, restricted, or login-only posts are not covered.
API Example
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('khadinakbar/tiktok-profile-posts-scraper').call({profileHandles: ['stoolpresidente', 'nike'],maxPostsPerProfile: 20,maxPagesPerProfile: 2,sortBy: 'latest',region: 'US'});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items[0]);
Legal
This actor is intended for scraping publicly available TikTok data. You are responsible for using the output in compliance with applicable laws, platform terms, privacy obligations, and content rights. Do not use this actor to collect private data, bypass access controls, or republish copyrighted media without permission.