TikTok Shop Search API
Search TikTok Shop products by keyword across 15 countries: price, sales, rating, and seller info per product, in one normalized response.
$0.95/1k req, pay per request, no subscription.
{"productId": "1729511239487602341","title": "MagSafe Compatible Clear Phone Case with Card Holder, Shockproof","price": 12.99,"originalPrice": 19.99,"currency": "USD","rating": 4.6,"soldCount": 84200,"shopName": "CaseCraft Official Store",... 5 more fields}
Pricing and providers
TikTok Shop Search API pricing: one API, 4 interchangeable providers
The cheapest provider serves first. If it fails, the next one takes over in the same call.
Try it
Get TikTok Shop search in one request
This sample shows 16 of 17 fields. See every field
{
"found": true,
"data": {
"items": [
{
"productId": "1729511239487602341",
"title": "MagSafe Compatible Clear Phone Case with Card Holder, Shockproof",
"price": 12.99,
"originalPrice": 19.99,
"currency": "USD",
"rating": 4.6,
"soldCount": 84200,
"shopName": "CaseCraft Official Store",
"sellerId": "7398201134587690001",
"reviewCount": 6412,
"discountPct": 35,
"url": "https://www.tiktok.com/shop/pdp/magsafe-compatible-clear-phone-case-with-card-holder-shockproof/1729511239487602341",
"image": "https://p16-oec-va.ibyteimg.com/tos-maliva-i-o3syd03w52-us/casecraft-clear-magsafe~tplv-o3syd03w52-origin-webp.image"
},
{
"productId": "1729511239487602358",
"title": "Silicone Phone Case with Ring Holder, Drop Protection",
"price": 9.49,
"originalPrice": 14.99,
"currency": "USD",
"rating": 4.4,
"soldCount": 31500,
"shopName": "GripGuard Store",
"sellerId": "7398201134587690088",
"reviewCount": 2107,
"discountPct": 37,
"url": "https://www.tiktok.com/shop/pdp/silicone-phone-case-with-ring-holder-drop-protection/1729511239487602358",
"image": "https://p16-oec-va.ibyteimg.com/tos-maliva-i-o3syd03w52-us/gripguard-silicone-ring~tplv-o3syd03w52-origin-webp.image"
},
{
"productId": "1729511239487602372",
"title": "Leather Wallet Phone Case, Detachable Strap",
"price": 16.99,
"originalPrice": 16.99,
"currency": "USD",
"rating": 4.8,
"soldCount": 9860,
"shopName": "Wander Leather Co",
"sellerId": "7398201134587690123",
"reviewCount": 843,
"url": "https://www.tiktok.com/shop/pdp/leather-wallet-phone-case-detachable-strap/1729511239487602372",
"image": "https://p16-oec-va.ibyteimg.com/tos-maliva-i-o3syd03w52-us/wander-leather-wallet~tplv-o3syd03w52-origin-webp.image"
}
]
}
}Full parameter and response reference - every field, type, and example for this endpoint.
Reference
One request, one response shape.
Every field you send and every field you get back, each with a real example.
Last verified 2026-10-31 · uptime and latency measured over 30d
Request body
JSON, posted to this endpoint.
- querystring
phone case
Search keyword for TikTok Shop products (e.g. wireless earbuds).
- countryenum
US
Country code of the TikTok Shop market to search (e.g. US).
- limitinteger
3
Maximum products to return, honoured on US searches up to 30. Other countries and larger values return every product TikTok Shop gives for the query, typically about 30 and occasionally more than 50. The price per call is the same either way.
- requireFieldsarray
Optional; omit it and routing is unchanged, with the cheapest source serving. Name the output fields this request must be able to return, for example `currency`, and it is served only by a source that returns every one of them. Fields you do not name are still returned whenever the serving source has them. This can raise your price: when the cheapest source cannot return a named field, a dearer source serves, and you are quoted and charged its price. A named field can still be absent on a product that genuinely lacks it. Naming a combination that no single source returns together is refused as invalid input, with no charge.
Response
JSON, one example value per field.
Product records matching the search query: id, title, price, sales count, rating, seller, and product URL. Populated whenever the provider has data for the entity.
- currencystringcan require
USD
ISO currency name, e.g. USD.
- discountPctnumber
35
Discount off the original price as a percentage, e.g. 10 for 10% off. Omitted when the product is not discounted.
- imagestring
https://p16-oec-va.ibyteimg.com/tos-maliva-i-o3syd03w52-us/casecraft-clear-magsafe~tplv-o3syd03w52-origin-webp.image
Product image URL.
- originalPricenumber
19.99
Pre-discount list price. Omitted when the product is not on sale.
- pricenumber
12.99
Current sale price.
- productIdstring
1729511239487602341
TikTok Shop product id. Populated whenever the provider has data for the entity.
- ratingnumber
4.6
Average review score. Omitted when the product has no rating yet.
- reviewCountintegercan require
6412
Number of reviews. Omitted when the lane that served this request does not report it.
- sellerIdstring
7398201134587690001
TikTok Shop seller id, for joining to the seller's other products.
- shopNamestring
CaseCraft Official Store
Seller shop name.
- soldCountinteger
84200
Units sold.
- titlestring
MagSafe Compatible Clear Phone Case with Card Holder, Shockproof
Product title. Populated whenever the provider has data for the entity.
- urlstring
https://www.tiktok.com/shop/pdp/magsafe-compatible-clear-phone-case-with-card-holder-shockproof/1729511239487602341
Canonical product detail page URL. Populated whenever the provider has data for the entity.
- foundboolean
true
- reason"not_found"
Present only when `found` is false, and says why there is no result. `not_found`: the source states the target does not exist, or returned nothing for it. A `found: false` answer is a successful call, not an error, and `costUsd` is what it actually cost.
Selling this API? See the full schema your endpoint must return.
FAQ
About the TikTok Shop Search API
The AnyAPI TikTok Shop Search API returns TikTok Shop search data as normalized JSON from one POST call to /v1/run/tiktok_shop.search. Search TikTok Shop products by keyword across 15 countries: price, sales, rating, and seller info per product, in one normalized response. AnyAPI routes each request across 4 sources and falls back automatically when one fails. It costs from $0.95 per 1,000 requests, in US dollars with no subscription and no monthly minimum. Over the last 30 days, 99.9% of TikTok Shop search calls through AnyAPI succeeded, with a median response time of 2.6 seconds across 49,253 measured calls.