# Alibaba Supplier & Company Finder (`quanmatrix/alibaba-supplier-company-intelligence`) Actor

Search keywords in, Alibaba supplier/company records out. Sourcing intelligence remains a second layer after direct supplier discovery.

- **URL**: https://apify.com/quanmatrix/alibaba-supplier-company-intelligence.md
- **Developed by:** [Rafael Barreto Haddad](https://apify.com/quanmatrix) (community)
- **Categories:** E-commerce, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.05 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
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

## Alibaba Supplier & Company Finder

Search keywords in, Alibaba supplier/company records out. Sourcing intelligence remains a second layer after direct supplier discovery.

Search Alibaba by product or supplier keywords and return structured supplier and company results for sourcing workflows, with optional comparison and ranking.

### What it does

Provide one or more sourcing keywords such as `stainless steel bottle`, `solar panel`, or `wireless earbuds`. The Actor prefers Alibaba.com’s public server-rendered SEO/wholesale listing surface, using direct HTTP first and Apify Residential fallback when needed; the trade-search surface remains a guarded fallback and challenge shells are rejected. It extracts only public listing data and does not require an Alibaba login, cookies, or private account credentials.

Each output row can include the product title and URL, public image, price display string, normalized price range, MOQ display string and numeric MOQ, supplier/company name, country, Gold Supplier years, rating/review signals, sold/order text, public verification badges, and a stable `supplierFingerprint` for supplier-level grouping.

### Sourcing intelligence layer

Raw offer fields are useful, but procurement workflows usually care about change. Supply a prior run in `previousSnapshot` and the Actor compares matching records to calculate `priceDelta` and `moqDelta`. It then emits a deterministic `agentAction`:

- `NEW_OFFER` when the offer was not present in the supplied snapshot.
- `PRICE_DROP` when the normalized listing price decreased.
- `MOQ_IMPROVED` when the minimum order quantity decreased.
- `SHORTLIST` when public supplier-verification signals combine with a relatively low MOQ.
- `MONITOR` when no stronger deterministic action is justified.

The Actor also stores `SNAPSHOT` and `INTELLIGENCE_SUMMARY` key-value records so scheduled workflows can reuse the output without rebuilding their own normalization layer.

### Input

```json
{
  "searchKeywords": ["stainless steel bottle"],
  "maxResults": 20
}
```

Optional `previousSnapshot` accepts rows from an earlier run. Use it when you want exact offer-change intelligence rather than a one-time sourcing inventory.

### Output example

```json
{
  "recordId": "1601234567890",
  "keyword": "stainless steel bottle",
  "title": "Insulated Stainless Steel Water Bottle",
  "priceText": "$2.80-3.40",
  "priceLow": 2.8,
  "priceHigh": 3.4,
  "moqText": "100 pieces",
  "moqValue": 100,
  "companyName": "Example Manufacturing Co., Ltd.",
  "supplierFingerprint": "a stable supplier key",
  "verifiedSignal": true,
  "priceDelta": -0.25,
  "moqDelta": 0,
  "agentAction": "PRICE_DROP",
  "agentReason": "Observed listing price decreased versus previous snapshot."
}
```

Fields are returned only when Alibaba publishes them on the anonymous listing surface. Missing data remains null instead of being invented.

### Commercial use cases

Use the Actor for low-MOQ discovery, supplier landscape research, price-band benchmarking, private-label sourcing, competitor sourcing scans, new-offer monitoring, seasonal sourcing, packaging/vendor discovery, or recurring price/MOQ change alerts. Twenty task blueprints cover genuinely different sourcing intents instead of duplicating the same task under decorative names.

### Product advantage

Direct Alibaba Actors already provide strong extraction, filters, trust scores, and supplier details. This Actor therefore does not claim superiority for basic scraping. Its differentiated contract is supplier-level continuity plus change intelligence: `supplierFingerprint` makes repeated supplier offers groupable across rows, while prior-snapshot comparison produces exact price/MOQ deltas and deterministic procurement actions. Those are separate functional and analytics advantages and are documented in `product_advantage.json` against current direct comparators.

### Reliability and access policy

Alibaba actively challenges some datacenter traffic. HTTP 200 alone is not considered success: verification, CAPTCHA, punish, and security shells are rejected. The Actor uses a direct-first request and, when available, an Apify Residential proxy session. A run fails rather than returning fabricated or empty offer rows if a real public product dataset cannot be parsed.

The Actor does not bypass login, MFA, paywalls, or private supplier communication. It does not automate inquiries or scrape private account areas. It works only with public logged-out listings and may require parser maintenance when Alibaba changes its public payload structure.

### AI and automation readiness

The output is flat enough for CSV and agent tools while keeping original display strings next to normalized numeric fields. Stable record identifiers, supplier fingerprints, explicit deltas, deterministic action labels, reasons, source surface, and scrape timestamp make the dataset suitable for scheduled monitoring, MCP/agent use, procurement dashboards, Sheets, webhooks, and data warehouses.

For recurring monitoring, save the previous dataset or the `SNAPSHOT` key-value record and pass those rows back through `previousSnapshot` on the next run. The Actor deliberately keeps the comparison deterministic so an AI agent can reason from evidence rather than infer whether a price or MOQ actually changed.

### Why use this Actor

Alibaba sourcing pages contain useful public product and supplier data, but raw listing cards are awkward to compare across runs. This Actor turns those public rows into stable, normalized sourcing records and adds deterministic price/MOQ change signals, supplier grouping, and action labels that can be consumed directly by procurement workflows and agents.

### Key features

- Public, logged-out Alibaba sourcing data only, with no account credentials required.
- Server-rendered SEO/wholesale surface as the primary source, with challenge detection and guarded fallback behavior.
- Normalized price ranges, MOQ values, supplier identity, country, review and verification signals.
- Stable `supplierFingerprint` for supplier-level grouping and deduplication.
- Previous-snapshot comparison with exact `priceDelta` and `moqDelta`.
- Deterministic actions such as `NEW_OFFER`, `PRICE_DROP`, `MOQ_IMPROVED`, `SHORTLIST`, and `MONITOR`.
- Structured dataset plus `SNAPSHOT` and `INTELLIGENCE_SUMMARY` key-value outputs for scheduled automation.

### Pricing

This Actor uses pay-per-event pricing at the currently configured rate of **$0.0015 per successfully delivered normalized sourcing-intelligence row**. Failed runs and rows that are not delivered do not create a successful result event. Platform usage remains governed by the Actor’s current Apify pricing configuration.

### Limitations

- Alibaba can change public HTML and payload structures without notice, which can require parser maintenance.
- Some public traffic can be challenged or rate-limited; the Actor rejects challenge pages instead of pretending they are valid datasets.
- Fields such as supplier verification, reviews, price, MOQ, and sales signals are returned only when publicly present on the source page.
- Public listing prices and MOQs are discovery signals, not binding supplier quotations.
- The Actor does not log in, bypass CAPTCHA/MFA, access private messages, or automate supplier contact.

### Responsible use

Use the data in accordance with Alibaba.com terms and applicable privacy, competition, and data-protection rules. Listing prices and MOQs are supplier-published signals, not binding quotations; confirm commercial terms directly with the supplier before purchasing.

# Changelog

This Actor's version history is a separate document: https://apify.com/quanmatrix/alibaba-supplier-company-intelligence/changelog.md

# Actor input Schema

## `searchKeywords` (type: `array`):

One or more Alibaba.com sourcing keywords.

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

Maximum number of product/supplier rows retained across all keywords.

## `previousSnapshot` (type: `array`):

Optional prior rows used to calculate exact listing price and MOQ deltas.

## `mcpConnectors` (type: `array`):

Optional MCP connectors authorized in your Apify account. Use them to send or write this Actor result to tools such as Slack, Notion, GitHub, Sentry, Supabase, or another compatible MCP service.

## `mcpToolName` (type: `string`):

Optional exact MCP tool name. Leave blank to let the selected MCP action preset discover a compatible tool automatically.

## `mcpToolArguments` (type: `object`):

JSON object passed to the selected MCP tool. String values may use {{actor\_title}}, {{result\_summary}}, or {{result\_json}} placeholders.

## `mcpFailOnError` (type: `boolean`):

When enabled, an MCP delivery error fails the Actor run. Disabled by default so data extraction and intelligence results remain available even if the external destination is unavailable.

## `mcpActionPreset` (type: `string`):

Choose a safe action pattern. AUTO\_SAFE\_WRITE discovers a compatible non-destructive write tool automatically; use a specific preset for Slack, GitHub, Notion, or database delivery.

## Actor input object example

```json
{
  "searchKeywords": [
    "stainless steel bottle"
  ],
  "maxResults": 20,
  "mcpToolName": "",
  "mcpToolArguments": {},
  "mcpFailOnError": false,
  "mcpActionPreset": "AUTO_SAFE_WRITE"
}
```

# Actor output Schema

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

Normalized public Alibaba product/supplier offers with price, MOQ, supplier fingerprints, snapshot deltas and sourcing actions.

# 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("quanmatrix/alibaba-supplier-company-intelligence").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("quanmatrix/alibaba-supplier-company-intelligence").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 quanmatrix/alibaba-supplier-company-intelligence --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,quanmatrix/alibaba-supplier-company-intelligence"
        }
    }
}
```

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/q15p5Vie9w6L1Ibvw/builds/8KakgnGsY7OLeC2z6/openapi.json
