TikTok Scraper

TikTok Scraper Featured Image

TikTok Scraper

TLDR

  • Get TikTok video details with download URLs, user profiles, trending feeds, and search results — all via a simple REST API.
  • 5,000 free queries per month.

Here's a sample response for video details:

{
  "video_id": "7577398554101058824",
  "region": "NP",
  "caption": "#fyp #foryoupage #shinchan #dontletthisflop #viral",
  "created_at": 1764250588,
  "duration_seconds": 11,
  "author": {
    "user_id": "7277886691518465026",
    "handle": "giaerra",
    "display_name": "gītaa^̲̲̲",
    "avatar_url": "https://p16-common-sign.tiktokcdn-us.com/..."
  },
  "media": {
    "video_url": "https://v19.tiktokcdn-us.com/.../video.mp4",
    "hd_video_url": "https://v16.tokcdn.com/.../video_hd.mp4",
    "file_size_bytes": 784387,
    "hd_file_size_bytes": 4552303
  },
  "audio": {
    "audio_id": "7468606643236883217",
    "title": "original sound - gwyneth.paita",
    "artist": "gwyn",
    "is_original": true
  },
  "stats": {
    "views": 2152606,
    "likes": 304735,
    "comments": 728,
    "shares": 60542,
    "downloads": 531,
    "saves": 22444
  }
}

What is this?

The TikTok Scraper API gives you real-time access to TikTok data.

Get video details with direct download URLs (including HD and watermark-free), pull user profiles with follower stats, browse trending feeds by region, fetch any user's video history, and search videos by keyword — all as clean, structured JSON.

Perfect for social media analytics, content research tools, influencer tracking, video downloaders, or any app that needs TikTok data.

Why use it?

1. Detailed Data with 100% Accuracy

Get complete TikTok data in real time. Every view count, every like, every video URL — pulled live. No stale caches, no guesswork.

Video metadata, direct MP4 download links (HD + watermark-free), author info, engagement stats, audio details, thumbnails — it's all there. 30+ data points per video.

2. Generous Free Plan

5,000 queries per month. Free. No credit card required.

That's 5,000 video lookups, profile fetches, or search queries every month at no cost. Build and test your app without big upfront costs.

3. Affordable Pricing

When you need more, our paid plans cost less than alternatives:

  • $25 gets you 100K queries/month
  • $75 gets you 1M queries/month
  • $150 gets you 10M queries/month

How to use it?

Simple REST API. Here's how it works:

  1. Create an account at omkar.cloud to get your API key.

It takes just 2 minutes to sign up. You get 5,000 free requests every month for detailed TikTok data — more than enough for most users to get their job done without paying a dime.

This is a well built product, and your search for the best TikTok Scraper API ends right here.

  1. Make a request with it:

cURL:

curl -X GET "https://tiktok-scraper.omkar.cloud/tiktok/videos/details?video_url=https://www.tiktok.com/@giaerra/video/7577398554101058824" \
  -H "API-Key: YOUR_API_KEY"

Python:

import requests

api_key = "YOUR_API_KEY"

# Get video details with download URLs
response = requests.get(
    "https://tiktok-scraper.omkar.cloud/tiktok/videos/details",
    params={"video_url": "https://www.tiktok.com/@giaerra/video/7577398554101058824"},
    headers={"API-Key": api_key}
)
print(response.json())
  1. Get structured TikTok data and use it.

That's it. URL to video data in milliseconds.

API Reference

Video Details

GET https://tiktok-scraper.omkar.cloud/tiktok/videos/details
  • video_url (required) — TikTok video URL.

Example:

import requests

response = requests.get(
    "https://tiktok-scraper.omkar.cloud/tiktok/videos/details",
    params={"video_url": "https://www.tiktok.com/@giaerra/video/7577398554101058824"},
    headers={"API-Key": "YOUR_API_KEY"}
)

print(response.json())

Sample Response:

{
  "video_id": "7577398554101058824",
  "region": "NP",
  "caption": "#fyp #foryoupage #shinchan #dontletthisflop #viral",
  "created_at": 1764250588,
  "duration_seconds": 11,
  "author": {
    "user_id": "7277886691518465026",
    "handle": "giaerra",
    "display_name": "gītaa^̲̲̲",
    "avatar_url": "https://p16-common-sign.tiktokcdn-us.com/..."
  },
  "media": {
    "video_url": "https://v19.tiktokcdn-us.com/.../video.mp4",
    "watermarked_video_url": "https://v19.tiktokcdn-us.com/.../video_wm.mp4",
    "hd_video_url": "https://v16.tokcdn.com/.../video_hd.mp4",
    "file_size_bytes": 784387,
    "watermarked_file_size_bytes": 0,
    "hd_file_size_bytes": 4552303
  },
  "thumbnails": {
    "cover_url": "https://p19-common-sign.tiktokcdn-us.com/.../cover.jpeg",
    "animated_cover_url": "https://p16-common-sign.tiktokcdn-us.com/.../animated.image",
    "original_cover_url": "https://p16-common-sign.tiktokcdn-us.com/.../original.webp"
  },
  "audio": {
    "audio_id": "7468606643236883217",
    "title": "original sound - gwyneth.paita",
    "artist": "gwyn",
    "play_url": "https://v16-ies-music.tiktokcdn-us.com/.../audio.mp3",
    "cover_url": "https://p16-common-sign.tiktokcdn-us.com/.../cover.jpeg",
    "is_original": true,
    "duration_seconds": 25,
    "album": null
  },
  "stats": {
    "views": 2152606,
    "likes": 304735,
    "comments": 728,
    "shares": 60542,
    "downloads": 531,
    "saves": 22444
  },
  "is_advertisement": false,
  "is_pinned": false
}

Trending Videos

GET https://tiktok-scraper.omkar.cloud/tiktok/videos/trending
  • market (optional, default: us) — Two-letter region code.
  • max_results (optional, default: 10) — Number of videos to return (max 20).

Example:

import requests

response = requests.get(
    "https://tiktok-scraper.omkar.cloud/tiktok/videos/trending",
    params={"market": "us", "max_results": 10},
    headers={"API-Key": "YOUR_API_KEY"}
)

print(response.json())

Sample Response:

{
  "videos": [
    {
      "video_id": "7603384680255081758",
      "region": "US",
      "caption": "Lives in 🇺🇸USA #singlelife",
      "created_at": 1770300964,
      "duration_seconds": 5,
      "author": {
        "user_id": "7586897697803846711",
        "handle": "leeou2011",
        "display_name": "lejack.k",
        "avatar_url": "https://p16-common-sign.tiktokcdn-us.com/..."
      },
      "media": {
        "video_url": "https://v45.tiktokcdn-us.com/.../video.mp4",
        "watermarked_video_url": "https://v45.tiktokcdn-us.com/.../video_wm.mp4",
        "hd_video_url": null,
        "file_size_bytes": 192786,
        "watermarked_file_size_bytes": 505111,
        "hd_file_size_bytes": null
      },
      "thumbnails": {
        "cover_url": "https://p16-common-sign.tiktokcdn-us.com/.../cover.jpeg",
        "animated_cover_url": "https://p16-common-sign.tiktokcdn-us.com/.../animated.image",
        "original_cover_url": "https://p19-common-sign.tiktokcdn-us.com/.../original.webp"
      },
      "audio": {
        "audio_id": "6774345467095451650",
        "title": "I Need Your Love",
        "artist": "Jake Coco & Madilyn Bailey",
        "is_original": false,
        "duration_seconds": 60,
        "album": "The Covers, Vol. 6"
      },
      "stats": {
        "views": 83370,
        "likes": 3289,
        "comments": 600,
        "shares": 20,
        "downloads": 44,
        "saves": null
      },
      "is_advertisement": false,
      "is_pinned": false
    }
  ]
}

User Profile

GET https://tiktok-scraper.omkar.cloud/tiktok/users/profile
  • handle (required) — TikTok username (without the @).

Example:

import requests

response = requests.get(
    "https://tiktok-scraper.omkar.cloud/tiktok/users/profile",
    params={"handle": "marvel"},
    headers={"API-Key": "YOUR_API_KEY"}
)

print(response.json())

Sample Response:

{
  "user": {
    "user_id": "6857582733233931270",
    "handle": "marvel",
    "display_name": "Marvel Entertainment",
    "bio": "Marvel social media manager",
    "avatar_thumbnail_url": "https://p19-common-sign.tiktokcdn-us.com/.../100x100.webp",
    "avatar_medium_url": "https://p16-common-sign.tiktokcdn-us.com/.../720x720.webp",
    "avatar_large_url": "https://p19-common-sign.tiktokcdn-us.com/.../1080x1080.webp",
    "is_verified": true,
    "is_private": false,
    "bio_link": "Marvel.com",
    "instagram_handle": null,
    "twitter_handle": null,
    "youtube_channel_title": null,
    "youtube_channel_id": null,
    "account_created_at": 1596655540
  },
  "stats": {
    "following_count": 0,
    "follower_count": 14969237,
    "total_likes": 207043170,
    "video_count": 1883
  }
}

User Videos

GET https://tiktok-scraper.omkar.cloud/tiktok/users/videos
  • handle (required) — TikTok username (without the @).
  • max_results (optional, default: 10) — Number of videos to return (max 30).
  • page_cursor (optional, default: 0) — Pagination cursor from a previous response.

Example:

import requests

response = requests.get(
    "https://tiktok-scraper.omkar.cloud/tiktok/users/videos",
    params={"handle": "marvel", "max_results": 10},
    headers={"API-Key": "YOUR_API_KEY"}
)

print(response.json())

Sample Response:

{
  "videos": [
    {
      "video_id": "7609039378899356959",
      "region": "US",
      "caption": "Families across the #MCU ❤️ Stream their stories now on Disney+.",
      "created_at": 1771617567,
      "duration_seconds": 30,
      "author": {
        "user_id": "6857582733233931270",
        "handle": "marvel",
        "display_name": "Marvel Entertainment",
        "avatar_url": "https://p19-common-sign.tiktokcdn-eu.com/..."
      },
      "media": {
        "video_url": "https://v58.tiktokcdn-eu.com/.../video.mp4",
        "hd_video_url": null,
        "file_size_bytes": 2297146
      },
      "audio": {
        "audio_id": "7609044615715670814",
        "title": "original sound - marvel",
        "artist": "Marvel Entertainment",
        "is_original": true
      },
      "stats": {
        "views": 63259,
        "likes": 8504,
        "comments": 132,
        "shares": 258,
        "downloads": 0,
        "saves": 795
      },
      "is_advertisement": true,
      "is_pinned": false
    }
  ]
}

Video Search

GET https://tiktok-scraper.omkar.cloud/tiktok/videos/search
  • search_query (required) — Search keyword.
  • market (optional, default: us) — Two-letter region code.
  • max_results (optional, default: 10) — Number of results (max 30).
  • page_cursor (optional, default: 0) — Pagination cursor from a previous response.

Example:

import requests

response = requests.get(
    "https://tiktok-scraper.omkar.cloud/tiktok/videos/search",
    params={"search_query": "shinchan", "market": "us"},
    headers={"API-Key": "YOUR_API_KEY"}
)

print(response.json())

Sample Response:

{
  "videos": [
    {
      "video_id": "7596632332644355346",
      "region": "KR",
      "caption": "title: 짱구는 못말려 fanart timelapse #digitalart #shinchan #timelapse",
      "created_at": 1768728802,
      "duration_seconds": 15,
      "author": {
        "user_id": "7489111776035259410",
        "handle": "official_dongbo",
        "display_name": "officialdongbo",
        "avatar_url": "https://p16-sign-sg.tiktokcdn.com/..."
      },
      "media": {
        "video_url": "https://v16m.tiktokcdn.com/.../video.mp4",
        "file_size_bytes": 1291134
      },
      "audio": {
        "audio_id": "7218208687667316737",
        "title": "Neon-colored City",
        "artist": "Reo",
        "is_original": false,
        "album": "Neon-colored City"
      },
      "stats": {
        "views": 114425,
        "likes": 2527,
        "comments": 121,
        "shares": 369,
        "downloads": 30
      },
      "is_advertisement": false,
      "is_pinned": false
    }
  ]
}

FAQs

❓ What data does the API return?

Video Details returns per video:

  • Video ID, caption, region, creation timestamp, duration
  • Direct MP4 download URLs (standard, watermarked, HD)
  • File sizes for each video quality
  • Thumbnail URLs (cover, animated, original)
  • Author info (handle, display name, avatar)
  • Audio/music details (title, artist, play URL, album)
  • Engagement stats (views, likes, comments, shares, downloads, saves)
  • Advertisement and pinned flags

User Profile returns:

  • User ID, handle, display name, bio
  • Avatar URLs in 3 sizes (thumbnail, medium, large)
  • Verification and privacy status
  • Bio link, linked social accounts (Instagram, Twitter, YouTube)
  • Account creation date
  • Follower count, following count, total likes, video count

Trending Feed returns a list of currently trending videos in any region, each with full video data as described above.

User Videos returns a paginated list of a user's posted videos with full metadata.

Video Search returns videos matching a keyword, with full video data and pagination.

All in structured JSON. Ready to use in your app.

❓ How accurate is the data?

Data is pulled from TikTok in real time. Every API call fetches live data — not cached or stale results.

View counts, follower counts, video URLs, and engagement metrics reflect what's on TikTok right now.

❓ Can I download TikTok videos without watermarks?

Yes. The Video Details endpoint returns multiple MP4 download URLs:

  • video_url — watermark-free MP4
  • watermarked_video_url — with TikTok watermark
  • hd_video_url — highest quality available (when the video supports it)

All URLs are direct CDN links. No redirects, no scraping needed.

❓ What regions are supported?

Pass any two-letter country code as the market parameter. The Trending Feed and Video Search endpoints support regional filtering — get trending content from us, gb, jp, in, br, or any other TikTok market.

❓ Can I look up any TikTok user?

Yes. Pass any TikTok username (without the @) to the User Profile endpoint. You'll get their full profile info and stats — works for public accounts of any size, from small creators to brands like Marvel (14.9M followers).

❓ Tell me about Omkar Cloud.

We're an API services company with 20+ tools for OCR, document processing, and developer APIs. Some things we are proud of:

❓ How much does it cost?

  • Free — $0 — 5,000 queries/month
  • Starter — $25 — 100,000 queries/month
  • Grow — $75 — 1,000,000 queries/month
  • Scale — $150 — 10,000,000 queries/month

Why we're affordable: Low overhead. We run lean and pass the savings to you.

Note: You get 5,000 free queries every month. Most users find this covers their needs.

❓ How do I get a refund?

If the product doesn't meet your needs within 90 days, get a refund in 2 clicks.

  1. Go to Transactions Page
    Transactions Page

  2. Click "Request Refund"
    Request Refund Button

  3. Confirm by clicking Request Refund again. The amount will be refunded within 1-2 business days. We'll email you updates.
    Confirm Refund Request

No emails. No explanations. Simple 2-click process.

❓ Is there a catch in refunds?

No catch.

It's a simple 2-click process, exactly as described above.

Questions? We have answers.

Reach out anytime. We will solve your query within 1 working day.

Contact Us on WhatsApp about TikTok Scraper

Contact Us on Email about TikTok Scraper