Skip to content
tiktokapi.io

Managed TikTok Scraper Gateway · No Headless Browsers · No Cookies

Scrape TikTok at $0.20/1K videos.

Replace fragile Playwright scripts, expired session cookies, and $10/GB residential proxies with a single HTTPS GET call. Scrape public TikTok videos, 1080p unwatermarked MP4s, creator bios, follower lists, nested comments ($0.10/1K), and Creative Center ads in clean JSON.

Pay-As-You-Go

Credits never expire on PAYG ($25+). 0 Credits billed on 404, 5xx, timeouts, or 0-item empty pages.

Zero Cookies / Proxies

Never manage TikTok accounts, CAPTCHA solvers, X-Bogus signers, or residential proxy pools again.

10x Cheaper than Apify

$0.20/1K videos & $0.10/1K comments vs $2.50–$5.00/1K compute + proxy fees on actor marketplaces.

10,500 Free Credits ($1.05)

Instant API key in 10 seconds — zero credit card required, plus +20,000 bonus credits ($2.00) on return.

30-Line Python Pagination Script & Live Captured JSON

Real response captured from GET https://api.tiktokapi.io/v1/video/search?keywords=ai+tools&region=US&count=10 — including direct CDN MP4 URL, bookmark (collect_count), and share velocity.

Python Pagination Scraper

import requests

API_KEY = "tk_live_your_api_key_here"

def scrape_tiktok_keyword(keyword: str, region: str = "US", pages: int = 3):
    cursor = 0
    results = []
    for _ in range(pages):
        r = requests.get(
            "https://api.tiktokapi.io/v1/video/search",
            params={"keywords": keyword, "region": region, "count": 30, "cursor": cursor},
            headers={"x-api-key": API_KEY},
            timeout=20,
        )
        r.raise_for_status()
        body = r.json()
        videos = body.get("data", {}).get("videos", [])
        results.extend(videos)
        if not body.get("data", {}).get("hasMore"):
            break
        cursor = body["data"]["cursor"]
    return results

print(f"Scraped {len(scrape_tiktok_keyword('ai tools'))} videos")

Live Captured Response (GET /v1/video/search)

{
  "code": 0,
  "provider": "https://tiktokapi.io",
  "status": "ok",
  "msg": "success",
  "data": {
    "cursor": 10,
    "hasMore": true,
    "videos": [
      {
        "video_id": "7646676174059392286",
        "title": "Best Ai tools in 2026 ",
        "region": "US",
        "duration": 27,
        "play": "https://v19.tiktokcdn.com/989cbada390f666b166bca40b7212c59/.../video.mp4",
        "play_count": 3673496,
        "digg_count": 205333,
        "comment_count": 9567,
        "share_count": 45289,
        "collect_count": 197111,
        "author": {
          "id": "6788812283432059910",
          "unique_id": "maverickgpt",
          "nickname": "Maverick Maltin | AI & ChatGPT"
        }
      }
    ]
  }
}

Total Cost of Ownership: DIY Playwright vs Apify vs TikTokAPI.io

Cost / Engineering FactorTikTokAPI.ioApify / Actor MarketplacesDIY Playwright + Residential Proxies
100,000 Videos Scraped$8 – $20 total$250 – $500 + $49/mo base$180+ residential proxy GBs + servers
Gateway Cache & Live Latency~15ms cache / sub-second live15s – 90s actor cold-start4s – 12s browser render
X-Bogus / WAF Maintenance0 hrs/mo (managed by gateway)Breaks when community actors lag10–20+ engineering hrs/mo
ThroughputUp to 600 RPM (10 RPS)Capped by actor memory CUHeavy RAM per Chromium tab

Scraper FAQ

Why do DIY Playwright, Puppeteer, and yt-dlp TikTok scrapers get blocked with HTTP 403?

TikTok's Akamai and ByteDance WAF inspect datacenter IP ASNs, TLS JA3/JA4 fingerprints, and WebAssembly X-Bogus / X-Argus / msToken request signatures. When any layer mismatches, TikTok returns HTTP 403 Forbidden or a 0-byte body. TikTokAPI.io handles residential routing and cryptographic signing automatically.

How much does it cost to scrape 100,000 TikTok videos or 1,000,000 comments?

At our base rate ($1 = 10,000 Credits), 100,000 videos cost $20 (and down to $7.96 on Business Monthly with +65% bonus credits). 1,000,000 comments or followers cost $100 at base rate ($39.80 on Business Monthly) — roughly 10x cheaper than Apify actors or residential proxy bandwidth.

What happens if a username doesn't exist or a search returns 0 items?

You pay 0 Credits. Failed calls, upstream 404/5xx errors, timeouts, and empty 0-item responses are automatically zero-rated.