Temu APItemu.com ↗
Access Temu's product catalog via 10 endpoints: search products, get details, retrieve store listings, batch fetch up to 40 products, and paginate results.
What is the Temu API?
The Temu API exposes 10 endpoints covering product search, homepage featured listings, product detail lookup, image retrieval, and store-level catalog browsing. The search_products endpoint returns a paginated list of products with price, market price, discount percentage, ratings, review counts, sales volume, and shipping info for any keyword query. A batch_get_products endpoint supports fetching up to 40 products in a single call, with per-item status reporting so partial failures don't break the batch.
curl -X POST 'https://api.parse.bot/scraper/19417d13-c955-4a31-bfb8-d40635cf048d/search_products' \
-H 'X-API-Key: $PARSE_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"limit": "10",
"query": "wireless earbuds",
"locale": "en",
"offset": "0",
"price_max": "50.00",
"price_min": "5.00"
}'Full-text search over Temu's product catalog by keyword. Returns a paginated list of products with pricing, ratings, sales data, shipping info, and category rankings. Pagination is offset-based: advance `offset` by `limit` to fetch subsequent pages. Each product carries a `product_id` usable with get_product_details. When `locale` targets a non-English market, titles and prices reflect that locale's language and currency. Results can be filtered by price range using `price_min` and `price_max`.
| Param | Type | Description |
|---|---|---|
| limit | integer | Number of results to return per page. |
| queryrequired | string | Search keyword (e.g. 'wireless earbuds', 'kitchen gadgets'). |
| locale | string | Locale/language code for localized results (e.g. 'en', 'it', 'de', 'fr', 'es'). Controls language of titles and currency of prices. |
| offset | integer | Offset for pagination. Advance by `limit` for the next page. |
| price_max | number | Maximum price in USD. Only products with a price <= this value are returned. |
| price_min | number | Minimum price in USD. Only products with a price >= this value are returned. |
{
"type": "object",
"fields": {
"has_more": "boolean indicating if more results are available beyond this page",
"products": "array of product objects with product_id, title, price, market_price, discount_percent, rating, review_count, sold_count, thumbnail, product_url, category, ranking_label, shipping_days, video_url, mall_id",
"total_count": "integer count of products returned in this response"
},
"sample": {
"data": {
"has_more": true,
"products": [
{
"price": "$4.73",
"title": "Wireless Earbuds, 2026 Wireless Headphones HiFi Stereo Earphones",
"rating": 4.8,
"mall_id": 634418216644132,
"category": "in Headphones, Earbuds & Accessories",
"thumbnail": "https://img.kwcdn.com/product/fancy/0fcaa1ae.jpg",
"video_url": null,
"product_id": 601102740526088,
"sold_count": "10K+ sold",
"product_url": "https://www.temu.com/wireless-earbuds-g-601102740526088.html",
"market_price": "$20.20",
"review_count": "1,677",
"ranking_label": "TOP RATED",
"shipping_days": 5,
"discount_percent": "76"
}
],
"total_count": 40
},
"status": "success"
}
}About the Temu API
Product Search and Discovery
The search_products endpoint accepts a query string and optional locale, limit, and offset parameters. Each result in the products array includes product_id, title, price, market_price, discount_percent, rating, review_count, sold_count, and a thumbnail URL. The has_more boolean and total_count field allow straightforward offset-based pagination — increment offset by limit to advance pages. For multi-page traversal without re-executing the initial query, start_search_session returns an opaque session_id token that continue_search_session uses to fetch subsequent pages directly. If a session's internal list reference expires, continue_search_session reports recovery_status: 'recovered' and re-establishes the sequence automatically.
Product Details and Images
get_product_details accepts a product_id (obtained from search or homepage results) and returns fields including price, market_price, rating, sold_count, category, thumbnail, video_url, mall_id, and product_url. The video_url and category fields may be null depending on the listing. get_product_images accepts a comma-separated list of up to 40 product IDs and returns all available image URLs per product as a comma-separated string alongside an image_count integer — useful for building image galleries or training datasets without fetching each product individually.
Store and Batch Operations
get_store_products retrieves a paginated product listing for a specific seller identified by mall_id, and includes mall_name and mall_goods_count alongside the standard product array. For bulk workflows, batch_get_products accepts a JSON array of up to 40 product ID strings and returns each result with a status field (success, not_found, or error), optional raw API data, and an optional flat normalized DTO — controlled via include_raw and include_dto flags. The batch_get_stores endpoint mirrors this pattern for up to 20 stores, and supports a limit up to 999 per store by transparently splitting requests. Ongoing store pagination is handled via continue_batch_store_session using opaque session tokens.
Locale and Internationalization
All endpoints accept a locale parameter (e.g. 'en', 'de', 'fr', 'it', 'es') that controls the language of product titles and descriptions as well as regional pricing context. The get_homepage_featured endpoint uses locale to select the featured product set surfaced on the Temu homepage for that region, so results can vary substantially between locales.
The Temu API is a managed, monitored endpoint for temu.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when temu.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official temu.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Track price and discount_percent changes across keyword categories for competitive pricing analysis.
- Aggregate sold_count and review_count fields from search results to identify trending products in a niche.
- Build a cross-locale product catalog by running the same query across multiple locale values and comparing titles and pricing.
- Use batch_get_products with include_dto to normalize up to 40 product records in one API call for database ingestion.
- Enumerate all products from a specific seller using get_store_products with mall_id and mall_goods_count for store-level catalog snapshots.
- Retrieve all image URLs via get_product_images for a batch of product IDs to build visual datasets or image-based search indexes.
- Monitor homepage featured listings by locale using get_homepage_featured to detect merchandising and promotional shifts by region.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.