← Back to blog

March 17, 2026 · 5 min read

How to Scrape TikTok Without Getting Blocked

TikTok blocks scrapers aggressively. Skip the proxies and headless browsers. Get structured TikTok data with a single API call.

TikTok is one of the hardest platforms to scrape. Their anti-bot detection is aggressive: browser fingerprinting, signed request tokens that expire in seconds, and IP bans that can hit within minutes. Building a reliable TikTok scraper means managing rotating proxies, headless browsers, and constant maintenance as their defenses change.

Most developers give up after a week.

Why scraping TikTok is so painful

The official TikTok API (Research API) requires a business application, takes weeks for approval, and limits you to 1,000 requests per day. Even then, the data you get back is limited compared to what's on the platform.

So developers build scrapers. Here's what that looks like:

  • Proxies: Residential proxies cost $10-15 per GB. A single TikTok page can be 2-5 MB. At scale, you're burning $50-100/day just on bandwidth.
  • Headless browsers: TikTok's frontend relies heavily on JavaScript rendering. You need Puppeteer or Playwright, which means spinning up browser instances that eat RAM and CPU.
  • Maintenance: TikTok rotates their signing algorithms regularly. Your scraper that worked yesterday returns 403s today. Someone on your team has to reverse-engineer the new signature every few weeks.

There's a simpler path.

Scrape TikTok with one API call

Nodesnack handles all the proxy rotation, browser rendering, and signature generation behind the scenes. You make a GET request, you get JSON back.

curl "https://api.nodesnack.com/api/v1/platforms/tiktok/profile?username=charlidamelio" \
  -H "Authorization: Bearer YOUR_API_KEY"

Response:

{
  "success": true,
  "data": {
    "username": "charlidamelio",
    "nickname": "Charli D'Amelio",
    "verified": true,
    "stats": {
      "followers": 155000000,
      "following": 1200,
      "likes": 11800000000,
      "videos": 2400
    }
  }
}

No proxies. No headless browsers. No signature reverse-engineering. Just data.

Pulling a creator's videos

Say you're building a competitor analysis tool or tracking content performance for a client. You need their recent videos with engagement metrics.

import requests

API_KEY = "YOUR_API_KEY"
BASE = "https://api.nodesnack.com/api/v1/platforms/tiktok"

resp = requests.get(
    f"{BASE}/profile/videos",
    params={"username": "charlidamelio"},
    headers={"Authorization": f"Bearer {API_KEY}"},
)

for video in resp.json()["data"]["videos"]:
    print(f"{video['description']} - {video['stats']['views']} views, {video['stats']['likes']} likes")

Response shape:

{
  "success": true,
  "data": {
    "username": "charlidamelio",
    "total_videos": 2400,
    "videos": [
      {
        "video_id": "7234567890123456789",
        "description": "new dance tutorial",
        "stats": {
          "views": 5000000,
          "likes": 800000
        }
      }
    ]
  }
}

Each video includes the video ID, description, view count, like count, and more. You can use the video_id to drill into comments or find related content.

Searching TikTok programmatically

TikTok's search is the hardest part to scrape. It requires authenticated sessions and signed parameters that rotate constantly. With Nodesnack, it's one request.

# Search for videos
resp = requests.get(
    f"{BASE}/search/videos",
    params={"query": "cooking recipes"},
    headers={"Authorization": f"Bearer {API_KEY}"},
)

videos = resp.json()["data"]["videos"]

You can also search for users and hashtags:

# Find creators in a niche
users = requests.get(
    f"{BASE}/search/users",
    params={"query": "cooking"},
    headers={"Authorization": f"Bearer {API_KEY}"},
).json()["data"]["users"]

# Get hashtag stats
hashtags = requests.get(
    f"{BASE}/search/hashtags",
    params={"query": "cooking"},
    headers={"Authorization": f"Bearer {API_KEY}"},
).json()["data"]["hashtags"]

# hashtags[0] => {"name": "cooking", "view_count": 185000000000, "video_count": 45000000}

That hashtag endpoint is gold for content strategists. You can see total views and video counts for any hashtag on the platform.

Tracking trends and sounds

Two more endpoints that are hard to replicate with a DIY scraper:

# Get trending videos in a region
trending = requests.get(
    f"{BASE}/trending",
    params={"region": "US", "count": 20},
    headers={"Authorization": f"Bearer {API_KEY}"},
).json()["data"]["videos"]

# Get info about a sound/music
sound = requests.get(
    f"{BASE}/music/info",
    params={"id": "6900000000000000001"},
    headers={"Authorization": f"Bearer {API_KEY}"},
).json()["data"]

# => {"title": "Sunflower - Post Malone", "duration": 158, "video_count": 12000000}

The music/info endpoint tells you how many videos use a specific sound. That's useful for tracking viral audio trends or finding influencer marketing opportunities.

TikTok Shop data

Nodesnack also covers TikTok Shop, which is nearly impossible to scrape through conventional means:

products = requests.get(
    f"{BASE}/shop/search",
    params={"query": "phone case"},
    headers={"Authorization": f"Bearer {API_KEY}"},
).json()["data"]["products"]

# products[0] => {"title": "Aesthetic Phone Case iPhone 15", "price": "$12.99", "rating": 4.8, "sold_count": 15000}

If you're in e-commerce or dropshipping, this is the kind of data that's worth real money.

Pricing: DIY scraping vs. Nodesnack

TikTok endpoints cost 3 credits per request on Nodesnack. Here's how the costs compare:

| | DIY scraping | TikTok Research API | Nodesnack | |--|--|--|--| | Setup time | Days to weeks | Weeks (application) | Minutes | | Proxy costs | $50-100/day | N/A | $0 | | Daily limit | Until you get banned | 1,000 requests | No daily limit | | Cost for 6,600 calls | $150+ (proxies + infra) | Free (if approved) | $29 | | Endpoints | Whatever you build | Limited dataset | 24 endpoints | | Maintenance | Constant | None | We handle it |

The $29 Starter pack gives you 20,000 credits. At 3 credits per TikTok request, that's about 6,600 API calls. For comparison, you'd spend more than that on a single day of residential proxy bandwidth.

If you qualify for TikTok's Research API and the limited data it provides is enough, go for it. It's free. For everything else, the math favors an API.

24 TikTok endpoints

Nodesnack covers TikTok more deeply than any other platform. The full list includes: profile, videos, video details, comments, search (videos, users, hashtags), trending, hashtag info, music/sound info, followers, following, liked videos, related videos, playlists, live status, effects, creator search, and TikTok Shop (search and product details).

Full documentation is at /docs/tiktok.

If you're also pulling data from YouTube, check out our guide on getting YouTube channel stats without the official API.

Get started

Sign up at nodesnack.com/signup and you'll get 100 free credits to test any TikTok endpoint. No credit card required.

Ready to get structured data from 30+ platforms?

100 free credits. No credit card required.

Start Free