TikTok Research API Alternative for Commercial Teams

Not eligible for the TikTok Research API? Compare TikTok's official APIs and the alternatives commercial teams use to get public TikTok data as JSON.

By Scrape Everything team · · 11 min read

Last updated: October 31, 2026

TL;DR: If you're building anything commercial, you can't use the TikTok Research API. TikTok's own FAQ answers "No" when asked whether commercial users can apply. The practical TikTok Research API alternative is a public-data API that returns what anyone can see on tiktok.com (profiles, recent videos, comments, captions, sounds and hashtag stats) as JSON, with no approval process.

What are the alternatives to the TikTok Research API?

There are four realistic routes: the Research API if you qualify, TikTok's other official APIs, a hosted public-data API, or an open-source scraper you run yourself (TikTokApi for Python, Playwright scripts). Which one fits depends more on who you are than on how much data you need. Here's how we'd choose:

If you...UseWhy
Are an eligible academic or non-profit and need keyword or date search across TikTokResearch APIOnly route with search and follower lists; slow to get
Are building a feature where users connect their own TikTokDisplay APIBuilt for exactly that; useless for other accounts
Need ad transparency data for the EUCommercial Content APIAds only, EU only for now
Need any public creator, video, comment thread, transcript or hashtag stat, commercially, this weekPublic-data API (ours or another)No approval, pay per call, no private data
Have engineers to spare and low volumeOpen-source scraperFree to run, but you own proxies and breakage every time TikTok changes its pages

A TikTok public video data API is a REST service that takes a username, video URL or hashtag and returns the publicly visible TikTok data for it as structured JSON, without TikTok OAuth or a developer program application.

Scrape Everything is one of these: a social media data API covering nine platforms, TikTok included. We're not affiliated with TikTok, and we only return public data. If you want vendor-by-vendor prices, our roundup of TikTok scraper APIs puts several side by side (prices verified October 2026).

Who is eligible for the TikTok Research API?

TikTok's Research API product page lists three groups, as of October 2026:

  • Academic institutions in the U.S., EEA, UK, Canada or Switzerland.
  • Not-for-profit and independent research bodies in the EU, with a beta for select researchers in the U.S., UK, Switzerland, Norway, Iceland and Liechtenstein.
  • Brazilian academic or not-for-profit organizations studying online youth safety.

Applicants also have to show relevant expertise, stay independent of commercial interests, disclose their funding and provide evidence of ethical review. A developer account on its own isn't enough.

The Research API FAQ is blunt about everyone else. Asked whether creators, advertisers or commercial users can apply, the answer is "No."

For most people reading this: you're out.

Even approved researchers work within a quota. The FAQ sets the general limit at 1,000 requests per day, for up to 100,000 records per day across the APIs, resetting at midnight UTC, and says TikTok can't grant exceptions. Follower and following lists have their own, separate allowance.

What do the Display, Business and Ads APIs actually return?

This is where a lot of people get stuck, because "TikTok API for commercial use" sounds like it should exist. It does, sort of, but each product answers a narrow question.

What does the TikTok Display API return?

The Display API overview describes three endpoints: /v2/user/info/ for a user's basic profile (open_id, avatar, display name, profile link, bio), /v2/video/list/ for that user's recently uploaded videos, and /v2/video/query/ for specific videos by ID. The scopes are user.info.basic and video.list, and the TikTok user has to authorize your app before you can call them.

That's the main TikTok Display API limitation: it returns the authorized user's own content, and nothing else. You can't point it at a competitor, a creator you're vetting or a trending video from someone who never logged into your app.

What about the Commercial Content API and the ads tools?

The Commercial Content API gives the public and researchers access to data on paid ads, advertisers and other commercial content, and TikTok says that in this phase it only covers EU countries. It's an ad transparency tool, not a general content API.

TikTok API for Business is for advertisers and their partners managing ad accounts, campaigns and reporting. Useful if you run ads. It won't give you an arbitrary creator's follower count or a video's comment thread.

How do the official TikTok APIs compare with a public-data API?

Official details come from developers.tiktok.com as of October 2026. Programs change, so check the source pages before you plan around them.

Research APIDisplay APICommercial Content APIScrape Everything
Who can use itEligible academics and non-profitsApps whose users log in with TikTokPublic and researchers, by applicationAnyone with an API key
Whose dataPublic content in the program's scopeOnly the authorized userAds and advertisers, EU onlyAny public profile, video, comment thread, sound or hashtag
Keyword or date searchYesNoNot its purposeNo
Follower listsYes, separate allowanceNoNoCounts only
ApprovalProposal and ethical reviewApp setup and user consentApplicationNone
Limits1,000 requests/day, 100,000 records/dayPer user, per scopePer program termsRate limits (see below)
CostNo fee stated in the FAQNo fee statedNo fee statedOne-time credit packs

Scrape Everything rate limits: 60 requests per minute and 5 concurrent on the free plan, rising to 300 per minute and 20 concurrent once you buy any pack. You sign in with Google or GitHub.

The search row is the honest reason to wait for Research API approval if you're eligible. Querying public videos by keyword, hashtag, region and date range is what that API is for, and we don't offer it. If your work is academic and you qualify, use it. For everyone else, the right-hand column is the realistic path.

How do I get a TikTok profile and recent videos in one request?

Use tiktok.posts. It returns a profile summary plus the newest videos (up to 12) with play counts, for 1 credit. If you only want the profile, tiktok.profile returns more profile fields (bio link, region, account creation date, total video count), also for 1 credit. Field lists are on the TikTok Profile Scraper API page, and you can try a lookup in the browser with the free TikTok profile viewer.

  1. Create an account with Google or GitHub and copy your key (it starts with ssk_live_). New accounts get 100 free credits, no payment details needed.
  2. Export it as SCRAPEEVERYTHING_API_KEY.
  3. POST a JSON body with username (a username, an @handle or a profile URL) and an optional limit from 1 to 12.
bash
curl -X POST https://api.scrapeeverything.com/v1/tiktok/posts \
  -H "Authorization: Bearer $SCRAPEEVERYTHING_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"username": "example_user", "limit": 3}'

A trimmed response looks like this (placeholder values):

json
{
  "success": true,
  "data": {
    "user_id": "6800000000000000000",
    "username": "example_user",
    "nickname": "Example User",
    "signature": "Cooking in 60 seconds",
    "is_verified": false,
    "is_private": false,
    "follower_count": 48200,
    "following_count": 310,
    "heart_count": 1290000,
    "avatar_url": "https://...",
    "posts": [
      {
        "id": "7400000000000000001",
        "link": "https://www.tiktok.com/@example_user/video/7400000000000000001",
        "description": "Three-ingredient pasta #cooking",
        "cover_url": "https://...",
        "play_count": 91500,
        "is_private": false
      }
    ],
    "posts_fetched": 3,
    "has_more": true
  },
  "meta": {
    "request_id": "req_...",
    "scraper": "tiktok.posts",
    "cached": false,
    "credits_charged": 1,
    "credits_remaining": 99
  }
}

Here's the same call in Python with a median-plays check. Comparing typical views against follower count is a quick way to spot an account whose audience doesn't actually watch.

python
import os
import statistics

import requests

API = "https://api.scrapeeverything.com"
headers = {"Authorization": f"Bearer {os.environ['SCRAPEEVERYTHING_API_KEY']}"}

resp = requests.post(
    f"{API}/v1/tiktok/posts",
    headers=headers,
    json={"username": "example_user", "limit": 12},
    timeout=60,
)
resp.raise_for_status()
data = resp.json()["data"]

plays = [p["play_count"] for p in data["posts"] if p.get("play_count") is not None]
followers = data.get("follower_count") or 0
if plays and followers:
    median = int(statistics.median(plays))
    print(f"{data['username']}: median plays {median:,} vs {followers:,} followers "
          f"({median / followers:.2f}x)")

If you re-run a script while developing, add "cache_days": 7 to the body. A repeat request for the same target within that window (1 to 14 days) returns the stored result for 0 credits. Leave it out for daily snapshots: without cache_days, every request returns live data, which is what a tracking job needs.

How do I get comments, transcripts and hashtag data?

Each of these is its own endpoint with a small JSON body. The video, comments and transcript endpoints need full tiktok.com video URLs; short share links (vm.tiktok.com, tiktok.com/t/...) aren't supported, and IDs should be sent as strings.

EndpointInputWhat you getCredits
tiktok.videourl, video or idCaption, publish time, like/comment/share/play/save counts, duration, author, music1
tiktok.commentsurl or id, limit 1 to 100Top-level comments with likes, reply counts, pinned and creator-liked flags, commenter1
tiktok.transcripturl or id, optional langTimestamped caption segments plus full text and available languages1
tiktok.hashtaghashtag (with or without #, or a tag URL)Total video and view counts, description, cover, commerce flag1
tiktok.musicurl or id, limit 1 to 12Sound title, artist, duration, original-sound flag, video count, top videos using it2

If you're a brand team, the transcript endpoint is the one to look at first. Captions tell you what a creator actually said about your product, and that never shows up in like counts or hashtags.

Before you build on these:

  • Comments don't include replies; reply_count tells you how many each comment has. A video with comments turned off returns 404 with code COMMENTS_DISABLED. The comment_count TikTok reports can include comments that aren't publicly listed, so you may get fewer than that number.
  • Transcripts read the video's existing captions (creator-added or auto-generated). It's not speech-to-text. Videos without captions return 404 with NO_TRANSCRIPT. Our guide to pulling TikTok transcripts as JSON covers languages and edge cases, and the TikTok transcript endpoint page has the field list.
  • The hashtag endpoint returns stats, not the hashtag's videos. Daily snapshots of video_count and view_count give you a growth curve. See the TikTok hashtag endpoint.

A transcript request:

bash
curl -X POST https://api.scrapeeverything.com/v1/tiktok/transcript \
  -H "Authorization: Bearer $SCRAPEEVERYTHING_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://www.tiktok.com/@example_user/video/7400000000000000001", "lang": "en"}'
json
{
  "success": true,
  "data": {
    "video_id": "7400000000000000001",
    "language": "eng-US",
    "is_auto_generated": true,
    "available_languages": [{ "code": "eng-US", "is_auto_generated": true }],
    "segments": [
      { "start": 0.0, "duration": 2.4, "text": "Okay, three ingredients." },
      { "start": 2.4, "duration": 3.1, "text": "Pasta, butter, parmesan." }
    ],
    "text": "Okay, three ingredients. Pasta, butter, parmesan.",
    "segment_count": 2
  },
  "meta": { "credits_charged": 1, "cached": false }
}

For a tour of every TikTok endpoint with more patterns, read our TikTok scraper API guide. The full list lives on the TikTok scraper hub.

If you'd rather not write HTTP code, the same endpoints are available through our MCP server (@scrapeeverything/mcp, listed in the official MCP Registry as io.github.scrapeeverything/mcp), the CLI (npx scrapeeverything), an n8n community node and the OpenAPI spec at https://scrapeeverything.com/openapi.json.

What does a TikTok Research API alternative cost per 1,000 requests?

Most TikTok endpoints cost 1 credit per successful request; tiktok.music costs 2. Packs are one-time purchases and credits never expire. Failed requests are refunded automatically, and cache hits are free.

PackPriceCreditsPer 1,000 requests (1-credit endpoints)Per 1,000 sound requests
Builder$3925,000$1.56$3.12
Growth$119100,000$1.19$2.38
Scale$449500,000$0.90$1.80

Enterprise volumes of 1M+ credits are available on request. Payments are in crypto.

Here's a commercial stack priced end to end:

WorkloadCallsCredits/monthCost/month at Builder rate
Vet 150 new creators: profile + posts + 5 × video + 2 × comments + 2 × transcript11 per creator1,650$2.57
Daily posts snapshot of 200 creators200 × 306,000$9.36
Daily hashtag stats for 50 tags50 × 301,500$2.34
Weekly music check on 40 sounds40 × 4 × 2 credits320$0.50

All four together come to 9,470 credits a month: about $14.77 at the Builder rate, or about $11.27 a month if you buy a Growth pack, which covers roughly 10.5 months of it. The credit calculator runs the same math on your own volumes, and current numbers are always on the pricing page.

For contrast, the Research API's general quota of 1,000 requests a day (about 30,000 a month) is more volume than this whole stack, at no stated fee. If you're eligible, that's hard to beat. Most readers aren't, so the real comparison is against the other rows in the routes table at the top.

What can't a public-data API do?

Plenty, and you should know this before you pick one.

  • No private accounts. If an account is private, you get the profile flags and nothing behind them. We don't log in, and we don't use anyone's session.
  • No follower lists. The Research API offers follower and following lists to eligible researchers. We return counts, not the accounts.
  • No full post history in one call. tiktok.posts returns the newest publicly visible videos, up to 12. Private, removed or region-restricted videos are missing. For older videos you need their URLs and tiktok.video.
  • No keyword search or For You feed. There's no keyword video search or trending feed endpoint for TikTok. Hashtag stats and sound pages are the closest signals.
  • No replies. Comments are top-level only.
  • No say over TikTok. We aren't affiliated with TikTok, and TikTok can change its pages at any time.

There's also a legal side. TikTok's Terms of Service, data protection law and your own use case all matter, and public data can still be personal data. We stick to public pages without logging in, but that doesn't settle the question for you. Our post on whether scraping public social media data is legal lists what to ask your counsel.

If those limits work for your project, the fastest test is a real request. Get 100 free credits and run the curl above against a creator you already track.

FAQ

Can a company use the TikTok Research API?

No. TikTok's Research API FAQ says creators, advertisers and commercial users aren't eligible. Access is limited to qualifying academic institutions and not-for-profit research bodies in the regions TikTok lists, with ethical review and funding disclosure required.

How do I get TikTok data without the official API?

Use a public-data API that returns what's visible on public TikTok pages. With Scrape Everything you POST a username, video URL or hashtag to endpoints like /v1/tiktok/profile or /v1/tiktok/video and get JSON back. No TikTok developer account or OAuth is involved.

Can I search TikTok videos by keyword without the Research API?

Not with Scrape Everything. There's no TikTok keyword search endpoint; you start from a username, video URL, sound or hashtag. Keyword and date-range search across public videos is a Research API feature, and it's only available to eligible researchers.

Can the TikTok Display API read other creators' videos?

No. The Display API returns the profile and videos of a user who has logged in to your app with TikTok and granted the user.info.basic and video.list scopes. It's meant for displaying a user's own content, not for researching other accounts.

Does Scrape Everything return data from private TikTok accounts?

No. It returns public data only, uses no logins and doesn't access private accounts. For a private profile you'll see that is_private is true, and its videos won't be returned.

How many free credits do I get?

Every new account gets 100 free credits on signup, with no payment details needed. Most TikTok endpoints cost 1 credit, so that covers around 100 profile, video, comment or transcript lookups.

Not ready to sign up? Look up any public account in the free TikTok profile viewer first.

More from the blog

Start with 100 free credits.

Continue with Google, create an API key and send your first request in under a minute.

Get 100 free credits