TikTok Shop User Showcase API
Creator Shop showcase — affiliate shelf products with per-product sold, rating, typed discount, and seller name/url.
GET request to /v1/tiktok-shop/user-showcase that responds with clean JSON and costs ~45 credits (2.25/result). Pass cache=true for a free 24h cache hit; default is always fresh. Start with 100 free credits — no credit card.What is the TikTok Shop User Showcase API?
Pass a TikTok username (with or without @, or a profile URL) and the TikTok Shop User Showcase API returns the products that creator is featuring in their TikTok Shop showcase as clean JSON. This is the affiliate / creator storefront shelf — not the full inventory of a brand store. sellerStatus tells you what an empty list means: no_shop (ttSeller false — native profile, no Apify), shop_empty (has a shop, zero listed products), has_products (the shelf). An undetermined empty fetch is 502 SHOWCASE_UNAVAILABLE with sellerStatus=unavailable — never a bare products:[] 200. Envelope: source / stages{profileStatus,showcaseStatus} / timings{path,profileMs,showcaseMs,totalMs} / ttSeller. Each product includes id/url/slug, title, price + originalPrice + discountPercent + savingsAmount, currency (only when an amount exists), sold when a per-product figure exists, rating/reviews, image, and seller{id,name,url}. sold is a list-row field here (same rule as Shop Search / Shop Products); Product Details omits it. sold is never the shop's lifetime total stamped onto every tile — if the PDP only exposes shop sold_count, the field is omitted. For a brand's full catalog (where per-product sold is already correct), use TikTok Shop Products with a store URL instead. For stock / skus[] / categories, call Product Details with a product URL. Billed per result when products return; no_shop / shop_empty is 1 credit. Pass cache=true for the 24h shared cache.
What you get
- sellerStatus no_shop | shop_empty | has_products — empty is never silent
- ttSeller:false short-circuits the native profile (no Apify)
- Affiliate / creator storefront shelf (not a brand catalog)
- Per-product sold when the PDP exposes it — omitted rather than shop-total stamped
- originalPrice + discountPercent + savingsAmount + seller{id,name,url}
- SEO slug when the PDP URL includes one
- Cross-links: Shop Products for full store · Product Details for SKUs
Try it
Fill in the parameters below and copy a ready-to-run request, or open the live Playground to run it against your account (no API key paste).
Parameters
curl "https://api.captapi.com/v1/tiktok-shop/user-showcase?username=hydrojug" \
-H "Authorization: Bearer capt_live_..."
# or: -H "x-api-key: capt_live_..."Edit the parameters and the code updates instantly. Switch languages and hit copy.
Example response
{
"success": true,
"data": {
"username": "jeffreestar",
"totalReturned": 2,
"products": [
{
"platform": "tiktok_shop",
"id": "1732506746746606533",
"url": "https://shop.tiktok.com/us/pdp/1732506746746606533",
"title": "Mini Velour Liquid Lipstick",
"price": 14,
"originalPrice": 16,
"currency": "USD",
"discount": "12%",
"savings": "Saving $2.00",
"rating": null,
"reviews": null,
"sold": 17,
"image": "https://p16-oec-general-useast5.ttcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/9ceb4f5dd37846abb870a60e99161448~tplv-fhlh96nyum-crop-webp:1080:1080.webp?dr=12190&t=555f072d&ps=933b5bde&shp=8dbd94bf&shcp=e1be8f53&idc=useast5&from=2378011839",
"seller": {
"id": "7494986018328054725",
"name": "Jeffree Star Cosmetics",
"url": "https://www.tiktok.com/shop/store/jeffree-star-cosmetics/7494986018328054725"
},
"skus": [
{
"id": "1732506746708267973",
"stock": 934,
"price": 14,
"originalPrice": null,
"status": "1",
"warehouseId": "7275630065640408878",
"purchaseLimit": null,
"saleProps": [
{
"propName": "Shade",
"propValue": "Unicorn Blood"
}
]
},
{
"id": "1732506746708333509",
"stock": 933,
"price": 14,
"originalPrice": null,
"status": "1",
"warehouseId": "7275630065640408878",
"purchaseLimit": null,
"saleProps": [
{
"propName": "Shade",
"propValue": "Weirdo"
}
]
}
],
"images": [
"https://p16-oec-general-useast5.ttcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/9ceb4f5dd37846abb870a60e99161448~tplv-fhlh96nyum-crop-webp:1080:1080.webp?dr=12190&t=555f072d&ps=933b5bde&shp=8dbd94bf&shcp=e1be8f53&idc=useast5&from=2378011839",
"https://p16-oec-general-useast5.ttcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/100fdb52dee4424893af31d2ff333ad9~tplv-fhlh96nyum-crop-webp:1080:1080.webp?dr=12190&t=555f072d&ps=933b5bde&shp=8dbd94bf&shcp=e1be8f53&idc=useast5&from=2378011839"
],
"saleProperties": [
{
"id": "7647188030129948433",
"name": "Shade",
"values": [
{
"id": "7034726533239670529",
"name": "Unicorn Blood"
},
{
"id": "7135522200253449990",
"name": "Weirdo"
}
]
}
],
"categories": [
{
"id": "601450",
"name": "Beauty & Personal Care"
},
{
"id": "848648",
"name": "Makeup"
}
]
},
{
"platform": "tiktok_shop",
"id": "1732528747218572229",
"url": "https://shop.tiktok.com/us/pdp/1732528747218572229",
"title": "Mini Velour Liquid Lipstick Duo - Unicorn Blood & Weirdo",
"price": 23,
"originalPrice": 27,
"currency": "USD",
"discount": "15%",
"savings": "Saving $4.00",
"rating": null,
"reviews": null,
"sold": 58,
"image": "https://p16-oec-general-useast5.ttcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/ee371e4e4208468881dcc275d0679f4b~tplv-fhlh96nyum-crop-webp:1080:1080.webp?dr=12190&t=555f072d&ps=933b5bde&shp=8dbd94bf&shcp=e1be8f53&idc=useast5&from=2378011839",
"seller": {
"id": "7494986018328054725",
"name": "Jeffree Star Cosmetics",
"url": "https://www.tiktok.com/shop/store/jeffree-star-cosmetics/7494986018328054725"
},
"skus": [
{
"id": "1732528742194582469",
"stock": 933,
"price": 23,
"originalPrice": null,
"status": "1",
"warehouseId": "7275630065640408878",
"purchaseLimit": null,
"saleProps": [
{
"propName": "Combined Variations",
"propValue": "Unicorn Blood & Weirdo"
}
]
}
],
"images": [
"https://p16-oec-general-useast5.ttcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/ee371e4e4208468881dcc275d0679f4b~tplv-fhlh96nyum-crop-webp:1080:1080.webp?dr=12190&t=555f072d&ps=933b5bde&shp=8dbd94bf&shcp=e1be8f53&idc=useast5&from=2378011839",
"https://p16-oec-general-useast5.ttcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/3cd1ce9f5c3444309ba86a47485e04cf~tplv-fhlh96nyum-crop-webp:1080:1080.webp?dr=12190&t=555f072d&ps=933b5bde&shp=8dbd94bf&shcp=e1be8f53&idc=useast5&from=2378011839"
],
"saleProperties": [
{
"id": "101212",
"name": "Combined Variations",
"values": [
{
"id": "7669580526982022925",
"name": "Unicorn Blood & Weirdo"
}
]
}
],
"categories": [
{
"id": "601450",
"name": "Beauty & Personal Care"
},
{
"id": "848648",
"name": "Makeup"
}
]
}
]
}
}Billing metadata is returned in response headers: X-Captapi-Credits (credits charged), X-Captapi-Cache (hit or miss), and X-Captapi-Source. Failed requests (4xx/5xx) are never charged. See the full list of error codes in the error reference.
Response structure
A successful call returns success and a data object with the following fields:
Top-level fields
usernameAccount username / handle.totalReturnedNumber of items returned in this response.
Products
Each item in products contains:
platformPlatform identifier for this response (matches the endpoint's platform).idId of this products item.urlCanonical URL of the item.titleTitle of this products item.pricePrice of the item.originalPricePre-discount price when a promo exists — pdp-promo-min, same tier as Product Details.currencyCurrency code.discountDiscount amount, percentage, or display string when the platform exposes one.savingsSavings. Example: "Saving $2.00".ratingProduct star score when the PDP exposes one; null otherwise.reviewsProduct review count when exposed; null otherwise.soldList-row field. Per-product units sold from PDP sold_info. Omitted when the tile has no per-product figure — never null, never the shop lifetime total.imageProduct image from the showcase shelf (or PDP when the shelf omits one).sellerSeller shop card {id,name,url} — id from the showcase shelf, name/url from PDP hydrate when available.skusPer-variant SKU rows ({id, stock, price, originalPrice, status}).imagesAttached image URL list for this item.salePropertiesArray of objects with id, name, values.categoriesArray of objects with id, name.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| username | string | Yes | TikTok username, @handle, or profile URL, e.g. jeffreestar or https://www.tiktok.com/@jeffreestar. |
| limit | integer | No | Max items to return (default 20, max 200). Billed per result. |
| cache | boolean | No | Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. |
Authentication: send your key as Authorization: Bearer capt_live_.... A typical call costs ~45 credits (2.25/result) — billed per result, so the exact amount scales with how many items you request. Pass cache=true for a free 24h cache hit; default is always fresh (metrics refresh within ~1 hour).
tiktok_shop_user_showcase via @captapi/mcp. Set it up →How it works
- 1. Sign up — get 100 free credits, no card required.
- 2. Create a key from your dashboard.
- 3. Send one request to
/v1/tiktok-shop/user-showcaseand parse the JSON response.
Use cases
Affiliate Shelf Audit
See which products a creator is actively promoting in their Shop showcase.
Creator Commerce Intel
Rank showcase SKUs by sold / rating without scraping the profile UI.
Store Handoff
Take seller.url into Shop Products when you need the brand's full catalog.
PDP Deep Dive
Pass a product URL to Product Details for skus[] / stock / categories.
Frequently asked questions
What does the TikTok Shop User Showcase API do?+
The TikTok Shop User Showcase API lets you list items in bulk with metadata from a public TikTok Shop user showcase using one GET request to /v1/tiktok-shop/user-showcase. It returns clean JSON — no OAuth or infrastructure setup required.
How many credits does the TikTok Shop User Showcase API cost?+
At the default limit this endpoint costs 45 credits (2.25 per result). Billing scales with how many results you request. Pass cache=true to serve from the 24h cache (0 credits on hit); default is always fresh. Selected profile endpoints also accept cacheMaxAge=1d|3d|7d|14d|30d. Failed or empty results are never charged.
Do I need a TikTok Shop API key or OAuth?+
No. A single Captapi key works across every platform Captapi supports — YouTube, TikTok, Instagram, Facebook, Twitter/X, Reddit, Threads, Bluesky, Pinterest, LinkedIn, Rumble, Spotify, Kwai, and more. We handle proxies, rate limits, retries, and authentication for you.
Why did I get products: [] — no shop, or a failed fetch?+
Read sellerStatus. no_shop means ttSeller is false (native profile, no Apify). shop_empty means the account has a shop and the showcase listed nothing. has_products is the shelf. If we cannot tell, the call is 502 SHOWCASE_UNAVAILABLE with sellerStatus=unavailable — not a 200 empty array.
Why is a no-shop account fast and 1 credit?+
ttSeller:false short-circuits. We already know from the same profile blob channel-details uses. The 11-second Apify call is skipped.
Is the TikTok Shop User Showcase API suitable for production use?+
Yes. It is a stable REST endpoint with predictable JSON and automatic retries. Pass cache=true to serve from the 24h cache (0 credits on hit); default is always fresh. Selected profile endpoints also accept cacheMaxAge=1d|3d|7d|14d|30d. Use it for analytics, monitoring, and content automation.
More TikTok Shop APIs
Ready to use the TikTok Shop User Showcase API?
Sign up, grab your key, and make your first call in 60 seconds.