Skip to content
scrapeatlas.Dashboard

Get a TikTok profile

Try in Playground

Read a public profile from the server-rendered profile document: TikTok's user record, stats and statsV2. A numeric user_id is resolved through TikTok's own share redirect.

GET/v1/tiktok/profilex-api-key
x-api-keystringrequiredheader

Your ScrapeAtlas customer key. Create one on /account/ and set SCRAPEATLAS_API_KEY.

Query parameters
2
handlestringquery

TikTok username, 1–24 letters, digits, underscores or periods; a leading @ is accepted; case-insensitive. Provide either handle or user_id.

max 25 chars

Exampleexample
user_idstringquery

TikTok numeric user ID (resolved through www.tiktok.com/share/user/{id}).

Response fields
27
requestIdstring

Request correlation UUID.

Upstream calls made (the document, redirect hops, feed calls, the caption file, and every retried session), decoded bytes delivered to the parser and elapsed milliseconds.

accounting.upstreamRequestsinteger

Always included.

≥ 0

accounting.responseBytesinteger

Always included.

≥ 0

accounting.durationMsnumber

Always included.

≥ 0

successboolean

True when usable data is returned; inspect status and coverage for omissions.

statusenum

success, partial, failed, or challenged. HTTP 200 can be partial.

one of: success, partial

sourceUrlstring

The www.tiktok.com document the operation was issued from (profile, video, live, search, tag, music or explore page), after accepted redirects.

absolute HTTPS URL

fetchedAtstring

UTC retrieval timestamp.

source is document (server-rendered state) or public_api (a feed call); complete means nothing was capped; warnings name each cap or fallback.

coverage.sourceenum

Always included.

one of: document, public_api

coverage.completeboolean

Always included.

coverage.warningsenum[]

Always included.

TikTok's web user record: id, uniqueId, nickname, signature, secUid, verified, privateAccount, avatarLarger/Medium/Thumb, bioLink, commerceUserInfo, createTime, language, region-independent settings and flags, passed through unchanged.

user.idstring

Always included.

user.uniqueIdstring

Always included.

user.nicknamestring

Always included.

user.secUidstring

Always included.

user.verifiedboolean

Always included.

user.privateAccountboolean

Always included.

followerCount, followingCount, heart, heartCount, videoCount, diggCount, friendCount as the document rounds them.

stats.followerCountinteger

Always included.

≥ 0

stats.followingCountinteger

Always included.

≥ 0

stats.heartCountinteger

Always included.

≥ 0

stats.videoCountinteger

Always included.

≥ 0

statsV2object

The same counters as exact decimal strings.

itemListJSON[]

Always empty.

HTTP 200 returns the success variant. Check status: partial means usable data with warnings, and failed or challenged requests carry a failure object described in Errors & responses.

Error codes
14
HTTPfailure.codeMeaning
400invalid_requestMissing, duplicate, ambiguous or unsupported parameters, unsupported URL forms, handles, cursors, regions, sorts or languages.
401unauthorizedInvalid API key.
403restricted_pageTikTok restricts the account or post (private video, private account, region block, or a redirect to its login page).
404not_foundUnknown or removed account, post, hashtag or sound, a post without captions, or a TikTok status code naming a missing resource.
429upstream_rate_limitedTikTok rate limited the request.
502upstream_challengedTikTok answered its verification page, an HTTP 401/403, a document without the app state, or refused a feed call with an empty body (status challenged).
502unsafe_redirectTikTok redirected outside the requested resource.
502unsupported_pageLayout, identity or feed-envelope checks failed, or a non-JSON feed answer was served.
502response_too_largeThe upstream response exceeded 4 MiB (512 KiB for caption files).
502payload_too_complexThe embedded JSON exceeded parsing limits.
502request_limitThe upstream call budget was exhausted.
502upstream_errorNetwork failure, a stalled exit, an unexpected upstream status after one retry, or an unexpected TikTok status code.
503busyAll retrieval slots are occupied.
504timeoutThe 90-second deadline elapsed.