# Temu Email Scraper (`leads-scraper/temu-email-scraper`) Actor

Temu Email Scraper SD - Temu Email Scraper is a lead generation tool that extracts leads with public contact emails, account names and profile URLs from Temu results by keyword, location and email domain - Temu email extractor.

- **URL**: https://apify.com/leads-scraper/temu-email-scraper.md
- **Developed by:** [Leads Scraper](https://apify.com/leads-scraper) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.49 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### Temu Email Scraper — publicly indexed seller contacts from temu.com

The **Temu Email Scraper** searches `temu.com` through Google and extracts any publicly indexed contact emails it finds, together with account names, handles and profile URLs.
You give it keywords and email domains; it returns whatever the index actually exposes.

Be aware before you start: Temu exposes very few indexable seller pages, so expect low volume.
This is the hardest platform in this marketplace family, and a run can legitimately finish with nothing at all.

That is not a defect in the Actor — it is the shape of Temu's public footprint.
The rest of this page explains what the Temu Email Scraper can realistically do, and which sibling Actors to reach for when it cannot.

#### Set your expectations first

In our own measured testing, a Temu Email Scraper run resolved 5 of 10 targeted results into rows with usable account identity, and returned **zero emails**.
The seller identity layer works; the contact layer had nothing to find on that run.

If you need volume today, use the [Shopee Email Scraper](https://apify.com/leads-scraper/shopee-email-scraper) or the [AliExpress Email Scraper](https://apify.com/neuro-scraper/aliexpress-email-scraper) instead.
Both reach overlapping cross-border seller populations with far more indexed contact data.

Run the Temu Email Scraper when you specifically need Temu, when you are monitoring for newly indexed seller pages, or as one cheap input among several.
Treat any emails it returns as a bonus rather than a plan.

#### What the Temu Email Scraper does and does not do

The Temu Email Scraper composes Google queries with the `site:temu.com` operator, fetches the result pages, and extracts emails from the titles and snippets.
Each unique address is deduplicated and pushed into an Apify dataset the moment it is found.

The Temu Email Scraper does **not** log into Temu, use any Temu or PDD API, or open the site in a browser.
No JavaScript rendering, no authentication, no cookies — only what Google has already indexed publicly.

It is an independent tool, not affiliated with, supported by or endorsed by Temu.

#### Who uses this Temu seller contact tool

Sourcing and wholesale teams run the Temu Email Scraper when a specific supplier or category has to be checked on Temu rather than elsewhere.
Dropshippers use it to see whether the seller behind a product has any public footprint at all.

Brand-protection teams monitor Temu for listings of their products and want whatever contact trail exists.
Marketplace agencies and analysts use it as a low-cost probe into how much of Temu's seller base is publicly indexed at a given time.

### Key features of the Temu Email Scraper

Everything in this table is behaviour the Temu Email Scraper genuinely implements. None of it can conjure data Google has not indexed.

| Feature | What it means in practice |
|---|---|
| `site:` scoping | Every query is locked to `temu.com`, so results stay inside Temu |
| Query expansion | Each keyword × domain pair runs as a base query, a quoted query, an `intitle:` query, plus one variant per query modifier |
| Domain-filtered extraction | Only emails on the domains you list are kept, so you control the shape of the output |
| Global deduplication | An address appears once per run no matter how many queries or pages surfaced it |
| Obfuscation handling | Reads `name [at] domain [dot] com`, `name (at) domain`, `name @ domain.com`, `domain .com`, zero-width characters and the full-width `＠` |
| Junk filter | Discards placeholders such as `email@`, `yourname@`, `test@`, `xxx@` and single-character locals |
| Boundary-correct matching | `@gmail.com` does not match inside `@gmail.company` or `@gmail.com.br` |
| Soft-wrap repair | Drops a hit that is only the tail of another email in the same result block |
| Structural parsing | Locates the `<h3>` title and the smallest surrounding block instead of trusting Google's CSS class names |
| Whole-page fallback | A Google layout change degrades to "emails without account details", not "no emails" |
| Block detection | CAPTCHA, "unusual traffic" and consent pages are detected and retried rather than counted as empty |
| Retries with backoff | Up to 3 attempts per page, exponential backoff, a fresh proxy session per request |
| End-of-run requeue | Blocked or failed queries get one more pass before the run finishes |
| Resumable state | Progress lives in the key-value store keyed by an input hash, saved on `PERSIST_STATE`, `MIGRATING` and `ABORTING` |
| Async concurrency | An `asyncio` worker pool with a shared stop signal once `maxEmails` is reached |
| Run summary | Pages fetched, blocked pages, retries and emails per page are all logged |

### How the Temu Email Scraper works

Six steps, start to finish.

1. The Temu Email Scraper reads your input: keywords, location, email domains and limits.
2. It composes Google queries with the `site:` operator, for example `site:temu.com supplier wholesale "@gmail.com"`.
3. It fetches the result pages through the Apify **GOOGLE\_SERP** proxy using async `aiohttp`.
4. It parses each result block structurally, finding the `<h3>` title and the tightest block around it.
5. It extracts emails from that block text with a domain-filtered regex.
6. It deduplicates globally and pushes each lead into the dataset immediately.

#### Why Temu yields so little

Every step above works the same way it does on the strong platforms in this family.
The difference is entirely upstream: there simply is not much Temu seller content in Google's index that carries a visible email address.

Temu's storefront is heavily app-first and its seller pages are sparsely indexed compared with Shopee, Rakuten or eBay.
No amount of query expansion, concurrency or page depth changes what is not in the index.

That is why the honest recommendation is to run the Temu Email Scraper alongside a stronger sibling rather than instead of one.

#### Beating Google's per-query ceiling

Google returns roughly 300 results for any single query.
That ceiling still applies here, and query expansion still exists to work around it.

The Temu Email Scraper turns each keyword into several phrasings and pairs it with each modifier, so a swarm of narrow queries covers more of a thin index than one broad query would.
On Temu this buys coverage rather than volume.

### Input settings for the Temu Email Scraper

Nine fields drive the Temu Email Scraper. Only `keywords` is required; every other field ships with a working default.

| Field | Type | Default | Meaning |
|---|---|---|---|
| `keywords` | array (required) | `["seller", "supplier"]` | Search terms describing the Temu accounts you want (niche, job title, industry) |
| `location` | string | `""` | Optional location phrase added to every query |
| `customDomains` | array | `["@gmail.com","@yahoo.com"]` | Only emails on these domains are collected; the leading `@` is optional |
| `maxEmails` | integer 1–10000 | `20` | Stop once this many unique emails have been collected |
| `countryCode` | string | `""` | Two-letter country code for the search proxy (US, GB, DE...) |
| `expandQueries` | boolean | `true` | Search each keyword × domain pair in several phrasings |
| `queryModifiers` | array | `["email","contact","wholesale","customer service","inquiries"]` | Extra words combined with each keyword when expansion is on |
| `maxPagesPerQuery` | integer 1–50 | `30` | Page cap per query |
| `maxConcurrency` | integer 1–20 | `5` | How many queries run in parallel |

#### Example input for a Temu seller email run

```json
{
  "keywords": ["seller", "supplier", "store", "wholesale"],
  "location": "",
  "customDomains": ["@gmail.com", "@yahoo.com", "@outlook.com"],
  "maxEmails": 50,
  "countryCode": "US",
  "expandQueries": true,
  "queryModifiers": ["email", "contact", "wholesale", "customer service", "inquiries"],
  "maxPagesPerQuery": 30,
  "maxConcurrency": 5
}
```

Keep `maxEmails` modest on Temu — 20 to 50 is realistic.
Setting it to 1000 will not make the Temu Email Scraper find more; it will only keep the run going against a thin index.

Widening `customDomains` is the single most useful adjustment here.
With so little indexed contact data, restricting to two free-mail domains narrows an already narrow field.

### Output fields from the Temu Email Scraper

Every dataset item the Temu Email Scraper writes carries all fourteen fields. The keys are always present; some values are conditional.

| Field | Meaning |
|---|---|
| `network` | Platform name |
| `keyword` | The keyword that produced the lead |
| `query` | The exact Google query used |
| `title` | Raw result title |
| `accountName` | Account label Google prints (store name or seller label) |
| `fullName` | Display name parsed from a profile-style title; empty for listing-style results |
| `username` | URL-safe handle when the platform exposes one; otherwise `null` |
| `profileUrl` | Canonical store URL when a handle is known; otherwise empty |
| `url` | Direct platform link when exposed, else the profile URL |
| `description` | Listing or snippet text, cleaned of labels and counters |
| `email` | Lower-cased email address |
| `emailDomain` | The matched domain (e.g. `@gmail.com`) |
| `possiblyTruncated` | `true` when Google's snippet ellipsis touched the email — verify before sending |
| `foundAt` | ISO 8601 UTC timestamp |

#### Example output rows

These show the two shapes you can expect when the Temu Email Scraper does find something. The second is the more common one: a listing with no handle behind it.

```json
[
  {
    "network": "Temu",
    "keyword": "supplier",
    "query": "site:temu.com supplier contact \"@gmail.com\"",
    "title": "NorthPeak Outdoor Store | Temu",
    "accountName": "NorthPeak Outdoor",
    "fullName": "NorthPeak Outdoor",
    "username": "northpeak-outdoor",
    "profileUrl": "https://www.temu.com/northpeak-outdoor",
    "url": "https://www.temu.com/northpeak-outdoor",
    "description": "Camping and hiking gear. Wholesale enquiries: northpeak.trade@gmail.com",
    "email": "northpeak.trade@gmail.com",
    "emailDomain": "@gmail.com",
    "possiblyTruncated": false,
    "foundAt": "2025-06-22T09:14:02Z"
  },
  {
    "network": "Temu",
    "keyword": "seller",
    "query": "site:temu.com seller customer service \"@gmail.com\"",
    "title": "Kitchen Storage Containers Set - Temu",
    "accountName": "Lumina Home",
    "fullName": "",
    "username": null,
    "profileUrl": "",
    "url": "https://www.temu.com/",
    "description": "Stackable kitchen storage set. Customer service: lumina.home.service@gmail.com",
    "email": "lumina.home.service@gmail.com",
    "emailDomain": "@gmail.com",
    "possiblyTruncated": true,
    "foundAt": "2025-06-22T09:19:47Z"
  }
]
```

Export what the Temu Email Scraper collects as CSV, JSON, Excel or XML, or read it through the Apify API straight into your CRM.

### Use cases for the Temu Email Scraper

Given the low expected yield, these use cases are mostly monitoring and coverage rather than volume lead generation.

| Use case | How the Temu Email Scraper helps |
|---|---|
| Temu-specific supplier checks | Look for a public contact trail behind a particular Temu store or category |
| Brand protection monitoring | Watch for newly indexed Temu seller pages mentioning your products |
| Index coverage research | Measure how much of Temu's seller base is publicly indexed over time |
| Cross-platform sourcing | Add Temu as one input alongside stronger marketplace Actors |
| Category sampling | See which Temu store names appear for a niche, even where no email is exposed |
| Competitive research | Track how competitors' Temu storefronts surface in Google |
| CRM enrichment | Match any Temu store emails found against suppliers you already track |
| Scheduled re-checks | Rerun monthly to catch pages that become indexed later |

#### Worked example: a realistic Temu probe

Set `keywords` to `["seller", "supplier", "store"]`, `customDomains` to `["@gmail.com", "@yahoo.com", "@outlook.com", "@hotmail.com"]`, and `maxEmails` to 50.
Leave `expandQueries` on so each keyword also runs with the shipped modifiers.

Run it once and read the run summary in the log.
It tells you pages fetched, blocked pages, retries and emails per page — enough to see whether the index is thin or the run was blocked.

If the Temu Email Scraper returns nothing, that is a real answer about Temu's public footprint, not a failure.
Point the same keywords at a stronger sibling and keep Temu on a monthly schedule.

### Tips for getting more from the Temu Email Scraper

Widen `customDomains` first.
It is the highest-leverage change on a platform with this little indexed contact data.

Use product-category keywords, not just role words.
"kitchen storage" or "pet grooming" gives the Temu Email Scraper more surface than "seller" alone.

Do not raise `maxConcurrency` or `maxPagesPerQuery` hoping for volume.
More parallel queries will not make the Temu Email Scraper find emails that are absent from the index — it only spends proxy budget faster.

Schedule it monthly on a stable input.
Coverage changes as pages get indexed, and a repeat run is the only way to catch that.

Run it as part of a set. The [Wish Email Scraper](https://apify.com/leads-scraper/wish-email-scraper) and the [DHgate Email Scraper](https://apify.com/neuro-scraper/dhgate-email-scraper) target similar budget cross-border supplier populations with better indexed contact data.

#### Responsible use, GDPR and marketplace terms

The Temu Email Scraper only collects addresses that are already public in Google's index, and the few it finds are typically business or customer-service mailboxes published for trade enquiries.
That does not make every use lawful by default.

GDPR, CAN-SPAM and equivalent local rules still govern how you store, contact and profile the people behind those addresses.
Temu's own terms of service govern how you may interact with sellers on the platform.

Keep outreach relevant and commercial, honour opt-outs immediately, and do not use marketplace contact data for consumer spam.
Compliance is your responsibility, not the Actor's.

### Limitations of the Temu Email Scraper

Stated plainly, because they affect what you should expect.

- **Very low expected volume.** Temu exposes very few indexable seller pages, so expect low volume. In our own measured testing, a run returned 5 of 10 results with usable identity and zero emails.
- **A run can return nothing.** That is a normal outcome on this platform, not an error. Check the run summary in the log before assuming something went wrong.
- **Publicly indexed emails only.** If an address is not in Google's index, the Temu Email Scraper cannot find it. In-app chat and contact forms are invisible to it.
- **Google's ~300-result cap.** A single query tops out at roughly 300 results, which is exactly why query expansion exists.
- **`possiblyTruncated`.** When Google's snippet ellipsis touched the email, this flag is `true` and the address may be incomplete. Verify before sending.
- **`username` and `profileUrl` are conditional.** They are only populated when Google's result exposes a usable handle. Many Temu rows will carry `accountName` with `username: null` and an empty `profileUrl`. That is a Google limitation, not a bug.
- **Apify GOOGLE\_SERP proxy required.** The Temu Email Scraper cannot run without Apify proxy credentials.
- **Free-plan cap.** Free Apify plans stop at 100 emails per run; paid plans are uncapped.
- **No guaranteed volume.** Results vary with keywords, domains, country and location, and no volume is guaranteed — least of all here.

### Related Actors

The Temu Email Scraper shares its engine with the rest of this E-commerce & Marketplaces family; only the platform configuration differs. Several of these yield far more than Temu does.

| Actor | What it collects |
|---|---|
| [AliExpress Email Scraper](https://apify.com/neuro-scraper/aliexpress-email-scraper) | Public contact emails from AliExpress |
| [Allegro Email Scraper](https://apify.com/neuro-scraper/allegro-email-scraper) | Public contact emails from Allegro |
| [Amazon Email Scraper](https://apify.com/leads-scraper/amazon-email-scraper) | Public contact emails from Amazon |
| [Best Buy Seller Email Scraper](https://apify.com/leads-scraper/best-buy-seller-email-scraper) | Public contact emails from Best Buy |
| [BigCommerce Store Email Scraper](https://apify.com/neuro-scraper/bigcommerce-store-email-scraper) | Public contact emails from BigCommerce Store |
| [Cdiscount Email Scraper](https://apify.com/neuro-scraper/cdiscount-email-scraper) | Public contact emails from Cdiscount |
| [Coupang Email Scraper](https://apify.com/neuro-scraper/coupang-email-scraper) | Public contact emails from Coupang |
| [Depop Email Scraper](https://apify.com/leads-scraper/depop-email-scraper) | Public contact emails from Depop |
| [DHgate Email Scraper](https://apify.com/neuro-scraper/dhgate-email-scraper) | Public contact emails from DHgate |
| [eBay Email Scraper](https://apify.com/leads-scraper/ebay-email-scraper) | Public contact emails from eBay |
| [Ecwid Store Email Scraper](https://apify.com/neuro-scraper/ecwid-store-email-scraper) | Public contact emails from Ecwid Store |
| [Etsy Email Scraper](https://apify.com/leads-scraper/etsy-email-scraper) | Public contact emails from Etsy |
| [Faire Email Scraper](https://apify.com/leads-scraper/faire-email-scraper) | Public contact emails from Faire |
| [Flipkart Email Scraper](https://apify.com/leads-scraper/flipkart-email-scraper) | Public contact emails from Flipkart |
| [Home Depot Seller Email Scraper](https://apify.com/leads-scraper/home-depot-seller-email-scraper) | Public contact emails from Home Depot |
| [JD.com Email Scraper](https://apify.com/leads-scraper/jd-com-email-scraper) | Public contact emails from JD.com |
| [Lazada Email Scraper](https://apify.com/neuro-scraper/lazada-email-scraper) | Public contact emails from Lazada |
| [Lowe's Seller Email Scraper](https://apify.com/leads-scraper/lowes-seller-email-scraper) | Public contact emails from Lowe's |
| [MercadoLibre Email Scraper](https://apify.com/neuro-scraper/mercadolibre-email-scraper) | Public contact emails from MercadoLibre |
| [Mercari Email Scraper](https://apify.com/neuro-scraper/mercari-email-scraper) | Public contact emails from Mercari |
| [Newegg Email Scraper](https://apify.com/leads-scraper/newegg-email-scraper) | Public contact emails from Newegg |
| [Otto Email Scraper](https://apify.com/leads-scraper/otto-email-scraper) | Public contact emails from Otto |
| [Overstock Email Scraper](https://apify.com/leads-scraper/overstock-email-scraper) | Public contact emails from Overstock |
| [Poshmark Email Scraper](https://apify.com/leads-scraper/poshmark-email-scraper) | Public contact emails from Poshmark |
| [Rakuten Email Scraper](https://apify.com/neuro-scraper/rakuten-email-scraper) | Public contact emails from Rakuten |
| [Shopee Email Scraper](https://apify.com/leads-scraper/shopee-email-scraper) | Public contact emails from Shopee |
| [Shopify Store Email Scraper](https://apify.com/leads-scraper/shopify-store-email-scraper) | Public contact emails from Shopify Store |
| [Taobao Email Scraper](https://apify.com/leads-scraper/taobao-email-scraper) | Public contact emails from Taobao |
| [Target Seller Email Scraper](https://apify.com/neuro-scraper/target-seller-email-scraper) | Public contact emails from Target |
| [Tmall Email Scraper](https://apify.com/leads-scraper/tmall-email-scraper) | Public contact emails from Tmall |
| [Vinted Email Scraper](https://apify.com/leads-scraper/vinted-email-scraper) | Public contact emails from Vinted |
| [Walmart Email Scraper](https://apify.com/leads-scraper/walmart-email-scraper) | Public contact emails from Walmart |
| [Wayfair Email Scraper](https://apify.com/neuro-scraper/wayfair-email-scraper) | Public contact emails from Wayfair |
| [Wish Email Scraper](https://apify.com/leads-scraper/wish-email-scraper) | Public contact emails from Wish |
| [Wix Stores Email Scraper](https://apify.com/leads-scraper/wix-stores-email-scraper) | Public contact emails from Wix Stores |
| [WooCommerce Email Scraper](https://apify.com/neuro-scraper/woocommerce-email-scraper) | Public contact emails from WooCommerce |
| [Zalando Email Scraper](https://apify.com/leads-scraper/zalando-email-scraper) | Public contact emails from Zalando |
| [AliExpress Email and Phone Number Scraper](https://apify.com/neuro-scraper/aliexpress-email-and-phone-number-scraper) | Emails and phone numbers from AliExpress |
| [Allegro Email and Phone Number Scraper](https://apify.com/neuro-scraper/allegro-email-and-phone-number-scraper) | Emails and phone numbers from Allegro |
| [Amazon Email and Phone Number Scraper](https://apify.com/leads-scraper/amazon-email-and-phone-number-scraper) | Emails and phone numbers from Amazon |
| [Best Buy Email and Phone Number Scraper](https://apify.com/neuro-scraper/best-buy-seller-email-and-phone-number-scraper) | Emails and phone numbers from Best Buy |
| [BigCommerce Store Email and Phone Number Scraper](https://apify.com/neuro-scraper/bigcommerce-store-email-and-phone-number-scraper) | Emails and phone numbers from BigCommerce Store |

### FAQ about the Temu Email Scraper

#### How many results should I expect from a Temu Email Scraper run?

Very few, and possibly none. Temu exposes very few indexable seller pages, so expect low volume. In our own measured testing a run produced 5 of 10 results with usable account identity and zero emails. If you need volume, start with the Shopee or AliExpress Actors instead.

#### My run returned zero emails. Is it broken?

Probably not. Zero is a realistic outcome on Temu. Check the run summary in the log — it reports pages fetched, blocked pages and retries, which distinguishes a thin index from a blocked run.

#### Why is Temu so much weaker than the other marketplace Actors?

The Actor is identical; only the platform configuration differs. Temu simply has far less publicly indexed seller content carrying a visible email than Shopee, Rakuten or eBay do.

#### Does the Temu Email Scraper use the Temu API?

No. It does not use any Temu API, does not log in, and does not open the Temu website. Every field comes from publicly indexed Google search results.

#### Is this Actor affiliated with or endorsed by Temu?

No. It is an independent tool built on public Google results, and it is not officially supported by, affiliated with or endorsed by Temu.

#### Which domain does the Temu Email Scraper search?

`temu.com`. Every query is scoped with Google's `site:` operator.

#### What is the best way to improve yield?

Widen `customDomains` and use product-category keywords. Raising `maxPagesPerQuery` or `maxConcurrency` does not help against a thin index.

#### Why does the Temu Email Scraper leave `username` and `profileUrl` empty on many rows?

Those fields fill only when Google's result exposes a usable handle. On Temu that is frequently not the case, so you get `accountName` with `username: null` and an empty `profileUrl`. This is a Google limitation, not a bug.

#### What does `possiblyTruncated: true` mean?

Google's snippet ellipsis touched the email, so the address may be cut off. Treat those rows as leads to verify rather than addresses to mail.

#### How many emails can one Temu Email Scraper run return?

Free Apify plans stop at 100 emails per run and paid plans are uncapped, but on Temu the practical ceiling is set by the index, not by `maxEmails`.

#### Do I need a proxy?

Yes. The Temu Email Scraper requires the Apify GOOGLE\_SERP proxy and cannot run without Apify proxy credentials.

#### Can a run be resumed after a migration?

Yes. Progress is stored in the key-value store keyed by a hash of your input, and saved on Apify's `PERSIST_STATE`, `MIGRATING` and `ABORTING` events.

#### Is this data compliant to use?

The Temu Email Scraper only collects addresses already public in Google's index. How you store and use them — GDPR, CAN-SPAM, local marketing rules and Temu's own terms — remains your responsibility.

### Leave a review

If the Temu Email Scraper saved you time, please leave a star rating and a short review on the
Actor page.

Reviews are how other buyers judge whether a tool works, and they tell us which features to
build next.

If something did not work, email <neurodata.apify@gmail.com>
instead - bugs get fixed faster than they get complained about.

### Support

Questions, feature requests or a custom build? Email **neurodata.apify@gmail.com**.

# Actor input Schema

## `keywords` (type: `array`):

Search terms describing the Temu accounts you want (niche, job title, industry).

## `location` (type: `string`):

Optional location phrase added to every query (e.g. "New York").

## `customDomains` (type: `array`):

Only emails ending with one of these domains are collected. With or without the leading @. Each domain is searched separately, so more domains means more results but a longer run - remove some for a faster, narrower search, or add your own (e.g. @company.com).

## `maxEmails` (type: `integer`):

Stop once this many unique emails have been collected.

## `countryCode` (type: `string`):

Two-letter country code for the search proxy (e.g. US, GB, DE). Empty for any.

## `expandQueries` (type: `boolean`):

Search each keyword x domain pair with several phrasings. Recommended - Google caps a single query at ~300 results.

## `queryModifiers` (type: `array`):

Extra words combined with each keyword when Expand queries is on. Tuned for Temu.

## `maxPagesPerQuery` (type: `integer`):

Google rarely returns more than ~30 pages for one query.

## `maxConcurrency` (type: `integer`):

How many queries run in parallel.

## Actor input object example

```json
{
  "keywords": [
    "seller",
    "supplier"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com",
    "@yahoo.com"
  ],
  "maxEmails": 20,
  "countryCode": "",
  "expandQueries": true,
  "queryModifiers": [
    "email",
    "contact",
    "wholesale",
    "customer service",
    "inquiries"
  ],
  "maxPagesPerQuery": 30,
  "maxConcurrency": 5
}
```

# Actor output Schema

## `results` (type: `string`):

Records produced by Temu Email Scraper, stored in the run's default dataset.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "keywords": [
        "seller",
        "supplier"
    ],
    "location": "",
    "customDomains": [
        "@gmail.com",
        "@yahoo.com"
    ],
    "countryCode": "",
    "queryModifiers": [
        "email",
        "contact",
        "wholesale",
        "customer service",
        "inquiries"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("leads-scraper/temu-email-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "keywords": [
        "seller",
        "supplier",
    ],
    "location": "",
    "customDomains": [
        "@gmail.com",
        "@yahoo.com",
    ],
    "countryCode": "",
    "queryModifiers": [
        "email",
        "contact",
        "wholesale",
        "customer service",
        "inquiries",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("leads-scraper/temu-email-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "keywords": [
    "seller",
    "supplier"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com",
    "@yahoo.com"
  ],
  "countryCode": "",
  "queryModifiers": [
    "email",
    "contact",
    "wholesale",
    "customer service",
    "inquiries"
  ]
}' |
apify call leads-scraper/temu-email-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,leads-scraper/temu-email-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/Yp8tLaUbhg7aGHQKp/builds/y5zEvaQkRPGmyGEVC/openapi.json
