{
  "openapi": "3.0.1",
  "info": {
    "title": "Alibaba Scraper: Products, Price Tiers & Suppliers",
    "description": "Scrape Alibaba.com products by search term, category or product URL: price range, MOQ, the full quantity price ladder, samples, specs, certifications and supplier trust fields. $1 per 1,000 listings, with Verified, Trade Assurance and country filters and a changes-only monitor.",
    "version": "0.1",
    "x-build-id": "qi1eIFbg8pVUSZCPI"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/cleanpull~alibaba-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-cleanpull-alibaba-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/cleanpull~alibaba-scraper/runs": {
      "post": {
        "operationId": "runs-sync-cleanpull-alibaba-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/cleanpull~alibaba-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-cleanpull-alibaba-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "searchTerms": {
            "title": "Search terms",
            "type": "array",
            "description": "Products to search on Alibaba.com, one per line, as a buyer would type them (\"yoga mat\", \"LED strip lights\"). Each search is read page by page (48 products a page) up to Max results per search. Leave empty to use Start URLs only; with neither, the run uses the example.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "Optional. Alibaba.com addresses: search pages (/trade/search?…, with any filters you set on the site), category pages (a search with categoryId=…, as the site's category links write it), showroom pages (/showroom/yoga-mat.html, read as a search for their words) and product pages (/product-detail/…_<id>.html). Searches are followed to their next pages; the filters below are added where the address does not set them. A product page is delivered with its details. An address that cannot be read is skipped with a free row saying why.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "maxResultsPerSearch": {
            "title": "Max results per search",
            "minimum": 1,
            "maximum": 2400,
            "type": "integer",
            "description": "Products delivered per search term or search address (default 48 = one page; up to 2,400 = 50 pages; the site pages up to 100). A product already delivered by another search in the run is not repeated.",
            "default": 48
          },
          "maxResults": {
            "title": "Max results in all",
            "minimum": 1,
            "type": "integer",
            "description": "Optional. Stop once this many products are delivered across all searches and addresses. Empty: no overall cap (Max results per search still applies)."
          },
          "verifiedSupplier": {
            "title": "Verified suppliers only",
            "type": "boolean",
            "description": "Only suppliers with Alibaba's Verified badge (checked by a third-party inspection company). Asked of the site; cards without the badge are also left out by this actor (never charged).",
            "default": false
          },
          "verifiedPro": {
            "title": "Verified Pro suppliers only",
            "type": "boolean",
            "description": "Only Verified Pro suppliers, Alibaba's top verified tier. Asked of the site; cards without the Verified Pro badge are also left out by this actor.",
            "default": false
          },
          "tradeAssurance": {
            "title": "Trade Assurance only",
            "type": "boolean",
            "description": "Only products covered by Alibaba's Trade Assurance (order protection). Asked of the site, which filters on it; rows then carry supplier.tradeAssurance true.",
            "default": false
          },
          "guaranteed": {
            "title": "Alibaba Guaranteed only",
            "type": "boolean",
            "description": "Only Alibaba Guaranteed products (fixed price with shipping, guaranteed delivery date, money back). Asked of the site.",
            "default": false
          },
          "usLocalStock": {
            "title": "US local stock only",
            "type": "boolean",
            "description": "Only products in stock in a United States warehouse. Asked of the site.",
            "default": false
          },
          "samples": {
            "title": "Samples available only",
            "type": "boolean",
            "description": "Only products whose supplier sells samples (the site's Paid samples filter). Asked of the site; with Include product details, rows carry the sample price.",
            "default": false
          },
          "minReviewScore": {
            "title": "Minimum store rating",
            "enum": [
              "any",
              "4",
              "4.5",
              "5"
            ],
            "type": "string",
            "description": "Only suppliers whose store rating is at least this. Asked of the site; cards showing a lower rating are also left out by this actor.",
            "default": "any"
          },
          "deliveryDays": {
            "title": "Delivery to the US within",
            "enum": [
              "any",
              "18",
              "24",
              "30"
            ],
            "type": "string",
            "description": "Only products the site says can be delivered to the US within this many days (its Delivery by filter). Asked of the site.",
            "default": "any"
          },
          "supplierCountry": {
            "title": "Supplier country",
            "pattern": "^([A-Za-z]{2})?$",
            "type": "string",
            "description": "Optional. Only suppliers in this country, as a two-letter code (CN, VN, IN, US, TR…). Asked of the site; cards from another country are also left out by this actor."
          },
          "supplierCertification": {
            "title": "Supplier certification",
            "type": "string",
            "description": "Optional. Only suppliers holding this management system certification, as the site names it (ISO, BSCI, SEDEX, FSC, GMP, HACCP…). Asked of the site."
          },
          "productCertification": {
            "title": "Product certification",
            "type": "string",
            "description": "Optional. Only products with this certification, as the site names it (CE, RoHS, FCC, REACH, UKCA, CPC…). Asked of the site; a card that lists other certifications only is also left out by this actor."
          },
          "minPrice": {
            "title": "Minimum unit price (USD)",
            "minimum": 0,
            "type": "number",
            "description": "Optional. Only products with a unit price at or above this, in US dollars. Asked of the site; cards whose whole price range is below it are also left out by this actor."
          },
          "maxPrice": {
            "title": "Maximum unit price (USD)",
            "minimum": 0,
            "type": "number",
            "description": "Optional. Only products with a unit price at or below this, in US dollars (the cheapest quantity counts). Asked of the site and checked on each card."
          },
          "minMoq": {
            "title": "Minimum MOQ",
            "minimum": 1,
            "type": "integer",
            "description": "Optional. Only products whose minimum order quantity is at least this. Asked of the site and checked on each card."
          },
          "maxMoq": {
            "title": "Maximum MOQ",
            "minimum": 1,
            "type": "integer",
            "description": "Optional. Only products whose minimum order quantity is at most this. Asked of the site and checked on each card."
          },
          "sort": {
            "title": "Sort by",
            "enum": [
              "relevance",
              "sales"
            ],
            "type": "string",
            "description": "The order of the search results: the site's relevance order, or by sales volume.",
            "default": "relevance"
          },
          "includeDetails": {
            "title": "Include product details",
            "type": "boolean",
            "description": "Read each delivered product's page and add the full quantity price ladder, sample price, SKU options (colours, sizes), specs, certificates, lead time by quantity, packaging, Trade Assurance, and the supplier's response time, on-time dispatch rate, reorder rate, staff, export markets, verified identity, business type and capabilities. A row with details is one product-details event in place of its listing event; a page that cannot be read leaves the row as the search shows it, charged as a listing.",
            "default": false
          },
          "onlyChanges": {
            "title": "Only new and changed listings",
            "type": "boolean",
            "description": "Monitoring: deliver only listings not delivered by earlier runs of the same searches and filters (changeType \"added\"), plus listings whose price range or MOQ changed on the search or, with Include product details, whose price ladder changed (changeType \"updated\", with the earlier values in \"previous\" and the changed fields in \"changedFields\"). Each search watches the products a normal run would deliver, and the changes on the pages it reads are delivered in page order up to Max results per search. Without Include product details only the search card is compared, so a ladder change alone needs Include product details: then every watched product's page is read, and an unchanged one is not delivered but charged as one item-checked event (a full page read). Unchanged listings are otherwise not charged. Schedule it to watch a product niche.",
            "default": false
          },
          "fields": {
            "title": "Only these fields",
            "type": "array",
            "description": "Optional. Keep only these fields in each row, for example [\"title\", \"priceMin\", \"moq\", \"priceTiers\", \"supplier.name\"]; dotted paths reach inside objects and lists. recordType, id and url always stay. Empty: every field.",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}