Skip to main content
skill CX Codex

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.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add apidojo-io/apidojo-skills --skill scraping-tiktok-profile-data -a claude-code
Open on GitHub

What 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 since and until
  • 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-code

2Manually: put the files in place

~/.claude/skills/scraping-tiktok-profile-data/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/scraping-tiktok-profile-data/

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

Similar skills

All skills for Browser and scraping →

From the same set22

finding-instagram-creators-by-location Finds Instagram creators who post from a given city, venue or neighborhood. Useful for geo-targeted campaigns and regional partnerships. CX Codex +1 833installs scraping-instagram-location-content Pulls public Instagram posts tagged at one place and returns post URLs, captions, handles, likes and dates. Useful when you want to see what visitors post about a venue. CX Codex +1 810installs analyzing-competitor-instagram-content-strategy This skill pulls a competitor's recent Instagram posts and shows which formats and themes earn them engagement. Useful when you need to read someone else's content plan. CX Codex +1 796installs extracting-youtube-comments-for-research Pulls YouTube comments from videos and channels through Apify, then sorts them into themes, questions and sentiment. Useful when you need to know what viewers actually say. CX Codex +1 794installs monitoring-vc-investor-activity-on-twitter This skill pulls investor tweets through apidojo's scraper, classifies the accounts and scores deal signals. Useful when you are raising. CX Codex +1 789installs tracking-twitter-thought-leaders Finds Twitter/X accounts whose posts on a topic actually get shared, then hands back a ranked list for PR and partnerships. CX Codex +1 786installs monitoring-twitter-for-competitor-job-posts Tracks competitor hiring tweets on X and turns them into growth signals: who is hiring, for what role, and when. CX Codex +1 786installs analyzing-competitor-twitter-profile-content This skill pulls a competitor's or brand's tweet history through Apify and ranks posts by engagement. Useful when you need to see what a rival actually posts. CX Codex +1 784installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor