# HireScrape TikTok Scraper

> HireScrape TikTok Scraper is a paid API for AI agents from hirescrape.com, paid per call via x402, $0.00225/call, status unknown (last checked 2026-10-10).

Scrapes TikTok profiles, posts, comments, feeds, and search results via a fast API

## Facts

- Endpoint: POST https://hirescrape.com/api/tools/tiktok?utm_source=zero.xyz
- Price: $0.00225/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-10
- Success rate: 0% of calls made through Zero
- Rating: 1.3 / 5 from 1 review
- Activations on Zero: 2
- Tags: x402
- Canonical page: https://www.zero.xyz/c/hirescrape-com-7a0ba0c7
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_VsrsEqrGtoF37VLm71Pev

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 hirescrape-com-7a0ba0c7 -d '<json body>'
```

Example prompt: Pull the latest 20 posts and follower count from the TikTok profile @charlidamelio, including engagement metrics like likes and comments for each post.

## When to prefer this

Choose this endpoint when you need structured TikTok data — profiles, posts, comments, or search results — without maintaining a TikTok developer account or handling API authentication. Ideal for influencer research, competitive analysis, content monitoring, or feeding TikTok data into downstream analytics pipelines. Prefer over manual scraping or browser automation when speed and structured output are required.

## Known failure modes

- Invalid or non-existent TikTok username returns empty or error response
- Private TikTok account data may be inaccessible or limited
- TikTok rate-limiting or anti-bot measures may cause partial results
- Malformed URL for post scraping returns 400-level error
- Unsupported scrape mode returns error or empty response

## How this service works

TikTok profiles, posts, comments, fast-API feeds, search discovery.

## Output

Returns structured data about TikTok profiles (bio, follower/following counts, likes), posts (captions, views, likes, shares, comments), comments (text, author, likes), or search/feed results depending on the scrape mode selected.

## Example request

```json
{
 "input": {
  "body": {
   "url": "https://www.tiktok.com/@tiktok",
   "mode": "profile",
   "trim": true
  },
  "type": "http",
  "method": "POST",
  "bodyType": "json"
 }
}
```

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "url": {
   "type": "string",
   "description": "Full URL of the target object."
  },
  "mode": {
   "enum": [
    "profile",
    "audience",
    "profile_videos",
    "video",
    "transcript",
    "live",
    "video_comments",
    "comment_replies",
    "following",
    "followers",
    "search_users",
    "search_hashtag",
    "search_keyword",
    "search_top",
    "popular_songs",
    "popular_creators",
    "popular_videos",
    "popular_hashtags",
    "song",
    "song_videos",
    "trending_feed"
   ],
   "type": "string",
   "default": "profile",
   "description": "Which endpoint to call. Options: profile, audience, profile_videos, video, transcript, live, video_comments, comment_replies, following, followers, search_users, search_hashtag, search_keyword, search_top, popular_songs, popular_creators, popular_videos, popular_hashtags, song, song_videos, trending_feed."
  },
  "page": {
   "type": "integer",
   "description": "Page number (default 1)."
  },
  "trim": {
   "type": "boolean",
   "description": "Return a condensed response."
  },
  "limit": {
   "type": "integer",
   "default": 20,
   "maximum": 500,
   "minimum": 1,
   "description": "Max items to collect (applies to paginated modes)."
  },
  "query": {
   "type": "string",
   "description": "Search keyword."
  },
  "clipId": {
   "type": "string",
   "description": "TikTok song clip ID."
  },
  "cursor": {
   "type": "string",
   "description": "Pagination cursor."
  },
  "handle": {
   "type": "string",
   "description": "Username / handle (without @)."
  },
  "period": {
   "type": "integer",
   "description": "Lookback days (7 or 30)."
  },
  "region": {
   "type": "string",
   "description": "Proxy / market region (e.g. US)."
  },
  "sortBy": {
   "type": "string",
   "description": "Sort key (depends on endpoint)."
  },
  "hashtag": {
   "type": "string",
   "description": "Hashtag (without #)."
  },
  "orderBy": {
   "type": "string",
   "description": "Order key (depends on endpoint)."
  },
  "sort_by": {
   "type": "string",
   "description": "Sort key (depends on endpoint)."
  },
  "user_id": {
   "type": "string",
   "description": "Platform user ID (often faster than handle)."
  },
  "industry": {
   "type": "string",
   "description": "Industry filter."
  },
  "language": {
   "type": "string",
   "description": "2-letter language code."
  },
  "min_time": {
   "type": "integer",
   "description": "Pagination cursor (unix seconds)."

… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "items": [
   {
    "nickname": "TikTok",
    "username": "tiktok",
    "verified": true,
    "followers": 81000000,
    "profile_url": "https://www.tiktok.com/@tiktok",
    "videos_count": 800
   }
  ],
  "runId": "bd_example",
  "payment": {
   "amount": "0.002250",
   "currency": "USD",
   "protocol": "x402"
  },
  "duration": 10
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/hirescrape-com-7a0ba0c7/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from hirescrape.com](https://www.zero.xyz/host/hirescrape.com/llms.txt)
