{
  "openapi": "3.0.1",
  "info": {
    "title": "Amazon to 1688 Sourcing Bridge: FBA Suppliers & Margins",
    "description": "Find 1688.com suppliers for Amazon products by image search. Each row: wholesale and consign price in CNY, MOQ, factory signals and an estimated per-unit FBA margin. $0.005 per Amazon lookup, $0.008 per supplier row, $0.00005 run base fee. Failed lookups are free.",
    "version": "0.1",
    "x-build-id": "X7jJmUoxkMakbzwH1"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/crawleast~amazon-fba-sourcing-bridge/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-crawleast-amazon-fba-sourcing-bridge",
        "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~amazon-fba-sourcing-bridge/runs": {
      "post": {
        "operationId": "runs-sync-crawleast-amazon-fba-sourcing-bridge",
        "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~amazon-fba-sourcing-bridge/run-sync": {
      "post": {
        "operationId": "run-sync-crawleast-amazon-fba-sourcing-bridge",
        "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": {
          "amazonUrls": {
            "title": "Amazon product URLs",
            "maxItems": 100,
            "type": "array",
            "description": "Public Amazon product URLs (dp or gp forms, any supported marketplace domain), up to 100 per run. Query parameters are fine. Each successfully looked-up item costs one $0.005 amazon-item-lookup event; blocked, region-unavailable and empty lookups are free. Batch items in one run to pay the $0.00005 run base fee once.",
            "items": {
              "type": "string"
            }
          },
          "asins": {
            "title": "ASINs",
            "maxItems": 100,
            "type": "array",
            "description": "10-character Amazon ASINs (letters and digits), up to 100 per run. Looked up on the selected marketplace. Billing is identical to amazonUrls: $0.005 per successfully looked-up ASIN, failures are free. Mix with amazonUrls and imageUrls in one run.",
            "items": {
              "type": "string",
              "pattern": "^[A-Za-z0-9]{10}$"
            }
          },
          "imageUrls": {
            "title": "Product image URLs",
            "maxItems": 100,
            "type": "array",
            "description": "Public product photo URLs (jpg/png/webp/avif, about 1 MB or less), up to 100 per run. These skip the Amazon lookup entirely: no amazon-item-lookup fee, no Amazon price, so margin fields are null. Mix with amazonUrls/asins to process both kinds in one run.",
            "items": {
              "type": "string"
            }
          },
          "marketplace": {
            "title": "Marketplace",
            "enum": [
              "com",
              "ca",
              "co.uk",
              "de",
              "fr",
              "it",
              "es",
              "jp"
            ],
            "type": "string",
            "description": "Which Amazon marketplace the lookups run against (applies to amazonUrls and asins). Also fixes the currency of the Amazon price and of the margin columns: com=USD, ca=CAD, co.uk=GBP, de/fr/it/es=EUR, jp=JPY. The Amazon leg uses a residential proxy in the marketplace country; the 1688 leg always uses China residential sessions.",
            "default": "com"
          },
          "maxSuppliersPerItem": {
            "title": "Max 1688 suppliers per item",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How many visually matching 1688 offers to return per item, in similarity order. Each delivered match row costs $0.008 (FREE tier); matches cut by your maxTotalChargeUsd are not charged.",
            "default": 10
          },
          "marginBasis": {
            "title": "Margin basis",
            "enum": [
              "fba",
              "plain"
            ],
            "type": "string",
            "description": "Cost basis of estMarginPerUnit / estMarginPct. FBA (default) subtracts the estimated Amazon fulfillment fee on top of the 1688 unit cost; the fee is estimated from the product's tier/weight band on the product page when available. Plain subtracts only the 1688 unit cost. FBA fee estimates are approximations, not exact Amazon quotes.",
            "default": "fba"
          },
          "fbaFeeUsd": {
            "title": "Fulfillment fee override (USD)",
            "minimum": 0,
            "type": "number",
            "description": "Optional. Overrides the estimated FBA fulfillment fee for every Amazon-sourced item with your own USD figure (e.g. from the Amazon revenue calculator). Ignored when marginBasis is plain and for image-only items. The run-time USD→marketplace-currency rate used to convert it is reported in RUN_SUMMARY."
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Informational only. The Actor enforces RESIDENTIAL proxies internally: the Amazon leg uses one sticky residential session per item in the marketplace country (US by default), and the 1688 image-search leg uses China residential sessions. Datacenter proxies are known to be blocked by Amazon.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ],
              "apifyProxyCountry": "US"
            }
          },
          "maxTotalChargeUsd": {
            "title": "Max total charge (USD)",
            "minimum": 0.04,
            "type": "number",
            "description": "Hard budget cap for this run including the run base fee. When the next item cannot be delivered within the cap, the run stops gracefully, marks the remaining items in skippedBy.budget and reports trigger=\"budget\". Minimum 0.04 (Apify platform limit).",
            "default": 2
          },
          "maxRequestsPerRun": {
            "title": "Max requests per run",
            "minimum": 50,
            "maximum": 2000,
            "type": "integer",
            "description": "Request quota guard across both legs (Amazon navigations, image downloads, 1688 uploads/searches). When exhausted, remaining items are marked skippedBy.quota and trigger=\"quota\". The default 1,200 covers 100 items with retry headroom.",
            "default": 1200
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}