curl --request GET \
--url https://api.growi.io/api/public/v1/tik_tok_shop/creators/{openId}/marketplace \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.growi.io/api/public/v1/tik_tok_shop/creators/{openId}/marketplace"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.growi.io/api/public/v1/tik_tok_shop/creators/{openId}/marketplace', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.growi.io/api/public/v1/tik_tok_shop/creators/{openId}/marketplace",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.growi.io/api/public/v1/tik_tok_shop/creators/{openId}/marketplace"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.growi.io/api/public/v1/tik_tok_shop/creators/{openId}/marketplace")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.growi.io/api/public/v1/tik_tok_shop/creators/{openId}/marketplace")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"openId": "uACafQAAAABmUU2qon4R0vUYvUVS3QC6CICP2m5A2-wd77j8R9G0yg",
"secUid": "MS4wLjABAAAABKjQkOz_IIzXXzEAl_9LGsWhvK",
"creator": {
"profileTtUri": "aweme://user/profile/123?sec_uid=MS4wLjABAAAABKjQkOz_IIzXXzEAl_9LGsWhvK",
"pps": "4.2",
"categoryIds": [
"601739"
],
"followerCount": 5700,
"avatarUrl": "https://p16-sign.tiktokcdn-us.com/avatar.jpeg",
"nickname": "ALY",
"username": "aly.finds.fun",
"unitsSold": 47,
"selectionRegion": "US",
"bioDescription": "Home finds",
"topCollaboratedBrandIds": [
"7495000000000000001"
],
"brandCollaborationCount": 12,
"unitsSoldRange": {
"min": 10,
"max": 100,
"formatted": "10-100"
},
"gmv": {
"amount": "1234.50",
"currency": "USD"
},
"videoGmv": {
"amount": "1000.00",
"currency": "USD"
},
"liveGmv": null,
"gmvRange": {
"min": "1000",
"max": "5000",
"formatted": "$1K-$5K",
"currency": "USD"
},
"gpm": {
"amount": "12.30",
"currency": "USD"
},
"videoGpm": null,
"liveGpm": null,
"gpmRange": null,
"videoGpmRange": null,
"liveGpmRange": null,
"avgGmvPerBuyer": {
"amount": "20.00",
"currency": "USD"
},
"avgGmvPerBuyerRange": null,
"productOriginalPriceRange": {
"min": "10",
"max": "40",
"formatted": null,
"currency": "USD"
},
"categoryGmvDistribution": [
{
"categoryId": "601739",
"value": "6000"
}
],
"contentGmvDistribution": [
{
"contentType": "VIDEO",
"value": "8000"
},
{
"contentType": "LIVE",
"value": "2000"
}
],
"promotedProductNum": 30,
"ecLiveCount": 2,
"ecVideoCount": 25,
"avgEcVideoPlayCount": 4100,
"avgEcVideoLikeCount": 120,
"avgEcVideoCommentCount": 8,
"avgEcVideoShareCount": 3,
"avgEcLiveViewCount": null,
"avgEcLiveLikeCount": null,
"avgEcLiveCommentCount": null,
"avgEcLiveShareCount": null,
"avgCommissionRate": 1500,
"avgCommissionRateRange": {
"min": 1000,
"max": 2000
},
"ecLiveEngagementRate": null,
"ecVideoEngagementRate": "350",
"postRate": "6000",
"rating": "4.8",
"followerLocation": [
{
"key": "CA",
"value": "0.3705"
}
],
"followerAge": [
{
"key": "18-23",
"value": "0.2500"
}
],
"followerGender": [
{
"key": "Female",
"value": "0.8000"
}
],
"creatorProfile": null,
"creatorTrend": []
}
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}Creator marketplace detail
Returns one creator’s TikTok Creator Marketplace profile for the last 30 days: follower age, gender and location mix, GMV and GPM (overall, video and LIVE), content and category GMV mix, top collaborated brands, average engagement and commission, post rate, rating and PPS. Read live from TikTok.
Pass the creator’s TikTok Shop open id as openId. A sec_uid is rejected, so use Bulk creator lookup to get the open id. Precise GMV, GPM and units sold appear only when the creator shares precise data; otherwise use the *Range fields, which are US only. avatarUrl is a signed TikTok URL that expires. TikTok documents a quota of 10,000 of these queries a day.
curl --request GET \
--url https://api.growi.io/api/public/v1/tik_tok_shop/creators/{openId}/marketplace \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.growi.io/api/public/v1/tik_tok_shop/creators/{openId}/marketplace"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.growi.io/api/public/v1/tik_tok_shop/creators/{openId}/marketplace', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.growi.io/api/public/v1/tik_tok_shop/creators/{openId}/marketplace",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.growi.io/api/public/v1/tik_tok_shop/creators/{openId}/marketplace"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.growi.io/api/public/v1/tik_tok_shop/creators/{openId}/marketplace")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.growi.io/api/public/v1/tik_tok_shop/creators/{openId}/marketplace")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"openId": "uACafQAAAABmUU2qon4R0vUYvUVS3QC6CICP2m5A2-wd77j8R9G0yg",
"secUid": "MS4wLjABAAAABKjQkOz_IIzXXzEAl_9LGsWhvK",
"creator": {
"profileTtUri": "aweme://user/profile/123?sec_uid=MS4wLjABAAAABKjQkOz_IIzXXzEAl_9LGsWhvK",
"pps": "4.2",
"categoryIds": [
"601739"
],
"followerCount": 5700,
"avatarUrl": "https://p16-sign.tiktokcdn-us.com/avatar.jpeg",
"nickname": "ALY",
"username": "aly.finds.fun",
"unitsSold": 47,
"selectionRegion": "US",
"bioDescription": "Home finds",
"topCollaboratedBrandIds": [
"7495000000000000001"
],
"brandCollaborationCount": 12,
"unitsSoldRange": {
"min": 10,
"max": 100,
"formatted": "10-100"
},
"gmv": {
"amount": "1234.50",
"currency": "USD"
},
"videoGmv": {
"amount": "1000.00",
"currency": "USD"
},
"liveGmv": null,
"gmvRange": {
"min": "1000",
"max": "5000",
"formatted": "$1K-$5K",
"currency": "USD"
},
"gpm": {
"amount": "12.30",
"currency": "USD"
},
"videoGpm": null,
"liveGpm": null,
"gpmRange": null,
"videoGpmRange": null,
"liveGpmRange": null,
"avgGmvPerBuyer": {
"amount": "20.00",
"currency": "USD"
},
"avgGmvPerBuyerRange": null,
"productOriginalPriceRange": {
"min": "10",
"max": "40",
"formatted": null,
"currency": "USD"
},
"categoryGmvDistribution": [
{
"categoryId": "601739",
"value": "6000"
}
],
"contentGmvDistribution": [
{
"contentType": "VIDEO",
"value": "8000"
},
{
"contentType": "LIVE",
"value": "2000"
}
],
"promotedProductNum": 30,
"ecLiveCount": 2,
"ecVideoCount": 25,
"avgEcVideoPlayCount": 4100,
"avgEcVideoLikeCount": 120,
"avgEcVideoCommentCount": 8,
"avgEcVideoShareCount": 3,
"avgEcLiveViewCount": null,
"avgEcLiveLikeCount": null,
"avgEcLiveCommentCount": null,
"avgEcLiveShareCount": null,
"avgCommissionRate": 1500,
"avgCommissionRateRange": {
"min": 1000,
"max": 2000
},
"ecLiveEngagementRate": null,
"ecVideoEngagementRate": "350",
"postRate": "6000",
"rating": "4.8",
"followerLocation": [
{
"key": "CA",
"value": "0.3705"
}
],
"followerAge": [
{
"key": "18-23",
"value": "0.2500"
}
],
"followerGender": [
{
"key": "Female",
"value": "0.8000"
}
],
"creatorProfile": null,
"creatorTrend": []
}
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
TikTok Shop creator open id (not a sec_uid).
256Query Parameters
Use the TikTok Shop of this child brand (organization id) of your API key's organization