{
  "openapi": "3.0.1",
  "info": {
    "title": "1688 Image Search — Find Suppliers & Factories by Photo",
    "description": "1688 reverse image search for Amazon FBA sourcing, dropshipping and private label. Supplier prices and MOQ; optional English titles and landed-cost estimates.",
    "version": "0.3",
    "x-build-id": "apmaNHalwW41XlCPg"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/crawleast~1688-image-search-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-crawleast-1688-image-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/crawleast~1688-image-search-scraper/runs": {
      "post": {
        "operationId": "runs-sync-crawleast-1688-image-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/crawleast~1688-image-search-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-crawleast-1688-image-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",
        "properties": {
          "imageUrls": {
            "title": "Product image URLs",
            "type": "array",
            "description": "Public URLs of product photos to search with (jpg/png/webp, ~1 MB or less each). Each image yields up to maxResultsPerImage visually similar candidate listings; similarity does not confirm the same product. An image-search charge applies only when that image actually delivers at least one match. Batch multiple URLs in one run and set maxImages to the number of images (up to 20) — image mode adds the $0.01 run base fee once when at least one image delivers matches, not per image. Example: a photo of a product you saw on TikTok/Amazon/AliExpress.",
            "items": {
              "type": "string"
            }
          },
          "imagesBase64": {
            "title": "Product images (base64)",
            "type": "array",
            "description": "Alternative to imageUrls when you have no public URL: base64-encoded images. Each entry is either a raw base64 string or {\"base64\": \"...\", \"fileName\": \"product.jpg\"}. Mixed use with imageUrls is supported."
          },
          "offerIds": {
            "title": "1688 offer IDs (detail-only mode)",
            "type": "array",
            "description": "Skip image search and attempt available product details directly for these 1688 offer IDs (the numeric ID from a detail.1688.com/offer/<ID>.html URL). Overrides image inputs. A $0.01 run base fee applies once when at least one detail is actually delivered, plus the delivered-detail fee ($0.003 each at FREE tier); no image-search fee. No delivered details = $0.00; partial success is billed only for delivered details plus that one base fee. Capped at 400 per run; extras are dropped and never charged.",
            "items": {
              "type": "string"
            }
          },
          "maxImages": {
            "title": "Max images",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Maximum number of input images to process (default 10). Set it to the number of images you pass, up to 20, to search them all in one run. Extras beyond this limit are truncated, never searched and never charged.",
            "default": 10
          },
          "maxResultsPerImage": {
            "title": "Max results per image",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How many matching listings to return per image, ordered by visual similarity.",
            "default": 20
          },
          "enrichDetails": {
            "title": "Enrich matches with full details",
            "type": "boolean",
            "description": "Attempt best-effort detail enrichment for matched offers using available fields: SKUs and stock, quantity-break price ladder, English title, weight, dropship-ready score, estimated landed cost (USD) and compliance hints. Fields and English translations are not guaranteed for every match; supplier legal names remain Chinese. Defaults to false (Chinese search cards). Billed $0.003 per detail actually delivered at FREE tier; undelivered details are not charged.",
            "default": false
          },
          "targetMarket": {
            "title": "Target market",
            "enum": [
              "US",
              "EU",
              "UK",
              "AU",
              "global"
            ],
            "type": "string",
            "description": "Destination market used for the estimated landed cost (duty rate) and compliance certification hints on enriched details.",
            "default": "US"
          },
          "maxTotalChargeUsd": {
            "title": "Max charge budget (USD)",
            "minimum": 0.04,
            "type": "number",
            "description": "Pay-per-event charge budget for this run. When it is reached, the run stops scheduling new work; check the dataset and SUMMARY for delivered results and billing-event records. In image mode, the $0.01 base fee applies once when at least one image actually delivers matches. In offerIds mode, it applies once when at least one detail is actually delivered, plus delivered-detail fees and no image-search fee. No successful delivery = $0.00; partial success is charged for successful deliveries even if the run ends FAILED.",
            "default": 2
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}