# Alibaba RFQ Scraper (`piotrv1001/alibaba-rfq-scraper`) Actor

Scrape Alibaba RFQs (buying requests) as B2B trade leads: product wanted, quantity, buyer name and country, buyer badges, quotes left and posting time. Filter by keyword, buyer country and date.

- **URL**: https://apify.com/piotrv1001/alibaba-rfq-scraper.md
- **Developed by:** [FalconScrape](https://apify.com/piotrv1001) (community)
- **Categories:** Lead generation, E-commerce, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 rfqs

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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 RFQ Scraper: Buying Requests and Trade Leads

Export **Alibaba RFQs** (requests for quotation, also called buying requests or sourcing requests) as JSON, CSV or Excel. The **Alibaba RFQ Scraper** returns one row per open buying request: the product the buyer wants, quantity and unit, buyer name and country, buyer badges, quotes left and when it was posted. Suppliers, exporters and sales teams use it as a feed of fresh B2B trade leads, or as a simple alternative to an Alibaba RFQ API.

### 🎯 Use Cases

- **Alibaba RFQ lead feed**: get every new request for quotation for your products each morning, before the free quote slots run out.
- **Trade leads by country**: list buyers from the US, UK, Germany, Nigeria or any market you export to.
- **B2B leads for sales teams**: push new buying requests into a CRM or Google Sheet and assign them to reps.
- **Demand research**: see what buyers ask for in a category, in which quantities and from which countries, before you add a product line.
- **Export market research**: compare how many international buyers request LED lights, solar panels or packaging across regions.

### ✨ Features

- **One row per buying request** with 18 fields: product wanted, description preview, quantity and unit, buyer name, buyer country and code, buyer badges (Email Confirmed, Experienced buyer, Typically replies, Complete order via RFQ...), quotes left, star level, attachments flag and image.
- **Posting time as a timestamp**: the site's "3 hours before" is kept as text and also converted to an ISO date-time.
- **Filters**: keywords, buyer countries, "Posted within" (last hour to last 7 days, or older), newest-first or best-match sorting.
- **Your own filtered URLs**: paste an RFQ list URL with any filter set on the site (category, quantity, language, open RFQs only) and it keeps them, starting at the page in the URL.
- **Optional details** (`scrapeDetails`): full description in the buyer's language, English translation, exact posting date, expiry date and time left, product category, attachment links, buyer verification flags and RFQ level.
- **No duplicates**: an RFQ found by two searches is saved and charged once.
- **Fair billing**: you pay only for RFQs saved, and for details only on rows that carry them.

### 🛠️ How It Works

1. **Enter keywords** (for example `led light`), and optionally buyer countries and a time window. Leave everything empty to get the newest buying requests across all categories.
2. **Set Max RFQs per search**: the default is 50, and the site lists up to 5,000 per search.
3. **Run the scraper** and download the leads, or pull them through the API.

### ⚙️ Input

| Field                   | What it does                                                                                          |
| ----------------------- | ----------------------------------------------------------------------------------------------------- |
| **Keywords**            | Products buyers ask for, one search per line. Empty = newest RFQs in all categories.                  |
| **Buyer countries**     | 2-letter codes or English names (`US`, `United Kingdom`, `DE`). Empty = all countries.                |
| **Posted within**       | Last hour, 3 h, 12 h, 24 h, 2, 3 or 7 days, or older than 7 days. Default: any time.                  |
| **Sort by**             | Newest first (default) or best match.                                                                 |
| **RFQ search URLs**     | Optional list pages from sourcing.alibaba.com with your own filters. Each keeps its filters and page. |
| **Max RFQs per search** | How many RFQs to save per keyword or URL. Default 50.                                                 |
| **Scrape details**      | Also open each RFQ for the full text, dates, category and attachments. Default off.                   |

```json
{
    "searchQueries": ["led light", "solar panel"],
    "buyerCountries": ["US", "United Kingdom", "DE"],
    "postedWithin": "7d",
    "sortBy": "newest",
    "maxItems": 200,
    "scrapeDetails": false
}
```

### 💰 Pricing

Pay only for the buying requests you get. No monthly rental.

| Event           | Price                            | What you get                                                  |
| --------------- | -------------------------------- | ------------------------------------------------------------- |
| **RFQ**         | $0.002 per RFQ ($2.00 per 1,000) | One buying request with all list fields                       |
| **RFQ details** | $0.001 per RFQ ($1.00 per 1,000) | Only with Scrape details on, only for rows that carry details |
| **Actor start** | $0.00005 per run                 | Charged once when the run starts                              |

Examples: 50 RFQs = $0.10 · 1,000 RFQs = $2.00 · 1,000 RFQs with details = $3.00 (plus $0.00005 per run).

### 📊 Sample Output Data

```json
{
    "rfqId": "1846240875",
    "url": "https://sourcing.alibaba.com/rfq_detail.htm?p=ID1MaRYaKkiQWy3YUXyW7Cot6maDx4mTp-XlRdIEP-zbjGHbnVBnLQd9tT1fA7_1JLF",
    "subject": "Complete solar sytem kit hybrid solar energy system for home",
    "description": "I'm looking for ...Solar Panel Type:Monocrystalline Silicon Mounting Type:Roof Mounting Solar Panel:Monocrystalline 400-700W Free installation service:Yes Hybrid Inverter:16kW Battery:Lifepo4 48kW",
    "quantity": 1,
    "quantityUnit": "Set/Sets",
    "buyerName": "Seth Ayad",
    "buyerCountry": "Philippines",
    "buyerCountryCode": "PH",
    "buyerTags": ["Experienced buyer", "Email Confirmed"],
    "postedAgo": "2 hours before",
    "postedAt": "2026-10-29T10:28:59.261Z",
    "quotesLeft": 5,
    "starLevel": 2,
    "hasAttachments": true,
    "imageUrl": "https://sc04.alicdn.com/kf/S9ea627dbd5fa421686fd740180340f830.jpg",
    "searchQuery": "solar panel",
    "searchUrl": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=solar+panel&recently=Y",
    "fullDescription": "I'm looking for Complete solar sytem kit hybrid solar energy system for home.\nProduct specifications:\n·Application: Home\n·Solar Panel Type: Monocrystalline Silicon\n·Mounting Type: Roof Mounting\n·Solar Panel: Monocrystalline 400-700W\n·Free installation service: Yes\n.Hybrid Inverter: 16kW\n.Battery: Li ...",
    "subjectEnglish": null,
    "descriptionEnglish": null,
    "postedDate": "2026-10-29",
    "timeLeft": "14D 22H",
    "expiresAt": "2026-11-13T10:29:10.509Z",
    "category": "Solar Energy System",
    "categoryId": "201273080",
    "rfqLevel": "bronze",
    "buyerEmailVerified": true,
    "buyerActive": false,
    "buyerHasTraded": false,
    "attachments": [
        { "name": "Sourcing_Image.jpg", "url": "https://sc04.alicdn.com/kf/S9ea627dbd5fa421686fd740180340f830.jpg" }
    ]
}
```

The fields from `fullDescription` down appear only with **Scrape details** on. `description` is the preview the list shows (about 150 characters); `fullDescription` is the whole text in the buyer's language, and `subjectEnglish` / `descriptionEnglish` hold the site's English translation when the buyer wrote in another language. `postedAt` is computed from the relative time, so it is exact to the minute for recent RFQs and to the day for older ones; `postedDate` is the exact day. `quotesLeft` is how many supplier quotes the buyer still accepts.

### 🔁 Schedule and Integrate

For lead generation, run it **every hour or every morning** with `postedWithin` set to the matching window (`1h` or `24h`) and newest-first sorting: each run then brings only fresh buying requests. Set it up in Apify **Schedules**. Send new RFQs to **Google Sheets**, **Zapier**, **Make**, **n8n**, Slack or a webhook with Apify **integrations**, so your sales team sees them while quote slots are still open.

### 🤖 Use with AI Agents (MCP)

This Actor works as a tool in Claude, ChatGPT, Cursor and other MCP clients through the Apify MCP server (`https://mcp.apify.com`). An agent can call it with:

```json
{ "searchQueries": ["packaging"], "postedWithin": "24h", "maxItems": 20 }
```

### ❓ FAQ

**What is an Alibaba RFQ?** An RFQ (request for quotation) is a buying request a buyer posts on Alibaba.com: the product, quantity and requirements. Suppliers then send quotes. The public RFQ market at sourcing.alibaba.com lists around 180,000 open requests at any time.

**Does Alibaba have an official RFQ API?** Alibaba's open platform is for approved sellers and partners and is built around their own store, orders and products. There is no public API for the RFQ market. This Actor needs no key, account or approval and returns the public buying-request data any visitor sees, with filters, deduplication and posting times as timestamps.

**Do I need an Alibaba account?** No. The Actor reads public RFQ pages. Sending a quote to a buyer still happens on Alibaba.com with your supplier account.

**Why is the buyer name short or partly hidden?** The Actor keeps the buyer name exactly as Alibaba shows it publicly. Alibaba shortens or masks some names; contact details are never shown on public pages and are not collected.

**Why are some fields empty?** Many buyers post without an image, so `imageUrl` is often `null`. `starLevel` is `null` for RFQs Alibaba hasn't rated, and a few RFQs show no posting time, so `postedAgo` and `postedAt` are `null` there (`postedDate` from the details still has the day). Detail fields are only filled with **Scrape details** on.

**How many RFQs can I get?** Up to 5,000 per search, which is the most the site lists for one search. For more, split the search: add buyer countries, a "Posted within" window or more specific keywords. The run's status message tells you when a search had more than 5,000.

**How do I find buyers for my products on Alibaba?** Search the RFQ market for your product keywords, filter by the countries you ship to and the last 24 hours, and schedule the run. Each row is a buyer who is actively asking for quotes right now.

### 🔗 Related Scrapers

- [Alibaba Listings Scraper](https://apify.com/piotrv1001/alibaba-listings-scraper): the supplier side of the same products, with prices and MOQs, to benchmark what buyers are being offered.
- [Alibaba Product Details Scraper](https://apify.com/piotrv1001/alibaba-product-details-scraper): full product pages with price tiers and specs.
- [Alibaba Supplier Profiles Scraper](https://apify.com/piotrv1001/alibaba-supplier-profiles-scraper): competing suppliers' company profiles, years on Alibaba and ratings.
- [Alibaba Supplier Reviews Scraper](https://apify.com/piotrv1001/alibaba-supplier-reviews-scraper): what buyers say about suppliers in your category.
- [Made-in-China Image Search Scraper](https://apify.com/piotrv1001/made-in-china-image-search-scraper): find the same product on another big B2B marketplace.

# Actor input Schema

## `searchQueries` (type: `array`):

Products buyers are asking for, one search per line, e.g. `led light`, `solar panel`, `t-shirt`. Leave empty (and no URLs) to get the newest buying requests across all categories.

## `buyerCountries` (type: `array`):

Only RFQs from buyers in these countries: 2-letter codes or English names, e.g. `US`, `United Kingdom`, `DE`, `Nigeria`. Leave empty for all countries.

## `postedWithin` (type: `string`):

Only RFQs posted in this time window.

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

Newest first (best for fresh leads) or the site's best match for your keyword.

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

Optional: RFQ list pages copied from sourcing.alibaba.com after setting filters there (category, quantity, language, open RFQs only, ...). Each URL keeps its own filters and starts at its `page`. Keywords, countries, time and sort above do not apply to these URLs.

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

Stop each keyword or URL after this many RFQs. The site lists up to 5,000 RFQs per search. Your maximum charge per run also caps the run.

## `scrapeDetails` (type: `boolean`):

Also open each RFQ for the full description, exact posting date, expiry, product category, attachments, buyer verification flags and the English translation. Slower and charged per RFQ (see Pricing).

## Actor input object example

```json
{
  "searchQueries": [
    "led light"
  ],
  "postedWithin": "any",
  "sortBy": "newest",
  "maxItems": 50,
  "scrapeDetails": false
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

## `details` (type: `string`):

No description

## `results` (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 = {
    "searchQueries": [
        "led light"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("piotrv1001/alibaba-rfq-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 = { "searchQueries": ["led light"] }

# Run the Actor and wait for it to finish
run = client.actor("piotrv1001/alibaba-rfq-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 '{
  "searchQueries": [
    "led light"
  ]
}' |
apify call piotrv1001/alibaba-rfq-scraper --silent --output-dataset

```

## MCP server setup

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