{
  "openapi": "3.0.1",
  "info": {
    "title": "888lots Scraper — Wholesale Items, Lots & Manifests",
    "description": "Scrape 888lots wholesale items and fixed-price pallet lots with Amazon ASIN/BSR, Walmart metadata, MOQ, pricing, and full SKU manifests. Auction pages with linked items. Listings or details mode — fast curl_cffi, residential proxy ready.",
    "version": "0.2",
    "x-build-id": "wsiuPlWxLfCF9aOgW"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/crawloop~888lots-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-crawloop-888lots-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/crawloop~888lots-scraper/runs": {
      "post": {
        "operationId": "runs-sync-crawloop-888lots-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/crawloop~888lots-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-crawloop-888lots-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": {
          "mode": {
            "title": "Scraping Mode",
            "enum": [
              "items",
              "fixed_price_lots",
              "auctions",
              "start_urls"
            ],
            "type": "string",
            "description": "What to scrape: wholesale items catalog, fixed-price lots/pallets, auctions, or specific start URLs.",
            "default": "items"
          },
          "scrapeMode": {
            "title": "Output Detail Level",
            "enum": [
              "listings",
              "details"
            ],
            "type": "string",
            "description": "listings — fast card-level fields from catalog HTML. details — full /json payloads including Amazon/Walmart metadata and lot manifests.",
            "default": "details"
          },
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "Used when mode is start_urls. Accepts item, lot, auction show, or catalog list URLs.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "category": {
            "title": "Category Slug",
            "type": "string",
            "description": "Optional category filter slug for catalog modes, e.g. clothing-fashion-and-accessories or mobile-devices.",
            "default": ""
          },
          "brand": {
            "title": "Brand Slug",
            "type": "string",
            "description": "Optional brand filter slug for catalog modes, e.g. apple or nike.",
            "default": ""
          },
          "searchQuery": {
            "title": "Search Query",
            "type": "string",
            "description": "Client-side keyword filter over title/SKU/ASIN/brand (AND tokens). Applied after each list page is fetched.",
            "default": ""
          },
          "sort": {
            "title": "Sort",
            "enum": [
              "date:desc",
              "date:asc",
              "default:desc",
              "price:asc",
              "price:desc",
              "discount:asc",
              "qty:asc",
              "qty:desc",
              "views:desc"
            ],
            "type": "string",
            "description": "Catalog order for item and fixed-price lot lists. Start URLs that already include a sort parameter are left unchanged. Monitor mode always uses Newest (date:desc).",
            "default": "date:desc"
          },
          "minPrice": {
            "title": "Min Price (USD)",
            "minimum": 0,
            "type": "number",
            "description": "Minimum wholesale unit or lot price. 0 or empty turns the filter off. Rows below the minimum are not saved, not charged, and are not opened in details mode. Filtered rows do not count toward Max Total Items.",
            "default": 0
          },
          "maxPrice": {
            "title": "Max Price (USD)",
            "minimum": 0,
            "type": "number",
            "description": "Maximum wholesale unit or lot price. 0 or empty turns the filter off. Rows above the maximum are not saved or charged.",
            "default": 0
          },
          "minDiscountPct": {
            "title": "Min Discount %",
            "minimum": 0,
            "type": "number",
            "description": "Minimum discount versus MSRP (msrpOff). 0 or empty turns the filter off. Rows with no discount value are excluded while this is set.",
            "default": 0
          },
          "minProfitPct": {
            "title": "Min Amazon Profit %",
            "minimum": 0,
            "type": "number",
            "description": "Minimum Amazon ROI on cost, (Amazon price − price) / price × 100. 0 or empty turns the filter off. Rows with no positive Amazon price are excluded. Details mode checks again after enrichment and does not save or charge a row that fails. Profit is before marketplace fees and shipping.",
            "default": 0
          },
          "maxItems": {
            "title": "Max Total Items",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum dataset rows to output. 0 = unlimited. Rows rejected by deal filters do not count. In monitor mode this is how many matching catalog rows to scan each run (the watch window), not how many rows are written. Unchanged rows count toward the window. When monitor mode is on and this is 0, the scan uses Max List Pages, or 20 pages when that is also 0.",
            "default": 100
          },
          "maxPages": {
            "title": "Max List Pages",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum catalog pages to crawl (60 items/page typical). 0 = unlimited. If this is 0 and any deal filter is set, the run stops after 20 pages so a tight filter cannot walk the full catalog.",
            "default": 0
          },
          "maxAuctions": {
            "title": "Max Auctions",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum auction show pages to process in auctions mode. 0 = unlimited.",
            "default": 0
          },
          "concurrency": {
            "title": "Concurrency",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Parallel detail /json fetches.",
            "default": 4
          },
          "monitorMode": {
            "title": "Monitor Mode",
            "type": "boolean",
            "description": "Save only new listings, price changes, and quantity changes versus the last run with the same filters. Comparison uses the catalog row, so unchanged rows are not opened, saved, or charged. maxItems is the number of matching rows scanned each run (the same watch window as the first seed run), not the number of rows written. If maxItems is 0, the scan follows maxPages, or 20 pages when maxPages is also 0. Sort is forced to Newest. Schedule the same input every 6 hours. The first run seeds state and emits the full window.",
            "default": false
          },
          "monitorStateName": {
            "title": "Monitor State Store Name",
            "type": "string",
            "description": "Optional name of the key-value store that keeps monitor state between runs. Leave empty to derive a name from mode, output detail level, category, brand, search, sort, filters, and start URLs. Listings and details monitors use separate stores. State is never written to the default store."
          },
          "resetMonitorState": {
            "title": "Reset Monitor State",
            "type": "boolean",
            "description": "Clear saved monitor state for this input and treat the run as a new seed.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Apify proxy configuration. Residential US proxies recommended.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}