Temu Product Scraper & Price Monitor
Pricing
from $1.40 / 1,000 temu product results
Temu Product Scraper & Price Monitor
Search public Temu products with region-bound coverage, extract exact products and SKUs, create commerce-ready rows, or monitor factual changes.
Pricing
from $1.40 / 1,000 temu product results
Rating
0.0
(0)
Developer
Luka
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
19 hours ago
Last modified
Categories
Share
Search Temu by multiple keywords, collect exact public products and variants, create commerce-ready rows, or monitor factual changes without turning a block into an empty result.

What it does
Use one Actor for keyword discovery, exact product and SKU extraction, commerce-ready exports, and repeat-run price or product monitoring. Every delivered product is tied to a stable Temu goods ID and a literal keyword match; unrelated products are rejected instead of being returned as results.
What the Actor returns
The normalized product shape can contain source-published:
- stable
goodsId/productId, canonical URL, title, category, and description; - current price, original/list price, discount, and source-observed currency;
- rating, reviews, and both raw and normalized sold count with
soldCountIsLowerBoundfor values such as5K+; - shop/seller, availability, shipping text, free-shipping flag, and delivery-day bounds;
- primary image, gallery images, product video;
- nested variants with stable SKU ID, label, price, list price, availability, stock, and media.
Every field is nullable when Temu does not publish it. The Actor does not infer demand, “hot product”, trend, risk, value, profit, or recommendations.
Each run also writes:
- an explicit
coveragerow with per-target receipts and exact field coverage; - an optional free
summaryrow with mechanical counts, price statistics, and source-sold-count ordering; changerows in monitoring mode;- a sanitized run summary with coverage, state outcome, accepted charge counts, public-source classification, and resource totals.
Quick start
{"workflow": "search_products","searchKeywords": ["wireless earbuds", "usb c hub"],"region": "us","sortBy": "relevance","maxProductsPerKeyword": 20,"includeVariants": true,"outputFormat": "default"}
Keywords run sequentially for the selected market. Products are deduplicated by goodsId; variants remain nested, so one product is one result row.
Three workflows
Search products
Use search_products with one to ten searchKeywords. maxProductsPerKeyword accepts 1–300. The permanent keyword-fidelity contract rejects an unrelated recommendation/funnel surface with WRONG_SURFACE_ZERO_KEYWORD_MATCH.
Sort choices are:
relevance: preserves Temu source order;top_sales: mechanical descending normalized source sold count;price_asc/price_desc: mechanical price order;newest: uses a source-published listing timestamp and fails closed when that field is absent.
minPrice and maxPrice are deterministic filters. A completed source scope with removed rows is FILTERED; that status cannot advance an absence counter toward ENDED.
Scrape exact products
Use scrape_exact_products with up to 100 productUrls, 100 bare productIds, or both. First-party *.temu.com share links are allowed. Redirect-only share links must resolve back to a Temu URL with a stable goods ID; external redirects and unresolved IDs fail closed.
Exact targets read public first-party Temu product data. Detail checks are priced separately from search because they require one public product lookup per target.
Track product changes
Use track_product_changes with exact public product URLs or IDs and a stable stateNamespace.
- First trustworthy run: creates a baseline without a
NEWflood. - Later trustworthy run: emits factual
NEWorUPDATEDrows withbefore,after, andchangedFields. ENDED: requires two consecutive comparable complete absences.PARTIAL,FILTERED,CAPPED,BLOCKED, orFAILED: cannot increment the absence counter and cannot prove removal.includeUnchanged: true: adds current snapshots as free rows.
Run the same namespace and scope sequentially. Controlled repeat-run tests prove quiet baseline creation, factual updates, two-absence ENDED, and no duplicate paid change after recovery. A naturally occurring live product change has not yet been observed; universal change coverage is not promised.
Region presets
The input contains 20 bounded presets: us, uk, de, fr, es, it, nl, au, ca, br, mx, jp, kr, pl, se, at, be, pt, cz, and ie.
A preset selects the Temu market, language, and expected currency. Configuration alone is not field proof: currencyObserved becomes true only when the public source publishes the expected currency. Only regions that returned literal keyword matches with matching source-observed currency are listed as supported.
Canary-verified search regions are us, uk, de, fr, es, it, nl, au, ca, br, mx, jp, pl, se, at, be, pt, cz, and ie. South Korea (kr) is not yet supported.
Output formats and exports
outputFormat selects exactly one paid row per factual product:
default: normalized Temu product;shopify: mechanical Shopify-ready product and nested variant mapping;google_merchant: mechanical Google Merchant row.
retailMarkup is an optional user-supplied multiplier from 1–10. Every derived row labels the transform; the Actor does not recommend a multiplier or claim profitability.
Apify Dataset can export the chosen rows as JSON, CSV, Excel, XML, or RSS. Dataset views cover products, commerce mappings, changes, summaries, and coverage; recordType always remains visible because the Dataset contains mixed row types.
Coverage contract
| Status | Meaning |
|---|---|
COMPLETE | Every requested target completed within the declared comparable scope. |
FILTERED | The source scope completed and buyer price filters removed rows. |
CAPPED | A row, page, request, byte, runtime, or spend guard stopped traversal while more may exist. |
PARTIAL | Useful rows exist, but one or more targets or required layers did not complete. |
BLOCKED | Temu returned a verified block/challenge. This is never empty. |
FAILED | A transport, source-shape, identity, region, or parser failure prevented trustworthy coverage. |
EMPTY_CONFIRMED | The expected source result shape explicitly confirmed no matching rows. |
Supplemental public fields may enrich only goods IDs already present in the keyword-faithful result set. They can never introduce a new product ID.
Billing contract
The Actor uses four independently priced charge events:
search_target: one trustworthy search target attempt;detail_target: one trustworthy exact-detail target attempt;monitor_target: one trustworthy monitoring scan target;product_result: one atomically delivered product, commerce mapping, or verified change.
The primary product price is the same on every plan: $1.40 per 1,000 delivered products. Target-event prices vary by plan:
| Apify tier | Search target | Product result | Detail target | Monitor target |
|---|---|---|---|---|
| Free | $0.100 | $0.0014 | $0.008 | $0.009 |
| Bronze | $0.100 | $0.0014 | $0.0075 | $0.0085 |
| Silver | $0.100 | $0.0014 | $0.007 | $0.008 |
| Gold | $0.100 | $0.0014 | $0.0065 | $0.0075 |
| Platinum | $0.100 | $0.0014 | $0.006 | $0.007 |
| Diamond | $0.100 | $0.0014 | $0.006 | $0.007 |
A successful search costs one $0.10 search-target event plus $0.0014 x delivered products. For example, 20 products cost $0.128, 100 cost $0.240, and 300 cost $0.520 on every plan. A useful exact detail costs one detail-target event plus one product event. An unchanged trustworthy monitoring scan costs only the monitor event; each delivered change adds one product event.
Failed, blocked, unrelated, empty-unconfirmed, and unusable partial targets are free. Coverage, summary, warnings, nested variants, and optional unchanged snapshots are also free rows. maxBuyerChargeUsd checks the complete maximum event vector before source work.
Verified scope and limits
The implementation and canaries verify:
- all three advertised workflows and their buyer-facing input/output contracts;
- 20 preset configurations and independent per-keyword limits through 300;
- strict same-
goodsIdenrichment without admitting unrelated products; - rich detail normalization and selectable default/Shopify/Google Merchant rows;
- stable product/SKU identity, explicit coverage, quiet monitoring baselines, repeat-safe changes, and bounded maximum state.
Not yet supported: South Korea (kr) search; guaranteed presence of secondary fields that remain nullable; login/account/cart data; CAPTCHA solving or bypass; alternate third-party source services; inferred scores or recommendations; concurrent writes to the same monitoring scope.
Safety and source boundaries
The Actor uses anonymous public first-party Temu data only. CAPTCHA or login is a stop condition. A challenge, unrelated result surface, unresolved share link, currency mismatch, or malformed response cannot be billed as a useful product and cannot update monitoring state. The Actor does not place orders or use another scraping Actor as its source.
Support
For a reproducible issue, include the run ID, sanitized input, region, query or goods ID, and coverage status. Never send credentials, payment data, or 2FA codes.