Scrape Temu product listings in real-time — title, price, original price, rating, reviews, sold count, shop, images. Perfect for dropshipping research.
All notable changes to this Actor will be documented here.
[1.4.3] — 2026-06-28 — Real product images recovered from the URL
Fixed — images were generic / empty
Temu loads its product gallery via JavaScript, so the logged-out HTML our
scraper sees often has only a placeholder image (or none). Result: images /
imageUrl came back generic or empty even on a successful scrape.
The full Temu URL (address-bar / "Share → Copy link") carries the real
product image in its query string (top_gallery_url=…img.kwcdn.com…jpg).
We previously stripped the whole query before scraping, discarding it.
Now the Actor mines real Temu CDN image URLs (kwcdn.com / kwimg.com) from
the original URL's query string and uses them as the primary image /
gallery when the scraped page didn't provide real ones. Recovered images are
flagged with imageSource: "url-gallery".
Passing the full URL (with top_gallery_url) now yields better images
than a hand-cleaned link. URL cleaning/validation is unchanged, so noisy URLs
are still handled automatically.
Note
transient-error on a run is an upstream backend stall, not input-related;
a re-run normally succeeds (automatic retries already built in).
[1.4] — 2026-06-18 — Graceful exit on empty / unsupported input (no false failures)
Fixed — Actor no longer fails when there's nothing to scrape
When no product URLs are provided, or all provided URLs are
unsupported (short app links / bare IDs / generic slugs that Temu can't
serve to scrapers), the Actor now exits cleanly with a clear status
message instead of returning a FAILED run.
These are user-input situations, not Actor errors. Failing on them produced
misleading FAILED runs and risked tripping the platform's daily health check.
Unsupported inputs are still skipped and NOT charged (unchanged from 1.3).
Fixed — wrong product returned for app links / bare IDs
Temu serves scrapers a generic placeholder product for any URL that isn't
the full SEO product link (verified: goods.html?goods_id=..., bare numeric
IDs, and generic product-g-<id>.html all return the same wrong default
product). The scraper now validates URLs up front and only scrapes full
product URLs that contain the product-name slug
(https://www.temu.com/<product-name>-g-<id>.html).
Unsupported inputs are skipped and NOT charged (previously they were
scraped and billed, returning a wrong title). A clear INPUT_ERRORS record is
written to the key-value store explaining how to get the correct URL.
Tracking / session parameters are stripped from URLs before scraping.