Shop Category Products
curl --request GET \
--url https://scrapebadger.com/v1/tiktok/shop/categories/{category_id} \
--header 'x-api-key: <api-key>'import requests
url = "https://scrapebadger.com/v1/tiktok/shop/categories/{category_id}"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://scrapebadger.com/v1/tiktok/shop/categories/{category_id}', 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://scrapebadger.com/v1/tiktok/shop/categories/{category_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$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://scrapebadger.com/v1/tiktok/shop/categories/{category_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://scrapebadger.com/v1/tiktok/shop/categories/{category_id}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://scrapebadger.com/v1/tiktok/shop/categories/{category_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"category": {
"id": "601450",
"name": "Beauty & Personal Care",
"slug": "beauty-personal-care",
"level": 1,
"is_leaf": false,
"parent_id": "0",
"image": "https://lf16-tiktok-common.tiktokcdn-us.com/obj/tiktok-web-common-tx/i18n_ecom_fe/tiktok_shop_web_mono/apps/homepage_desktop/static/image/beauty-personal.fdbc446c.png",
"url": "https://shop.tiktok.com/gb/c/beauty-personal-care/601450"
},
"children": [
{
"id": "849032",
"name": "Hand & Foot Care",
"slug": "hand-foot-care",
"level": 2,
"is_leaf": false,
"parent_id": "601450",
"image": "https://p16-oec-ttp.tiktokcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/dc05090b19cd43eeac83330f8eb57ac5~tplv-omjb5zjo8w-resize-jpeg:200:200.image?",
"url": "https://shop.tiktok.com/gb/c/hand-foot-care/849032"
},
{
"id": "849544",
"name": "Eye & Ear Care",
"slug": "eye-ear-care",
"level": 2,
"is_leaf": false,
"parent_id": "601450",
"image": "https://p16-oec-va.ibyteimg.com/tos-maliva-i-o3syd03w52-us/a3881f0385c94a6abeeaf472a5ef0235~tplv-o3syd03w52-resize-jpeg:200:200.image?",
"url": "https://shop.tiktok.com/gb/c/eye-ear-care/849544"
}
],
"products": [
{
"product_id": "1729731676182387423",
"title": "Long Lasting Lip Plumper Oil, 2 Counts/set Moisturizing Lip Plumper, Glossy Lip Glaze Stick Lipgloss, Plumping Lip Oil Lip Stick for Girls & Women",
"url": "https://shop.tiktok.com/gb/pdp/1729731676182387423",
"image": "https://p19-oec-eu-common-no.tiktokcdn-eu.com/tos-no1a-i-t5fjg24jzw-no...",
"price": {
"amount": 2.16,
"original": 2.29,
"discount": "6%",
"currency": "GBP",
"symbol": "£"
},
"rating": 3.5,
"review_count": 20,
"sold_count": 299,
"seller": {
"id": "7495629239347088095",
"name": "Swift Deals Makeup",
"logo": "https://p16-oec-general.tiktokcdn-eu.com/tos-alisg..."
},
"brand": null,
"labels": [],
"video": null,
"rank": null
},
{
"product_id": "1729769062214441291",
"title": "Q7Paris Mother's Day THE NEW MAMA GLOW BUNDLE - Honey Vitamin C Shower Gel & Carrot HCaste Lotion",
"url": "https://shop.tiktok.com/gb/pdp/1729769062214441291",
"image": "https://p19-oec-eu-common-no.tiktokcdn-eu.com/tos-no1a-i-t5fjg24jzw-no...",
"price": {
"amount": 28.98,
"original": null,
"discount": null,
"currency": "GBP",
"symbol": "£"
},
"rating": 4.4,
"review_count": 28,
"sold_count": 422,
"seller": {
"id": "7495877270527576395",
"name": "Q7Paris Cosmetics and Beauty",
"logo": "https://p16-oec-eu-common-useastred.tiktokcdn-eu.c..."
},
"brand": "Q7",
"labels": [
"Free 3-day delivery"
],
"video": null,
"rank": null
}
],
"region": "GB"
}Shop
Shop Category Products
A TikTok Shop category’s subcategories and the top products the storefront shows for it, in the market’s currency.
GET
/
v1
/
tiktok
/
shop
/
categories
/
{category_id}
Shop Category Products
curl --request GET \
--url https://scrapebadger.com/v1/tiktok/shop/categories/{category_id} \
--header 'x-api-key: <api-key>'import requests
url = "https://scrapebadger.com/v1/tiktok/shop/categories/{category_id}"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://scrapebadger.com/v1/tiktok/shop/categories/{category_id}', 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://scrapebadger.com/v1/tiktok/shop/categories/{category_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$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://scrapebadger.com/v1/tiktok/shop/categories/{category_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://scrapebadger.com/v1/tiktok/shop/categories/{category_id}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://scrapebadger.com/v1/tiktok/shop/categories/{category_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"category": {
"id": "601450",
"name": "Beauty & Personal Care",
"slug": "beauty-personal-care",
"level": 1,
"is_leaf": false,
"parent_id": "0",
"image": "https://lf16-tiktok-common.tiktokcdn-us.com/obj/tiktok-web-common-tx/i18n_ecom_fe/tiktok_shop_web_mono/apps/homepage_desktop/static/image/beauty-personal.fdbc446c.png",
"url": "https://shop.tiktok.com/gb/c/beauty-personal-care/601450"
},
"children": [
{
"id": "849032",
"name": "Hand & Foot Care",
"slug": "hand-foot-care",
"level": 2,
"is_leaf": false,
"parent_id": "601450",
"image": "https://p16-oec-ttp.tiktokcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/dc05090b19cd43eeac83330f8eb57ac5~tplv-omjb5zjo8w-resize-jpeg:200:200.image?",
"url": "https://shop.tiktok.com/gb/c/hand-foot-care/849032"
},
{
"id": "849544",
"name": "Eye & Ear Care",
"slug": "eye-ear-care",
"level": 2,
"is_leaf": false,
"parent_id": "601450",
"image": "https://p16-oec-va.ibyteimg.com/tos-maliva-i-o3syd03w52-us/a3881f0385c94a6abeeaf472a5ef0235~tplv-o3syd03w52-resize-jpeg:200:200.image?",
"url": "https://shop.tiktok.com/gb/c/eye-ear-care/849544"
}
],
"products": [
{
"product_id": "1729731676182387423",
"title": "Long Lasting Lip Plumper Oil, 2 Counts/set Moisturizing Lip Plumper, Glossy Lip Glaze Stick Lipgloss, Plumping Lip Oil Lip Stick for Girls & Women",
"url": "https://shop.tiktok.com/gb/pdp/1729731676182387423",
"image": "https://p19-oec-eu-common-no.tiktokcdn-eu.com/tos-no1a-i-t5fjg24jzw-no...",
"price": {
"amount": 2.16,
"original": 2.29,
"discount": "6%",
"currency": "GBP",
"symbol": "£"
},
"rating": 3.5,
"review_count": 20,
"sold_count": 299,
"seller": {
"id": "7495629239347088095",
"name": "Swift Deals Makeup",
"logo": "https://p16-oec-general.tiktokcdn-eu.com/tos-alisg..."
},
"brand": null,
"labels": [],
"video": null,
"rank": null
},
{
"product_id": "1729769062214441291",
"title": "Q7Paris Mother's Day THE NEW MAMA GLOW BUNDLE - Honey Vitamin C Shower Gel & Carrot HCaste Lotion",
"url": "https://shop.tiktok.com/gb/pdp/1729769062214441291",
"image": "https://p19-oec-eu-common-no.tiktokcdn-eu.com/tos-no1a-i-t5fjg24jzw-no...",
"price": {
"amount": 28.98,
"original": null,
"discount": null,
"currency": "GBP",
"symbol": "£"
},
"rating": 4.4,
"review_count": 28,
"sold_count": 422,
"seller": {
"id": "7495877270527576395",
"name": "Q7Paris Cosmetics and Beauty",
"logo": "https://p16-oec-eu-common-useastred.tiktokcdn-eu.c..."
},
"brand": "Q7",
"labels": [
"Free 3-day delivery"
],
"video": null,
"rank": null
}
],
"region": "GB"
}children are the direct subcategories (empty on a leaf), products the top products the storefront renders for the category (10–25). Works in US, GB and ID.Markets —
region=US (default) serves everything; GB and ID (Tokopedia) serve categories, category products and product detail in GBP/IDR. SG, MY, PH, TH, VN, MX, BR and JP sit behind a puzzle our exits do not clear and return 400.Each request costs 5 credits. Failed requests are not charged.
Authorizations
Path Parameters
Category id from a previous response (e.g. 700645 = Health).
Query Parameters
Market. US serves everything; GB and ID serve categories, category products and product detail (their JSON API paths do not exist). Other storefronts return 400.
Available options:
US, GB, ID 
