# Alibaba Supplier Scraper (`w3crawler/alibaba-supplier-scraper`) Actor

Extract detailed Supplier profiles from Alibaba.com for vendor sourcing and supply chain research. Get Gold Supplier tenure,factory size, staff count, annual revenue, response rates, product portfolios, ratings and verification status.

- **URL**: https://apify.com/w3crawler/alibaba-supplier-scraper.md
- **Developed by:** [w3crawler](https://apify.com/w3crawler) (community)
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.99 / 1,000 supplier profiles

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

### What does this Actor do?

This Actor collects public supplier observations from [Alibaba.com](https://www.alibaba.com/). It reads public product-search, category, showroom, supplier-search, and supplier-profile pages, then groups repeated product-card observations by supplier. Each normal Dataset row keeps source-backed supplier identity, company facts, trust signals, portfolio links, commercial signals, public media, and pagination context.

It is useful for wholesale sourcing research, supplier shortlisting, country and certification filters, price/MOQ comparison, supplier-quality analysis, and building a searchable supplier catalogue. Generated searches use Alibaba's public country-search route (`/countrysearch/CN/<query>.html`), which currently exposes supplier-bearing listing payloads without requiring the blocked trade-search shell; supplied public URLs take precedence.

#### Public scope and access boundary

The Actor reads only public pages. It does not log in, use private supplier portals, call authenticated APIs, solve CAPTCHAs, spoof browser fingerprints, or bypass robots, challenges, or other access controls. If Alibaba returns a challenge, rate limit, HTTP access boundary, or unusable public response, the Actor records an operational issue count in `OUTPUT_SUMMARY` and logs details instead of inventing supplier data.

The [Alibaba Supplier Scraper Store page](https://apify.com/w3crawler/alibaba-supplier-scraper) is an independent Actor listing and is not affiliated with, endorsed by, or operated by Alibaba Group. Public supplier observations are not guarantees about a supplier, product quality, compliance, delivery, or commercial terms.

### Run in Console

#### Console steps

1. Open the [Alibaba Supplier Scraper Store page](https://apify.com/w3crawler/alibaba-supplier-scraper).
2. Click **Try for free** or **Start**, then open the **Input** tab.
3. Paste one of the valid JSON inputs below or fill the form fields.
4. Click **Start** and wait for the run to finish.
5. Open **Dataset** for supplier rows. Open the Key-Value Store records `OUTPUT_SUMMARY` and `SOURCE_METADATA` for status, issue counts, and pagination details.

#### Cost and pricing

This repository does not hard-code a price. Apify charges according to the current account, Actor, compute, storage, and optional proxy settings shown in Console. Review [Apify pricing](https://apify.com/pricing) before a large run. Browser rendering, profile-detail requests, pagination, delays, and proxy routing can increase runtime or usage.

### Input

#### Basic keyword search

```json
{
  "queries": ["stainless steel", "industrial valves"],
  "startPage": 1,
  "maxPages": 3,
  "maxResults": 100,
  "includeDetails": true,
  "includeMedia": true,
  "deduplicate": true
}
```

#### Multiple public sources, filters, and sorting

```json
{
  "sourceUrls": [
    {
      "url": "https://www.alibaba.com/countrysearch/CN/wireless-earbuds.html"
    },
    { "url": "https://www.alibaba.com/countrysearch/CN/work-lights.html" }
  ],
  "maxPages": 2,
  "textQuery": "factory",
  "supplierCountries": ["CN", "IN"],
  "minRating": 4.5,
  "minReviews": 10,
  "verifiedOnly": true,
  "requiredBadges": ["Trade Assurance"],
  "sortBy": "rating_desc",
  "maxResults": 50
}
```

#### Developer options and ordinary Apify Proxy routing

```json
{
  "queries": ["steel coil"],
  "requestDelayMs": 1200,
  "maxConcurrency": 2,
  "maxRequestRetries": 3,
  "requestTimeoutSecs": 45,
  "maxResponseBytes": 20000000,
  "renderJavaScript": true,
  "browserWaitMs": 1500,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyCountry": "US"
  }
}
```

Proxy routing changes the network route only. It is not a CAPTCHA, login, fingerprint, or access-control bypass. Use standard Apify Proxy or a public custom HTTP(S) proxy that you are authorized to use.

#### Deterministic local QA

Fixture fields are for local validation and are rejected in Cloud runs. They never replace a public Alibaba source in production.

```json
{
  "queries": [
    "stainless steel"
  ],
  "maxPages": 2,
  "maxResults": 10,
  "includeDetails": false
}
```

#### Complete input reference

All accepted runtime keys are listed here. Compatibility aliases are normalized to the canonical option.

| Key                                                                                                                                      | Type and behavior                                                                                                                                                                                   |
| ---------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `searchKeywords`, `searchQuery`, `query`, `keyword`, `searchKeyword`                                                                     | One keyword/query string; defaults to `Laptop` when no query is supplied.                                                                                                                           |
| `queries`, `keywords`                                                                                                                    | Array of up to 25 query strings. Each query becomes a source.                                                                                                                                       |
| `sourceUrls`, `startUrls`, `searchUrls`, `urls`                                                                                          | Up to 50 public Alibaba result/detail/profile URLs. Console request-list fields use `{ "url": "..." }` objects; the runtime also accepts URL strings. These take precedence over generated queries. |
| `url`, `searchUrl`                                                                                                                       | Single-source URL aliases.                                                                                                                                                                          |
| `startPage`, `start_page`                                                                                                                | First page number, 1–1000; default `1`.                                                                                                                                                             |
| `maxPages`, `max_pages`                                                                                                                  | Ordered pages per source, 1–100; default `2`.                                                                                                                                                       |
| `maxResults`, `maxProducts`, `maxItems`, `max_products`, `max_items`                                                                     | Maximum unique supplier rows after filtering and sorting, 1–5000; default `300`.                                                                                                                    |
| `sortBy`                                                                                                                                 | `relevance`, `rating_desc`, `reviews_desc`, `supplier_years_desc`, `supplier_name_asc`, or `title_asc`.                                                                                             |
| `textQuery`                                                                                                                              | Case-insensitive filter over public supplier/company/product text, badges, certifications, and locations.                                                                                           |
| `supplierCountries`, `countries`                                                                                                         | Array of public supplier country or region fragments.                                                                                                                                               |
| `currency`                                                                                                                               | Optional three-letter commercial currency filter when product pricing exposes one.                                                                                                                  |
| `minRating`, `minSupplierRating`                                                                                                         | Minimum public supplier rating from 0 to 5.                                                                                                                                                         |
| `minReviews`, `minReviewCount`                                                                                                           | Minimum public supplier/review count.                                                                                                                                                               |
| `minProductRating`                                                                                                                       | Minimum product rating when exposed by a card.                                                                                                                                                      |
| `minSoldCount`                                                                                                                           | Minimum public sold/order count.                                                                                                                                                                    |
| `minSupplierYears`                                                                                                                       | Minimum observed Alibaba tenure, from 0 to 200 years.                                                                                                                                               |
| `minReorderRatePercent`                                                                                                                  | Minimum public reorder rate from 0 to 100.                                                                                                                                                          |
| `minPrice`, `price_min`, `maxPrice`, `price_max`                                                                                         | Optional product price-range thresholds.                                                                                                                                                            |
| `minMoq`, `moqMin`, `moq_min`, `maxMoq`, `moqMax`, `moq_max`                                                                             | Optional minimum-order-quantity thresholds.                                                                                                                                                         |
| `verifiedOnly`, `requireVerified`                                                                                                        | Keep only public verified/assessed supplier evidence.                                                                                                                                               |
| `requiredBadges`                                                                                                                         | Array; every requested public badge fragment must match.                                                                                                                                            |
| `requiredCertifications`                                                                                                                 | Array; every requested certification fragment must match.                                                                                                                                           |
| `tradeAssurance`, `trade_assurance`, `verifiedSupplier`, `verified_supplier`, `alibabaGuaranteed`, `alibaba_guaranteed`, `certifiedOnly` | Public trust/certification filter flags.                                                                                                                                                            |
| `deduplicate`                                                                                                                            | Merge repeated supplier observations by public supplier identity; default `true`.                                                                                                                   |
| `includeDetails`, `includeProfileDetails`                                                                                                | Fetch an exposed public supplier profile for enrichment; default `true`.                                                                                                                            |
| `includeMedia`                                                                                                                           | Keep supplier logos and product-scoped public Alibaba CDN images; default `true`.                                                                                                                   |
| `includeAttributes`                                                                                                                      | Keep product portfolio and commercial attributes; default `true`.                                                                                                                                   |
| `includeSupplierDetails`                                                                                                                 | Keep public company facts, contact, market, and certification fields; default `true`.                                                                                                               |
| `renderJavaScript`, `useBrowser`                                                                                                         | Use Chromium for dynamic public pages; default `true`.                                                                                                                                              |
| `requestDelayMs`, `pageDelayMs`                                                                                                          | Delay before each public request, 0–15000 milliseconds.                                                                                                                                             |
| `maxConcurrency`, `concurrency`                                                                                                          | Independent source concurrency, 1–5; pages within a source remain ordered.                                                                                                                          |
| `maxRequestRetries`, `maxRetries`                                                                                                        | Retries for transient failures, 0–10. Access-boundary failures are not bypassed.                                                                                                                    |
| `requestTimeoutSecs`, `timeoutSecs`                                                                                                      | Per-request timeout, 15–300 seconds.                                                                                                                                                                |
| `requestTimeoutMs`, `timeoutMs`                                                                                                          | Millisecond timeout aliases, 15000–300000.                                                                                                                                                          |
| `maxResponseBytes`, `maxBytes`                                                                                                           | Response safety cap, 100000–50000000 bytes.                                                                                                                                                         |
| `browserWaitMs`, `renderWaitMs`                                                                                                          | Browser settle time, 0–10000 milliseconds.                                                                                                                                                          |
| `userAgent`                                                                                                                              | Optional transparent User-Agent override; it must not impersonate a browser or evade controls.                                                                                                      |
| `locale`                                                                                                                                 | Browser locale such as `en-US`.                                                                                                                                                                     |
| `proxyConfiguration`                                                                                                                     | `useApifyProxy`, optional `apifyProxyGroups`, `apifyProxyCountry`, or authorized public `proxyUrls`.                                                                                                |

### Output dataset

#### Record contract and source-backed fields

Normal rows contain a supplier identity (`supplierId`, `supplierName`, optional `profileUrl`), company facts (`country`, `businessType`, `yearEstablished`, address, overview, tenure, factory size, employees, revenue), public trust/performance signals (verification, badges, response rate, delivery, transactions, rating, reviews, sold count, reorder rate), certifications, markets, contact values when publicly visible, supplier-scoped media, product portfolio items, and source context (`sourceUrl`, `pageUrl`, `query`, `pageNum`, `position`, `url`, `scrapedAt`). Values are copied from public page evidence; unavailable values are omitted.

Product portfolio items may include `name`, `url`, `imageUrl`, `price`, `priceMin`, `priceMax`, `currency`, `moq`, `minimumOrderQuantity`, `minimumOrderUnit`, `soldCount`, `reorderRatePercent`, and `rating`.

Images are restricted to public Alibaba CDN assets associated with the supplier or product. Country flags, UI icons, logos unrelated to the supplier, avatars, placeholders, sprites, QR codes, and payment icons are excluded.

#### Rich supplier example

The following shape reflects the public signals represented by the checked local fixture and is illustrative of a rich normal row.

```json
{
  "supplierId": "https://acme.en.alibaba.com/company_profile.html",
  "supplierName": "Acme Manufacturing",
  "profileUrl": "https://acme.en.alibaba.com/company_profile.html",
  "country": "CN",
  "businessType": "Manufacturer",
  "yearEstablished": 2015,
  "verificationStatus": "Gold Supplier, Trade Assurance, Verified Supplier",
  "isVerified": true,
  "badges": ["Gold Supplier", "Trade Assurance", "Verified Supplier"],
  "yearsOnAlibaba": 8,
  "responseRate": 98,
  "onTimeDelivery": 98.5,
  "transactions": 1250,
  "rating": 4.8,
  "reviewCount": 126,
  "soldCount": 1250,
  "reorderRatePercent": 66,
  "certifications": ["ISO9001", "CE"],
  "productUrls": [
    "https://www.alibaba.com/product-detail/industrial-valve_1601000000001.html"
  ],
  "productCount": 1,
  "products": [
    {
      "name": "Industrial Stainless Steel Valve",
      "url": "https://www.alibaba.com/product-detail/industrial-valve_1601000000001.html",
      "imageUrl": "https://s.alicdn.com/acme-valve.jpg",
      "price": "US $12.50-15.00",
      "priceMin": 12.5,
      "priceMax": 15,
      "currency": "USD",
      "moq": 50,
      "minimumOrderQuantity": 50,
      "minimumOrderUnit": "pieces",
      "soldCount": 1250,
      "rating": 4.8
    }
  ],
  "imageUrls": ["https://s.alicdn.com/acme-valve.jpg"],
  "imageCount": 1,
  "supplierLogo": "https://s.alicdn.com/acme-valve.jpg",
  "url": "https://acme.en.alibaba.com/company_profile.html",
  "sourceUrl": "https://www.alibaba.com/countrysearch/CN/stainless-steel.html",
  "pageUrl": "https://www.alibaba.com/countrysearch/CN/stainless-steel.html",
  "query": "stainless steel",
  "pageNum": 1,
  "position": 1,
  "scrapedAt": "2026-09-08T10:00:00.000Z"
}
```

#### Fallback supplier example

When the public source exposes only supplier identity and provenance, the Actor emits a valid smaller row and omits unavailable company, commercial, and media fields.

```json
{
  "supplierId": "https://bright.en.alibaba.com/company_profile.html",
  "supplierName": "Bright Tools Factory",
  "profileUrl": "https://bright.en.alibaba.com/company_profile.html",
  "url": "https://bright.en.alibaba.com/company_profile.html",
  "sourceUrl": "https://www.alibaba.com/countrysearch/CN/work-lights.html",
  "pageUrl": "https://www.alibaba.com/countrysearch/CN/work-lights.html",
  "query": "work lights",
  "pageNum": 1,
  "position": 2,
  "scrapedAt": "2026-09-08T10:00:00.000Z"
}
```

Operational issues are counted in `OUTPUT_SUMMARY`; failure details are available in run logs. No diagnostic or error-shaped rows are written to the dataset or stored as key-value detail records.

#### Run summary example

`OUTPUT_SUMMARY` and compatibility `OUTPUT` contain run metrics, not supplier rows:

```json
{
  "status": "SUCCEEDED",
  "runStatus": "SUCCEEDED",
  "dataStatus": "PARTIAL",
  "recordCount": 24,
  "itemCount": 24,
  "diagnosticItems": 0,
  "diagnosticCount": 1,
  "diagnosticsFound": 1,
  "recordsEmitted": 24,
  "requests": 8,
  "retries": 1,
  "successfulRequests": 7,
  "failedRequests": 1,
  "detailRequests": 3,
  "sourcesProcessed": 2,
  "pagesProcessed": 6,
  "candidatesFound": 31,
  "uniqueSuppliers": 27,
  "filteredOutCount": 3,
  "queries": [
    "wireless earbuds",
    "industrial valves"
  ],
  "maxResults": 100,
  "maxPages": 3,
  "sortBy": "rating_desc",
  "deduplicate": true,
  "includeDetails": true,
  "includeMedia": true,
  "includeAttributes": true,
  "includeSupplierDetails": true,
  "renderJavaScript": true,
  "requestTimeoutSecs": 60,
  "requestDelayMs": 1000,
  "maxConcurrency": 2,
  "maxRequestRetries": 3,
  "proxyEnabled": false,
  "fixtureMode": false,
  "completedAt": "2026-09-08T10:00:00.000Z"
}
```

#### Key-Value Store artifacts and downloads

- `OUTPUT_SUMMARY`: status, counts, filters, requests, pagination, proxy, and fixture metrics.
- `SOURCE_METADATA`: per-source pages, request totals, retries, detail requests, and failures.
- `OUTPUT`: compatibility copy of the run summary.

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

### Troubleshooting

#### The run returns `ACCESS_BOUNDARY`

Alibaba did not provide a usable public response. Check the source URL, reduce request rate, respect robots guidance, and try again later. Proxy routing may change network availability but does not bypass the boundary.

#### The run returns `NO_SUPPLIERS_FOUND` or `NO_MATCHING_SUPPLIERS`

`NO_MATCHING_SUPPLIERS` means public evidence was found but the configured filters removed all rows, so the run completes with `status: SUCCEEDED` and `dataStatus: NO_RESULTS`. `NO_SUPPLIERS_FOUND` means a readable response had no supported supplier cards and no explicit empty-results signal; without source-backed rows, the Actor treats this as an extraction failure. Try a broader query or another public Alibaba result/profile URL.

#### The run returns `FIXTURE_READ_FAILED`

Local parser tests use checked-in fixtures. Public Actor inputs use real Alibaba URLs and do not expose local fixture overrides.

#### The Dataset is empty

Open `OUTPUT_SUMMARY` and the run logs first. Diagnostics never appear as Dataset rows or stored detail records. A successful filter-empty run reports `status: SUCCEEDED` and `dataStatus: NO_RESULTS`; a blocked request or unusable response with no saved supplier rows reports `FAILED` and exits nonzero.

### API and support

The Actor identifier is `w3crawler~alibaba-supplier-scraper`. A basic API call is:

```text
curl -X POST "https://api.apify.com/v2/acts/w3crawler~alibaba-supplier-scraper/runs?token=YOUR_APIFY_TOKEN" ^
  -H "Content-Type: application/json" ^
  -d "{\"queries\":[\"stainless steel\"],\"maxPages\":1,\"maxResults\":20}"
```

For API details, open [Apify Actor API documentation](https://docs.apify.com/api/v2) and the [Store page](https://apify.com/w3crawler/alibaba-supplier-scraper). Report reproducible defects through the Actor's Apify Issues/support channel and include the run ID, input shape, and relevant diagnostic code; do not include secrets or private supplier information.

### Privacy, legal, and affiliation

Use the Actor only for public pages and in compliance with Alibaba's terms, robots guidance, applicable privacy/data-protection law, and your own authorization requirements. Do not submit credentials, private contact lists, or personal data that you are not authorized to process. This independent Actor is not affiliated with Alibaba Group, and public observations are not an endorsement or guarantee.

### Local validation

The repository includes deterministic HTML fixtures and QA inputs. Run `npm run check`, `apify validate-schema`, and `apify run --purge --input-file .actor/input.json` from the Actor directory. Fixture runs are local QA only; Cloud verification must use a public source URL.

Run summaries include the required `status`, `runStatus`, and `dataStatus` fields. `status` and `runStatus` are `SUCCEEDED` when source-backed rows were saved or a run completed cleanly with no matches; they are `FAILED` only when a real failure occurs before any rows are saved. `dataStatus` is `COMPLETE`, `PARTIAL`, `NO_RESULTS`, or `FAILED`. Failure details stay in the run logs; key-value summaries retain counts only.

# Actor input Schema

## `searchKeywords` (type: `string`):

Compatibility input used when queries are not provided.

## `queries` (type: `array`):

Each query becomes an independently paginated public Alibaba search source.

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

Compatibility alias for queries.

## `searchQuery` (type: `string`):

Compatibility alias for one query.

## `query` (type: `string`):

Compatibility alias for one query.

## `keyword` (type: `string`):

Compatibility alias for one query.

## `searchKeyword` (type: `string`):

Compatibility alias for one query.

## `sourceUrls` (type: `array`):

Public Alibaba product-search, supplier-search, category, showroom, or profile URLs. These take precedence over generated queries.

## `startUrls` (type: `array`):

Compatibility alias for sourceUrls.

## `searchUrls` (type: `array`):

Compatibility alias for sourceUrls.

## `urls` (type: `array`):

Compatibility alias for sourceUrls.

## `url` (type: `string`):

One public Alibaba source URL.

## `searchUrl` (type: `string`):

Compatibility alias for one public Alibaba search URL.

## `startPage` (type: `integer`):

One-based page from which each source starts.

## `start_page` (type: `integer`):

Compatibility alias for startPage.

## `maxPages` (type: `integer`):

Maximum ordered public result pages fetched for each source.

## `max_pages` (type: `integer`):

Compatibility alias for maxPages.

## `maxResults` (type: `integer`):

Maximum unique supplier rows emitted after filtering and sorting.

## `maxProducts` (type: `integer`):

Compatibility alias for maxResults.

## `maxItems` (type: `integer`):

Compatibility alias for maxResults.

## `max_products` (type: `integer`):

Compatibility alias for maxResults.

## `max_items` (type: `integer`):

Compatibility alias for maxResults.

## `sortBy` (type: `string`):

Stable ordering after all pages and sources are aggregated.

## `textQuery` (type: `string`):

Keep suppliers whose public name, country, company facts, badges, certifications, or product names contain this text.

## `supplierCountries` (type: `array`):

Keep suppliers whose country/location contains one of these values.

## `countries` (type: `array`):

Compatibility alias for supplierCountries.

## `currency` (type: `string`):

Optional three-letter product currency filter.

## `minPrice` (type: `number`):

Keep suppliers with a public product price at or above this value.

## `price_min` (type: `number`):

Compatibility alias for minPrice.

## `maxPrice` (type: `number`):

Keep suppliers with a public product price at or below this value.

## `price_max` (type: `number`):

Compatibility alias for maxPrice.

## `minMoq` (type: `number`):

Keep suppliers with a public MOQ at or above this value.

## `moqMin` (type: `number`):

Compatibility alias for minMoq.

## `moq_min` (type: `number`):

Compatibility alias for minMoq.

## `maxMoq` (type: `number`):

Keep suppliers with a public MOQ at or below this value.

## `moqMax` (type: `number`):

Compatibility alias for maxMoq.

## `moq_max` (type: `number`):

Compatibility alias for maxMoq.

## `minRating` (type: `number`):

Keep suppliers at or above this public rating.

## `minSupplierRating` (type: `number`):

Compatibility alias for minRating.

## `minReviews` (type: `number`):

Keep suppliers with at least this many public reviews.

## `minReviewCount` (type: `number`):

Compatibility alias for minReviews.

## `minProductRating` (type: `number`):

Minimum public product rating when exposed by a card.

## `minSoldCount` (type: `number`):

Minimum public sold or order count.

## `minReorderRatePercent` (type: `number`):

Minimum public reorder rate percentage.

## `minSupplierYears` (type: `number`):

Keep suppliers with at least this many observed Alibaba years.

## `verifiedOnly` (type: `boolean`):

Keep cards with public verified or assessed supplier evidence.

## `requireVerified` (type: `boolean`):

Compatibility alias for verifiedOnly.

## `requiredBadges` (type: `array`):

Keep suppliers containing every requested public badge.

## `requiredCertifications` (type: `array`):

Keep suppliers containing every requested certification.

## `tradeAssurance` (type: `boolean`):

Keep public Trade Assurance evidence.

## `trade_assurance` (type: `boolean`):

Compatibility alias for tradeAssurance.

## `verifiedSupplier` (type: `boolean`):

Keep public verified supplier evidence.

## `verified_supplier` (type: `boolean`):

Compatibility alias for verifiedSupplier.

## `alibabaGuaranteed` (type: `boolean`):

Keep public Alibaba Guaranteed evidence.

## `alibaba_guaranteed` (type: `boolean`):

Compatibility alias for alibabaGuaranteed.

## `certifiedOnly` (type: `boolean`):

Keep public certification evidence.

## `deduplicate` (type: `boolean`):

Merge repeated supplier observations across pages and sources by supplier identity.

## `includeDetails` (type: `boolean`):

Fetch public profile pages when a supplier profile URL is exposed.

## `includeProfileDetails` (type: `boolean`):

Compatibility alias for includeDetails.

## `includeMedia` (type: `boolean`):

Keep supplier logos and product-scoped public Alibaba CDN images; flags and UI assets are excluded.

## `includeAttributes` (type: `boolean`):

Keep product links, names, price/MOQ signals, ratings, and sold/reorder signals.

## `includeSupplierDetails` (type: `boolean`):

Keep public address, overview, employee, revenue, market, certification, and contact fields.

## `renderJavaScript` (type: `boolean`):

Use Chromium for current Alibaba result cards and pagination.

## `useBrowser` (type: `boolean`):

Compatibility alias for renderJavaScript.

## `requestDelayMs` (type: `integer`):

Delay before each public request.

## `pageDelayMs` (type: `integer`):

Compatibility alias for requestDelayMs.

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

Maximum independent sources processed concurrently; pages within each source remain ordered.

## `concurrency` (type: `integer`):

Compatibility alias for maxConcurrency.

## `maxRequestRetries` (type: `integer`):

Retries for transient public request failures.

## `maxRetries` (type: `integer`):

Compatibility alias for maxRequestRetries.

## `requestTimeoutSecs` (type: `integer`):

Maximum time for each public request.

## `timeoutSecs` (type: `integer`):

Compatibility alias for requestTimeoutSecs.

## `requestTimeoutMs` (type: `integer`):

Compatibility alias converted to seconds.

## `timeoutMs` (type: `integer`):

Compatibility alias converted to seconds.

## `maxResponseBytes` (type: `integer`):

Reject unusually large public responses before parsing.

## `maxBytes` (type: `integer`):

Compatibility alias for maxResponseBytes.

## `browserWaitMs` (type: `integer`):

Time for client-rendered cards to settle after navigation.

## `renderWaitMs` (type: `integer`):

Compatibility alias for browserWaitMs.

## `userAgent` (type: `string`):

Optional transparent user-agent string.

## `locale` (type: `string`):

Browser locale for public page rendering.

## `proxyConfiguration` (type: `object`):

Optional ordinary Apify Proxy or public HTTP(S) routing. No stealth, CAPTCHA solving, or access-control bypass is attempted.

## Actor input object example

```json
{
  "searchKeywords": "stainless steel",
  "queries": [
    "stainless steel"
  ],
  "startPage": 1,
  "maxPages": 2,
  "maxResults": 100,
  "sortBy": "relevance",
  "verifiedOnly": false,
  "deduplicate": true,
  "includeDetails": true,
  "includeMedia": true,
  "includeAttributes": true,
  "includeSupplierDetails": true,
  "renderJavaScript": true,
  "requestDelayMs": 1000,
  "maxConcurrency": 2,
  "maxRequestRetries": 3,
  "requestTimeoutSecs": 30,
  "maxResponseBytes": 20000000,
  "browserWaitMs": 1500,
  "locale": "en-US"
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

## `runSummary` (type: `string`):

No description

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("w3crawler/alibaba-supplier-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 = {}

# Run the Actor and wait for it to finish
run = client.actor("w3crawler/alibaba-supplier-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 '{}' |
apify call w3crawler/alibaba-supplier-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,w3crawler/alibaba-supplier-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/yBoVaAPU1z99G58zl/builds/VPNpPfvBeDhB7cPp9/openapi.json
