# Alibaba RFQ Leads AI: Buying Requests Matched to Your Products (`rich_minds/alibaba-rfq-leads-ai`) Actor

First 25 buying leads free. Alibaba RFQ export buying leads that fit your products, pay per qualified buying lead: find buyers on Alibaba, ranked, translated, with a quote reply drafted. Replaces reading the RFQ board by hand. Free demo on any plan.

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

## Pricing

from $4.00 / 1,000 qualified buying lead (rules only)s

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 Leads AI: Buying Requests Matched to Your Products

**New Alibaba buying requests that fit your products, translated and ready to quote, every morning.**

⚡ First **25 buying leads free** · 💵 **≈ $0.01** per qualified buying lead all in, source scan included · 🤖 **≈ $0.016** all in with AI, on plans with model access or your key · ⏱️ demo in under 10 s

![Shortlist of Alibaba buying requests: English subject, country, quantity, fit score, buyer readiness, quote-today flag and why each one fits](https://api.apify.com/v2/key-value-stores/ThNxFcb7XlzZuvU9Y/records/shortlist.svg)

> **Try it in 30 seconds.** Click **Try it** — six sample RFQs and an exporter profile are pre-filled. Type your own
> product lines and press Start; we charge only for the requests that fit.
> → [What a run costs](#-pricing--what-a-run-really-costs) · [What the AI adds](#-what-the-ai-tier-adds) · [Run it daily](#-run-it-daily-or-weekly)

### ⚡ At a glance

| | |
|---|---|
| **What you get** | open Alibaba buying requests that fit your catalogue, MOQ and markets — scored, translated, with a quote reply |
| **Typical run** | 200 requests read → ≈ 67 qualified (1 in 3, estimate until a live run is measured) |
| **Cost of that run, all in** | $0.67 rules only · $1.10 with the AI — ≈ $0.01 / $0.016 per qualified buying lead, source scan included |
| **Free tier** | your first 25 qualified buying leads on this Actor — one free tier per Apify account, however many searches you run |
| **Keys / setup** | the AI runs on Apify's model access (plans that include it) or your own key — a free Gemini key gives 1–3 AI verdicts per run, a paid key every buying lead |
| **Non-English requests** | leave the AI on — the rules read English only; the AI translates Spanish, Portuguese, French, Arabic |
| **Which plan** | Free demo and your own RFQ rows (`list` mode, [template](https://api.apify.com/v2/key-value-stores/ThNxFcb7XlzZuvU9Y/records/list-template.json)): any plan · live search: a plan that runs Store Actors |
| **To quote you need** | your Alibaba.com supplier account — quotes go out from it, and your membership caps how many a month; `quotesPerDay` spends that quota on the best leads |
| **Agencies** | 10 clients daily ≈ 3,000 leads a month ≈ $58 with the AI — vs one go4WorldBusiness Gold+ account at $100 a month |

### 🎯 What this Actor does

- **Fit to *your* catalogue** — 0–100 against your products, MOQ, certificates and markets, reason quoted.
- **The request read for you** — in English (original kept); specs, quantity, target price, incoterm, destination and
  deadline as columns.
- **Ready to answer** — hot / warm / cold, a **quote today** flag, a reply in the buyer's language from your facts, and
  with **Quotes I can send today** the requests most worth today's quotes.
- **An HS heading suggestion** (4–6 digits, labelled a suggestion).
- **Only new requests on a schedule** — memory by RFQ id; filters and duplicates are never charged by us.

### 🚀 How to use it

1. **Click `Try it`** — the free demo scores six sample RFQs against a sample exporter profile.
2. **Type your product lines and company facts** — they replace the sample and start the live search, capped by "Max
   source spend". Leave "AI assessment" on ([which AI your plan gets](#-at-a-glance)).
3. **Press Start** — buying leads land best first; "Quote replies" has the text for Alibaba. Quoting needs your Alibaba
   supplier account: spend your limited quotes on the hot rows first.
4. **Schedule it daily** with your e-mail in `notifyEmail` — only new requests are delivered and charged. Working in a
   spreadsheet? Start from the [RFQ inbox sheet](https://api.apify.com/v2/key-value-stores/ThNxFcb7XlzZuvU9Y/records/rfq-inbox.csv) (new / quoted / won).

![Quote replies view: buyer country, reply language, target price, incoterm and the reply draft in the buyer's language](https://api.apify.com/v2/key-value-stores/ThNxFcb7XlzZuvU9Y/records/quote-replies.svg)

#### 📦 Already scraping Alibaba RFQs? Qualify your dataset

Paste the dataset ID of any Alibaba RFQ scraper into **Dataset** (`sourceMode: dataset`) — no second scrape.

#### 🔎 Find buyers on Alibaba without reading every request

It reads the whole RFQ board for your product lines and hands you the few worth a quote — 📚
[step-by-step tutorial](https://api.apify.com/v2/key-value-stores/ThNxFcb7XlzZuvU9Y/records/tutorial.html).

### 🆚 Why this instead of running the Alibaba RFQ scraper yourself?

| | [Alibaba RFQ Scraper (`blueskyscraper/alibaba-rfq-scraper`)](https://apify.com/blueskyscraper/alibaba-rfq-scraper) | **This Actor** |
|---|---|---|
| **Your time per 100 buying leads** | ≈ 10 h reading 300 rows, translating, writing quotes | ≈ 0 h — ranked, read, reply drafted |
| **Requests you never read** | none — every keyword match | the ≈ 2 in 3 that do not fit |
| **What you pay for** | every row ($0.002), off-catalogue and closed ones too | only buying leads that fit — junk costs **$0 here** |
| **100 usable buying leads, all in** | $0.60 for 300 unsorted rows you read yourself | 100 ranked, explained leads: **$1.00** rules only · **$1.64** with the AI, scan included |
| **What you get** | the buyer's language in one HTML-ish string, no answer | 0–100 fit with the reason, English + specs as columns, quote reply |

#### vs other Alibaba RFQ scrapers and buy-lead sites

| | 100 usable buying leads, all in | Your time per 100 | Fit + translation + quote draft | Start fee |
|---|---|---|---|---|
| **This Actor** | **$1.00 rules · $1.64 AI**, scan included | ≈ 0 h | **yes, with the quoted reason** | no |
| [blueskyscraper](https://apify.com/blueskyscraper/alibaba-rfq-scraper) | $0.60 (300 rows × $0.002; 2.7 % of runs failed) | ≈ 10 h | no — keyword matches | no |
| [codingfrontend](https://apify.com/codingfrontend/alibaba-rfq-scraper) | $1.20 (300 × $0.00399) | ≈ 10 h | no; keyword searches may return nothing (its README) | $0.001 |
| [apt_marble](https://apify.com/apt_marble/alibaba-rfq-scraper) | $2.40 (300 × $0.008) | ≈ 10 h | keyword `relevanceScore` only (its README) | no |
| [xtracto](https://apify.com/xtracto/alibaba-rfq-scraper) | $9.00 (300 × $0.03; 7 % of runs failed) | ≈ 10 h | quality score only | $0.005 |
| [zen-studio Alibaba Scraper](https://apify.com/zen-studio/alibaba-scraper) | products and suppliers, no buying requests | — | no | $0.005 |
| [go4WorldBusiness](https://www.go4worldbusiness.com/pricing) Silver | $75 a month, 10 leads a day, its own board | hours | no | — |
| [Alibaba RFQ Market](https://sourcing.alibaba.com/rfq/rfq_search_list.htm) | free to browse, one keyword at a time | hours | no | — |

💸 **A go4WorldBusiness alternative for Alibaba:** ≈ 10 new fits a day cost ≈ $3.80 a month on rules or ≈ $5.70 with the
AI, source scan and daily digest included — against $75 a month for a Silver seat (read 2026-10-22).

### 💵 Pricing — what a run really costs

Pay per result: **one event per qualified buying lead**, plus one digest per run that brought new billed leads. Your
first 25 qualified buying leads are free, whatever the tier.

| Event | When it is charged | Price |
|---|---|---|
| `free-tier` | your first 25 qualified buying leads on this Actor, in any mode | **$0.00** |
| `qualified-buying-lead-basic` | AI off — normalised request, rule fit score, regex reading, template reply | **$0.004** |
| `qualified-buying-lead-ai` | AI on — plus AI fit with a quoted reason, translation, specs, HS heading, reply in the buyer's language | **$0.01** |
| `digest-delivered` | once per run that billed ≥ 1 new buying lead: the e-mail / chat digest and the report page (first 3 free) | **$0.03** |

**Never charged here:** requests below `minScore`, filtered, suppressed or already received. **The source's scan is not
ours to waive:** the RFQ scraper bills your Apify account ≈ $0.002 per request read — capped by `maxDiscoveryChargeUsd`.

**How that compares** — $0.004 is the price of one raw row of the Alibaba RFQ feeds (median $0.004), but one qualified
buying lead replaces ≈ 3 raw rows: $0.0013 per raw-row equivalent, and the rows you would have dropped cost nothing here.

**Worked example** — 200 requests read → 67 qualified, AI on: source $0.40 on your account + 67 × $0.01 + 67 × ≈ $0.0004
tokens = **$1.10**, about **$0.016 per qualified buying lead**; AI off: $0.40 + 67 × $0.004 = **$0.67** ($0.010 each).
A run past your free leads adds one $0.03 digest.

**At volume** — an agency, 10 clients daily at ≈ 10 fits each: ≈ 3,000 leads a month ≈ $58 with the AI, $39 on rules.

**AI tier, all in:** ≈ $0.0104 per buying lead here ($0.01 + ≈ $0.0004 tokens: 2,051 in / 453 out measured on
`google:gemini-3.5-flash-lite` with an own Gemini key; the default via Apify's model access is not measured yet) —
≈ $0.016 with the source scan.

### 🤖 What the AI tier adds

The same Spanish request, AI **off** — rule score, regex reading, an English template reply:

```json
{"subject": "Embroidered hoodies for school uniforms", "language": "es", "descriptionEnglish": null,
 "ruleScore": 92, "label": "hot", "targetPrice": 7.5, "incoterm": "CIF", "destination": "Manzanillo",
 "fitReason": "matches your product line 'hoodie' (hoodie); 1,200 pieces meets your MOQ; Mexico is one of your markets",
 "hsCodeSuggested": null, "replyLanguage": "en"}
```

AI **on** (`qualified-buying-lead-ai`, run of 2026-10-22 on `google:gemini-3.5-flash-lite` with an own Gemini key):

```json
{"subject": "Embroidered hoodies for school uniforms", "language": "es", "score": 90, "label": "hot",
 "descriptionEnglish": "I need 1200 cotton and polyester hoodies, 320 gsm, sizes S-XL, navy blue, with an embroidered school logo on the chest. Target price 7.50 USD per piece CIF Manzanillo. …",
 "specs": [{"name": "colour", "value": "navy blue", "quote": "color azul marino"}],
 "fitReason": "Matching product: hoodies in cotton-polyester fleece, 320 gsm; Quantity 1200 pcs is above MOQ (500) — \"sudaderas con capucha de algodón y poliéster, 320 gsm\"",
 "hsCodeSuggested": "611020", "hsConfidence": 0.9, "replyLanguage": "es",
 "quoteReply": "Hola, gracias por su solicitud de sudaderas con capucha. En Sunrise Knit Exports fabricamos sudaderas con capucha de algodón y poliéster de 280-340 gsm, …",
 "aiModel": "google:gemini-3.5-flash-lite"}
```

That is ≈ 6 minutes of reading, translating and drafting per request by hand (on 5 sample buying leads,
2026-10-22). The AI quotes every value; a reply naming a price, certificate or lead time you did not state is dropped.

**Which AI your plan gets:** Apify's model access where your plan includes it; otherwise your own key
(`llmProvider: byok`) — a free Gemini key ([aistudio.google.com/apikey](https://aistudio.google.com/apikey)) gives 1–3
AI verdicts per run, a paid key every buying lead. The free demo shows labelled sample verdicts (`aiModel: "sample"`).

### ⚙️ Input

Two fields start a search — **Your product lines** (`products`) and **About your company** (`sellerProfile`); `minScore` decides what you pay.

<details><summary>The 11 fields you decide on, with defaults</summary>

| Field | Default | What it does |
|---|---|---|
| `products` | — | your product lines: each one is an Alibaba RFQ search and the catalogue requests are scored against |
| `sellerProfile` | — | what you make, MOQ, certificates, lead time, ports, markets — grounds the fit and the reply |
| `minScore` | `50` | decides what you pay: below it = not delivered, not charged |
| `maxQualified` | `100` | hard cap on output and on what this Actor charges |
| `maxRequestsToRead` | `200` | requests the source reads (≈ $0.002 each on your account) |
| `maxDiscoveryChargeUsd` | `0.5` | hard cap on the source's spend (doubles with a scheduled run's read when left at the default) |
| `enableAi` | `true` | AI fit, translation, reading, HS heading and reply |
| `quotesPerDay` | `0` | your daily quote budget: the N leads most worth a quote get `quotePlan: today` and a rank |
| `buyerCountries` / `excludeCountries` | — | buyers from / never from these countries |
| `postedWithinDays` · `onlyOpenRequests` | `7` · `true` | fresh requests that still take quotes |
| `minBuyerStars` · `minQuantity` · `minQuantityUnit` | `0` · `0` · `pieces` | serious, big-enough buyers (1 ton = 1,000 kg) |

</details>

Every other input — `keywords`, `excludeTerms`, `draftReplies`, `sendAlertsTo`, flags, sources, webhooks — is in the
Input tab and the [API reference](https://api.apify.com/v2/key-value-stores/ThNxFcb7XlzZuvU9Y/records/api-reference.md).

### 📤 Output

One dataset item per qualified buying lead. Views: **Shortlist**, **Today's quotes**, **Quote replies**, **The request
read**, **CRM export** (every field flat, AI ones included), **Score breakdown**.

<details><summary>Every field of a row</summary>

| Field | Description |
|---|---|
| `url`, `itemId`, `rfqId`, `dedupeKey` | the request page (never null), its RFQ id, `alibaba-rfq:<rfqId>` |
| `subject`, `subjectEnglish`, `description`, `descriptionEnglish`, `language` | the request as written and in English (AI; the free demo shows a sample translation) |
| `quantity`, `quantityUnit`, `buyerName`, `buyerCountry`, `buyerCountryCode` | who wants how many |
| `postedAt`, `quotesLeft`, `extraQuoteSeats`, `buyerStars`, `buyerTags`, `hasAttachments` | freshness and buyer signals |
| `quoteUrl`, `contactRoute` | Alibaba's Quote-now form, else the request page |
| `specs`, `targetPrice`, `targetPriceCurrency`, `incoterm`, `destination`, `deadline`, `customisation` | the request read, each spec quoted |
| `hsCodeSuggested`, `hsConfidence` | HS heading suggestion (AI, confidence ≥ 0.5) |
| `ruleScore`, `fitScore`, `score`, `label`, `assessedBy` | see the sentence below |
| `fitReason`, `scoreReasons`, `matchedProducts` | why it fits (a demo row says it is a sample) |
| `temperature`, `quoteToday`, `quotePlan`, `quoteRank`, `quotePlanReason` | buyer readiness and today's quote plan |
| `quoteReply`, `replyLanguage` | the reply draft (hot / warm only) |
| `flags`, `targetFlagsMatched`, `aiModel`, `searchTerm`, `sourceActor`, `chargedEvent`, `billedAs`, `scrapedAt` | provenance and billing |

</details>

Sort by `score`; `ruleScore` is the rule part, `fitScore` the AI's — threshold and trend across runs on `ruleScore`.

**Upsert key for a CRM or Sheet:** `dedupeKey` — `alibaba-rfq:<rfqId>`, the same id whichever term, run or source
found the request.

`OUTPUT` holds the funnel, charges, `leadDigest` (by country, quantity, specs) and, after a live search,
`suggestedTerms` (words to exclude or add next time); a **`DIGEST`** and a client-ready **`REPORT`** page sit next to it
— with a hot lead, both link a 1688 factory-price check to price it before you quote.

### 🔁 Run it daily or weekly

1. Open the saved task your first real run links (`OUTPUT.scheduleTaskUrl`) and click **Schedule** — daily, as
   requests fill their quote seats in days. `notifyEmail` gets the digest: top 10 and the trend vs the last run.
2. Leave `dedupeAcrossRuns: true` — the next run delivers and charges **only what is new**.
3. A scheduled run reads 2× `maxRequestsToRead`, and a spend cap left at $0.50 doubles with it; the status says when a
   cap stopped the read. Your first live run looks back 30 days.
4. Digest to chat via **Send alerts to**, rows to your CRM via `webhookUrl`, a running log via `historyDatasetName`
   ([tracker sheet](https://api.apify.com/v2/key-value-stores/ThNxFcb7XlzZuvU9Y/records/tracker.csv)).

Daily cost is the new fits only: ≈ 30 new requests read ≈ 10 buying leads — ≈ $0.13 a day on rules, ≈ $0.19 with the
AI, scan and digest included.

#### 🎯 Try it for your niche

Pick one in **Start from a ready niche search** (`preset`). No preset's yield is measured yet, so each first run is
capped at 75 requests and $0.15 of source spend:

| Niche | Products it searches | Filters |
|---|---|---|
| [Garments exporter](https://api.apify.com/v2/key-value-stores/ThNxFcb7XlzZuvU9Y/records/preset-garments-exporter.json) | cotton t-shirt, hoodie, polo shirt, sweatshirt | 1+ buyer stars, 7 days |
| [LED lighting manufacturer](https://api.apify.com/v2/key-value-stores/ThNxFcb7XlzZuvU9Y/records/preset-led-lighting-exporter.json) | led panel, strip, flood light, bulb | 500+ pieces |
| [Spices & food exporter](https://api.apify.com/v2/key-value-stores/ThNxFcb7XlzZuvU9Y/records/preset-spices-food-exporter.json) | black pepper, turmeric, cardamom, basmati rice | 1+ ton, 14 days |
| [Export agency, 3 clients](https://api.apify.com/v2/key-value-stores/ThNxFcb7XlzZuvU9Y/records/preset-export-agency.json) | cotton t-shirt, led panel light, black pepper | 7 days, its own memory |

### 🔌 Integrations, automation and API

#### Run outcomes — what your integration sees

<details><summary>Every outcome: run status, dataset, <code>OUTPUT</code> field, charged?, what to do</summary>

| Outcome | Run status | Dataset | `OUTPUT` | Charged? | What to do |
|---|---|---|---|---|---|
| Free demo | SUCCEEDED | sample buying leads | `demo: true` | no | type your products |
| Success | SUCCEEDED | qualified buying leads | funnel, `chargedEvents`, `aiCoverage` | per qualified buying lead | — |
| Nothing matched | SUCCEEDED | empty | `qualified: 0` | not by us — the source scan runs on your plan | loosen `minScore` / filters |
| Demo text still in place | SUCCEEDED | empty | `inputNeeded` | no | replace the field the status names |
| Invalid input | FAILED | empty | — | no | fix the field the status names — do not retry as is |
| Your plan cannot run the source Store Actor | SUCCEEDED; check `OUTPUT.ok` | Console: the free sample scored on your products (`sampleFallback: true`); API / schedule: empty | `ok: false`, `outcome: source_refused`, `sourceRefused: "plan"`; an API / scheduled run also alerts `notifyEmail` and your chat channels (`refusalAlerted`) | no | [list-mode rows](#list-mode-rows--what-a-pasted-record-needs); `failOnSourceError: true` turns it FAILED |
| Source failed (nothing loaded) | FAILED | empty | `ok: false`, `outcome: source_failed`, `sourceError` | no | retry later / follow the reason |
| Source partial (the source run timed out / was aborted after scraping) | SUCCEEDED | buying leads from the rows scraped | `sourceStatus` (`status`, `partial: true`) | per qualified buying lead | raise `discoveryTimeoutSecs` |
| AI unavailable | SUCCEEDED | rule-scored buying leads | `aiError`, `aiCoverage` | free while free leads last, then basic | `llmProvider: byok` with your key |

</details>

- **Webhook** — `webhookUrl` POSTs `{"event": "buying_lead.qualified", "buying_lead": {…}, "runId": "…"}` per lead,
  or `{"event": "buying_leads.qualified", "buying_leads": [{…}], "runId": "…"}` batches with `webhookBatchSize`. A
  429 / 5xx is retried once after 2 s; **a failed POST is retried on the next run** (`"redelivery": true`, up to 7
  days, never charged again). `webhookSecret` signs every POST (`X-Signature: sha256=…`).
- **Which delivery field wins** — every URL is posted once per run: **Send alerts to** fills each service you did not
  set yourself (an explicit, API-only `slackWebhookUrl` … wins for its service); `webhookUrl` gets the leads as JSON,
  the chat services and `notifyEmail` the digest.
- **HubSpot / Pipedrive** — a Make / Zapier step upserted on `dedupeKey` today; a native `crmPush` is the next release.
- **After every `blueskyscraper/alibaba-rfq-scraper` run** — its Integrations tab: "Run succeeded → start this Actor"
  with `sourceMode: dataset`, `datasetId` = `resource.defaultDatasetId`, `enableAi: false`.

<details><summary>Python and JavaScript snippets, MCP minimal input</summary>

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("rich_minds/alibaba-rfq-leads-ai").call(
    run_input={
        # free first call instead: {} (the demo) or {"sourceMode": "list", "itemsList": [{"title": "…", "rfqId": "…"}]}
        "products": ["cotton t-shirt", "hoodie"],
        "sellerProfile": "T-shirt and hoodie manufacturer, GOTS certified. MOQ 500 pieces. FOB Chennai.",
        "maxQualified": 50,
        "maxDiscoveryChargeUsd": 0.5,  # the source scan's spend cap
        "failOnSourceError": True,  # a plan refusal ends FAILED, so your alert fires
    },
    timeout_secs=3240,  # see "How long does a run take?"
    # build="0.1.4",  # pin a tested build
)
out = client.key_value_store(run["defaultKeyValueStoreId"]).get_record("OUTPUT")["value"]
if out.get("sourceError"):
    raise RuntimeError(out["sourceError"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["url"], item["score"], item["label"], item["quoteReply"])
```

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

const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });
const run = await client.actor('rich_minds/alibaba-rfq-leads-ai').call({
    // free first call instead: {} (the demo) or { sourceMode: 'list', itemsList: [{ title: '…', rfqId: '…' }] }
    products: ['cotton t-shirt', 'hoodie'],
    sellerProfile: 'T-shirt and hoodie manufacturer, GOTS certified. MOQ 500 pieces. FOB Chennai.',
    maxQualified: 50,
    maxDiscoveryChargeUsd: 0.5, // the source scan's spend cap
    failOnSourceError: true,
}, { timeout: 3240 /* , build: '0.1.4' */ });
const out = (await client.keyValueStore(run.defaultKeyValueStoreId).getRecord('OUTPUT')).value;
if (out.sourceError) throw new Error(out.sourceError);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.map((i) => [i.url, i.score, i.label]));
```

Minimal agent input (MCP & AI agents):

```json
{"products": ["cotton t-shirt"], "sellerProfile": "T-shirt maker, MOQ 500 pieces", "postedWithinDays": 2, "maxQualified": 10, "maxDiscoveryChargeUsd": 0.2, "dedupeAcrossRuns": false}
```

</details>

**MCP & AI agents** — add `https://mcp.apify.com/?actors=rich_minds/alibaba-rfq-leads-ai` to any MCP client. One real
item, the `OUTPUT` keys with types, which call runs what and every flag: [API reference](https://api.apify.com/v2/key-value-stores/ThNxFcb7XlzZuvU9Y/records/api-reference.md).

<details><summary>List-mode rows</summary>

#### List-mode rows — what a pasted record needs

`sourceMode: "list"` runs on any plan — start from the [template](https://api.apify.com/v2/key-value-stores/ThNxFcb7XlzZuvU9Y/records/list-template.json); no source run.

| Field | Needed? | What it enables |
|---|---|---|
| `title` / `subject` | required | the request; the fit and the reply |
| `rfqId` (or `url` with `?id=`) | recommended | the dedupe key and the request page |
| `description` | optional | specs, target price, incoterm, translation |
| `quantity` + `quantityUnit` | optional | MOQ check, minimum quantity |
| `buyerCountry` / `buyerCountryCode` | optional | country filters, export markets |
| `postedAt` / `postedDate` / `postedText` | optional | age filter, quote today |
| `quotesLeft`, `extraQuoteSeats` | optional | open-only, quote today, today's quote plan |
| `buyerRating`, `buyerTags`, `hasAttachments` | optional | buyer stars, badges, readiness |
| `buyerName`, `quoteUrl`, `query`, `scrapedAt`, `specifications` | optional | buyer, Quote-now link, `searchTerm`, specs |

apt_marble, xtracto and codingfrontend names (`quotesRemaining`, `country`, `openTime`, `buyer.country`,
`quantity.value`, `quotes.leftCount`) are read too.

</details>

### 👥 Who is it for?

| You are… | You run it to… | Start with |
|---|---|---|
| An exporter / manufacturer (India, Vietnam, Turkey, China) | find buyers for my products each morning, answer first | product lines + profile, daily, `quotesPerDay` |
| A sourcing agent / trading company | find importers in my markets, with quantity and price | several product lines, `buyerCountries` |
| An export agency | buying leads for each client | the export-agency preset; one saved task per client |
| A trade platform backend | buyer-intent rows by product and corridor | the API, `hsCodeSuggested` |

### 🧠 How the AI works

- **One typed call per request** past the free filters; the model sees the request and your profile only.
- **Grounded by code:** a value whose quote is not in the request, an HS heading under 0.5 confidence and a reply with
  facts your profile lacks are dropped; cold rows get no reply.
- **Model:** `google/gemini-2.5-flash-lite` via Apify's model access, else your own key; a model failure never fails
  the run — the rule score stands.

### 🔒 Data, compliance and limits

- The Store scraper reads Alibaba on your account; this Actor never sends a quote.
- `buyerName` is a public name as Alibaba shows it; `includeBuyerName: false` drops it. Mind Alibaba's terms and GDPR.
- Limits: some rows omit description or tags; HS headings are suggestions to check.

### ❓ FAQ

**I already see RFQs in My Alibaba — why this?** Your back office shows requests one category at a time and leaves the
reading to you. This runs every product line at once, scores each request against your catalogue, MOQ and markets,
translates it and drafts the reply — so your limited quotes go to the hot rows first.

**Why pay when the Alibaba RFQ Market is free?** It wins at browsing the live board, and only there can you send the
quote — but one keyword at a time, with no fit, translation, export, schedule or alerts.

**Where do the Alibaba buying requests come from?** Alibaba's public RFQ board, read by a Store scraper on your
account — or a dataset or rows you bring.

**How many Alibaba buying leads does a run find?** About 1 in 3 requests read (an estimate until a live run is
measured): 200 read → ≈ 67.

**What does a month of export buying leads cost?** A daily schedule at ≈ 10 new fits a day: ≈ $3.80 a month on rules,
≈ $5.70 with the AI, source scan and daily digest included.

**Is this a go4WorldBusiness alternative?** For Alibaba buying requests, yes — ≈ $5.70 a month with the AI against $75
for a Silver seat.

**Where do I find trade leads for exporters?** Buyers post them as RFQs on Alibaba's board every day; this reads it for
your product lines and keeps the requests that fit your catalogue, MOQ and markets.

**Are these real import buyers?** Yes — importers, wholesalers and brands who posted a request on Alibaba, with country,
quantity and buyer stars; `minBuyerStars` keeps the serious ones.

**Do I need an Alibaba supplier account and quote quota?** To answer, yes: quotes go out from your Alibaba.com supplier
account, and your membership limits how many you send a month (your RFQ page in My Alibaba shows what is left). Set
`quotesPerDay` to your daily share and the run marks the leads most worth one.

**Can an agency run b2b buying leads for several clients?** Yes — one saved task with its own `dedupeStoreName` per
client (the export-agency preset shows three); one run for several clients is on the roadmap.

**How long does a run take?** Demo under 10 s; a free google:gemini-3.5-flash-lite key measured
2026-10-22: ≈ 1.7–13.8 s per buying lead (≈ 4–35 a minute) — 50 leads ≈ 870 s; worst case per 100 ≈ 23 min.

<details><summary>Measured time per mode and the timeoutSecs to pass</summary>

| Mode | Measured time | `timeoutSecs` |
|---|---|---|
| Free demo (6 sample RFQs) | under 10 s | 120 |
| Live search, rules only | ≈ 1–3 min for 200 requests (estimate) | 900 |
| AI with Apify's model access | not measured on the platform yet | 1800 |
| AI with an own key that answered | measured ≈ 1.7–13.8 s per lead (`google:gemini-3.5-flash-lite`, free Gemini key, 2026-10-22) — 50 leads ≈ 870 s | 1800 |

The AI stops after 2 minutes of rate-limit waiting; every row keeps its rule score.

</details>

<details><summary>More questions: plan, free leads, duplicates, empty runs, sending quotes, legality</summary>

**Which Apify plan do I need?** Any plan runs the demo and your own rows; the live search needs a plan that runs Store
Actors — on any other plan the Console scores the free sample against your products instead.

**Do rule-scored buying leads use my free ones?** Yes, while the AI is unavailable — except the last 5, the AI reserve,
kept so your first AI-assessed buying leads are free too (`OUTPUT.chargeSplit.freeKeptForAi`).

**Will I be charged for the same buying lead twice?** No: charged requests are remembered by RFQ id. Adding a product
line keeps that memory; each set of country filters keeps its own memory, each client its own `dedupeStoreName`.

**What happens if nothing matches?** 0 rows, nothing charged here.

**How do I send the quotes safely?** Paste each reply into Alibaba's Quote-now form from your supplier account — nothing
is sent for you. Add your price and keep to Alibaba's rules (one quote per request, no off-platform contacts).

**Is the data public / is this legal?** Yes, the public RFQ board; using it within Alibaba's terms is up to you.

</details>

### 🧩 More Actors from the same developer

- **[LinkedIn Buying Intent Leads](https://apify.com/rich_minds/linkedin-intent-leads)** — more buyers for you: people on LinkedIn asking for a product like yours.

### 🆘 Support

Open an issue on the Actor's page.

⭐ **Found it useful? A review on the Store helps other exporters find it.**

### 📝 Changelog

- **0.1.4** (2026-10-23) — If your Apify plan cannot run the live search, the Console now scores the free sample requests against your own products instead of returning nothing; a scheduled run that hits the same wall e-mails / posts the refusal to your channels; Each run that brings new billed buying leads now includes a $0.03 digest (e-mail / chat summary and report page; your first 3 are free), and a hot lead's digest links a 1688 factory-price check to price it before you quote; The page now says up front that quoting needs your Alibaba supplier account and its monthly quote quota, and names the model and key behind every measured AI speed and token figure.
- **0.1.3** (2026-10-23) — sample requests shown in English in the free demo; measured own-key AI speed and the timeout for 50 leads.
- **0.1.2** (2026-10-23) — failed webhook posts re-sent; English subject first; today's quote plan; cheaper AI.
- **0.1.1** (2026-10-23) — initial release.

# Actor input Schema

## `preset` (type: `string`):

Pick a ready niche search and press Start: it replaces the sample with that niche's products, profile and markets (a value you typed yourself always wins) and runs the live RFQ search, first run capped at 75 requests / $0.15 of source spend. <b>Custom</b> = fill the fields yourself.

## `products` (type: `array`):

One product line per row (<code>cotton t-shirt</code>), searched on Alibaba's RFQ board. Lines typed next to the sample start the live search on your Apify plan, ≈ $0.002 per request read, capped by <b>Max source spend</b>. On a plan that cannot run Store Actors you get the free sample scored on your lines.

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

Search terms other than your product lines, e.g. <code>crew neck tee</code>; empty = your product lines. Affects what you pay: each is one more search on your Apify plan, ≈ $0.002 per request read. The free demo does not search them; on a plan that cannot run Store Actors you get the free sample scored on your terms.

## `sellerProfile` (type: `string`):

A few sentences: what you make, materials, certificates, MOQ, lead time, port / price term and export markets. The AI scores every request against it and the quote reply uses ONLY these facts — never a price, certificate or lead time you did not write. The rules read your MOQ ("MOQ 500 pieces") and markets from it too.

## `notifyEmail` (type: `string`):

After every run with at least one new buying lead, the digest (how many are new, the top 10 with country, quantity and the Quote-now link) is e-mailed here through Apify's send-mail Actor. Schedule the run daily (Actions → Schedule) and only the new requests that fit come to your inbox. Never sent for the free demo.

## `minScore` (type: `integer`):

The field that decides what you pay: buying leads with a fit score below this are discarded and <b>not charged</b>. Raise it to pay only for the strongest matches, lower it to see more.

## `maxQualified` (type: `integer`):

Hard cap on results and on what <b>this Actor</b> charges — affects what you pay: at most this many × $0.01 with AI on (× $0.004 off), e.g. 100 × $0.01 = $1.00, plus one $0.03 digest per run that billed a new lead (first 3 free). The source's spend has its own cap below. Best-fitting leads first.

## `maxDiscoveryChargeUsd` (type: `number`):

Affects what you pay: hard cap on what the Alibaba RFQ scraper may charge your account in a live search — $0.50 (≈ 250 requests at $0.002). A scheduled run reads twice the requests, so a cap left at $0.50 doubles to $1.00 with it; a cap you set stays, and the status says when it stopped the read.

## `enableAi` (type: `boolean`):

AI fit with a quoted reason, English translation, specs, price terms, HS heading and quote reply. <b>On = $0.01 per qualified buying lead + AI tokens (≈ $0.0004); off = $0.004</b>. Non-English requests: leave the AI on — the rules read English only. Runs on Apify's model access or your own key (a free key: 1–3 AI verdicts per run).

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

Keep only requests from buyers in these countries (the live search asks Alibaba for them directly). Empty = every country. Also counts as your export markets in the fit score.

## `excludeCountries` (type: `array`):

Drop requests from these countries before scoring — never charged.

## `postedWithinDays` (type: `integer`):

Only requests posted in the last N days; 0 = any age. A scheduled run looks back to its last run instead, and the first live run of a search looks back 30 days.

## `onlyOpenRequests` (type: `boolean`):

Drop requests where the buyer accepts no more quotes (no quote seats left) — you could not answer them anyway.

## `minBuyerStars` (type: `integer`):

Alibaba rates each request 0–3 stars for quality. 2 or 3 keeps the serious buyers; 0 = keep all.

## `minQuantity` (type: `number`):

Drop requests below this quantity, compared in the unit below (1 ton = 1,000 kg; a dozen = 12 pieces). A request in a unit that cannot be compared (meters, bags) is kept. 0 = off.

## `minQuantityUnit` (type: `string`):

The unit <b>Minimum quantity</b> is counted in.

## `excludeTerms` (type: `array`):

Words that rule a request out (e.g. <code>sample only</code>, <code>second hand</code>). Matched in the subject and text, any case — never charged.

## `targetFlags` (type: `array`):

Only deliver buying leads that have at least one of these flags, and rank those with more of them higher. Leave empty to keep everything. An API call passes the flag names from the README's flag table, e.g. <code>quote_today</code> (<code>quoteToday</code> works too); an unknown name stops the run at once with the list of valid ones.

## `suppressionList` (type: `array`):

RFQ ids, subjects or URLs to never output (e.g. requests you already quoted). Skipped before any processing and never charged. API-only: send it in the input JSON.

## `replyLanguage` (type: `string`):

<b>Buyer's language</b> — a Spanish request gets a Spanish reply (AI tier). <b>English</b> — every reply in English. The rule-based reply (AI off) is always English.

## `draftReplies` (type: `boolean`):

On: every hot / warm buying lead gets a reply draft to paste into Alibaba's Quote-now form — only facts from <b>About your company</b>. Nothing is ever sent for you.

## `quotesPerDay` (type: `integer`):

Your daily quote budget on Alibaba. Set it (e.g. <code>5</code>) and the run marks the leads most worth one of today's quotes — fit × buyer readiness × quotes left × freshness — as <code>quotePlan: today</code> with a rank and a reason, the rest <code>later</code> (view <i>Today's quotes</i>). 0 = off. Free — it changes no price.

## `includeBuyerName` (type: `boolean`):

Off: <code>buyerName</code> is left empty in every row — a person's name as Alibaba shows it. Turn it off when your CRM must not hold personal names.

## `llmProvider` (type: `string`):

<b>Apify (no keys)</b> — the AI runs through Apify's model access; tokens are billed to your Apify account at OpenRouter's rates. <b>My own key</b> — your OpenAI / Anthropic / Gemini / Groq key: expect 1–3 AI checks per run on a free-tier key (the rest keep their rule score at the basic price); a paid key (billing on) assesses every buying lead. Measured 2026-10-22: ≈ 1.7–13.8 s per buying lead with a free google:gemini-3.5-flash-lite key (≈ 4–35 a minute; the pace varies by the hour) — pass timeoutSecs 870 for 50 leads.

## `llmModel` (type: `string`):

Leave empty for the default (<code>google/gemini-2.5-flash-lite</code> via Apify; <code>google:gemini-3.5-flash-lite</code> with your own key). Apify mode takes an OpenRouter slug such as <code>openai/gpt-4.1-mini</code>; own-key mode takes <code>provider:model</code>, e.g. <code>anthropic:claude-haiku-4-5-20251001</code>.

## `llmApiKey` (type: `string`):

Required when <b>AI model access</b> is <i>My own API key</i>. Stored encrypted by Apify, never logged.

## `aiCandidateMultiplier` (type: `integer`):

API only — hidden on the form. How many of the best rule-scored buying requests get the AI pass, as a multiple of <b>Max qualified</b> — the best rule scores first. Higher = more thorough, slower, more tokens.

## `sendAlertsTo` (type: `string`):

Paste one or more URLs, one per line — the service is detected from the address: a Slack or Discord channel webhook, a Teams Workflows or Google Chat space webhook, your Telegram bot's send link (<code>https://api.telegram.org/bot\<token>/sendMessage?chat_id=@yourchannel</code>) or any other https URL (Zapier, Make, n8n, your CRM), which gets the buying leads as JSON. After every run with at least one new buying lead, the digest (how many are new, the top 10 with links) is posted there. Never sent for the free demo. Headers, batching and signing: <i>Delivery details (advanced)</i>.

## `dedupeAcrossRuns` (type: `boolean`):

Remembers every buying request you were charged for, by its RFQ id, in a named key-value store on your account, and skips it in future runs — a daily schedule delivers and charges only new requests.

## `dedupeTtlDays` (type: `integer`):

API only — hidden on the form. How long a delivered buying lead stays remembered. 0 = never deliver or charge it again (an RFQ id never comes back as a new request).

## `historyDatasetName` (type: `string`):

Optional. Type a name (e.g. <code>alibaba-rfq-leads-ai-seen-log</code>) and every run appends its new buying leads with the date to that named dataset on your account — one list across months to connect to Google Sheets or your BI tool once. Empty = off. Costs nothing extra.

## `sourceMode` (type: `string`):

<b>actor</b> — search the Alibaba RFQ board live: runs <code>blueskyscraper/alibaba-rfq-scraper</code> on your account, billed separately (≈ $0.002 per request). <b>dataset</b> — an existing dataset of any of the four Alibaba RFQ scrapers. <b>list</b> — RFQ rows you paste in. <b>Bring your own data:</b> rows or a dataset ID, and you pay only for the analysis — the source Actor is never run. The mode you choose always runs as chosen; only the untouched sample records next to products you typed switch to the live search (spend-capped). <code>{}</code> over the API runs the free demo — nothing charged.

## `maxRequestsToRead` (type: `integer`):

Affects what you pay: how many RFQs the source reads in one live run, split across your product lines — ≈ $0.002 per request on your Apify account, so 200 ≈ $0.40. A scheduled run reads twice this when you leave the default (and its default spend cap doubles with it).

## `autoSwitchToLive` (type: `boolean`):

API only — hidden on the form. On (default): search terms typed next to the untouched sample records start the live search (spend-capped; <code>OUTPUT.switchedToLive</code> names them). Off: the mode you send is the mode that runs — the sample stays the free demo and the status names the terms it did not search. API pipelines that must never start a paid read on their own: send <code>false</code>.

## `failOnSourceError` (type: `boolean`):

API only — hidden on the form. Off (default): a plan that cannot run the source Store Actor ends SUCCEEDED with 0 rows and <code>OUTPUT.ok: false</code> — a scheduled / API run also sends the refusal to <code>notifyEmail</code> and every <code>sendAlertsTo</code> channel (<code>OUTPUT.refusalAlerted</code>); a Console run shows the free sample scored on your products. On: the same run ends FAILED with the same message, so a schedule's or an API pipeline's failed-run alert fires. Turn it on for every schedule.

## `datasetId` (type: `string`):

Only for <b>dataset</b> mode. A dataset of blueskyscraper, apt_marble, xtracto or codingfrontend Alibaba RFQ scraper — pick it so the Actor is granted read access.

## `itemsList` (type: `array`):

Only for <b>list</b> mode. JSON array of RFQ rows with at least <code>title</code> (or <code>subject</code>); optional <code>rfqId</code>, <code>description</code>, <code>quantity</code>, <code>quantityUnit</code>, <code>buyerCountry</code>, <code>buyerCountryCode</code>, <code>postedAt</code>, <code>quotesLeft</code>, <code>buyerRating</code>, <code>buyerTags</code>, <code>quoteUrl</code> — the README's List-mode rows table.

## `discoveryActorId` (type: `string`):

The Alibaba RFQ scraper the live search runs on your account. <b>blueskyscraper</b> (default): $0.002 per request, no start fee, 2.7 % failed runs, country / age / open filters. <b>apt_marble</b>: $0.008 per request, the most filters. <b>xtracto</b>: $0.03 + $0.005 start, no country / age filters. <b>codingfrontend</b>: $0.00399 + $0.001 start, keyword searches may return nothing. Affects what you pay.

## `discoveryInput` (type: `object`):

API only — hidden on the form. Only for <b>actor</b> mode, rarely needed: extra input passed to the source Actor as-is, on top of what the Actor builds from your products, countries and age window (e.g. <code>{"onlyWithAttachments": true}</code>). The live search runs that Store Actor on your Apify plan — if your plan cannot run Store Actors, paste your own RFQ rows in <b>list</b> mode (any plan).

## `maxToProcess` (type: `integer`):

API only — hidden on the form. Upper bound on how many buying requests are scored in one run after the free filters (controls run time). Default = 3 × max qualified.

## `webhookUrl` (type: `string`):

Qualified buying leads are POSTed here as flat JSON rows (Zapier, Make, n8n, your CRM) — one per lead or batched. Stored encrypted — Zapier / Make hook URLs carry their secret in the path.

## `webhookHeaders` (type: `object`):

API only — hidden on the form. Extra HTTP headers for the webhook, e.g. <code>{"Authorization": "Bearer …"}</code>. Stored encrypted by Apify, never logged.

## `webhookBatchSize` (type: `integer`):

API only — hidden on the form. 1 = one POST per buying lead the moment it is ready. Higher = one POST per N buying leads.

## `webhookSecret` (type: `string`):

API only — hidden on the form. Any random string. Every webhook POST then carries <code>X-Signature: sha256=\<HMAC-SHA256 of the raw body with this secret></code>, so your endpoint can verify it came from this Actor. Stored encrypted by Apify, never logged.

## `dedupeStoreName` (type: `string`):

Key-value store used for cross-run memory. Left at the default, the memory is kept per search (source, countries): adding a product line or rewording <code>sellerProfile</code> keeps it, so a scheduled run never re-delivers what you already have. Running it for several clients on one account, type one name per client.

## `discoveryTimeoutSecs` (type: `integer`):

API only — hidden on the form. How long the source Store Actor may run before its partial results are used — never more than 60 % of the run's time left, so the AI, the charges and the digest keep the rest. Raise it (and the run timeout) when the status says the source stopped early.

## `slackWebhookUrl` (type: `string`):

API only — hidden on the form, where <code>sendAlertsTo</code> takes it. Slack incoming-webhook URL for the digest.

## `discordWebhookUrl` (type: `string`):

API only — hidden on the form, where <code>sendAlertsTo</code> takes it. Discord channel webhook URL for the digest.

## `teamsWebhookUrl` (type: `string`):

API only — hidden on the form, where <code>sendAlertsTo</code> takes it. Teams Workflows webhook URL for the digest.

## `googleChatWebhookUrl` (type: `string`):

API only — hidden on the form, where <code>sendAlertsTo</code> takes it. Google Chat space webhook URL for the digest.

## `telegramUrl` (type: `string`):

API only — hidden on the form, where <code>sendAlertsTo</code> takes it. The bot's sendMessage link with its chat_id.

## Actor input object example

```json
{
  "preset": "custom",
  "products": [
    "cotton t-shirt",
    "hoodie",
    "polo shirt"
  ],
  "sellerProfile": "Sunrise Knit Exports, Tiruppur, India - manufacturer. T-shirts and polo shirts: cotton, 160-220 gsm. Hoodies and sweatshirts: cotton or cotton-polyester fleece, 280-340 gsm. GOTS and OEKO-TEX certified, custom logo printing and embroidery. MOQ 500 pieces per design, lead time 25-30 days. We quote FOB Chennai or Tuticorin, CIF on request. Export markets: United States, Europe, Middle East, Latin America.",
  "minScore": 50,
  "maxQualified": 100,
  "maxDiscoveryChargeUsd": 0.5,
  "enableAi": true,
  "postedWithinDays": 7,
  "onlyOpenRequests": true,
  "minBuyerStars": 0,
  "minQuantity": 0,
  "minQuantityUnit": "pieces",
  "replyLanguage": "buyer",
  "draftReplies": true,
  "quotesPerDay": 0,
  "includeBuyerName": true,
  "llmProvider": "apify",
  "aiCandidateMultiplier": 2,
  "dedupeAcrossRuns": true,
  "dedupeTtlDays": 0,
  "historyDatasetName": "",
  "sourceMode": "list",
  "maxRequestsToRead": 200,
  "autoSwitchToLive": true,
  "failOnSourceError": false,
  "itemsList": [
    {
      "type": "rfq",
      "rfqId": "sample-rfq-1",
      "title": "Organic cotton crew neck t-shirts with printed logo, 180 gsm",
      "url": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=cotton+t-shirt&sample=1",
      "description": "We are a US streetwear brand looking for 3,000 organic cotton crew neck t-shirts, 180 gsm, sizes S-XXL, 4 colors. Screen printed logo on chest and custom neck label. GOTS certified fabric required. Target price USD 3.20 per piece FOB. Delivery to Los Angeles within 45 days.",
      "quantity": 3000,
      "quantityUnit": "Piece/Pieces",
      "buyerName": "Jason M.",
      "buyerCountry": "United States",
      "buyerCountryCode": "US",
      "postedText": "3 hours ago",
      "quotesLeft": 4,
      "extraQuoteSeats": 5,
      "buyerTags": [
        "email verified",
        "experienced buyer"
      ],
      "buyerRating": 3,
      "hasAttachments": true,
      "quoteUrl": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=cotton+t-shirt&sample=1",
      "query": "cotton t-shirt",
      "sample": true
    },
    {
      "type": "rfq",
      "rfqId": "sample-rfq-2",
      "title": "Embroidered hoodies for school uniforms",
      "url": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=hoodie&sample=2",
      "description": "Necesito 1200 sudaderas con capucha de algodón y poliéster, 320 gsm, tallas S-XL, color azul marino, con logotipo bordado del colegio en el pecho. Precio objetivo 7.50 USD por pieza CIF Manzanillo. Entrega antes de enero.",
      "quantity": 1200,
      "quantityUnit": "Piece/Pieces",
      "buyerName": "Lucía R.",
      "buyerCountry": "Mexico",
      "buyerCountryCode": "MX",
      "postedText": "20 hours ago",
      "quotesLeft": 2,
      "extraQuoteSeats": 3,
      "buyerTags": [
        "email verified"
      ],
      "buyerRating": 2,
      "hasAttachments": false,
      "quoteUrl": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=hoodie&sample=2",
      "query": "hoodie",
      "sample": true
    },
    {
      "type": "rfq",
      "rfqId": "sample-rfq-3",
      "title": "Embroidered cotton pique polo shirts for hotel staff",
      "url": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=polo+shirt&sample=3",
      "description": "Nous cherchons 600 polos en coton piqué 200 gsm avec logo brodé pour le personnel d'un hôtel. Tailles M-XXL, couleur blanc. Merci d'envoyer votre meilleur prix FOB et le délai de livraison.",
      "quantity": 600,
      "quantityUnit": "Piece/Pieces",
      "buyerName": "Karim B.",
      "buyerCountry": "Morocco",
      "buyerCountryCode": "MA",
      "postedText": "2 days ago",
      "quotesLeft": 6,
      "extraQuoteSeats": 5,
      "buyerTags": [],
      "buyerRating": 1,
      "hasAttachments": false,
      "quoteUrl": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=polo+shirt&sample=3",
      "query": "polo shirt",
      "sample": true
    },
    {
      "type": "rfq",
      "rfqId": "sample-rfq-4",
      "title": "Pullover hoodies with gym logo, small batch",
      "url": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=hoodie&sample=4",
      "description": "Need 80 black pullover hoodies with our gym logo printed on the back. Sizes S-XL.",
      "quantity": 80,
      "quantityUnit": "Piece/Pieces",
      "buyerName": "Mia T.",
      "buyerCountry": "Australia",
      "buyerCountryCode": "AU",
      "postedText": "1 day ago",
      "quotesLeft": 3,
      "extraQuoteSeats": 5,
      "buyerTags": [
        "typically replies"
      ],
      "buyerRating": 1,
      "hasAttachments": false,
      "quoteUrl": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=hoodie&sample=4",
      "query": "hoodie",
      "sample": true
    },
    {
      "type": "rfq",
      "rfqId": "sample-rfq-5",
      "title": "Cotton canvas tote bags with logo",
      "url": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=cotton+t-shirt&sample=5",
      "description": "Looking for 5,000 natural cotton canvas tote bags, 38x42 cm, one-colour logo print, for a retail chain in the UK.",
      "quantity": 5000,
      "quantityUnit": "Piece/Pieces",
      "buyerName": "Oliver S.",
      "buyerCountry": "United Kingdom",
      "buyerCountryCode": "GB",
      "postedText": "5 hours ago",
      "quotesLeft": 5,
      "extraQuoteSeats": 5,
      "buyerTags": [
        "email verified"
      ],
      "buyerRating": 3,
      "hasAttachments": false,
      "quoteUrl": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=cotton+t-shirt&sample=5",
      "query": "cotton t-shirt",
      "sample": true
    },
    {
      "type": "rfq",
      "rfqId": "sample-rfq-6",
      "title": "Plain white cotton t-shirts 10000 pcs",
      "url": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=cotton+t-shirt&sample=6",
      "description": "Plain white cotton t-shirts, 160 gsm, 10000 pcs, for promotional events.",
      "quantity": 10000,
      "quantityUnit": "Piece/Pieces",
      "buyerName": "Rahim K.",
      "buyerCountry": "Saudi Arabia",
      "buyerCountryCode": "SA",
      "postedText": "4 days ago",
      "quotesLeft": 0,
      "extraQuoteSeats": 0,
      "buyerTags": [
        "email verified"
      ],
      "buyerRating": 2,
      "hasAttachments": false,
      "quoteUrl": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=cotton+t-shirt&sample=6",
      "query": "cotton t-shirt",
      "sample": true
    }
  ],
  "discoveryActorId": "blueskyscraper/alibaba-rfq-scraper",
  "webhookBatchSize": 1,
  "dedupeStoreName": "alibaba-rfq-leads-ai-seen",
  "discoveryTimeoutSecs": 3600
}
```

# Actor output Schema

## `qualified` (type: `string`):

All qualified buying leads as JSON, best-scoring first.

## `sheet` (type: `string`):

The same buying leads as a spreadsheet.

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

JSON record with the funnel (loaded -> filtered -> AI-assessed -> qualified), per-reason skip counts, charged events by type, free-tier buying leads used and remaining, whether a budget limit was reached, webhook delivery counts and the dedupe store size.

# 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 = {
    "products": [
        "cotton t-shirt",
        "hoodie",
        "polo shirt"
    ],
    "sellerProfile": "Sunrise Knit Exports, Tiruppur, India - manufacturer. T-shirts and polo shirts: cotton, 160-220 gsm. Hoodies and sweatshirts: cotton or cotton-polyester fleece, 280-340 gsm. GOTS and OEKO-TEX certified, custom logo printing and embroidery. MOQ 500 pieces per design, lead time 25-30 days. We quote FOB Chennai or Tuticorin, CIF on request. Export markets: United States, Europe, Middle East, Latin America.",
    "maxDiscoveryChargeUsd": 0.5,
    "sourceMode": "list",
    "maxRequestsToRead": 200,
    "itemsList": [
        {
            "type": "rfq",
            "rfqId": "sample-rfq-1",
            "title": "Organic cotton crew neck t-shirts with printed logo, 180 gsm",
            "url": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=cotton+t-shirt&sample=1",
            "description": "We are a US streetwear brand looking for 3,000 organic cotton crew neck t-shirts, 180 gsm, sizes S-XXL, 4 colors. Screen printed logo on chest and custom neck label. GOTS certified fabric required. Target price USD 3.20 per piece FOB. Delivery to Los Angeles within 45 days.",
            "quantity": 3000,
            "quantityUnit": "Piece/Pieces",
            "buyerName": "Jason M.",
            "buyerCountry": "United States",
            "buyerCountryCode": "US",
            "postedText": "3 hours ago",
            "quotesLeft": 4,
            "extraQuoteSeats": 5,
            "buyerTags": [
                "email verified",
                "experienced buyer"
            ],
            "buyerRating": 3,
            "hasAttachments": true,
            "quoteUrl": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=cotton+t-shirt&sample=1",
            "query": "cotton t-shirt",
            "sample": true
        },
        {
            "type": "rfq",
            "rfqId": "sample-rfq-2",
            "title": "Embroidered hoodies for school uniforms",
            "url": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=hoodie&sample=2",
            "description": "Necesito 1200 sudaderas con capucha de algodón y poliéster, 320 gsm, tallas S-XL, color azul marino, con logotipo bordado del colegio en el pecho. Precio objetivo 7.50 USD por pieza CIF Manzanillo. Entrega antes de enero.",
            "quantity": 1200,
            "quantityUnit": "Piece/Pieces",
            "buyerName": "Lucía R.",
            "buyerCountry": "Mexico",
            "buyerCountryCode": "MX",
            "postedText": "20 hours ago",
            "quotesLeft": 2,
            "extraQuoteSeats": 3,
            "buyerTags": [
                "email verified"
            ],
            "buyerRating": 2,
            "hasAttachments": false,
            "quoteUrl": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=hoodie&sample=2",
            "query": "hoodie",
            "sample": true
        },
        {
            "type": "rfq",
            "rfqId": "sample-rfq-3",
            "title": "Embroidered cotton pique polo shirts for hotel staff",
            "url": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=polo+shirt&sample=3",
            "description": "Nous cherchons 600 polos en coton piqué 200 gsm avec logo brodé pour le personnel d'un hôtel. Tailles M-XXL, couleur blanc. Merci d'envoyer votre meilleur prix FOB et le délai de livraison.",
            "quantity": 600,
            "quantityUnit": "Piece/Pieces",
            "buyerName": "Karim B.",
            "buyerCountry": "Morocco",
            "buyerCountryCode": "MA",
            "postedText": "2 days ago",
            "quotesLeft": 6,
            "extraQuoteSeats": 5,
            "buyerTags": [],
            "buyerRating": 1,
            "hasAttachments": false,
            "quoteUrl": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=polo+shirt&sample=3",
            "query": "polo shirt",
            "sample": true
        },
        {
            "type": "rfq",
            "rfqId": "sample-rfq-4",
            "title": "Pullover hoodies with gym logo, small batch",
            "url": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=hoodie&sample=4",
            "description": "Need 80 black pullover hoodies with our gym logo printed on the back. Sizes S-XL.",
            "quantity": 80,
            "quantityUnit": "Piece/Pieces",
            "buyerName": "Mia T.",
            "buyerCountry": "Australia",
            "buyerCountryCode": "AU",
            "postedText": "1 day ago",
            "quotesLeft": 3,
            "extraQuoteSeats": 5,
            "buyerTags": [
                "typically replies"
            ],
            "buyerRating": 1,
            "hasAttachments": false,
            "quoteUrl": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=hoodie&sample=4",
            "query": "hoodie",
            "sample": true
        },
        {
            "type": "rfq",
            "rfqId": "sample-rfq-5",
            "title": "Cotton canvas tote bags with logo",
            "url": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=cotton+t-shirt&sample=5",
            "description": "Looking for 5,000 natural cotton canvas tote bags, 38x42 cm, one-colour logo print, for a retail chain in the UK.",
            "quantity": 5000,
            "quantityUnit": "Piece/Pieces",
            "buyerName": "Oliver S.",
            "buyerCountry": "United Kingdom",
            "buyerCountryCode": "GB",
            "postedText": "5 hours ago",
            "quotesLeft": 5,
            "extraQuoteSeats": 5,
            "buyerTags": [
                "email verified"
            ],
            "buyerRating": 3,
            "hasAttachments": false,
            "quoteUrl": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=cotton+t-shirt&sample=5",
            "query": "cotton t-shirt",
            "sample": true
        },
        {
            "type": "rfq",
            "rfqId": "sample-rfq-6",
            "title": "Plain white cotton t-shirts 10000 pcs",
            "url": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=cotton+t-shirt&sample=6",
            "description": "Plain white cotton t-shirts, 160 gsm, 10000 pcs, for promotional events.",
            "quantity": 10000,
            "quantityUnit": "Piece/Pieces",
            "buyerName": "Rahim K.",
            "buyerCountry": "Saudi Arabia",
            "buyerCountryCode": "SA",
            "postedText": "4 days ago",
            "quotesLeft": 0,
            "extraQuoteSeats": 0,
            "buyerTags": [
                "email verified"
            ],
            "buyerRating": 2,
            "hasAttachments": false,
            "quoteUrl": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=cotton+t-shirt&sample=6",
            "query": "cotton t-shirt",
            "sample": true
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("rich_minds/alibaba-rfq-leads-ai").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 = {
    "products": [
        "cotton t-shirt",
        "hoodie",
        "polo shirt",
    ],
    "sellerProfile": "Sunrise Knit Exports, Tiruppur, India - manufacturer. T-shirts and polo shirts: cotton, 160-220 gsm. Hoodies and sweatshirts: cotton or cotton-polyester fleece, 280-340 gsm. GOTS and OEKO-TEX certified, custom logo printing and embroidery. MOQ 500 pieces per design, lead time 25-30 days. We quote FOB Chennai or Tuticorin, CIF on request. Export markets: United States, Europe, Middle East, Latin America.",
    "maxDiscoveryChargeUsd": 0.5,
    "sourceMode": "list",
    "maxRequestsToRead": 200,
    "itemsList": [
        {
            "type": "rfq",
            "rfqId": "sample-rfq-1",
            "title": "Organic cotton crew neck t-shirts with printed logo, 180 gsm",
            "url": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=cotton+t-shirt&sample=1",
            "description": "We are a US streetwear brand looking for 3,000 organic cotton crew neck t-shirts, 180 gsm, sizes S-XXL, 4 colors. Screen printed logo on chest and custom neck label. GOTS certified fabric required. Target price USD 3.20 per piece FOB. Delivery to Los Angeles within 45 days.",
            "quantity": 3000,
            "quantityUnit": "Piece/Pieces",
            "buyerName": "Jason M.",
            "buyerCountry": "United States",
            "buyerCountryCode": "US",
            "postedText": "3 hours ago",
            "quotesLeft": 4,
            "extraQuoteSeats": 5,
            "buyerTags": [
                "email verified",
                "experienced buyer",
            ],
            "buyerRating": 3,
            "hasAttachments": True,
            "quoteUrl": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=cotton+t-shirt&sample=1",
            "query": "cotton t-shirt",
            "sample": True,
        },
        {
            "type": "rfq",
            "rfqId": "sample-rfq-2",
            "title": "Embroidered hoodies for school uniforms",
            "url": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=hoodie&sample=2",
            "description": "Necesito 1200 sudaderas con capucha de algodón y poliéster, 320 gsm, tallas S-XL, color azul marino, con logotipo bordado del colegio en el pecho. Precio objetivo 7.50 USD por pieza CIF Manzanillo. Entrega antes de enero.",
            "quantity": 1200,
            "quantityUnit": "Piece/Pieces",
            "buyerName": "Lucía R.",
            "buyerCountry": "Mexico",
            "buyerCountryCode": "MX",
            "postedText": "20 hours ago",
            "quotesLeft": 2,
            "extraQuoteSeats": 3,
            "buyerTags": ["email verified"],
            "buyerRating": 2,
            "hasAttachments": False,
            "quoteUrl": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=hoodie&sample=2",
            "query": "hoodie",
            "sample": True,
        },
        {
            "type": "rfq",
            "rfqId": "sample-rfq-3",
            "title": "Embroidered cotton pique polo shirts for hotel staff",
            "url": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=polo+shirt&sample=3",
            "description": "Nous cherchons 600 polos en coton piqué 200 gsm avec logo brodé pour le personnel d'un hôtel. Tailles M-XXL, couleur blanc. Merci d'envoyer votre meilleur prix FOB et le délai de livraison.",
            "quantity": 600,
            "quantityUnit": "Piece/Pieces",
            "buyerName": "Karim B.",
            "buyerCountry": "Morocco",
            "buyerCountryCode": "MA",
            "postedText": "2 days ago",
            "quotesLeft": 6,
            "extraQuoteSeats": 5,
            "buyerTags": [],
            "buyerRating": 1,
            "hasAttachments": False,
            "quoteUrl": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=polo+shirt&sample=3",
            "query": "polo shirt",
            "sample": True,
        },
        {
            "type": "rfq",
            "rfqId": "sample-rfq-4",
            "title": "Pullover hoodies with gym logo, small batch",
            "url": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=hoodie&sample=4",
            "description": "Need 80 black pullover hoodies with our gym logo printed on the back. Sizes S-XL.",
            "quantity": 80,
            "quantityUnit": "Piece/Pieces",
            "buyerName": "Mia T.",
            "buyerCountry": "Australia",
            "buyerCountryCode": "AU",
            "postedText": "1 day ago",
            "quotesLeft": 3,
            "extraQuoteSeats": 5,
            "buyerTags": ["typically replies"],
            "buyerRating": 1,
            "hasAttachments": False,
            "quoteUrl": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=hoodie&sample=4",
            "query": "hoodie",
            "sample": True,
        },
        {
            "type": "rfq",
            "rfqId": "sample-rfq-5",
            "title": "Cotton canvas tote bags with logo",
            "url": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=cotton+t-shirt&sample=5",
            "description": "Looking for 5,000 natural cotton canvas tote bags, 38x42 cm, one-colour logo print, for a retail chain in the UK.",
            "quantity": 5000,
            "quantityUnit": "Piece/Pieces",
            "buyerName": "Oliver S.",
            "buyerCountry": "United Kingdom",
            "buyerCountryCode": "GB",
            "postedText": "5 hours ago",
            "quotesLeft": 5,
            "extraQuoteSeats": 5,
            "buyerTags": ["email verified"],
            "buyerRating": 3,
            "hasAttachments": False,
            "quoteUrl": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=cotton+t-shirt&sample=5",
            "query": "cotton t-shirt",
            "sample": True,
        },
        {
            "type": "rfq",
            "rfqId": "sample-rfq-6",
            "title": "Plain white cotton t-shirts 10000 pcs",
            "url": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=cotton+t-shirt&sample=6",
            "description": "Plain white cotton t-shirts, 160 gsm, 10000 pcs, for promotional events.",
            "quantity": 10000,
            "quantityUnit": "Piece/Pieces",
            "buyerName": "Rahim K.",
            "buyerCountry": "Saudi Arabia",
            "buyerCountryCode": "SA",
            "postedText": "4 days ago",
            "quotesLeft": 0,
            "extraQuoteSeats": 0,
            "buyerTags": ["email verified"],
            "buyerRating": 2,
            "hasAttachments": False,
            "quoteUrl": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=cotton+t-shirt&sample=6",
            "query": "cotton t-shirt",
            "sample": True,
        },
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("rich_minds/alibaba-rfq-leads-ai").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 '{
  "products": [
    "cotton t-shirt",
    "hoodie",
    "polo shirt"
  ],
  "sellerProfile": "Sunrise Knit Exports, Tiruppur, India - manufacturer. T-shirts and polo shirts: cotton, 160-220 gsm. Hoodies and sweatshirts: cotton or cotton-polyester fleece, 280-340 gsm. GOTS and OEKO-TEX certified, custom logo printing and embroidery. MOQ 500 pieces per design, lead time 25-30 days. We quote FOB Chennai or Tuticorin, CIF on request. Export markets: United States, Europe, Middle East, Latin America.",
  "maxDiscoveryChargeUsd": 0.5,
  "sourceMode": "list",
  "maxRequestsToRead": 200,
  "itemsList": [
    {
      "type": "rfq",
      "rfqId": "sample-rfq-1",
      "title": "Organic cotton crew neck t-shirts with printed logo, 180 gsm",
      "url": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=cotton+t-shirt&sample=1",
      "description": "We are a US streetwear brand looking for 3,000 organic cotton crew neck t-shirts, 180 gsm, sizes S-XXL, 4 colors. Screen printed logo on chest and custom neck label. GOTS certified fabric required. Target price USD 3.20 per piece FOB. Delivery to Los Angeles within 45 days.",
      "quantity": 3000,
      "quantityUnit": "Piece/Pieces",
      "buyerName": "Jason M.",
      "buyerCountry": "United States",
      "buyerCountryCode": "US",
      "postedText": "3 hours ago",
      "quotesLeft": 4,
      "extraQuoteSeats": 5,
      "buyerTags": [
        "email verified",
        "experienced buyer"
      ],
      "buyerRating": 3,
      "hasAttachments": true,
      "quoteUrl": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=cotton+t-shirt&sample=1",
      "query": "cotton t-shirt",
      "sample": true
    },
    {
      "type": "rfq",
      "rfqId": "sample-rfq-2",
      "title": "Embroidered hoodies for school uniforms",
      "url": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=hoodie&sample=2",
      "description": "Necesito 1200 sudaderas con capucha de algodón y poliéster, 320 gsm, tallas S-XL, color azul marino, con logotipo bordado del colegio en el pecho. Precio objetivo 7.50 USD por pieza CIF Manzanillo. Entrega antes de enero.",
      "quantity": 1200,
      "quantityUnit": "Piece/Pieces",
      "buyerName": "Lucía R.",
      "buyerCountry": "Mexico",
      "buyerCountryCode": "MX",
      "postedText": "20 hours ago",
      "quotesLeft": 2,
      "extraQuoteSeats": 3,
      "buyerTags": [
        "email verified"
      ],
      "buyerRating": 2,
      "hasAttachments": false,
      "quoteUrl": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=hoodie&sample=2",
      "query": "hoodie",
      "sample": true
    },
    {
      "type": "rfq",
      "rfqId": "sample-rfq-3",
      "title": "Embroidered cotton pique polo shirts for hotel staff",
      "url": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=polo+shirt&sample=3",
      "description": "Nous cherchons 600 polos en coton piqué 200 gsm avec logo brodé pour le personnel d'\''un hôtel. Tailles M-XXL, couleur blanc. Merci d'\''envoyer votre meilleur prix FOB et le délai de livraison.",
      "quantity": 600,
      "quantityUnit": "Piece/Pieces",
      "buyerName": "Karim B.",
      "buyerCountry": "Morocco",
      "buyerCountryCode": "MA",
      "postedText": "2 days ago",
      "quotesLeft": 6,
      "extraQuoteSeats": 5,
      "buyerTags": [],
      "buyerRating": 1,
      "hasAttachments": false,
      "quoteUrl": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=polo+shirt&sample=3",
      "query": "polo shirt",
      "sample": true
    },
    {
      "type": "rfq",
      "rfqId": "sample-rfq-4",
      "title": "Pullover hoodies with gym logo, small batch",
      "url": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=hoodie&sample=4",
      "description": "Need 80 black pullover hoodies with our gym logo printed on the back. Sizes S-XL.",
      "quantity": 80,
      "quantityUnit": "Piece/Pieces",
      "buyerName": "Mia T.",
      "buyerCountry": "Australia",
      "buyerCountryCode": "AU",
      "postedText": "1 day ago",
      "quotesLeft": 3,
      "extraQuoteSeats": 5,
      "buyerTags": [
        "typically replies"
      ],
      "buyerRating": 1,
      "hasAttachments": false,
      "quoteUrl": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=hoodie&sample=4",
      "query": "hoodie",
      "sample": true
    },
    {
      "type": "rfq",
      "rfqId": "sample-rfq-5",
      "title": "Cotton canvas tote bags with logo",
      "url": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=cotton+t-shirt&sample=5",
      "description": "Looking for 5,000 natural cotton canvas tote bags, 38x42 cm, one-colour logo print, for a retail chain in the UK.",
      "quantity": 5000,
      "quantityUnit": "Piece/Pieces",
      "buyerName": "Oliver S.",
      "buyerCountry": "United Kingdom",
      "buyerCountryCode": "GB",
      "postedText": "5 hours ago",
      "quotesLeft": 5,
      "extraQuoteSeats": 5,
      "buyerTags": [
        "email verified"
      ],
      "buyerRating": 3,
      "hasAttachments": false,
      "quoteUrl": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=cotton+t-shirt&sample=5",
      "query": "cotton t-shirt",
      "sample": true
    },
    {
      "type": "rfq",
      "rfqId": "sample-rfq-6",
      "title": "Plain white cotton t-shirts 10000 pcs",
      "url": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=cotton+t-shirt&sample=6",
      "description": "Plain white cotton t-shirts, 160 gsm, 10000 pcs, for promotional events.",
      "quantity": 10000,
      "quantityUnit": "Piece/Pieces",
      "buyerName": "Rahim K.",
      "buyerCountry": "Saudi Arabia",
      "buyerCountryCode": "SA",
      "postedText": "4 days ago",
      "quotesLeft": 0,
      "extraQuoteSeats": 0,
      "buyerTags": [
        "email verified"
      ],
      "buyerRating": 2,
      "hasAttachments": false,
      "quoteUrl": "https://sourcing.alibaba.com/rfq/rfq_search_list.htm?searchText=cotton+t-shirt&sample=6",
      "query": "cotton t-shirt",
      "sample": true
    }
  ]
}' |
apify call rich_minds/alibaba-rfq-leads-ai --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,rich_minds/alibaba-rfq-leads-ai"
        }
    }
}
```

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/Fn26zPbcUPRREJ45V/builds/VX1MRgmcQfg17fv8z/openapi.json
