TikTok APIs - User Profile (V1)
prod-global
GET
/api/tiktok/get-user-detail/v1
Retrieve detailed profile information for a specific TikTok user by user ID. The API returns comprehensive data including nickname, unique ID, avatar, bio, follower/following counts, total likes, and other engagement indicators.
Typical use cases:
- Influencer profiling and audience analysis.
- Account performance tracking and growth monitoring.
- Identifying verified status and official accounts.
Notes:
- You must provide either 'uniqueId' or 'secUid'.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
token | query | string | Yes | Security token for API access. |
uniqueId | query | string | No | The unique handle/username of the user (e.g., 'tiktok'). |
secUid | query | string | No | The unique security ID of the user. |
Code Samples
💡 Environment Note
Default samples use https://api.justoneapi.com (prod-global). For users in Mainland China, it is recommended to replace it with http://47.117.133.51:30015 (prod-cn) for better performance. See Environment Guide.
bash
# Tip: For Mainland China, replace https://api.justoneapi.com with http://47.117.133.51:30015
curl -X GET "https://api.justoneapi.com/api/tiktok/get-user-detail/v1?token=YOUR_API_KEY"text
I want to use the "User Profile (V1)" API from Just One API.
API Endpoint: https://api.justoneapi.com/api/tiktok/get-user-detail/v1
HTTP Method: GET
Authentication: Append "?token=YOUR_API_KEY" to the URL.
OpenAPI Definition: https://docs.justoneapi.com/openapi/tiktok-apis/user-profile-v1-en.json
Parameters:
- token (query): Security token for API access. (Required)
- uniqueId (query): The unique handle/username of the user (e.g., 'tiktok').
- secUid (query): The unique security ID of the user.
Return format: JSON
Response Handling & Error Codes:
1. Business results should be determined by the "code" field in the response body (code 0 means success).
2. Timeout Recommendation: Set request timeout to at least 60 seconds.
3. Business Code Reference:
- 0: Success
- 100: Invalid or Inactive Token
- 301: Collection Failed. Please Retry.
- 302: Rate Limit Exceeded
- 303: Daily Quota Exceeded
- 400: Invalid Parameters
- 500: Internal Server Error
- 600: Permission Denied
- 601: Insufficient Balance
Please help me write a script in my preferred programming language to call this API and handle the response.python
# Tip: For Mainland China, replace https://api.justoneapi.com with http://47.117.133.51:30015
import requests
url = "https://api.justoneapi.com/api/tiktok/get-user-detail/v1?token=YOUR_API_KEY"
response = requests.get(url)
print(response.json())js
// Tip: For Mainland China, replace https://api.justoneapi.com with http://47.117.133.51:30015
const response = await fetch("https://api.justoneapi.com/api/tiktok/get-user-detail/v1?token=YOUR_API_KEY", {
method: "GET"
});
const data = await response.json();
console.log(data);java
// Tip: For Mainland China, replace https://api.justoneapi.com with http://47.117.133.51:30015
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main(String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.justoneapi.com/api/tiktok/get-user-detail/v1?token=YOUR_API_KEY"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}go
// Tip: For Mainland China, replace https://api.justoneapi.com with http://47.117.133.51:30015
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
client := &http.Client{}
url := "https://api.justoneapi.com/api/tiktok/get-user-detail/v1?token=YOUR_API_KEY"
req, _ := http.NewRequest("GET", url, nil)
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}php
// Tip: For Mainland China, replace https://api.justoneapi.com with http://47.117.133.51:30015
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.justoneapi.com/api/tiktok/get-user-detail/v1?token=YOUR_API_KEY");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
$response = curl_exec($ch);
curl_close($ch);
echo $response;Responses
json
{
"code": 0,
"data": {
"userInfo": {
"user": {
"id": "107955",
"shortId": "",
"uniqueId": "tiktok",
"nickname": "TikTok",
"avatarLarger": "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/ba67b11de451691939223e9d978e613a~tplv-tiktokx-cropcenter:1080:1080.jpeg?dr=9640&refresh_token=b86f9e86&x-expires=1773234000&x-signature=vbGubVZn4P2xEaEQGVMsqzNyB88%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=useast8",
"avatarMedium": "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/ba67b11de451691939223e9d978e613a~tplv-tiktokx-cropcenter:720:720.jpeg?dr=9640&refresh_token=e17501b7&x-expires=1773234000&x-signature=9kOxnd8Z5U4zTKTAjebNvkQK9%2Bo%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=useast8",
"avatarThumb": "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/ba67b11de451691939223e9d978e613a~tplv-tiktokx-cropcenter:100:100.jpeg?dr=9640&refresh_token=1ec567e2&x-expires=1773234000&x-signature=qZau%2FmVPBO4wUy4nP0HGMzAbxDs%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=useast8",
"signature": "One TikTok can make a big impact",
"createTime": 1425144149,
"verified": true,
"secUid": "MS4wLjABAAAAv7iSuuXDJGDvJkmH_vz1qkDZYo1apxgzaxdBSeIuPiM",
"ftc": false,
"relation": 0,
"openFavorite": false,
"bioLink": {
"link": "linktr.ee/tiktok",
"risk": 0
},
"commentSetting": 0,
"commerceUserInfo": {
"commerceUser": true,
"downLoadLink": {
"android": "",
"ios": ""
},
"category": "Media & Entertainment",
"categoryButton": false
},
"duetSetting": 0,
"stitchSetting": 0,
"privateAccount": false,
"secret": false,
"isADVirtual": false,
"roomId": "",
"uniqueIdModifyTime": 0,
"ttSeller": false,
"downloadSetting": 0,
"profileTab": {
"showMusicTab": false,
"showQuestionTab": true,
"showPlayListTab": true
},
"followingVisibility": 1,
"recommendReason": "",
"nowInvitationCardUrl": "",
"nickNameModifyTime": 1638559600,
"isEmbedBanned": false,
"canExpPlaylist": true,
"profileEmbedPermission": 1,
"language": "en",
"eventList": [
{
"id": "7613931554804334648",
"start_time": "1773277200",
"duration": "0",
"title": "In The Mix, Stephen Sanchez",
"desc": "",
"status": 0,
"subscriber_count": "0",
"type": 0,
"enable_update": false,
"has_subscribed": false,
"under_review_desc": "",
"is_paid_event": false,
"ticket_amount": "0",
"is_promoting": false,
"write_acl": {
"update_block": null,
"delete_block": null
},
"promote_video_count": 0
},
{
"id": "7613901372870066232",
"start_time": "1774312200",
"duration": "0",
"title": "TikTok In The Mix, Charlie Puth",
"desc": "",
"status": 0,
"subscriber_count": "0",
"type": 0,
"enable_update": false,
"has_subscribed": false,
"under_review_desc": "",
"is_paid_event": false,
"ticket_amount": "0",
"is_promoting": false,
"write_acl": {
"update_block": null,
"delete_block": null
},
"promote_video_count": 0
}
],
"suggestAccountBind": false,
"isOrganization": 1,
"UserStoryStatus": 0
},
"stats": {
"followerCount": 93200000,
"followingCount": 3,
"heart": 455100000,
"heartCount": 455100000,
"videoCount": 1412,
"diggCount": 0,
"friendCount": 1
},
"statsV2": {
"followerCount": "93164513",
"followingCount": "3",
"heart": "455083565",
"heartCount": "455083565",
"videoCount": "1412",
"diggCount": "0",
"friendCount": "1"
},
"itemList": []
},
"shareMeta": {
"title": "TikTok on TikTok",
"desc": "@tiktok 93.2m Followers, 3 Following, 455.1m Likes - Watch awesome short videos created by TikTok"
},
"statusCode": 0,
"statusMsg": "",
"needFix": false
}
}💡 Note: For list data, the example shows only 1-2 items for simplicity. The actual count depends on the API response.
