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... | Use | Why |
|---|---|---|
| Are an eligible academic or non-profit and need keyword or date search across TikTok | Research API | Only route with search and follower lists; slow to get |
| Are building a feature where users connect their own TikTok | Display API | Built for exactly that; useless for other accounts |
| Need ad transparency data for the EU | Commercial Content API | Ads only, EU only for now |
| Need any public creator, video, comment thread, transcript or hashtag stat, commercially, this week | Public-data API (ours or another) | No approval, pay per call, no private data |
| Have engineers to spare and low volume | Open-source scraper | Free 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 API | Display API | Commercial Content API | Scrape Everything | |
|---|---|---|---|---|
| Who can use it | Eligible academics and non-profits | Apps whose users log in with TikTok | Public and researchers, by application | Anyone with an API key |
| Whose data | Public content in the program's scope | Only the authorized user | Ads and advertisers, EU only | Any public profile, video, comment thread, sound or hashtag |
| Keyword or date search | Yes | No | Not its purpose | No |
| Follower lists | Yes, separate allowance | No | No | Counts only |
| Approval | Proposal and ethical review | App setup and user consent | Application | None |
| Limits | 1,000 requests/day, 100,000 records/day | Per user, per scope | Per program terms | Rate limits (see below) |
| Cost | No fee stated in the FAQ | No fee stated | No fee stated | One-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.
- 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. - Export it as
SCRAPEEVERYTHING_API_KEY. - POST a JSON body with
username(a username, an @handle or a profile URL) and an optionallimitfrom 1 to 12.
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):
{
"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.
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.
| Endpoint | Input | What you get | Credits |
|---|---|---|---|
tiktok.video | url, video or id | Caption, publish time, like/comment/share/play/save counts, duration, author, music | 1 |
tiktok.comments | url or id, limit 1 to 100 | Top-level comments with likes, reply counts, pinned and creator-liked flags, commenter | 1 |
tiktok.transcript | url or id, optional lang | Timestamped caption segments plus full text and available languages | 1 |
tiktok.hashtag | hashtag (with or without #, or a tag URL) | Total video and view counts, description, cover, commerce flag | 1 |
tiktok.music | url or id, limit 1 to 12 | Sound title, artist, duration, original-sound flag, video count, top videos using it | 2 |
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_counttells you how many each comment has. A video with comments turned off returns 404 with codeCOMMENTS_DISABLED. Thecomment_countTikTok 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_countandview_countgive you a growth curve. See the TikTok hashtag endpoint.
A transcript request:
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"}'{
"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.
| Pack | Price | Credits | Per 1,000 requests (1-credit endpoints) | Per 1,000 sound requests |
|---|---|---|---|---|
| Builder | $39 | 25,000 | $1.56 | $3.12 |
| Growth | $119 | 100,000 | $1.19 | $2.38 |
| Scale | $449 | 500,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:
| Workload | Calls | Credits/month | Cost/month at Builder rate |
|---|---|---|---|
Vet 150 new creators: profile + posts + 5 × video + 2 × comments + 2 × transcript | 11 per creator | 1,650 | $2.57 |
Daily posts snapshot of 200 creators | 200 × 30 | 6,000 | $9.36 |
Daily hashtag stats for 50 tags | 50 × 30 | 1,500 | $2.34 |
Weekly music check on 40 sounds | 40 × 4 × 2 credits | 320 | $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.postsreturns the newest publicly visible videos, up to 12. Private, removed or region-restricted videos are missing. For older videos you need their URLs andtiktok.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.