scraping-tiktok-profile-data — Claude Code skill: TikTok profile stats
Pulls TikTok profile stats and metadata for a batch of accounts: followers, following, total likes, video count, bio. Handy when you need to vet a creator list.
npx skills add apidojo-io/apidojo-skills --skill scraping-tiktok-profile-data -a claude-codeWhat scraping-tiktok-profile-data does
The skill runs the apidojo/tiktok-profile-scraper actor on Apify and returns a row per account: username, nickname, followerCount, followingCount, heartCount, videoCount, signature, verified, bioLink, avatarUrl. Input is either profile URLs (startUrls) or plain usernames without the @ (usernames). Date filters since and until narrow the range, maxItems caps the output, and customMapFunction takes a JavaScript function that transforms each returned object.
Three ways to run it. The bundled scripts/run_actor.js handles polling and writes CSV or JSON for you. With the Apify MCP server installed, the same actor is called through apify:run-actor. Otherwise hit the REST API directly: POST a run, poll until status = SUCCEEDED, then fetch dataset items. All three need APIFY_TOKEN in the environment or a .env file — nothing starts without it.
Two things to plan for. A private account comes back with zero videoCount plus profile metadata flagged isPrivate: true, not an error, so check that field before trusting the numbers. And TikTok data can lag 24–48 hours, which means a re-run is the way to get fresh counts. Batches above 500 usernames are better split up.
What it helps with
- pull follower and engagement numbers for a list of TikTok accounts
- vet creators before an influencer campaign
- export bios and profile links to CSV or JSON
- filter returned posts by date with
sinceanduntil - flag private or deleted accounts in the output
Example prompts for the agent
- Get TikTok profile stats for creator1, creator2 and creator3
- Export followers and video counts for this creator list as CSV
- Check these TikTok usernames and show who has the most likes
How to install scraping-tiktok-profile-data
1Skills CLI (Vercel)
npx skills add apidojo-io/apidojo-skills --skill scraping-tiktok-profile-data -a claude-code2Manually: put the files in place
~/.claude/skills/scraping-tiktok-profile-data/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/scraping-tiktok-profile-data/
1Skills CLI (Vercel)
npx skills add apidojo-io/apidojo-skills --skill scraping-tiktok-profile-data -a codex2Manually: put the files in place
.agents/skills/scraping-tiktok-profile-data/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add apidojo-io/apidojo-skills --skill scraping-tiktok-profile-data -a cursor2Manually: put the files in place
.cursor/skills/scraping-tiktok-profile-data/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install apidojo-io/apidojo-skills scraping-tiktok-profile-data2Manually: put the files in place
.github/skills/scraping-tiktok-profile-data/SKILL.md1Skills CLI (Vercel)
npx skills add apidojo-io/apidojo-skills --skill scraping-tiktok-profile-data -a gemini-cli2Platform CLI
gemini skills install https://github.com/apidojo-io/apidojo-skills --path skills/primitives/scraping-tiktok-profile-dataManually: put the files in place
.devin/skills/scraping-tiktok-profile-data/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add apidojo-io/apidojo-skills --skill scraping-tiktok-profile-data -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about scraping-tiktok-profile-data
How do I install scraping-tiktok-profile-data in Claude?
Run npx skills add apidojo-io/apidojo-skills --skill scraping-tiktok-profile-data -a claude-code. The skill lands at ~/.claude/skills/scraping-tiktok-profile-data/SKILL.md.
What does scraping-tiktok-profile-data do?
It runs the apidojo/tiktok-profile-scraper actor on Apify for a list of TikTok accounts and returns follower count, following count, total likes, video count and bio.
What do I need before running it?
An APIFY_TOKEN environment variable. Optionally install the Apify MCP server and call the actor via apify:run-actor instead.
Source text
SKILL.md · Apache-2.0
---
name: scraping-tiktok-profile-data
description: >
Scrapes TikTok profile statistics and metadata for any list of accounts using apidojo's
TikTok Profile scraper on Apify. Triggers when the user asks to: get TikTok profile stats
for an account, fetch follower count and engagement data for TikTok users, scrape TikTok
account metadata in bulk, export TikTok profile information for a list of creators, check
TikTok stats for multiple usernames, or get bio and follower data from TikTok profiles.
Returns username, follower count, following count, total likes, video count, and bio.
Ideal for influencer vetting, data enrichment, and audience analysis.
license: Apache-2.0
metadata:
author: apidojo
version: "1.0"
apify-actor: apidojo/tiktok-profile-scraper
---
# Scraping TikTok Profile Data
Bulk account-level statistics for any set of TikTok usernames. Returns follower counts, engagement totals, bio, and video count.
## Prerequisites
- `APIFY_TOKEN` environment variable set
- Optional: Apify MCP server installed
## Inputs
| Parameter | Type | Required | Default | Notes |
|-----------|------|----------|---------|-------|
| `startUrls` | array | Optional | `[]` | TikTok profile URLs |
| `usernames` | array | Optional | `[]` | TikTok usernames (without @) |
| `since` | string | Optional | — | Return posts after this date (YYYY-MM-DD) |
| `until` | string | Optional | — | Return posts before this date (YYYY-MM-DD) |
| `maxItems` | number | Optional | Unlimited | Maximum posts to return |
| `customMapFunction` | string | Optional | — | JavaScript function to transform each output object |
## Workflow
```
Progress:
- [ ] Step 1: Normalize username list
- [ ] Step 2: Run tiktok-profile-scraper
- [ ] Step 3: Poll for SUCCEEDED
- [ ] Step 4: Deliver profile dataset
```
### Step 2: Run the Actor
**Recommended — run_actor.js (handles waiting, output, and file saving automatically):**
```bash
# Quick answer (prints table to chat)
node scripts/run_actor.js \
--actor "apidojo~tiktok-profile-scraper" \
--input '{"param": "value"}'
# Save as CSV
node scripts/run_actor.js \
--actor "apidojo~tiktok-profile-scraper" \
--input '{"param": "value"}' \
--output YYYY-MM-DD_results.csv --format csv
# Save as JSON
node scripts/run_actor.js \
--actor "apidojo~tiktok-profile-scraper" \
--input '{"param": "value"}' \
--output YYYY-MM-DD_results.json --format json
```
> `APIFY_TOKEN` must be set in environment or `.env` file.
**If Apify MCP is available:**
```
Tool: apify:run-actor
Actor: "apidojo~tiktok-profile-scraper"
Input:
{
"usernames": ["creator1", "creator2"]
}
```
**REST API fallback:**
```bash
curl -X POST \
"https://api.apify.com/v2/acts/apidojo~tiktok-profile-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"usernames": ["creator1", "creator2"]}'
```
Save `id` as `RUN_ID`. Poll until `status = SUCCEEDED`:
```bash
curl "https://api.apify.com/v2/actor-runs/$RUN_ID?token=$APIFY_TOKEN" | grep '"status"'
```
Fetch results:
```bash
curl "https://api.apify.com/v2/actor-runs/$RUN_ID/dataset/items?token=$APIFY_TOKEN&format=json"
```
### Step 3: Handle Edge Cases
- **Account not found**: Username banned, deleted, or changed. Flag in output.
- **Private account**: Returns 0 video count with profile metadata — mark `isPrivate: true`.
- **Batch > 500**: Split into smaller batches for reliability.
## Output Format
```
# TikTok Profile Dataset
Accounts requested: N | Returned: N | Not found: N
| Username | Followers | Following | Total Likes | Videos | Bio (truncated) | Verified |
|----------|-----------|-----------|-------------|--------|-----------------|----------|
| ... | ... | ... | ... | ... | ... | ... |
Available fields: username, nickname, followerCount, followingCount, heartCount,
videoCount, signature, verified, bioLink, avatarUrl
```
## Troubleshooting
**Missing accounts:** Username may have changed — verify on TikTok directly.
**Stale follower counts:** TikTok data may lag 24–48 hours; re-run for fresh data.
© apidojo · Apache-2.0 · apidojo-io/apidojo-skills