TikTok Scraper

TikTok Scraper

TLDR

  • Get TikTok video details with download URLs, user profiles, trending feeds, and search results — all via a simple REST API.
  • 100 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.

▶️ Video Tutorial

Watch the complete API walkthrough:

TikTok Scraper API Walkthrough

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. Free Plan

100 queries per month. Free. No credit card required.

3. Affordable Pricing

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

  • $16 gets you 3K queries/month
  • $48 gets you 15K queries/month
  • $148 gets you 75K 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 100 free requests every month for detailed TikTok data.

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.
  • sort_by (optional, default: relevance) — Sort order: relevance, most_liked, latest.
  • publish_time (optional, default: all) — Publish time filter: all, past_24_hours, this_week, this_month, last_3_months, last_6_months.

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. Supports sorting by relevance, likes, or date, and filtering by publish time.

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 — 100 queries/month
  • Starter — $16 — 3,000 queries/month
  • Grow — $48 — 15,000 queries/month
  • Scale — $148 — 75,000 queries/month

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

Note: You get 100 free queries every month.

❓ 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