{
  "openapi": "3.0.1",
  "info": {
    "title": "1688 Supplier Due Diligence & Sourcing Data",
    "description": "Search 1688.com in English and get the supplier's official record with every listing — years verified, repeat-buyer rate, 1688's six service scores, factory vs trading company, inspection reports — plus category stats showing price spread and supplier concentration. Facts only, no invented scores.",
    "version": "1.0",
    "x-build-id": "eTYBCWhvimDJUIrI5"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/aligeng~1688-products-search-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-aligeng-1688-products-search-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/aligeng~1688-products-search-scraper/runs": {
      "post": {
        "operationId": "runs-sync-aligeng-1688-products-search-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/aligeng~1688-products-search-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-aligeng-1688-products-search-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",
        "required": [
          "keywords"
        ],
        "properties": {
          "keywords": {
            "title": "Search keywords",
            "type": "array",
            "description": "Keywords to search on 1688.com. Chinese or English.",
            "items": {
              "type": "string"
            }
          },
          "maxResultsPerKeyword": {
            "title": "Max results per keyword",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "How many products to return per keyword. Broad keywords (e.g. 'phone case') can fill 100+; narrow or long-tail keywords have a smaller result pool and will stop early on their own. For wider coverage, add more keywords rather than only raising this number.",
            "default": 40
          },
          "includeAds": {
            "title": "Include ads (P4P)",
            "type": "boolean",
            "description": "Include sponsored/P4P listings. Off by default for cleaner organic results.",
            "default": false
          },
          "trackTrend": {
            "title": "Track sales trend (radar mode)",
            "type": "boolean",
            "description": "Store sales snapshots across runs to detect rising products. Run daily (schedule) for this to build up trend data. First run only marks products as 'new'.",
            "default": true
          },
          "searchInChinese": {
            "title": "Search using the Chinese trade term",
            "type": "boolean",
            "description": "On by default. English keywords are converted to the term Chinese wholesalers actually use before searching, because 1688's English results skew toward cross-border resellers. In our tests the English term returned up to 3.5x the median price and, on one keyword, 13% factories versus 65% for the Chinese equivalent. Requires an API key (see below) — without one the English term is searched as-is and a note is written to the log. The keyword you typed is kept in 'keyword'; what was actually searched appears in 'searchedAs'.",
            "default": true
          },
          "maxConcurrency": {
            "title": "Keywords processed in parallel",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many keywords to scrape at the same time. Each keyword uses its own residential IP, so raising this does not increase the request rate per IP. Lower it if you are on a small proxy allowance.",
            "default": 4
          },
          "includeOriginalChinese": {
            "title": "Also include the original Chinese",
            "type": "boolean",
            "description": "Off by default, so the output is English-only. Turn on to also get the original Chinese for titles, locations, tags and price tiers — useful if you paste terms back into 1688 or forward listings to a sourcing agent in China. Company and shop names are always kept in Chinese, since you need the real name to verify a business.",
            "default": false
          },
          "translateToEnglish": {
            "title": "Translate titles to English",
            "type": "boolean",
            "description": "Adds an English title to every product. Works with no API key at all — a free translation service is used by default. For better quality on e-commerce jargon, add an API key below (a free-tier key works).",
            "default": false
          },
          "llmApiKey": {
            "title": "LLM API key (optional — improves translation quality)",
            "type": "string",
            "description": "Leave empty to use the free no-key translator (fine for a daily run; limited to roughly 5,000 characters per day). Provide any OpenAI-compatible key for better wording — FREE keys work: Google Gemini, Groq and OpenRouter all offer free tiers. See the base URL field for their endpoints."
          },
          "llmModel": {
            "title": "LLM model",
            "type": "string",
            "description": "Model name for your provider. Providers retire model names often — check your provider's current model list rather than trusting a name copied from anywhere. On Gemini pick a current Flash or Flash-Lite model; on Groq pick a current Llama model; on OpenAI, gpt-4o-mini is fine. Any model can handle title translation, so choose the cheapest/fastest tier.",
            "default": "gpt-4o-mini"
          },
          "llmBaseUrl": {
            "title": "LLM base URL",
            "type": "string",
            "description": "OpenAI-compatible endpoint. Free providers: Gemini = https://generativelanguage.googleapis.com/v1beta/openai ; Groq = https://api.groq.com/openai/v1 ; OpenRouter = https://openrouter.ai/api/v1",
            "default": "https://api.openai.com/v1"
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Residential proxies recommended to avoid rate limits."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}