Shop browse flow
Execute an organic Shop tab → Mall → search → PDP browse sequence.
Upstream
/api/v1/mall/shop_tab/algorithm/reach/get/api/v1/mall/homepage/bff/get/api/v2/shop/sdui_pdp/getEvery planParameters
| Name | Type | Description |
|---|---|---|
keyword | string | Shop search keyword. e.g. mechanical keyboard |
product_id | string | Optional target product ID to inspect. e.g. 1729384756192837461 |
region | string | Two-letter country code for egress and storefront. e.g. US |
city | string | A city in that region. See the supported cities list. e.g. miami |
Pricing
| Plan | Per call | Per 1,000 calls |
|---|---|---|
| Starter | 25 credits | $2.90 |
| Growth | 25 credits | $1.98 |
| Scale | 25 credits | $1.45 |
Response fields
| Field | Type | Description |
|---|---|---|
status_code | integer | Upstream TikTok mobile status code (0 indicates success). |
region | string | Two-letter ISO 3166-1 country code associated with the item or context. |
city | string | City-level egress or location identifier. |
keyword | string | Decoded keyword value. |
steps_executed | string[] | Decoded steps executed value. |
mall_banners | integer | Decoded mall banners value. |
matched_products | object[] | List of matched products objects. |
matched_products[].product_id | string | TikTok Shop product identifier. |
matched_products[].title | string | Decoded title value. |
matched_products[].price | string | Formatted and numeric price breakdown with currency. |
matched_products[].currency | string | Decoded currency value. |
matched_products[].sold_count | integer | Total sold count. |
matched_products[].rating | number | Decoded rating value. |
inspected_pdp | object | Structured inspected pdp metadata. |
inspected_pdp.product_id | string | TikTok Shop product identifier. |
inspected_pdp.seller_id | string | TikTok Shop merchant / seller identifier. |
inspected_pdp.sku_count | integer | Total sku count. |
inspected_pdp.in_stock | boolean | Whether in stock is enabled or true. |
took_ms | integer | Gateway execution or signing latency in milliseconds. |
log_pb | object | Upstream request trace envelope from the mobile gateway. |
log_pb.impr_id | string | Upstream TikTok impression / trace identifier. |
Responses
A 200 returns JSON with stable field names. Every response carries x-credits-cost, x-credits-tier and x-credits-remaining. Errors return a JSON body with a stable code and cost 0 credits. Error codes
import os
from tikultra import TikUltra
with TikUltra(api_key=os.environ["TIKULTRA_KEY"], region="US", city="miami") as client:
res = client.shop.browse(keyword="mechanical keyboard", product_id="1729384756192837461")
print(res.credits_cost, res.data){
"status_code": 0,
"region": "US",
"city": "miami",
"keyword": "mechanical keyboard",
"steps_executed": [
"shop_tab_reach",
"mall_homepage_bff",
"ecom_search_pack",
"sdui_pdp_inspect"
],
"mall_banners": 3,
"matched_products": [
{
"product_id": "1729384756192837461",
"title": "Low-profile mechanical keyboard 75% CNC Aluminum",
"price": "79.99",
"currency": "USD",
"sold_count": 18204,
"rating": 4.8
}
],
"inspected_pdp": {
"product_id": "1729384756192837461",
"seller_id": "7495000000000000001",
"sku_count": 2,
"in_stock": true
},
"took_ms": 1420,
"log_pb": {
"impr_id": "202611120200419F8E7D6C5B4A3210"
}
}More in TikTok Shop
GET/v1/shop/pdpExclusiveProduct page25 crGET/v1/shop/live-bagExclusiveLIVE shopping bag25 crGET/v1/shop/searchShop search25 crGET/v1/shop/sellerSeller catalog25 crGET/v1/shop/seller/categoriesSeller categories25 crGET/v1/shop/seller/reviewsSeller reviews25 crGET/v1/shop/showcaseCreator showcase25 crGET/v1/shop/reviewsProduct reviews25 crGET/v1/shop/anchorsShop anchors25 crGET/v1/shop/mallMall home25 crGET/v1/shop/tabShop tab25 crGET/v1/shop/live-productsLIVE product pop-up25 crGET/v1/shop/live-roomLIVE shop info25 crGET/v1/shop/suggestionsShop suggestions25 crGET/v1/shop/creatorShop creator25 crGET/v1/shop/same-shopMore from this shop25 crGET/v1/shop/recommendationsProduct recommendations25 crGET/v1/shop/promotionsPromotions25 crGET/v1/shop/translationProduct translation25 cr
Ready to build?
Start with 2,500 free credits and test every public endpoint, then pick a plan.