Alibaba B2B Product Scraper avatar

Alibaba B2B Product Scraper

Pricing

from $2.99 / 1,000 b2b products

Go to Apify Store
Alibaba B2B Product Scraper

Alibaba B2B Product Scraper

Direct public SSR/JSON-LD scraper for Alibaba.com B2B product listings, including MOQ, prices, supplier ratings, and bounded product metadata.

Pricing

from $2.99 / 1,000 b2b products

Rating

0.0

(0)

Developer

w3crawler

w3crawler

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

7 days ago

Last modified

Categories

Security

Limited permissions

Share

Browser-first extraction for public Alibaba.com product search and product-detail pages. The Actor supports rich product fields, multiple sources, bounded pagination, global filtering/sorting/deduplication, optional product-detail enrichment, Apify Proxy routing, and fail-closed run status reporting.

Get started

  1. Open the Actor Store page and select Try for free or open the Input tab.
  2. Set keyword, or supply startUrls / sourceUrls with public Alibaba search or product-detail URLs. country is fixed to global in the current Actor.
  3. Keep maxItems and maxPages small for the first run. Enable includeDetails only when you need description, brand, SKU, or attribute enrichment.
  4. Start the Actor, open the dataset, and export the saved records as JSON, CSV, or Excel. Open Run summary (OUTPUT_SUMMARY) to check the outcome and counts.

Input

All fields are optional; the defaults below are ready to use. Unsupported field names and out-of-range values are rejected before requests start.

FieldTypeRequired?DefaultMeaning
keywordstringOptionalwireless earbudsProduct phrase used for the default Alibaba search URL. Canonical field; keyword/query aliases are accepted for compatibility. 1–200 characters.
startUrlsobject arrayOptionalNot suppliedOptional public Alibaba.com trade-search, country-search, or product-detail URLs. Country-search pagination follows Alibaba's numbered page URLs. Multiple sources are crawled with one global maxItems cap. up to 20 items.
sourceUrlsobject arrayOptionalNot suppliedCompatibility alias for startUrls. If both are supplied, startUrls are processed first. up to 20 items.
sourceUrlstringOptionalNot suppliedCompatibility alias for one public Alibaba.com URL. It is appended after startUrls/sourceUrls.
searchUrlstringOptionalNot suppliedCompatibility alias for one public Alibaba.com search URL.
keywordsstringOptionalNot suppliedCompatibility alias for keyword; canonical keyword takes precedence.
searchQuerystringOptionalNot suppliedCompatibility alias for keyword.
querystringOptionalNot suppliedCompatibility alias for keyword.
queriesstring arrayOptionalNot suppliedCompatibility alias; the first non-empty query is used. up to 20 items.
countrystring enumOptionalglobalConfigured market. The current actor supports the public global Alibaba.com catalog.
localestring enumOptionalen-USLocale used for browser and HTTP Accept-Language headers. Alibaba may still choose the displayed currency/catalog. Allowed values: "en-US", "en-GB", "de-DE", "fr-FR", "es-ES", "it-IT", "pt-BR", "ja-JP", "ko-KR", "zh-CN".
maxItemsintegerOptional40Global maximum number of product rows across all sources and pages. Diagnostics do not consume this product cap. 1–500.
maxPagesintegerOptional3Per-source page bound. Use 0 to follow observed next-page links up to the actor hard cap of 100 pages. 0–100.
max_productsintegerOptionalNot suppliedCompatibility alias for maxItems. 1–500.
maxProductsintegerOptionalNot suppliedCompatibility alias for maxItems. 1–500.
max_pagesintegerOptionalNot suppliedCompatibility alias for maxPages. 0–100.
sortBystring enumOptionalbest_matchGlobal sort applied after all requested sources/pages are collected. Missing values sort after populated values. Allowed values: "best_match", "transaction_level", "price_asc", "price_desc", "rating_desc", "reviews_desc", "sold_desc", "supplier_years_desc".
excludeAdsbooleanOptionalfalseDiscard cards that Alibaba labels as ads.
certifiedOnlybooleanOptionalfalseKeep only cards displaying Alibaba certification text/badges.
supplierCountrystringOptionalanyOptional displayed supplier country/region code such as CN or IN. Use any for all countries.
supplierLocationstringOptionalNot suppliedOptional case-insensitive match against publicly exposed supplier location/country text. up to 120 characters.
minPricenumberOptionalNot suppliedKeep products whose displayed price range reaches this value. No currency conversion is performed.
maxPricenumberOptionalNot suppliedKeep products whose displayed price range overlaps this value. No currency conversion is performed.
minOrderQuantitynumberOptionalNot suppliedKeep products with a displayed minimum order quantity at or above this value. at least 1.
minSupplierRatingnumberOptionalNot suppliedKeep products with a displayed supplier rating at or above this five-point value. 0–5.
minReviewCountintegerOptionalNot suppliedKeep products with at least this displayed supplier review count. at least 0.
minSoldCountintegerOptionalNot suppliedKeep products with at least this publicly displayed sold count. at least 0.
minReorderRatePercentnumberOptionalNot suppliedKeep products with a displayed reorder rate at or above this percentage. 0–100.
requiredBadgesstring arrayOptionalNot suppliedKeep products whose normalized badge text includes every listed value, for example certified. up to 10 items.
includeMediabooleanOptionaltrueInclude validated public Alibaba CDN imageUrl, thumbnail, images, imageUrls, imageCount, and imageAlt fields.
includeDetailsbooleanOptionalfalseAfter selecting products, visit up to maxDetailItems public product-detail pages for description, brand, SKU, attributes, detail images, availability, price, rating, and canonical metadata.
maxDetailItemsintegerOptional40Bound the number of optional product-detail visits. Detail failures remain attached to the base product row. 0–500.
include_detailsbooleanOptionalNot suppliedCompatibility alias for includeDetails.
deduplicatebooleanOptionaltrueSuppress repeated product IDs across pages and sources.
requestDelayMsintegerOptional1000Delay before each browser/HTTP page request. Use a bounded value that respects the source. 0–15000.
pageDelayMsintegerOptionalNot suppliedCompatibility alias for requestDelayMs. 0–15000.
maxConcurrencyintegerOptional2Maximum concurrent browser requests for search/detail crawling. 1–5.
maxRequestRetriesintegerOptional3Retries for transient browser/HTTP failures. Access barriers are not bypassed or retried as a workaround. 0–10.
requestTimeoutSecsintegerOptional60Per-navigation and HTTP request timeout. 15–300.
navigationTimeoutSecsintegerOptionalNot suppliedCompatibility alias for requestTimeoutSecs. 15–300.
timeoutMsintegerOptionalNot suppliedCompatibility alias for requestTimeoutSecs. 15000–300000.
requestHandlerTimeoutSecsintegerOptional300Maximum allowed time for one Crawlee request handler, including page extraction. 60–900.
selectorTimeoutSecsintegerOptional30Reserved compatibility option for selector readiness checks. 5–120.
proxyConfigurationobjectOptionalNot suppliedOptional standard Apify Proxy routing for public requests. Proxying changes the route only; it does not solve CAPTCHA or bypass access controls.
verified_supplierbooleanOptionalNot suppliedCompatibility alias for certifiedOnly.
alibaba_guaranteedbooleanOptionalNot suppliedCompatibility alias for certifiedOnly.
price_minnumberOptionalNot suppliedCompatibility alias for minPrice. at least 0.
price_maxnumberOptionalNot suppliedCompatibility alias for maxPrice. at least 0.
moq_minnumberOptionalNot suppliedCompatibility alias for minOrderQuantity. at least 1.

Default input:

{
"keyword": "led light",
"maxItems": 10,
"maxPages": 2,
"sortBy": "best_match",
"includeMedia": true,
"includeDetails": false,
"deduplicate": true,
"requestDelayMs": 1000,
"maxConcurrency": 2,
"maxRequestRetries": 3,
"requestTimeoutSecs": 60,
"requestHandlerTimeoutSecs": 300,
"proxyConfiguration": {
"useApifyProxy": false
}
}

The shipped example input uses smaller limits and the query led light; the schema default query remains wireless earbuds. The Actor reads public Alibaba.com search, country-search, and product-detail pages through a browser with a bounded HTTP/SSR fallback. startUrls, sourceUrls, sourceUrl, searchUrl, the keyword aliases, and the limit aliases are compatibility inputs; the canonical fields win when both forms are supplied. Optional proxyConfiguration uses standard Apify Proxy settings and changes only the request route. The Actor does not sign in, solve CAPTCHA, or bypass an access control.

Output

The dataset contains one row per public product card that resolves to an Alibaba product URL. Repeated product IDs are suppressed when deduplicate is enabled. Alias fields duplicate canonical values for compatibility; they are not separate observations. Optional information appears only when the source publishes it; missing values are omitted rather than inferred, and no diagnostic or placeholder rows are written.

FieldTypeAvailabilityMeaning
urlstringAlwaysCanonical product URL; the record identity.
productUrlstringAlwaysCanonical public Alibaba product-detail URL; required in every row.
productIdstringWhen publishedPublic Alibaba product identifier.
titlestringAlwaysProduct title shown on the public card.
namestringAlwaysTitle alias retained for compatibility; normally equals title.
sourcestringWhen publishedMarketplace label; Alibaba.com for this Actor.
sourceUrlstringAlwaysPublic search or detail page from which the row was observed.
pageNumberintegerWhen publishedSource result page on which the card appeared.
pageNumintegerWhen publishedAlias of pageNumber.
positionintegerWhen publishedOne-based position on the source page or in the emitted result order.
keywordstringWhen publishedSearch phrase that produced the source page.
countrystringWhen publishedConfigured market; global for this Actor.
localestringWhen publishedLocale used for the request.
pricestringWhen publishedPrice text exactly as displayed, including the currency symbol.
priceFormattedstringWhen publishedNormalized price text such as USD 3.43-7.16.
priceMinnumberWhen publishedLower bound of the displayed price range.
priceMaxnumberWhen publishedUpper bound of the displayed price range.
currencystringWhen publishedCurrency code parsed from the displayed price.
minimumOrderQuantitynumberWhen publishedNumeric minimum order quantity.
minimumOrderUnitstringWhen publishedUnit associated with the MOQ, such as pieces or meters.
moqstringWhen publishedDisplayed minimum-order text combining quantity and unit.
supplierNamestringWhen publishedSupplier or company name shown on the card.
companyNamestringWhen publishedAlias of supplierName.
supplierSlugstringWhen publishedSupplier host label used in the public profile URL.
supplierIdstringWhen publishedPublic supplier identifier.
companyIdstringWhen publishedAlias of supplierId.
supplierProfileUrlstringWhen publishedPublic supplier company-profile URL.
supplierHomepagestringWhen publishedPublic supplier product-list or home page URL.
supplierCountrystringWhen publishedSupplier country or region code.
supplierLocationstringWhen publishedSupplier location text shown on the card.
supplierYearsnumberWhen publishedSupplier tenure in years.
supplierYearsTextstringWhen publishedOriginal tenure label, such as 13.
supplierRatingnumberWhen publishedSupplier rating out of five.
productRatingnumberWhen publishedProduct rating out of five when shown separately.
supplierReviewCountnumberWhen publishedReview count attributed to the supplier.
reviewCountnumberWhen publishedReview count shown on the product card.
productScorenumberWhen publishedProduct score shown by Alibaba.
shippingScorenumberWhen publishedShipping score shown by Alibaba.
starLevelnumberWhen publishedSupplier star level.
soldCountnumberWhen publishedUnits sold as displayed.
soldTextstringWhen publishedOriginal sold-count text, including separators.
reorderRatePercentnumberWhen publishedReorder rate as a percentage.
reorderRateTextstringWhen publishedOriginal reorder-rate text.
deliveryTextstringWhen publishedDelivery or dispatch text shown on the card.
leadTimestringWhen publishedLead-time text shown on the card.
shippingInfostringWhen publishedShipping information shown on the card.
isAdbooleanWhen publishedTrue when the card was labeled as an advertisement.
isCertifiedbooleanWhen publishedTrue when a certification or verification signal was visible.
certifiedbooleanWhen publishedAlias of isCertified.
canAddToCartbooleanWhen publishedTrue when the public card exposed add-to-cart.
canChatNowbooleanWhen publishedTrue when the public card exposed chat.
badgesstring arrayWhen publishedNormalized badge labels shown on the card.
badgeTextsstring arrayWhen publishedAlias of badges.
badgeCountintegerWhen publishedNumber of normalized badge labels.
promotionsstring arrayWhen publishedPromotion labels shown on the card.
sellingPointsstring arrayWhen publishedSelling-point text shown on the card.
imageUrlstringWhen publishedPrimary product image URL on the Alibaba CDN.
thumbnailstringWhen publishedPrimary image alias; equals images[0] when media is present.
imagesstring arrayWhen publishedProduct-scoped Alibaba CDN image URLs.
imageUrlsstring arrayWhen publishedAlias of images.
imageCountintegerWhen publishedNumber of product images retained.
imageAltstringWhen publishedAlt text published with the primary image.
supplierLogostringWhen publishedSupplier logo URL.
companyLogostringWhen publishedAlias of supplierLogo.
descriptionstringWhen detail enrichment returns itProduct description from the public detail page.
brandstringWhen detail enrichment returns itBrand from the public detail page.
skustringWhen detail enrichment returns itSKU or MPN from the public detail page.
manufacturerstringWhen detail enrichment returns itManufacturer from the public detail page.
categorystringWhen detail enrichment returns itProduct category from the public detail page.
attributesobject arrayWhen detail enrichment returns it{ name, value } specification pairs.
detailImageUrlsstring arrayWhen detail enrichment returns itAdditional image URLs from the detail page.
availabilitystringWhen detail enrichment returns itAvailability text from the detail page.
detailPricenumberWhen detail enrichment returns itNumeric price parsed from the detail page.
detailCurrencystringWhen detail enrichment returns itCurrency for detailPrice.
detailRatingnumberWhen detail enrichment returns itRating parsed from the detail page.
detailReviewCountnumberWhen detail enrichment returns itReview count parsed from the detail page.
detailCanonicalUrlstringWhen detail enrichment returns itCanonical URL declared by the detail page.
keywordMatchScorenumberWhen publishedObserved title/keyword match score; 1 is a direct match.
scrapedAtstringAlwaysTime the product row was saved, in ISO UTC.

The example below is a real saved row from the 2026-10-25 run, limited to fields declared in the dataset schema and to core fields for readability.

{
"productUrl": "https://www.alibaba.com/product-detail/50W-100W-4ft-8ft-V-Shape_1600939543957.html",
"scrapedAt": "2026-10-25T20:41:48.023Z",
"url": "https://www.alibaba.com/product-detail/50W-100W-4ft-8ft-V-Shape_1600939543957.html",
"productId": "1600939543957",
"title": "Super Bright 50W 100W 4ft 8ft V Shape Integrated T8 Led Tube Light Shop Lighting Led Light for for Garage Warehouse Workshop",
"name": "Super Bright 50W 100W 4ft 8ft V Shape Integrated T8 Led Tube Light Shop Lighting Led Light for for Garage Warehouse Workshop",
"source": "Alibaba.com",
"sourceUrl": "https://www.alibaba.com/countrysearch/CN/led-light.html",
"pageNumber": 1,
"pageNum": 1,
"position": 1,
"price": "US $3.43-$7.16",
"priceFormatted": "USD 3.43-7.16",
"priceMin": 3.43,
"priceMax": 7.16,
"currency": "USD",
"minimumOrderQuantity": 100,
"minimumOrderUnit": "pieces",
"moq": "100 pieces",
"supplierName": "Zhongshan Aier Lighting Technology Co., Ltd.",
"companyName": "Zhongshan Aier Lighting Technology Co., Ltd.",
"supplierId": "230926674"
}

price is the raw displayed text, while priceMin and priceMax are the parsed bound values. attributes entries contain name and value. Detail fields appear only when includeDetails is enabled and the public detail page returns them. Alias fields repeat their canonical counterparts and are not separate measurements.

Run summary

Run summary is stored separately from the dataset in the run's key-value store under OUTPUT_SUMMARY; the saved run also contains an OUTPUT compatibility alias with the same values.

FieldMeaning
statusActor process outcome: SUCCEEDED or FAILED.
keywordCanonical search phrase used when no explicit source URL was supplied.
countryConfigured market; the current Actor supports global only.
localeLocale sent to Alibaba pages for the run.
startUrlCountNumber of resolved source URLs used by the run.
startUrlsThe public search or product URLs actually processed.
itemCountRows saved to the dataset.
productCountProduct cards collected from the sources before the row is saved.
successfulItemsProduct rows saved successfully; normally equals productCount.
diagnosticItemsDiagnostic dataset rows; always 0 because operational issues are not written as products.
diagnosticCountOperational issues recorded for the run.
blockedCountSource responses stopped by an access block.
noResultsCountSources or pages that completed without a usable product.
pagesFetchedPublic source pages fetched.
searchPagesProcessedSearch result pages parsed for product cards.
filteredOutCountCards removed by the price, MOQ, rating, badge, or location filters.
detailRequestedProduct-detail pages requested by optional enrichment.
detailSucceededDetail pages parsed and merged into a product row.
detailFailedDetail pages that failed; the base product row is retained.
maxItemsGlobal product-row limit used for the run.
maxPagesPer-source page limit used for the run.
sortByGlobal sort applied after collection.
deduplicateWhether repeated product IDs were suppressed.
includeMediaWhether media fields were requested.
includeDetailsWhether optional product-detail enrichment was requested.
requestDelayMsDelay used before each browser or HTTP request.
maxConcurrencyConcurrent browser request limit used for the run.
maxRequestRetriesRetry limit for transient failures.
requestTimeoutSecsPer-navigation and HTTP request timeout.
requestHandlerTimeoutSecsTime budget for one source/page request handler.
usedProxyWhether Apify Proxy routing was used.
fallbackUsedWhether the bounded HTTP/SSR fallback was used after a browser problem.
dataAvailableWhether at least one source-backed product row was saved.
sourceMarketplace label; Alibaba.com for this Actor.
sourceWebsiteMarketplace home page for the run.
completedAtTime the summary was written, in ISO UTC.
runStatusCanonical run status; always matches status.
dataStatusCompleteness of source-backed dataset rows.
failedRequestsOptional count of failed source requests when the run records one.
failedPagesOptional count of source pages that failed.
StatusData statusMeaning
SUCCEEDEDCOMPLETEEligible results were saved without an extraction problem.
SUCCEEDEDPARTIALSome results were saved, but a later problem prevented a complete run. Saved rows remain available.
SUCCEEDEDNO_RESULTSThe source completed cleanly and returned no matching results.
FAILEDFAILEDA fatal error occurred before any usable result was saved.

Example OUTPUT from the saved run:

{
"status": "SUCCEEDED",
"keyword": "led light",
"country": "global",
"locale": "en-US",
"startUrlCount": 1,
"startUrls": [
"https://www.alibaba.com/countrysearch/CN/led-light.html"
],
"itemCount": 3,
"productCount": 3,
"successfulItems": 3,
"diagnosticItems": 0,
"diagnosticCount": 0,
"blockedCount": 0,
"noResultsCount": 0,
"pagesFetched": 1,
"searchPagesProcessed": 1,
"filteredOutCount": 0,
"detailRequested": 0,
"detailSucceeded": 0,
"detailFailed": 0,
"maxItems": 3,
"maxPages": 1,
"sortBy": "best_match",
"deduplicate": true,
"includeMedia": true,
"includeDetails": false,
"requestDelayMs": 0,
"maxConcurrency": 2,
"maxRequestRetries": 3,
"requestTimeoutSecs": 60,
"requestHandlerTimeoutSecs": 300,
"usedProxy": true,
"fallbackUsed": true,
"dataAvailable": true,
"source": "Alibaba.com",
"sourceWebsite": "https://www.alibaba.com/",
"completedAt": "2026-10-25T20:41:48.246Z",
"runStatus": "SUCCEEDED",
"dataStatus": "COMPLETE"
}

Coverage and limitations

The Actor reads public Alibaba.com search and product-detail pages. It does not sign in, access private supplier data, solve CAPTCHA, or bypass an access control. Coverage is limited to the cards and detail modules Alibaba returns for the supplied keyword or URLs; the global catalog is the only supported market. Detail fields such as description, brand, sku, attributes, detail images, and detail price appear only when includeDetails is enabled and the public detail page parses. Card prices, MOQ, ratings, sold counts, and supplier facts are point-in-time values and can change after the run.

Proxy routing only changes the transport. Blocked, empty, or partial responses are reported in OUTPUT_SUMMARY and logs rather than represented as products. Optional fields are omitted when the source does not publish them, and alias fields are not used to invent missing values. If a detail request fails, the base product row remains available and the failure is counted in the summary.

Usage and support

Run cost depends on Apify compute, the number of source requests, and any optional proxy or browser usage. Start with small item and page limits, inspect the dataset and run summary, then scale gradually. See the Actor's Pricing tab for current account rates. Use the Actor Issues page to report a problem. Include the run ID, the input used, and the run summary; do not include tokens, cookies, or private data. This Actor is not affiliated with Alibaba. Use it only for public data and in accordance with the source's terms, robots guidance, and applicable law. Public pages can contain personal information; use the output only for lawful purposes.