TikTok API

TikTok influencer data, no login

The TikTok API reads public tiktok.com the way a logged-out visitor sees it, in 21 actions.

no credit card1,000 free credits · instant API key · pay by card or crypto
Missing a TikTok endpoint, or need a source we don't have yet?Contact us real people · same-day reply.
T
/tiktok/v1

21 active endpoints. Every call is 1 credit.

  • POST/tiktok/v1/user_profile
  • POST/tiktok/v1/user_videos
  • POST/tiktok/v1/user_reposts
  • POST/tiktok/v1/user_followers
  • POST/tiktok/v1/video_detail
  • POST/tiktok/v1/comments
  • POST/tiktok/v1/comment_replies
  • +14 more

What TikTok endpoints does ReefAPI ship?

21 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.

21 endpoints

user_profile

1 cr

A TikTok account's public profile.

required
username
optional
—

user_videos

1 cr

The videos an account posted, newest first (pinned videos flagged), with full stats, music an…

required
—
optional
username, sec_uid, cursor, count

user_reposts

1 cr

Videos an account reposted (public reposts tab), with full stats.

required
—
optional
username, sec_uid, cursor, count

user_followers

1 cr

Accounts that follow a user (public follower list), newest followers first, each with bio and…

required
—
optional
username, sec_uid, cursor, count

video_detail

1 cr

One video or photo post.

required
video_id
optional
—

comments

1 cr

Top-level comments on a video with text, likes, reply count, author and whether the creator l…

required
video_id
optional
cursor, count

comment_replies

1 cr

Replies under one comment (the comment id comes from comments).

required
video_id, comment_id
optional
cursor, count

search_videos

1 cr

Videos matching a keyword, as TikTok's logged-out search ranks them.

required
keyword
optional
cursor, search_id, region, tab

search_users

1 cr

Accounts matching a keyword, with follower counts and bios.

required
keyword
optional
cursor, search_id, region

hashtag_info

1 cr

A hashtag's page data.

required
hashtag
optional
—

hashtag_videos

1 cr

Videos under a hashtag, as the hashtag page lists them.

required
—
optional
hashtag, hashtag_id, cursor, count

music_info

1 cr

A sound's page data.

required
music_id
optional
—

music_videos

1 cr

Videos that use a sound.

required
music_id
optional
cursor, count

trending

1 cr

TikTok's Explore page.

required
—
optional
count

feed

1 cr

The logged-out For-You feed.

required
—
optional
count

search_photos

1 cr

Photo (slideshow) posts matching a keyword, from TikTok's logged-out Photo search tab, with i…

required
keyword
optional
cursor, search_id, region

user_playlists

1 cr

A creator's public playlists (TikTok 'mixes').

required
—
optional
username, sec_uid, cursor, count

playlist_videos

1 cr

The videos in one public playlist, in playlist order.

required
playlist_id
optional
cursor, count

user_stories

1 cr

An account's active stories (TikTok keeps them 24 hours), newest first, each as a full video…

required
—
optional
username, user_id, cursor

user_live

1 cr

Whether an account is broadcasting LIVE right now, and its current (or last) LIVE room.

required
username
optional
—

related_videos

1 cr

Videos TikTok recommends next to a given video ('You may like').

required
video_id
optional
count

Every parameter, every allowed value →

TikTok API

3 of 21 endpoints, ready to run

View docs ↗

The 30 newest videos of an account

1 credit1 required · 1 optional
POST/tiktok/v1/user_videos
idle
// Press "Try it" and this pane shows exactly what the
// live site returned this second — including an empty
// result, if that is the truth. No key, no account.

How the TikTok API works

TikTok is a normal ReefAPI surface — the same four rules that hold for every other engine on the key.

01
Authenticate
x-api-key header

No OAuth app, no request signing, no per-site account. One key covers all 600 engines.

02
Call
POST /tiktok/v1/…

Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.

03
Pay
1 credit per call

Credits, not seats. Failed and blocked calls are never charged, and nothing is cached: every call reads the source live.

04
Read
{ ok, data, meta, error }

One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.

A daily influencer report

Two calls per influencer per day, three more for comments if you want them.

01user_profile?username=khaby.lame
GET/tiktok/v1/user_profile?username=khaby.lame

Followers 162,971,182, likes 2,692,210,185, 1,357 videos; has_story and is_live.

02user_videos?username=khaby.lame&count=30
GET/tiktok/v1/user_videos?username=khaby.lame&count=30

The 30 newest videos with exact plays, likes, comments, shares and saves, plus paid_partnership and promotional_content.

03comments?video_id=<id>&count=20
GET/tiktok/v1/comments?video_id=<id>&count=20

Top comments of a new video with likes, reply counts and authors.

04user_stories?username=<user>
GET/tiktok/v1/user_stories?username=<user>

Only when has_story is true: the stories currently up, with stats.

One row per influencer per day with follower growth, every new video's performance, sponsored posts flagged, and stories and LIVE sessions caught.

request
curl -X POST https://api.reefapi.com/tiktok/v1/user_videos \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"username":"tiktok","count":10}'
response envelope
{
  "ok": true,
  "data": { … },
  "meta": {
    "api": "tiktok",
    "endpoint": "user_videos",
    "mode": "live",
    "latency_ms": …,
    "record_count": …
  },
  "error": null
}

What a TikTok field actually contains

Fields that read differently from how they look. Every row was measured against live tiktok.com on 2026-11-03.

FieldWhat it holds
stats.play_count, like_count, ...Exact counts from TikTok's statsV2 strings. TikTok's older stats block rounds and overflows them (khaby.lame: 163,000,000 followers there against 162,971,182 exact, and heartCount -1,602,757,111 against 2,692,210,185 likes); both blocks are returned as sent.
paid_partnershiptrue when the creator switched on TikTok's branded-content disclosure (adLabelVersion 2). tiktok.com shows these videos with a "Paid partnership" tag: 25 of 25 rendered videos did, and 26 of 26 videos without the flag showed no tag.
partner_brandThe brand handle TikTok prints after the tag ("Paid partnership @verizon"). Often empty: TikTok shows the tag without a brand.
promotional_contenttrue when the creator promotes their own brand (brandOrganicType). tiktok.com shows "Promotional content": 10 of 10 rendered videos did.
disclosure_labelThe tag text tiktok.com shows a US viewer. On shop-affiliate videos it reads "Eligible for commission"; TikTok's shop flag behind that wording changes between responses for the same video, so the wording can differ from one call to the next while paid_partnership stays the same.
is_shop_video, has_product_anchorTikTok's e-commerce flag and the presence of a TikTok Shop product anchor. The product itself (title, price) is not in any logged-out response.
is_adTikTok's own isAd flag, returned as sent. tiktok.com shows no label for it (0 of 8 such videos had a tag); it is not a paid-ad marker.
has_story, user_storieshas_story comes from the profile page. Stories last 24 hours; user_stories returns 1 to 4 per page with a cursor.
private_accountOn user_videos, user_followers and user_stories: true when the account is private. TikTok then returns an empty list rather than an error.
is_live, user_liveuser_profile.is_live reads the profile page and can lag (13 of 15 live accounts had it set); user_live asks TikTok's LIVE endpoint, which answered for 139 of 139 accounts checked.
response_extraTikTok's own envelope fields for the call (log ids, search ad_info, comment top_gifts), as sent.

Video and image URLs are signed CDN links that expire after some hours: store the media, not the URL. Search runs from Europe because TikTok asks for a login to search from the US; region gb returns English-market results.

TikTok coverage, measured

Every number below was read from live tiktok.com through the API on 2026-11-03, without a login.

Actions

21 actions, 10 calls each on different inputs: 209 of 210 succeeded (one For You feed call lost its connection three times).

Influencer feed

20 of 20 influencers returned their profile and 31 newest videos on average, two calls each.

Paid partnerships

paid_partnership matched the tag tiktok.com shows on 25 of 25 rendered sponsored videos and on 26 of 26 videos without one; promotional_content on 10 of 10.

Stories

55 of 400 creators had a story up; all 59 accounts with a story returned it.

LIVE

139 accounts checked, 24 live, 69 with an ended broadcast, 46 never live; no call was blocked.

Search

Video, user and photo search 10 of 10 each, the Videos tab (tab=videos) 10 of 10 with 12 videos a page; region gb returned 57 of 64 English videos.

Not available

Following lists, liked videos, products pinned in a LIVE shopping room, the product behind a shop video and paid feed ads are only shown to logged-in users.

What people build with TikTok

The jobs this data is most often used for.

21

endpoints

1

credit per call

01

Track a list of influencers every day: followers, new videos and per-video plays, likes, comments and shares.

02

Flag paid partnerships and promotional posts across a creator roster.

03

Watch competitors' accounts for stories and LIVE broadcasts.

04

Pull comment threads under a brand's or a creator's videos.

What TikTok data costs

The cheapest call here is 1 credit, so $15/mo (Pro) buys 10,000 of them — $1.50 per 1,000 credits. Credits roll over and never expire, and failed or blocked calls are not charged.

Full pricing →
$0.67–$1.50 / 1,000 credits
  • 1,000 free credits on signup, no card
  • One key, all 600 APIs, one credit pool
  • Failed and blocked calls are never charged
  • Credits roll over and never expire

Call it in two lines

Sign up, get 1,000 credits and one key that works on every engine. Then this is the whole protocol.

curl
curl -X POST https://api.reefapi.com/tiktok/v1/user_videos \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"username":"tiktok","count":10}'
python
import requests

r = requests.post(
    "https://api.reefapi.com/tiktok/v1/user_videos",
    headers={"x-api-key": REEF_KEY},
    json={
  "username": "tiktok",
  "count": 10
},
)
print(r.json()["data"])
FAQ

Have a question? We got answers.

The questions people actually ask before wiring up TikTok.

Get a free key →
Do I need a TikTok account or a login?▾

No. Everything is what a logged-out visitor sees on tiktok.com. Nothing uses an account.

Can I track an influencer's posts every day?▾

Yes. user_profile plus user_videos (the 30 newest videos with exact counts) is two calls per account. On 2026-11-03, 20 of 20 influencers came back this way, 31 videos each on average.

Does it show sponsored or paid-partnership videos?▾

Yes, for creator partnerships: paid_partnership and partner_brand follow the "Paid partnership" tag tiktok.com shows, and promotional_content follows the "Promotional content" tag. Paid ads in the For You feed are only shown to logged-in users, so they are not in the data.

Can I see which TikTok Shop products a video promotes?▾

Only that it has a shop product attached (has_product_anchor) and whether TikTok marks it as a shop video. The product title and price are not in any logged-out tiktok.com response.

Can I get stories?▾

Yes. user_stories returns an account's active stories with full stats; has_story on the profile tells you when to call it. On 2026-11-03, 59 of 59 accounts with a story returned it.

Can I check if someone is LIVE?▾

Yes. user_live returns whether the account is live now, the room title, current viewers, total entries and start time (on 2026-11-03: 24 of 139 accounts checked were live).

What is not available?▾

The list of accounts someone follows, the videos they liked, products pinned in a LIVE shopping room and paid feed ads. TikTok only shows these to logged-in users or over its live app channel.

Why is the response so large?▾

Every field TikTok sends is returned, including the video bitrate and cover variants. A page of 30 videos is about 840 KB of JSON (about 100 KB gzipped).

What is the TikTok API?▾

TikTok API is a ReefAPI endpoint group for public tiktok profiles, videos with full stats, comments, stories, live status and paid-partnership flags, no login. It returns live JSON through POST requests under /tiktok/v1.

Is the TikTok API free to try?▾

Yes. ReefAPI starts with 1,000 free credits, no card required. TikTok calls use the same shared credit balance as every other ReefAPI engine.

Do I need a TikTok login or account?▾

No login to TikTok is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the TikTok data?▾

The page example is captured from a live user_profile call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the TikTok API use?▾

TikTok actions currently cost 1 credit per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.

Can I call TikTok from an AI assistant or MCP client?▾

Yes. Connect ReefAPI once through MCP and your assistant can call tiktok actions with the same key, credit pool and JSON envelope used by normal REST requests.

15 Social Media APIs on the same key

One key, one credit pool, one response envelope. If you are pulling TikTok, you are one call away from the rest of the category — no second contract, no second integration.

Already paying for something else?TikTok vs Apify

Need something this API does not do?

Name the endpoint, the field, or a source we do not carry yet. We ship new APIs every week and you would be first to get the key. Real people read every message and reply the same day.

0/4000

No account needed · we reply from [email protected]

Try it on your own data before you pay anything

The call above is the real endpoint, not a recording. A free key gives you 1,000 credits, the other 599 APIs, and the same envelope everywhere.

Endpoints, parameters and credit costs on this page are read from the live catalog and cannot drift from what the API accepts. Field notes were captured on 2026-11-03.