Riken ScraperDocs

Profile

GEThttps://scraper.riken.me/v1/tiktok/profile
Cost: 1 creditLiveErrors are free

Try it

Paste your key under Authorization and send a live request to https://scraper.riken.me. The key stays in this browser tab only (session storage, cleared when the tab closes) and is sent nowhere else. A live request spends credits like any other.

GET
/v1/tiktok/profile

One TikTok account: its user record and its counts. stats holds TikTok's rounded counts and statsV2 the exact counts as strings. itemList is always empty, as on ScrapeCreators.

An account that does not exist is a 200, charged answer with account_deactivated: true, as ScrapeCreators answers it. A private account is the normal body with user.privateAccount: true, charged.

When TikTok's profile page fails and we fall back to the embed, some user settings and counts can be null.

Latency (our load test, 31 Oct 2026, 40 requests/s on one box): p50 1.14 s, p95 4.51 s.

Headers

NameTypeRequiredDescriptionExample
x-api-keystringone of the auth headersYour API key. If both headers are sent, `x-api-key` wins.sk_...
Authorizationstringone of the auth headers`Authorization: Bearer <key>`, the same key.Bearer sk_...
Idempotency-KeystringnoAny string up to 255 characters. Makes a retry safe for 24 hours; bound to this API key and the request's parameters.profile-dagestantrainingcamp-2026-11-01

Query parameters

NameTypeRequiredDescriptionExample
handlestringnoThe TikTok handle. Required unless `user_id` is given. A leading `@` is removed; case does not matter. Letters, digits, `_` and `.` only, at most 64 characters. With both `handle` and `user_id`, `user_id` is ignored. dagestantrainingcamp
user_idstringnoTikTok's numeric user id, at most 20 digits, used only when `handle` is absent. Works only for accounts in our index: an unknown id is `400 unsupported_parameter` ("pass handle"), and an id whose handle has changed is `400 unsupported_parameter` too. Both free, both count toward the free-answer limit. 6918108151024829445
cache_max_age1d | 3d | 7d | 14d | 30dnoAccepted and ignored; we always fetch live. Any other value is `400 bad_request`.
trimbooleannoAccepted and ignored. Must be `true` or `false` (else `400 bad_request`).
regionstringnoAccepted and ignored. Not validated on this route (any value passes).

Status codes

StatusChargedMeaning
200ChargedThe profile, or the not-found answer. Charged either way.
400FreeA parameter is missing, malformed, or one we cannot honour yet. Free.
401FreeMissing, unknown or revoked key. Free.
402FreeThe key cannot cover this request. needed_credits is the price. Free.
409FreeA request with this Idempotency-Key and parameters is still running. Free; retry after Retry-After (1 s).
429Freeover_capacity: no capacity within the time limit, or the server is restarting (30 s). rate_limited: the free-answer limit (this answer would have been free). Free; wait Retry-After seconds.
500FreeOur fault. Free; retry and quote X-Request-Id.
502FreeTikTok's answer failed or could not be read (including accounts TikTok withholds from logged-out views). Free.
503FreeThe route has no price yet, so it does not serve. Free.
504FreeNo answer within the time limit (180 s; audience 300 s). Free.

Response Body

The profile, or the not-found answer. Charged either way.

application/json
  1. response
success*unknown
credits_charged*Credits

An amount in credits, as an exact JSON decimal (1, 0.002), never a rounded float.

Range0 <= value
credits_remaining*CreditsRemaining

What the key can still spend after this request.

user*

The account record, ScrapeCreators' keys (internal/sccontract/profile.go). Settings and counts can be null when we fall back to the embed.

stats*

TikTok's rounded counts.

statsV2*

The exact counts, as strings.

itemList*array<any>

Always empty, as on ScrapeCreators.

Itemsitems <= 0

Example request

# A call can be held open up to 180 s (audience: 300 s). Set a client timeout above that.curl -X GET 'https://scraper.riken.me/v1/tiktok/profile?handle=dagestantrainingcamp&user_id=6918108151024829445' \  -H 'Idempotency-Key: profile-dagestantrainingcamp-2026-11-01'
Example Response
{  "credits_charged": 1,  "credits_remaining": 999,  "itemList": [],  "stats": {    "diggCount": 0,    "followerCount": 8740,    "followingCount": 125,    "friendCount": 41,    "heart": 275500,    "heartCount": 275500,    "videoCount": 48  },  "statsV2": {    "diggCount": "0",    "followerCount": "8740",    "followingCount": "125",    "friendCount": "41",    "heart": "275546",    "heartCount": "275546",    "videoCount": "48"  },  "success": true,  "user": {    "UserStoryStatus": 0,    "avatarLarger": "https://p16-common-sign.tiktokcdn-us.com/tos-maliva-avt-0068/23acee9247d9576ff8a4626add13fbfd~tplv-tiktokx-cropcenter:1080:1080.jpeg?dr=9640&refresh_token=7231d9a6&x-expires=1793563200&x-signature=c41FazTETsYo8P%2BTmuPfZjEZAFI%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=useast8",    "avatarMedium": "https://p16-common-sign.tiktokcdn-us.com/tos-maliva-avt-0068/23acee9247d9576ff8a4626add13fbfd~tplv-tiktokx-cropcenter:720:720.jpeg?dr=9640&refresh_token=69603e15&x-expires=1793563200&x-signature=scJlakKQv0P9I46Wo9%2FV5pfatIw%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=useast8",    "avatarThumb": "https://p16-common-sign.tiktokcdn-us.com/tos-maliva-avt-0068/23acee9247d9576ff8a4626add13fbfd~tplv-tiktokx-cropcenter:100:100.jpeg?dr=9640&refresh_token=95abdb08&x-expires=1793563200&x-signature=8OwnKAnW8MdgUe9z%2FBger1%2FN%2FZQ%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=useast8",    "bioLink": {      "link": "Dagestantrainingcamp.com",      "risk": 3    },    "canExpPlaylist": true,    "commentSetting": 0,    "commerceUserInfo": {      "commerceUser": false    },    "createTime": 1610747711,    "downloadSetting": 0,    "duetSetting": 0,    "eventList": [],    "followingVisibility": 1,    "ftc": false,    "id": "6918108151024829445",    "isADVirtual": false,    "isEmbedBanned": false,    "isOrganization": 0,    "language": "fr",    "nickNameModifyTime": 1777223133,    "nickname": "Dagestan Training Camp",    "nowInvitationCardUrl": "",    "openFavorite": false,    "privateAccount": false,    "profileEmbedPermission": 1,    "profileTab": {      "showMusicTab": false,      "showPlayListTab": false,      "showQuestionTab": false    },    "recommendReason": "",    "relation": 0,    "roomId": "",    "secUid": "MS4wLjABAAAAynBXrV7vRUXrvgYYr-msCZbjkFi9Xh-AiK6DkKzopQIeqh7Ppoqv81VHPZfD5xf6",    "secret": false,    "shortDramaCreator": {},    "shortId": "",    "signature": "🥊 MMA & Wrestling Training Camp in Dagestan\n⛰️For all level (beginner to professional)\n\nCheck our website ⬇️",    "stitchSetting": 0,    "suggestAccountBind": false,    "ttSeller": false,    "uniqueId": "dagestantrainingcamp",    "uniqueIdModifyTime": 0,    "verified": false  }}