Temu Scraper - Product Search Data Extractor avatar

Temu Scraper - Product Search Data Extractor

Pricing

from $1.10 / 1,000 products

Go to Apify Store
Temu Scraper - Product Search Data Extractor

Temu Scraper - Product Search Data Extractor

Scrape Temu search results into structured product data: product ID, title, price, discount, seller ID, image and product URL. Bulk search terms or URL import, price filters, and CSV, JSON or Excel export. Built for price monitoring, dropshipping and competitor research.

Pricing

from $1.10 / 1,000 products

Rating

0.0

(0)

Developer

Scrape Sage

Scrape Sage

Maintained by Community

Actor stats

0

Bookmarked

12

Total users

5

Monthly active users

14 days ago

Last modified

Share

Disclaimer: This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by PDD Holdings Inc. or any of its subsidiaries. All trademarks mentioned are the property of their respective owners. "Temu" is referenced only to describe the publicly available website this Actor collects data from.

Scrape Temu search results into a clean, structured dataset. Give it a search term - or a list of Temu search URLs - and get back every product Temu shows for it: product ID, title, price, discount, seller ID, image and the canonical product URL, ready for Excel, CSV, JSON or your own pipeline.

Built for e-commerce price monitoring, competitor research, dropshipping product research, catalog matching and market analysis on one of the fastest-growing marketplaces in the world.

  • Up to 120 products per result page, paginated automatically to the depth you ask for.
  • Need thousands of products? Use more search terms. Temu itself returns at most ~300 results per search (3 pages of 120) - that is Temu's limit, not this Actor's. Ten terms at 100 each returns 1,000 products in a single run; the run tells you when a term ran out early.
  • No Temu account, no cookies, no login. Nothing to configure but your search terms.
  • Pay only for products you keep - price and adult-content filters run during the scrape, so filtered-out products are never charged.
  • Bulk input: paste search terms, paste a block of Temu search URLs, upload a .txt/.csv file, or link a remote file / Google Sheet.

What you get

One row per product:

FieldDescription
productIdTemu's numeric product (goods) ID
titleFull product title
urlCanonical Temu product URL
priceNumeric price, e.g. 12.68
priceTextPrice exactly as shown, e.g. $12.68
currencyCurrency code, e.g. USD
originalPricePre-discount price, when the product is discounted
discountPercentDiscount percentage, when the product is discounted
soldCountUnits sold, when Temu discloses it
soldTextThe "N sold" badge verbatim, when shown
imageUrl / imageWidth / imageHeightMain product image and its dimensions
sellerIdTemu seller (mall) ID - group or match listings by seller
sellerTypefirst-party, third-party-marketplace or local-warehouse
skuIdCurrently selected SKU ID
tagsMerchandising badges, e.g. Only 7 left, Used - Like New
isAdultProductWhether Temu flags the listing as adult content
onFlashDeal / dealEndsAtWhether the product is in a timed deal, and when it ends
rankPosition in the result set
searchTermThe search term the row came from
sourceUrl / scrapedAtProvenance of the row

Honest note on field coverage

Temu itself only publishes some of these for some listings, so a few fields are deliberately null rather than guessed. Measured across a full 120-product result page:

  • originalPrice / discountPercent - ~6%: present only while a product is actually discounted.
  • soldCount / soldText - ~5%: Temu discloses sales volume for a minority of listings. This actor emits null when nothing is disclosed rather than a misleading 0.
  • tags - ~31%: only listings Temu badges.
  • dealEndsAt - ~17%: only listings on a countdown.

Everything else - productId, title, url, price, priceText, currency, imageUrl, sellerId, sellerType, skuId, rank - is 100% populated.


Input

FieldWhat it does
Search termsOne term per line, exactly what you would type into Temu's search box.
Start URLsTemu search-result URLs. Supports Link remote text file and file upload.
Search URLs from a file or pasted listPaste a block of URLs, or one link to a .txt/.csv/Google Sheet. Ideal from the API or an AI agent.
Max products per search termStop after this many products per term. Temu returns 120 per page.
Minimum / Maximum priceKeep only products in a price band. Applied while scraping - filtered rows are not charged.
Exclude adult productsDrop listings Temu flags as adult content.
Proxy configurationResidential proxies are strongly recommended and set by default.
{
"searchTerms": ["wireless earbuds", "yoga mat"],
"maxResultsPerTerm": 240,
"minPrice": 5,
"maxPrice": 50,
"excludeAdultProducts": true
}

Product-detail URLs are not supported. Temu serves individual product pages as an empty JavaScript shell with no data in it, so this actor scrapes search-result pages only. Every row still carries the canonical product URL.


Use with AI assistants (MCP)

This actor works as a tool for AI assistants and agents through the Apify MCP server - ask for Temu products in natural language and the agent runs this scraper and reads the dataset back.

Agent-ready: autonomous payments (x402 & Skyfire)

This actor is agent-ready — AI agents can discover it, run it, and pay for it autonomously, with no Apify account and no human in the loop. It uses pay-per-event pricing and limited permissions, so it qualifies for Apify's agentic-payment standards:

  • x402 — an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the Apify MCP server — no account, no API key.
  • Skyfire — agent-to-service payments for fully autonomous AI-agent workflows.

Building an AI agent, MCP tool, or autonomous data pipeline? This scraper is ready to plug in and pay as it goes.


Pricing

Pay-per-event: you are charged per product returned. Products removed by your price or adult-content filters are never charged, and a run that returns nothing costs nothing.

Reliability - read this before you buy

Temu rate-limits its own search pages. That is the single thing that decides how much data a run returns, and this Actor is built around it rather than pretending otherwise:

  • it rotates a pool of search-engine crawler identities, because Temu's limit applies per identity;
  • a throttled response is detected and retried on a fresh IP and a different identity, never mistaken for "no results";
  • any search still refused at the end gets a second pass after a deliberate pause, because the throttle usually lifts within a few minutes;
  • searches run several at a time, so the run waits out one slow patch instead of every one.

What this means in practice. Small and medium jobs - up to a few hundred products - normally come back complete, in a couple of minutes. On a large multi-term job, some searches can still come back empty, and we would rather tell you than quietly hand you a short file. When that happens the run status says exactly which searches are missing, for example:

⚠ INCOMPLETE: 8 of your 10 searches returned data. Temu rate-limited the other 2 (water bottle, hair clips) even after a second attempt, so they are MISSING from this dataset. This is Temu throttling its own search pages, not a failure of your input - re-run just those searches in a few minutes and they will usually come through. You were not charged for the missing ones.

You are never charged for a search that returned nothing, and a run that gets nothing at all costs nothing at all. If completeness matters more than speed, run fewer search terms per run and space the runs a few minutes apart - that reliably returns everything.

Automate & schedule

Run this Actor on autopilot and pull results into your own stack:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });
const run = await client.actor('scrapesage/temu-scraper').call({
"searchTerms": [
"wireless earbuds"
],
"maxResultsPerTerm": 120
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} records`);

Integrate with any app

Connect the dataset to thousands of apps - no code required:

  • Make - multi-step automation scenarios.
  • Zapier - push new records straight into your CRM or spreadsheet.
  • Slack - get notified when a scheduled run finds something new.
  • Google Drive / Sheets - auto-export every run to a spreadsheet.
  • Airbyte - pipe results into your data warehouse.
  • GitHub - trigger runs from commits or releases.

More scrapers from scrapesage

Related Actors in the same category:

FAQ

How is this Actor billed? Pay-per-event: you pay only for the results it delivers, with no monthly rental and no start fee. The per-event price is shown on the Pricing tab.

Can I schedule it and get results automatically? Yes - create a Schedule and add a webhook or an integration (Google Sheets, Slack, Make, Zapier) to push each run's dataset wherever you need it.

Which export formats are available? Every run's dataset can be downloaded as JSON, CSV, Excel (XLSX), XML, HTML or RSS from the Apify Console or the API.

Can I run it from code or an AI agent? Yes - through the Apify API and client libraries, or from Claude, ChatGPT and other assistants via the Apify MCP server.

Is it legal to scrape Temu? This Actor collects publicly available data only. You are responsible for using the output in compliance with applicable laws (including data-protection law where personal data is involved) and the source's terms. See the Disclaimer below.

Is this an official Temu tool? No. It is an independent, third-party Actor with no affiliation to, endorsement by or sponsorship from PDD Holdings Inc. See the Disclaimer below.

This actor collects only publicly available product listings from Temu search pages - no login, no personal data, and nothing behind an account. Temu's robots.txt places no restriction on search-result pages for general agents. You are responsible for how you use the data, including compliance with Temu's terms and applicable law.

Not affiliated with, endorsed by, or sponsored by Temu. "Temu" is a trademark of its respective owner and is used here only to describe what this actor scrapes.

Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by PDD Holdings Inc. or any of its subsidiaries. All trademarks mentioned are the property of their respective owners.

"Temu" and any related marks are the property of their respective owners and are used here only in a descriptive, nominative sense - to identify the publicly accessible website from which this Actor collects data. This Actor is not an official Temu product, is not authorised or certified by PDD Holdings Inc., and does not distribute Temu software. It collects only publicly available information; you are responsible for ensuring your use of that data complies with applicable laws, regulations and the terms of the source website.

Need help?

Open an issue on the Actor's Issues tab, or visit the Apify help center. Feature requests are welcome - this Actor is actively maintained.