TikTok Shop Product Scraper (Mobile API)
Pricing
from $10.00 / 1,000 result scrapeds
TikTok Shop Product Scraper (Mobile API)
Extract high-fidelity product data from TikTok Shop using mobile app endpoints. Get prices, stock, and images with zero CAPTCHAs
Pricing
from $10.00 / 1,000 result scrapeds
Rating
2.8
(5)
Developer
Rizla Piker
Maintained by CommunityActor stats
9
Bookmarked
689
Total users
187
Monthly active users
18 hours
Issues response
a day ago
Last modified
Categories
Features
Share
Extract TikTok Shop product data using mobile API response structures.
This Actor is optimized for fast, structured JSON output and supports multiple regions. Scrape one product or a batch of products in a single run.
Looking for products by keyword instead of a URL? Use TikTok Shop Search Scraper first, then paste the product_id here for full details.
Key Benefits
- Mobile-shaped response data: Output closely follows TikTok mobile product response fields.
- Fast execution: Direct JSON extraction without browser rendering.
- Multi-region support: Works across US, UK, SE Asia, and major EU markets.
- Rich product fields: Access product, seller, SKU, pricing, and review-related data.
- Batch runs: Pass many product URLs or IDs and get one dataset item per product.
Input
Provide one TikTok Shop product URL or 19-digit product ID, or several of them in the same run. Each product is stored as its own dataset item.
A single product still uses productInput:
{"productInput": "https://shop.tiktok.com/view/product/1729802854478746459","region": "US","outputMode": "full_readable"}
Scrape multiple products in one run
productInput is a string. Separate URLs or IDs with a comma, a new line, or a space. These three inputs scrape the same products:
{"productInput": "1729802854478746459, 1729937400435937604, 1731992253305885484","region": "PH","outputMode": "full_readable"}
{"productInput": "1729802854478746459\n1729937400435937604\n1731992253305885484","region": "PH","outputMode": "full_readable"}
{"productInput": "1729802854478746459 1729937400435937604 1731992253305885484","region": "PH","outputMode": "full_readable"}
Full URLs work the same way, including one URL per line.
To pass a real JSON array from the Apify API or the apify-client Python library, use productIds. One run can take as many IDs as you need (10 is the same shape as the list below; add one string per product):
{"productIds": ["1729802854478746459","1729937400435937604","1731992253305885484"],"region": "PH","outputMode": "full_readable"}
from apify_client import ApifyClientclient = ApifyClient("<APIFY_TOKEN>")run = client.actor("<ACTOR_ID>").call(run_input={"productIds": ["1729802854478746459","1729937400435937604","1731992253305885484",],"region": "PH","outputMode": "full_readable",})
If you set both productInput and productIds, the Actor merges them and scrapes each product once. A failed product is skipped and reported in the run log. The run fails only when every product request fails.
Parameters
productInput: One or more product URLs or product IDs, separated by a new line, comma, or space.productIds: Optional JSON array of product URLs or product IDs.region(optional): Country code such asUS,GB,ID,MY,TH,VN,PH,SG,DE,FR,IT,ES. Default isUS.outputMode(optional): Controls response shape.full_readable(default): Product-focused readable JSON with grouped sections.formatted_filtered: Compact filtered product JSON.raw_response: Original API response (raw nested payload).
Provide at least one value in productInput or productIds.
Output Formats
Each product is stored as a separate dataset item. You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.
In the Output tab, Product overview and Full readable response are tables with one row per product: price, sales, store, store rating, review score, and review count. Variants is one row per size, color, or bundle, with that SKU's price and stock. All fields keeps the full JSON, including product_info. Prices stay in the shop's own format, such as Rp47.000 or $59.99.
1) outputMode: "full_readable" (default)
[{"product_info": {"total_products": 1,"products": [{"product_id": "1731992253305885484","status": 1,"title": "Product title...","category": {"name": "Beauty & Personal Care","id": "601450"},"pricing": {"currency": "USD","currency_symbol": "$","sale_price": "$59.99","original_price": "$59.99","discount": "","raw": {}},"sales": {"sold_count": 183,"combined_sales_volume": {}},"inventory": {"total_stock": 9818,"skus": [],"sale_props": [],"default_sku_id": "1731992256433263404","default_selection": {}},"media": {"image_urls": ["https://p16-oec-general-useast5.ttcdn-us.com/..."],"images": [],"share_info": {}},"seller": {"seller_id": "7499603814329548059","name": "Example Store","rating": "4.1","location": "US","shop_link": "aweme://...","raw": {}},"reviews": {},"shipping": {"logistic": {},"shipping": {},"pdp_logistic_module": {}},"actions": {"add_to_cart_button": {},"buy_button": {},"button_area": {},"favorite": 0},"additional": {"sku_common_config": {},"shop_review_entry": {},"user_rights_module": {},"promotion_label_info": {},"marketing_config": {},"raw_product": {}}}]}}]
2) outputMode: "formatted_filtered"
[{"product_id": "1731992253305885484","title": "Product title...","price": {"min_price": "$59.99","max_price": "$59.99","currency": "USD"},"images": ["https://p16-oec-general-useast5.ttcdn-us.com/..."],"stock": 9818,"sales_count": 183,"store_info": {"name": "Example Store","rating": 4.1}}]
3) outputMode: "raw_response"
[{"code": 0,"data": {"goda_protocol": {"global": {"product_info_resp": {"products": [{"product_id": "1731992253305885484","seller": {},"product_base": {},"skus": []}}}}}},"message": "success"}]
Common Use Cases
- Price monitoring: Track product prices and discounts over time.
- Competitor analysis: Monitor stock and sales trends.
- Catalog enrichment: Collect product metadata and image URLs.
- Market research: Compare product performance across regions.
Notes
- Field availability can vary by product, seller, region, and account context.
- Use
raw_responsemode when you need complete payload coverage. - Use
full_readableorformatted_filteredwhen you need cleaner output for dashboards and pipelines. - Run responsibly and ensure your usage complies with applicable platform terms and laws.
Support
If you need custom output fields (for example logistics details, review breakdowns, or seller analytics), use the Contact button.
Related Actor
To search TikTok Shop by keyword (prices, sales, ratings, sellers), use TikTok Shop Search Scraper.