# Textile Infomedia Email Scraper (`leads-scraper/textile-infomedia-email-scraper`) Actor

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

- **URL**: https://apify.com/leads-scraper/textile-infomedia-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

### Textile Infomedia Email Scraper - public Indian textile supplier emails from textileinfomedia.com

The Textile Infomedia Email Scraper collects publicly indexed contact emails that appear in Google search results for `textileinfomedia.com`. Textile Infomedia is an India-focused textile and apparel business directory, built so that fabric buyers, garment units and machinery vendors can find each other and trade.

That purpose is why this Actor works so well. A Textile Infomedia listing exists to attract enquiries, so sales, export and wholesale addresses sit in public view rather than behind a login.

The Textile Infomedia Email Scraper turns that public layer into a structured dataset. It builds Google `site:textileinfomedia.com` queries, reads the result pages through the Apify GOOGLE_SERP proxy, and extracts every email matching your domain filter.

The audience is the Indian textile supply chain and everyone selling into it: apparel brands sourcing mills and garment units, fabric agents, dyeing and finishing chemical suppliers, and textile machinery vendors.

#### A measured live result, stated plainly

A live Google run of the Textile Infomedia Email Scraper returned **10 result blocks, 9 rows with account identity, 9 resolvable profile URLs and 5 unique emails**. Those are observed figures from a real run.

Nine handles out of ten blocks is the headline. Textile Infomedia exposes a clean company path, so the Textile Infomedia Email Scraper produced a usable `username` and `profileUrl` on almost every row it found.

That makes this the strongest identity resolution in the textile set, and a natural partner to [Fibre2Fashion Email Scraper](https://apify.com/neuro-scraper/fibre2fashion-email-scraper), which delivers high email volume but almost no handles.

Five unique emails from ten blocks on the default webmail filter is a normal ratio for an Indian supplier directory. Widening `customDomains` to include `@rediffmail.com` and `@hotmail.com` is the single most valuable change you can make.

### Features of the Textile Infomedia Email Scraper

Every feature listed below is genuinely implemented. Nothing here is aspirational.

| Feature | What it means in practice |
|---|---|
| Google SERP parsing | Reads Google result pages through the Apify GOOGLE_SERP proxy. No browser, no JavaScript rendering |
| Structural block detection | Locates the `<h3>` title, then the smallest surrounding block. Does not depend on Google's CSS class names |
| Domain filter | Only emails ending in one of your `customDomains` values are kept |
| Query expansion | Base, quoted, `intitle:` and one variant per query modifier. Base queries run first |
| Global deduplication | An email seen once is never pushed twice, across every query and every page |
| Email normalisation | Understands `name [at] domain [dot] com`, `name (at) domain`, `name @ domain.com`, `domain .com`, zero-width characters and the full-width `＠` sign |
| Junk filter | Rejects 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 block |
| Concurrency | An `asyncio` worker pool with a shared stop signal on `maxEmails` |
| Retries | Up to 3 attempts per page, exponential backoff, a fresh proxy session per request |
| Block detection | CAPTCHA, "unusual traffic" and consent pages are detected and retried, not counted as empty |
| Re-queueing | Blocked or failed queries are retried once at the end of the run |
| Resumable run | State is stored in the key-value store, keyed by a hash of the input, and saved on `PERSIST_STATE`, `MIGRATING` and `ABORTING` |
| Fallback parser | If Google's markup changes, the run degrades to "emails without account details" rather than "no emails" |
| Run summary | Logs pages fetched, blocked pages, retries and emails per page |
| Dataset output | Rows push immediately and export to CSV, JSON, Excel or XML from the Apify dataset |

Email normalisation deserves special mention on this platform. Indian directory listings frequently obfuscate addresses as `name [at] domain [dot] com` to deter bots, and the Textile Infomedia Email Scraper reads those forms correctly instead of skipping them.

Query expansion matters too. Textile Infomedia splits its index into hundreds of narrow product categories, from `saree` and `kurti` to `grey fabric` and `embroidery job work`, and one broad query can only scratch it.

### How the Textile Infomedia Email Scraper works

The pipeline is six steps and there is nothing hidden inside it.

1. It reads your input: keywords, location, email domains and limits.
2. It builds Google search queries with the `site:` operator against `textileinfomedia.com`, for example `site:textileinfomedia.com fabric supplier "@gmail.com" "Surat"`.
3. It fetches Google result pages through the Apify GOOGLE_SERP proxy using `aiohttp`, asynchronously.
4. It parses each result block structurally, finding the `<h3>` title and the smallest block around it.
5. It extracts emails from that block's text with a domain-filtered regex.
6. It deduplicates globally and pushes each lead straight into the Apify dataset.

The Textile Infomedia Email Scraper does **not** log into Textile Infomedia, does not use any Textile Infomedia API, and does not open the site in a browser. Every field comes from publicly indexed Google search results - titles, snippets and site labels, with no authentication and no cookies.

### Who the Textile Infomedia Email Scraper is built for

This is a textile sourcing and textile sales tool aimed at India's apparel clusters and the international buyers who work with them.

Apparel brands and buying houses use the Textile Infomedia Email Scraper to widen a mill and garment-unit shortlist before a sourcing season. Fabric agents use it to find converters, grey suppliers and processing houses with spare capacity.

Dyeing, finishing and textile chemical suppliers prospect in the other direction, reaching the processing units that consume dyes and auxiliaries. Textile machinery vendors do the same for spinning, weaving, knitting and embroidery units planning capex.

Export promotion bodies, textile trade-show organisers and sourcing consultancies use it to build cluster-level company lists. If you need European or North American industrial suppliers instead, [DirectIndustry Email Scraper](https://apify.com/neuro-scraper/directindustry-email-scraper) is a better fit.

### Input fields for the Textile Infomedia Email Scraper

| Field | Type | Default | Meaning |
|---|---|---|---|
| `keywords` | array (required) | `["textile manufacturer", "fabric supplier"]` | Search terms - 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 kept; the `@` is optional |
| `maxEmails` | integer 1-10000 | `20` | Stop after this many unique emails |
| `countryCode` | string | `""` | Two-letter country for the search proxy (US, GB, DE...) |
| `expandQueries` | boolean | `true` | Search each keyword x domain pair in several phrasings |
| `queryModifiers` | array | `["email", "contact", "export", "wholesale", "sales enquiries"]` | Extra words combined with each keyword when expansion is on |
| `maxPagesPerQuery` | integer 1-50 | `30` | Page cap per query |
| `maxConcurrency` | integer 1-20 | `5` | Parallel queries |

#### How the Textile Infomedia Email Scraper input fields actually behave

`keywords` is where the sourcing brief goes. The defaults `textile manufacturer` and `fabric supplier` are broad, and this Actor rewards replacing them with Indian trade vocabulary such as `grey fabric`, `saree wholesaler`, `kurti manufacturer`, `embroidery job work` or `cotton yarn agent`.

`countryCode` is a first-class lever here. Set `IN` and the search proxy runs from India, which noticeably changes which Textile Infomedia pages Google surfaces for the same keyword.

`queryModifiers` only fire when `expandQueries` is `true`. The defaults `export`, `wholesale` and `sales enquiries` steer queries towards the part of a listing where a trade contact route is printed.

`customDomains` decides your ceiling. Indian textile firms lean heavily on webmail, so keep the two defaults and add `@rediffmail.com`, `@hotmail.com` and `@outlook.com` to raise Textile Infomedia Email Scraper yield.

`maxEmails` is a hard stop shared across the worker pool, and `maxConcurrency` plus `maxPagesPerQuery` trade throughput against politeness. The defaults of 5 and 30 suit a single directory domain.

### JSON input example for the Textile Infomedia Email Scraper

```json
{
  "keywords": ["grey fabric manufacturer", "saree wholesaler", "cotton yarn supplier"],
  "location": "Surat",
  "customDomains": ["@gmail.com", "@yahoo.com", "@rediffmail.com", "@hotmail.com"],
  "maxEmails": 250,
  "countryCode": "IN",
  "expandQueries": true,
  "queryModifiers": ["email", "contact", "export", "wholesale", "sales enquiries"],
  "maxPagesPerQuery": 30,
  "maxConcurrency": 5
}
```

That is a realistic textile sourcing configuration for the Textile Infomedia Email Scraper: three specific Indian product terms, a cluster-level location, `IN` as the country code and a widened domain filter.

Textile Infomedia publishes in Indian English with Hindi and Gujarati trade words woven through its listings, so terms like `dupatta`, `chikankari` or `lehenga` are legitimate keywords rather than noise.

### Output fields of the Textile Infomedia Email Scraper

Every dataset item carries all fourteen fields.

| 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 |
| `fullName` | Display name parsed from a profile-style title; empty for non-profile results |
| `username` | URL-safe handle when the platform exposes one; otherwise `null` |
| `profileUrl` | Canonical account URL when a handle is known; otherwise empty |
| `url` | Direct platform link when exposed, else the profile URL |
| `description` | Bio or snippet text, cleaned of labels and counters |
| `email` | Lower-cased email address |
| `emailDomain` | The matched domain, for example `@gmail.com` |
| `possiblyTruncated` | `true` when Google's snippet ellipsis touched the email - verify before sending |
| `foundAt` | ISO 8601 UTC timestamp |

On this platform `username` and `profileUrl` are populated on most rows, which is why the Textile Infomedia Email Scraper is the identity workhorse of the textile set. The canonical link is built as `https://www.textileinfomedia.com/{username}`.

Always check `possiblyTruncated` before you send. When it is `true`, Google's snippet ellipsis may have clipped the address and it should be confirmed on the source page.

### JSON output example from the Textile Infomedia Email Scraper

```json
[
  {
    "network": "Textile Infomedia",
    "keyword": "grey fabric manufacturer",
    "query": "site:textileinfomedia.com grey fabric manufacturer contact \"@gmail.com\" \"Surat\"",
    "title": "Shree Balaji Textiles - Grey Fabric Manufacturer, Surat - Textile Infomedia",
    "accountName": "Shree Balaji Textiles",
    "fullName": "Shree Balaji Textiles",
    "username": "shree-balaji-textiles",
    "profileUrl": "https://www.textileinfomedia.com/shree-balaji-textiles",
    "url": "https://www.textileinfomedia.com/shree-balaji-textiles",
    "description": "Grey and dyed fabric manufacturer in Surat. Wholesale and export enquiries for polyester, viscose and blended qualities.",
    "email": "sales.shreebalajitextiles@gmail.com",
    "emailDomain": "@gmail.com",
    "possiblyTruncated": false,
    "foundAt": "2026-08-29T10:04:11Z"
  },
  {
    "network": "Textile Infomedia",
    "keyword": "saree wholesaler",
    "query": "site:textileinfomedia.com saree wholesaler \"sales enquiries\" \"@rediffmail.com\"",
    "title": "Meera Sarees - Saree Wholesaler and Exporter, Surat - Textile Infomedia",
    "accountName": "Meera Sarees",
    "fullName": "Meera Sarees",
    "username": "meera-sarees",
    "profileUrl": "https://www.textileinfomedia.com/meera-sarees",
    "url": "https://www.textileinfomedia.com/meera-sarees",
    "description": "Saree wholesaler and exporter offering georgette, chiffon and banarasi ranges. Bulk enquiries handled by the export desk.",
    "email": "exports.meerasarees@rediffmail.com",
    "emailDomain": "@rediffmail.com",
    "possiblyTruncated": true,
    "foundAt": "2026-08-29T10:07:38Z"
  }
]
```

Both rows are the common case here. A complete company name, a working profile link and a trade email is the normal Textile Infomedia Email Scraper output shape.

### Use cases for the Textile Infomedia Email Scraper

| Audience | What they do with the data |
|---|---|
| Apparel brands and buying houses | Widen a mill and garment-unit shortlist before a sourcing season |
| Fabric agents and converters | Find grey suppliers and processing houses with spare capacity |
| Dyeing and finishing chemical suppliers | Prospect the processing units that consume dyes and auxiliaries |
| Textile machinery vendors | Reach spinning, weaving, knitting and embroidery units planning capex |
| Importers and trading companies | Build a cluster-level Indian supplier list for a product category |
| Textile trade-show organisers | Recruit exhibitors from named fabric and garment segments |
| Export promotion bodies | Map which categories publish trade contact routes and where |
| B2B marketing agencies | Assemble a textile prospect list for an account-based campaign |

Each of these is outbound work aimed at a company inbox that a textile business published in order to receive enquiries. That is the honest boundary of what the Textile Infomedia Email Scraper does.

### Targeting tips for the Textile Infomedia Email Scraper

Cluster geography is the strongest lever in Indian textiles, and `location` is how you use it.

Set `location` to a manufacturing cluster rather than a state. `"Surat"` for synthetics and sarees, `"Tiruppur"` for knitwear, `"Ludhiana"` for woollens and hosiery, `"Panipat"` for home textiles and `"Erode"` for wovens will each return a different Textile Infomedia Email Scraper result set.

Combine `countryCode: "IN"` with those clusters. Running the search proxy from India shifts Google's ranking towards regional listings that a US-based search never surfaces.

Use Indian trade vocabulary in `keywords`. Words such as `dupatta`, `chikankari`, `lehenga`, `denim job work` or `viscose grey` are how suppliers describe themselves on this directory.

Keep `expandQueries` on so modifiers reach the contact paragraphs. For adjacent Indian supply, run [IndiaMART Email Scraper](https://apify.com/leads-scraper/indiamart-email-scraper); for global textile trade coverage, run [Alibaba Email Scraper](https://apify.com/leads-scraper/alibaba-email-scraper).

### Limitations of the Textile Infomedia Email Scraper

Read all of these before your first run.

- The Textile Infomedia Email Scraper only finds addresses that are **publicly visible in Google's index**. Anything Google has not indexed is invisible to it.
- Google caps a single query at roughly 300 results, which is exactly why query expansion exists and defaults to on.
- `possiblyTruncated: true` means Google's snippet ellipsis may have cut the email short. Verify it before sending.
- It requires the Apify GOOGLE_SERP proxy and cannot run without Apify proxy credentials.
- Free Apify plans are capped at 100 emails per run; paid plans are uncapped.
- `username` and `profileUrl` are only populated when Google exposes a handle. This platform usually does, but rows built from category or search pages can still arrive with `username: null` and an empty `profileUrl`. That is a Google limitation, not a bug.
- Coverage is India-weighted. If you need European or North American suppliers, use a different Actor in this family.
- Results vary with keywords, domains and location. No volume is guaranteed by the Textile Infomedia Email Scraper or by any Actor in this family.

### Responsible use of Textile Infomedia Email Scraper output

The addresses the Textile Infomedia Email Scraper surfaces are business contacts that textile companies published on a trade directory so that buyers could send them enquiries. Treat them accordingly.

Even in a B2B context, a named individual's work address is personal data under GDPR when that person is in scope, and comparable rules apply in other jurisdictions. Record your lawful basis, identify yourself in the first line, and make the relevance obvious.

Honour opt-outs immediately and permanently, keep your list current, and follow the marketing rules of every market you contact. None of this is legal advice, and it does not replace your own compliance review.

### FAQ about the Textile Infomedia Email Scraper

#### How many results should I expect from the Textile Infomedia Email Scraper?

A live Google run returned 10 result blocks, 9 identified accounts, 9 profile URLs and 5 unique emails on default settings. Handle resolution is excellent and email yield is moderate, so widening `customDomains` is the obvious first tuning step. Volume scales with how many keyword and domain combinations you supply, and no specific number is guaranteed.

#### Why does the Textile Infomedia Email Scraper resolve so many profile URLs?

Because Textile Infomedia publishes company listings under a clean root-level slug that Google prints in the result. The Actor derives `username` from that slug and builds `profileUrl` as `https://www.textileinfomedia.com/{username}`.

#### Does the Textile Infomedia Email Scraper log into Textile Infomedia or use its API?

No. It builds Google `site:textileinfomedia.com` queries, fetches result pages through the Apify GOOGLE_SERP proxy and parses them. There is no browser, no login, no API and no cookies.

#### Should I use Hindi or Gujarati keywords?

Use Indian English trade vocabulary first, since that is what the listings are written in. Transliterated garment words such as `kurti`, `lehenga` and `dupatta` are genuinely productive; full Devanagari script is not, because the site indexes in Latin script.

#### What is the fastest way to increase Textile Infomedia Email Scraper yield?

Widen `customDomains` with `@rediffmail.com`, `@hotmail.com` and `@outlook.com`, then set `countryCode` to `IN` and use a cluster name in `location`.

#### Can the Textile Infomedia Email Scraper find addresses on a company's own domain?

Only if the address appears in the Google result block and you list that domain in `customDomains`. The filter compares the end of each address, so every domain you want must be in the array.

#### Why does the Textile Infomedia Email Scraper turn `expandQueries` on by default?

Google caps one query at roughly 300 results. Expansion runs base, quoted and `intitle:` variants plus one per modifier, reaching category pages a single query cannot. Base queries always run first.

#### Can I run the Textile Infomedia Email Scraper on a free Apify plan?

Yes. Free plans are capped at 100 emails per run, and paid plans are uncapped.

#### What happens if a run is interrupted?

State is saved in the key-value store, keyed by a hash of your input, and written on Apify's `PERSIST_STATE`, `MIGRATING` and `ABORTING` events. Restarting with the same input resumes rather than starting over.

#### Which export formats are available?

Anything the Apify dataset supports - CSV, JSON, Excel and XML - plus the API for pushing rows straight into a CRM or sourcing system.

#### Which other Actor pairs best with the Textile Infomedia Email Scraper?

[Fibre2Fashion Email Scraper](https://apify.com/neuro-scraper/fibre2fashion-email-scraper) for email volume, and [IndiaMART Email Scraper](https://apify.com/leads-scraper/indiamart-email-scraper) for broader Indian B2B coverage beyond textiles.

#### Is the Textile Infomedia Email Scraper affiliated with Textile Infomedia?

No. It is an independent Actor that reads publicly indexed Google results and has no relationship with, or endorsement from, the platform.

### Related Actors

More email scrapers from the same B2B, Suppliers & Manufacturers family, built on the same Google SERP pipeline.

| Actor | What it collects |
|---|---|
| [Alibaba Email Scraper](https://apify.com/leads-scraper/alibaba-email-scraper) | Public contact emails from Alibaba |
| [DirectIndustry Email Scraper](https://apify.com/neuro-scraper/directindustry-email-scraper) | Public contact emails from DirectIndustry |
| [DIYTrade Email Scraper](https://apify.com/neuro-scraper/diytrade-email-scraper) | Public contact emails from DIYTrade |
| [ECPlaza Email Scraper](https://apify.com/neuro-scraper/ecplaza-email-scraper) | Public contact emails from ECPlaza |
| [Fibre2Fashion Email Scraper](https://apify.com/neuro-scraper/fibre2fashion-email-scraper) | Public contact emails from Fibre2Fashion |
| [Global Sources Email Scraper](https://apify.com/leads-scraper/global-sources-email-scraper) | Public contact emails from Global Sources |
| [GlobalSpec Email Scraper](https://apify.com/leads-scraper/globalspec-email-scraper) | Public contact emails from GlobalSpec |
| [HKTDC Sourcing Email Scraper](https://apify.com/neuro-scraper/hktdc-sourcing-email-scraper) | Public contact emails from HKTDC Sourcing |
| [IndiaMART Email Scraper](https://apify.com/leads-scraper/indiamart-email-scraper) | Public contact emails from IndiaMART |
| [IndustryStock Email Scraper](https://apify.com/neuro-scraper/industrystock-email-scraper) | Public contact emails from IndustryStock |
| [IQS Directory Email Scraper](https://apify.com/neuro-scraper/iqs-directory-email-scraper) | Public contact emails from IQS Directory |
| [Made-in-China Email Scraper](https://apify.com/leads-scraper/made-in-china-email-scraper) | Public contact emails from Made-in-China |
| [Taiwantrade Email Scraper](https://apify.com/leads-scraper/taiwantrade-email-scraper) | Public contact emails from Taiwantrade |
| [Textile World Email Scraper](https://apify.com/leads-scraper/textile-world-email-scraper) | Public contact emails from Textile World |
| [Thomas Scientific Email Scraper](https://apify.com/leads-scraper/thomas-scientific-email-scraper) | Public contact emails from Thomas Scientific |
| [TradeKey Email Scraper](https://apify.com/neuro-scraper/tradekey-email-scraper) | Public contact emails from TradeKey |
| [Tradewheel Email Scraper](https://apify.com/leads-scraper/tradewheel-email-scraper) | Public contact emails from Tradewheel |
| [Wer Liefert Was Email Scraper](https://apify.com/leads-scraper/wer-liefert-was-email-scraper) | Public contact emails from wlw |
| [DirectIndustry Email and Phone Number Scraper](https://apify.com/neuro-scraper/directindustry-email-and-phone-number-scraper) | Emails and phone numbers from DirectIndustry |
| [DIYTrade Email and Phone Number Scraper](https://apify.com/neuro-scraper/diytrade-email-and-phone-number-scraper) | Emails and phone numbers from DIYTrade |
| [ECPlaza Email and Phone Number Scraper](https://apify.com/neuro-scraper/ecplaza-email-and-phone-number-scraper) | Emails and phone numbers from ECPlaza |
| [Fibre2Fashion Email and Phone Number Scraper](https://apify.com/neuro-scraper/fibre2fashion-email-and-phone-number-scraper) | Emails and phone numbers from Fibre2Fashion |
| [Global Sources Email and Phone Number Scraper](https://apify.com/leads-scraper/global-sources-email-and-phone-number-scraper) | Emails and phone numbers from Global Sources |
| [GlobalSpec Email and Phone Number Scraper](https://apify.com/neuro-scraper/globalspec-email-and-phone-number-scraper) | Emails and phone numbers from GlobalSpec |
| [HKTDC Sourcing Email and Phone Number Scraper](https://apify.com/neuro-scraper/hktdc-sourcing-email-and-phone-number-scraper) | Emails and phone numbers from HKTDC Sourcing |
| [IndiaMART Email and Phone Number Scraper](https://apify.com/leads-scraper/indiamart-email-and-phone-number-scraper) | Emails and phone numbers from IndiaMART |
| [IndustryStock Email and Phone Number Scraper](https://apify.com/neuro-scraper/industrystock-email-and-phone-number-scraper) | Emails and phone numbers from IndustryStock |
| [IQS Directory Email and Phone Number Scraper](https://apify.com/neuro-scraper/iqs-directory-email-and-phone-number-scraper) | Emails and phone numbers from IQS Directory |
| [Made-in-China Email and Phone Number Scraper](https://apify.com/leads-scraper/made-in-china-email-and-phone-number-scraper) | Emails and phone numbers from Made-in-China |
| [TradeKey Email and Phone Number Scraper](https://apify.com/neuro-scraper/tradekey-email-and-phone-number-scraper) | Emails and phone numbers from TradeKey |
| [wlw Email and Phone Number Scraper](https://apify.com/leads-scraper/wer-liefert-was-email-and-phone-number-scraper) | Emails and phone numbers from wlw |
| [DirectIndustry Phone Number Scraper](https://apify.com/neuro-scraper/directindustry-phone-number-scraper) | Public phone numbers from DirectIndustry |
| [DIYTrade Phone Number Scraper](https://apify.com/neuro-scraper/diytrade-phone-number-scraper) | Public phone numbers from DIYTrade |
| [ECPlaza Phone Number Scraper](https://apify.com/neuro-scraper/ecplaza-phone-number-scraper) | Public phone numbers from ECPlaza |
| [Fibre2Fashion Phone Number Scraper](https://apify.com/neuro-scraper/fibre2fashion-phone-number-scraper) | Public phone numbers from Fibre2Fashion |
| [Global Sources Phone Number Scraper](https://apify.com/leads-scraper/global-sources-phone-number-scraper) | Public phone numbers from Global Sources |
| [GlobalSpec Phone Number Scraper](https://apify.com/neuro-scraper/globalspec-phone-number-scraper) | Public phone numbers from GlobalSpec |
| [HKTDC Sourcing Phone Number Scraper](https://apify.com/neuro-scraper/hktdc-sourcing-phone-number-scraper) | Public phone numbers from HKTDC Sourcing |
| [IndiaMART Phone Number Scraper](https://apify.com/leads-scraper/indiamart-phone-number-scraper) | Public phone numbers from IndiaMART |
| [IndustryStock Phone Number Scraper](https://apify.com/neuro-scraper/industrystock-phone-number-scraper) | Public phone numbers from IndustryStock |
| [IQS Directory Phone Number Scraper](https://apify.com/neuro-scraper/iqs-directory-phone-number-scraper) | Public phone numbers from IQS Directory |
| [Made-in-China Phone Number Scraper](https://apify.com/leads-scraper/made-in-china-phone-number-scraper) | Public phone numbers from Made-in-China |

### Leave a review

If the Textile Infomedia 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.

# Actor input Schema

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

Search terms describing the Textile Infomedia 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 Textile Infomedia.

## `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": [
    "textile manufacturer",
    "fabric supplier"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com",
    "@yahoo.com"
  ],
  "maxEmails": 20,
  "countryCode": "",
  "expandQueries": true,
  "queryModifiers": [
    "email",
    "contact",
    "export",
    "wholesale",
    "sales enquiries"
  ],
  "maxPagesPerQuery": 30,
  "maxConcurrency": 5
}
```

# Actor output Schema

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

Records produced by Textile Infomedia 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": [
        "textile manufacturer",
        "fabric supplier"
    ],
    "location": "",
    "customDomains": [
        "@gmail.com",
        "@yahoo.com"
    ],
    "countryCode": "",
    "queryModifiers": [
        "email",
        "contact",
        "export",
        "wholesale",
        "sales enquiries"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("leads-scraper/textile-infomedia-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": [
        "textile manufacturer",
        "fabric supplier",
    ],
    "location": "",
    "customDomains": [
        "@gmail.com",
        "@yahoo.com",
    ],
    "countryCode": "",
    "queryModifiers": [
        "email",
        "contact",
        "export",
        "wholesale",
        "sales enquiries",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("leads-scraper/textile-infomedia-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": [
    "textile manufacturer",
    "fabric supplier"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com",
    "@yahoo.com"
  ],
  "countryCode": "",
  "queryModifiers": [
    "email",
    "contact",
    "export",
    "wholesale",
    "sales enquiries"
  ]
}' |
apify call leads-scraper/textile-infomedia-email-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,leads-scraper/textile-infomedia-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/Kc29gNWJNv2ShvhEj/builds/jicopHCL47k6iJQVy/openapi.json
