{
  "openapi": "3.0.1",
  "info": {
    "title": "China Product Finder — Alibaba & Made-in-China",
    "description": "Search Alibaba and Made-in-China at once by keyword or product image. Compare suppliers, prices, MOQs, trust badges, company details, and source links in one export-ready dataset.",
    "version": "0.0",
    "x-build-id": "Qg1QogOPxrCTd2Gjn"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/ozer-studio~Alibaba-Made-in-China-Supplier/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-ozer-studio-Alibaba-Made-in-China-Supplier",
        "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/ozer-studio~Alibaba-Made-in-China-Supplier/runs": {
      "post": {
        "operationId": "runs-sync-ozer-studio-Alibaba-Made-in-China-Supplier",
        "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/ozer-studio~Alibaba-Made-in-China-Supplier/run-sync": {
      "post": {
        "operationId": "run-sync-ozer-studio-Alibaba-Made-in-China-Supplier",
        "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",
        "required": [
          "searchMode"
        ],
        "properties": {
          "searchMode": {
            "title": "Search mode",
            "enum": [
              "keyword",
              "image"
            ],
            "type": "string",
            "description": "Choose product keywords or product images. The same inputs are sent to every enabled marketplace.",
            "default": "keyword"
          },
          "searchTerms": {
            "title": "Product keywords",
            "maxItems": 20,
            "type": "array",
            "description": "Used only for Keyword search. Add one specific product query per row. The default is intentionally empty.",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "uploadedImages": {
            "title": "Product images",
            "maxItems": 20,
            "type": "array",
            "description": "Used only for Image search. Upload clear product images. Each image is searched separately on both enabled marketplaces.",
            "items": {
              "type": "string"
            }
          },
          "imageUrls": {
            "title": "Public product image URLs",
            "maxItems": 20,
            "type": "array",
            "description": "Used only for Image search and recommended for API or MCP clients. Add direct public HTTP or HTTPS image URLs.",
            "items": {
              "type": "string",
              "pattern": "^https?://"
            }
          },
          "searchAlibaba": {
            "title": "Search Alibaba",
            "type": "boolean",
            "description": "Run Alibaba Product & Supplier Finder with the shared search input.",
            "default": true
          },
          "searchMadeInChina": {
            "title": "Search Made-in-China",
            "type": "boolean",
            "description": "Run Made-in-China Product & Supplier Scraper with the shared search input.",
            "default": true
          },
          "maxSuppliersPerMarketplace": {
            "title": "Maximum suppliers per marketplace and search input",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Maximum unique suppliers collected separately from each marketplace for every keyword or image. For example, 10 can return up to 20 rows per search input when both marketplaces are enabled.",
            "default": 10
          },
          "maxPagesPerKeyword": {
            "title": "Maximum pages per keyword",
            "minimum": 1,
            "maximum": 99,
            "type": "integer",
            "description": "Maximum result pages processed by each marketplace for every keyword.",
            "default": 1
          },
          "maxPagesPerImage": {
            "title": "Maximum image-result pages or batches per image",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Maximum image-result pages or batches processed by each marketplace for every image. Made-in-China currently supports up to five batches.",
            "default": 1
          },
          "includeMadeInChinaSupplierDetails": {
            "title": "Include Made-in-China supplier profile details",
            "type": "boolean",
            "description": "Visit accepted Made-in-China supplier profiles for business type, main products, establishment information, employee count, address, and other public company details. This increases runtime.",
            "default": true
          },
          "useApifyProxy": {
            "title": "Use Apify Proxy in source searches",
            "type": "boolean",
            "description": "Recommended for reliable Alibaba and Made-in-China searches, especially image batches.",
            "default": true
          },
          "skipFailedImages": {
            "title": "Skip failed images",
            "type": "boolean",
            "description": "Used only for Image search. Continue with the remaining images when one image cannot be processed.",
            "default": true
          },
          "strictMode": {
            "title": "Strict failure mode",
            "type": "boolean",
            "description": "When disabled, keep results from one marketplace if the other fails. Enable to fail the combined run when any selected marketplace fails or the final dataset is empty.",
            "default": false
          },
          "saveCsvFile": {
            "title": "Save combined CSV file",
            "type": "boolean",
            "description": "Save a named comparison CSV in the run's key-value store. The structured Apify dataset is always available.",
            "default": true
          },
          "csvFilename": {
            "title": "CSV filename",
            "minLength": 1,
            "maxLength": 160,
            "type": "string",
            "description": "Filename used when Save combined CSV file is enabled.",
            "default": "alibaba-made-in-china-suppliers.csv"
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}