# Apify TikTok Profile Scraper (stableapify.dev)

> Apify TikTok Profile Scraper (stableapify.dev) is a paid API for AI agents from stableapify.dev, paid per call via x402, $0.01/call, status unknown (last checked 2026-09-14).

Scrapes TikTok user profiles and their video posts (with metadata, stats, and optional media downloads) given one or more TikTok usernames or user IDs, paid per-call via x402/USDC.

## Facts

- Endpoint: POST https://stableapify.dev/api/actors/clockworks/tiktok-profile-scraper/call
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/apify-tiktok-profile-scraper-stableapify-dev-57aa8f09
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_mZbhZ52Zutrn157JG0NW8

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability apify-tiktok-profile-scraper-stableapify-dev-57aa8f09 -d '<json body>'
```

Example prompt: Scrape the TikTok profile @charlidamelio and get me the latest 50 videos sorted by newest first, excluding any pinned posts — just the metadata, no video downloads needed.

## When to prefer this

Choose this endpoint when you need structured TikTok profile and video data at scale without managing a scraping infrastructure. Ideal for influencer research, competitive analysis, or content audits where you need post-level metrics. Prefer over manual scraping or unofficial TikTok APIs when you need reliable, paginated data across multiple profiles with optional media downloads, and when per-call USDC micropayment billing fits your cost model.

## Known failure modes

- Invalid or private TikTok username returns empty results or an error
- TikTok rate limiting or anti-scraping measures may cause partial results
- Date filters only work with 'latest' and 'oldest' sorting modes — using them with 'popular' sorting silently ignores the filter
- Heart/digg count filters are incompatible with date filters
- Requesting video/media downloads significantly increases run time and cost
- Actor run timeout for very large result sets may truncate output
- Payment failure via x402 if insufficient USDC balance

## How this service works

Search Apify Store actors, start actor runs, and fetch results over x402 and MPP.

## Output

Returns structured JSON data for each scraped TikTok profile including per-video metadata (title, description, creation date, like/comment/share/play counts, video URL, hashtags, music info) and optionally downloaded media files (video files, cover images, subtitles, avatars). Results are paginated per the resultsPerPage setting.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "profiles",
    "profileScrapeSections",
    "profileSorting",
    "resultsPerPage",
    "excludePinnedPosts",
    "shouldDownloadVideos",
    "shouldDownloadCovers",
    "downloadSubtitlesOptions",
    "shouldDownloadSlideshowImages",
    "shouldDownloadAvatars"
   ],
   "properties": {
    "profiles": {
     "type": "array",
     "items": {
      "type": "string"
     },
     "description": "Add one or multiple TikTok usernames or user IDs you want to scrape. You can enter the usernames one by one, or use the Bulk edit section to add a prepared list."
    },
    "mostDiggs": {
     "type": "integer",
     "maximum": 9007199254740991,
     "minimum": 1,
     "description": "Scrapes only videos with less hearts than the number you add. Doesn't work with date filters"
    },
    "leastDiggs": {
     "type": "integer",
     "maximum": 9007199254740991,
     "minimum": 1,
     "description": "Scrapes only videos with no less hearts than the number you add. Doesn't work with date filters"
    },
    "newestPostDate": {
     "type": "string",
     "description": "Optional filter. Only videos uploaded before or on this date will be scraped."
    },
    "profileSorting": {
     "enum": [
      "latest",
      "popular",
      "oldest"
     ],
     "type": "string",
     "default": "latest",
     "description": "Select Latest to scrape the most recent videos first, Oldest - the oldest videos first, Popular - the most popular videos first. Date filters only work with Latest and Oldest. Only supported for Videos section"
    },
    "resultsPerPage": {
     "type": "integer",
     "default": 100,
     "maximum": 9007199254740991,
     "minimum": 1,
     "description": "The number of posts that will be scraped from every profile."
    },
    "excludePinnedPosts": {
     "type": "boolean",
     "default": false,
     "description": "Tick to exclude pinned posts from profiles. Pinned posts are usually the first videos on a profile's page."
    },
    "shouldDownloadCovers": {
     "type": "boolean",
     "default": false,
     "description": "Tick to download TikTok video cover images (thumbnails). Note that this will increase time and costs needed to extract the data."
    },
    "shouldDownloadVideos": {
     "type": "boolean",
     "default": false,
     "description": "Tick to download TikTok videos. Note that this will increase time and costs needed to extract the data."
  
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/apify-tiktok-profile-scraper-stableapify-dev-57aa8f09/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from stableapify.dev](https://www.zero.xyz/host/stableapify.dev/llms.txt)
