{
  "openapi": "3.0.1",
  "info": {
    "title": "Wholesale Marine Scraper",
    "description": "Scrape Wholesale Marine (wholesalemarine.com) - boat parts, propellers, covers, electronics, trailer parts, and outdoor gear. Search the full catalog by keyword, browse by category or brand, or fetch full product detail (price, SKU, brand, stock, images, description) from a direct product URL.",
    "version": "1.0",
    "x-build-id": "vL8r8Vx7JzmEyU6kd"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/crawlerbros~wholesale-marine-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-crawlerbros-wholesale-marine-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/crawlerbros~wholesale-marine-scraper/runs": {
      "post": {
        "operationId": "runs-sync-crawlerbros-wholesale-marine-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/crawlerbros~wholesale-marine-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-crawlerbros-wholesale-marine-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": [
          "mode"
        ],
        "properties": {
          "mode": {
            "title": "Mode",
            "enum": [
              "keyword_search",
              "category_browse",
              "brand_browse",
              "direct_product_url"
            ],
            "type": "string",
            "description": "What to fetch.",
            "default": "keyword_search"
          },
          "searchQuery": {
            "title": "Search query (mode=keyword_search)",
            "type": "string",
            "description": "Free-text query, e.g. `propeller`, `bimini top`, `bilge pump`.",
            "default": "propeller"
          },
          "categoryPath": {
            "title": "Category (mode=category_browse)",
            "enum": [
              "anchor-dock",
              "anchor-windlasses",
              "anchoring",
              "auxiliary-motor-mounts",
              "ballast-bags",
              "bbq-grills-cookware",
              "bilge-pumps",
              "bimini-tops",
              "boat-alarms",
              "boat-anchors",
              "boat-bbq-grills",
              "boat-bottom-paint",
              "boat-cabin-galley",
              "boat-cleaning-supplies",
              "boat-control-steering-cables",
              "boat-covers",
              "boat-docks",
              "boat-fenders",
              "boat-hardware-tools",
              "boat-ladders",
              "boat-lights",
              "boat-maintenance",
              "boat-oars-oar-locks",
              "boat-paddles",
              "boat-paint",
              "boat-propellers",
              "boat-pumps-marine-sanitation",
              "boat-safety",
              "boat-seats",
              "boat-ski-mirrors",
              "boat-switches-controls",
              "boat-tie-downs",
              "boat-tops",
              "boat-trailer-axles-springs",
              "boat-trailer-brakes",
              "boat-trailer-bunks",
              "boat-trailer-fenders",
              "boat-trailer-guides",
              "boat-trailer-hitches-safety-chain",
              "boat-trailer-jacks",
              "boat-trailer-lights",
              "boat-trailer-rollers",
              "boat-trailer-winches",
              "boat-windshield-wipers",
              "boat-winterization",
              "bow-thruster",
              "chris-craft-carburetor-kits",
              "chris-craft-solenoids-voltage-regulators",
              "chrysler-inboard-carburetor-kits",
              "chrysler-inboard-starter-solenoids",
              "chrysler-outboard-carburetors-kits",
              "chrysler-outboard-solenoids",
              "chrysler-outboard-thermostats-gaskets",
              "cobra-solenoids",
              "cooking-outdoors",
              "crusader-carburetor-kits",
              "crusader-starts-solenoids",
              "crusader-thermostats-gaskets",
              "depth-finders",
              "dock-mooring",
              "electrical",
              "electrical-supplies",
              "electronics-navigation",
              "engine-accessories",
              "engine-fuel-props",
              "evinrude-outboard-carburetors-kits",
              "evinrude-outboard-fuel-filters",
              "evinrude-outboard-fuel-pumps",
              "evinrude-outboard-ignition-coils",
              "evinrude-outboard-parts",
              "evinrude-outboard-power-packs",
              "evinrude-outboard-starter-solenoids",
              "evinrude-outboard-water-pumps-impellers",
              "fish-finders-gps",
              "fishing-gear",
              "force-outboard-solenoids",
              "force-outboard-thermostats-gaskets",
              "freshwater-systems",
              "fuel-tanks-systems",
              "generator-parts",
              "honda-outboard-carburetor-kits",
              "honda-outboard-fuel-filters",
              "honda-outboard-thermostats-gaskets",
              "hydrofoils",
              "jack-plates",
              "johnson-outboard-carburetors-kits",
              "johnson-outboard-fuel-filters",
              "johnson-outboard-starter-solenoid",
              "johnson-outboard-thermostats-gaskets",
              "kneeboards",
              "lake-pool-floats",
              "life-jacket-vest",
              "life-jackets-pfds",
              "life-rafts",
              "life-rings-buoys",
              "lithium-marine-batteries",
              "livewell-systems",
              "livewell-systems-1",
              "marine-air-conditioners",
              "marine-antennas",
              "marine-battery-boxes",
              "marine-battery-chargers",
              "marine-binoculars",
              "marine-compasses",
              "marine-coolers",
              "marine-electrical-connectors",
              "marine-electronics-mounts",
              "marine-engine-parts",
              "marine-fire-extinguishers",
              "marine-first-aid-kits",
              "marine-oil",
              "marine-stereo-systems",
              "marine-vapor-detectors",
              "marine-wire",
              "mariner-outboard-carburetor-kits",
              "mercruiser-bellows",
              "mercruiser-carburetor-kits",
              "mercruiser-exhaust-manifolds",
              "mercruiser-fuel-filters",
              "mercruiser-parts",
              "mercruiser-solenoids",
              "mercruiser-starters",
              "mercruiser-thermostats-gaskets",
              "mercruiser-tune-up-kit",
              "mercruiser-water-pumps-impellers",
              "mercury-avator-electric-outboards",
              "mercury-oil-change-kits",
              "mercury-outboard-carburetors-kits",
              "mercury-outboard-fuel-filters",
              "mercury-outboard-ignition-system",
              "mercury-outboard-motors",
              "mercury-outboard-parts",
              "mercury-outboard-starter-solenoids",
              "mercury-outboard-starters",
              "mercury-outboard-thermostats-gaskets",
              "mercury-outboard-water-pumps-impellers",
              "multi-purpose-boards",
              "navigation-charts-maps",
              "nissan-outboard-carburetors-kits",
              "nissan-outboard-fuel-filters",
              "omc-carburetor-kits",
              "omc-fuel-filters",
              "omc-thermostats-gaskets",
              "outboard-motor-covers",
              "outdoor-gear",
              "paint-maintenance",
              "pedestals-mounts",
              "phone-tablet",
              "pleasurecraft-carburetor-kits",
              "pleasurecraft-thermostats-gaskets",
              "pontoon",
              "pontoon-anchors",
              "pontoon-bimini-tops",
              "pontoon-boat-covers",
              "pontoon-boat-seats",
              "pontoon-boat-tables",
              "pontoon-carpet",
              "pontoon-cleaners",
              "pontoon-fenders",
              "pontoon-lights",
              "pontoon-ski-tow-bars-accessories",
              "sail-tracks-travelers",
              "sailboat-bailers",
              "sailboat-blocks",
              "sailboat-rigging",
              "sailboat-steering",
              "sailboat-winches",
              "sailing-cleats",
              "sailing-gear",
              "sailing-shackles",
              "sailing-supplies",
              "sanitation-systems",
              "seating-furniture",
              "seats-covers",
              "shore-power",
              "signaling-devices",
              "spare-tire-carriers",
              "stand-up-paddle-boards",
              "stringer-solenoids",
              "suzuki-outboard-carburetor-kits",
              "suzuki-outboard-thermostats-gaskets",
              "switches-solenoids",
              "thru-hull-fittings-strainers",
              "tohatsu-outboard-carburetor-kits",
              "tohatsu-outboard-fuel-filters",
              "tohatsu-outboard-thermostats-gaskets",
              "towable-tubes",
              "trailer-hubs-bearings",
              "trailer-locks-accessories",
              "trailer-parts",
              "trailers",
              "transom-savers",
              "trim-tabs",
              "vhf-marine-radios",
              "volvo-penta-bellows",
              "volvo-penta-carburetor-kits",
              "volvo-penta-fuel-system",
              "volvo-penta-gas-fuel-filters",
              "volvo-penta-starter-alternator",
              "volvo-penta-starter-solenoids",
              "volvo-penta-sterndrive-parts",
              "volvo-penta-thermostats-gaskets",
              "volvo-penta-tune-up-kits",
              "volvo-penta-water-pumps-impellers",
              "wakeboard-towers-pylons",
              "wakeboards",
              "wakesurf-boards",
              "waterskis",
              "watersports",
              "watersports-closeouts",
              "wet-suits",
              "wind-indicators",
              "yamaha-outboard-fuel-filters",
              "yamaha-outboard-fuel-pumps",
              "yamaha-outboard-ignition-system",
              "yamaha-outboard-oil-filters",
              "yamaha-outboard-parts",
              "yamaha-outboard-starter-solenoids",
              "yamaha-outboard-thermostats-gaskets",
              "yamaha-outboard-water-pumps-impellers-4-stroke"
            ],
            "type": "string",
            "description": "Pick a product category to browse. Use `customCategoryPath` instead for a category not listed here."
          },
          "customCategoryPath": {
            "title": "Custom category path (mode=category_browse)",
            "type": "string",
            "description": "Override `categoryPath` with any wholesalemarine.com category URL slug not in the dropdown, e.g. `mercury-outboard-parts`. Takes priority over `categoryPath` when set."
          },
          "brandSlug": {
            "title": "Brand (mode=brand_browse)",
            "enum": [
              "13-fishing",
              "303-Products",
              "3M",
              "AAmstrand",
              "Abyss-Battery",
              "ac-delco",
              "ACR-Electronics",
              "adventure-medical",
              "AFI",
              "Airhead",
              "Airmar",
              "Albin-Group",
              "Albin-Pump-Marine",
              "Anchorlift",
              "Ancor",
              "Andersen",
              "Anderson",
              "aqua-vu",
              "AquaGlide",
              "ATK-Marine-Engines",
              "Attwood",
              "Babes-Boat-Care",
              "Balmar",
              "Barefoot-International",
              "Barton-Marine",
              "Bearing-Buddy",
              "Beckson-Marine",
              "Bennett-Marine",
              "BEP",
              "Big-Sky-Precision",
              "Black-Oak-LED",
              "Blue-Seas",
              "Boat-Bling",
              "Boat-Buckle",
              "Boat-Life",
              "Boat-Mates",
              "Boat-Vent",
              "Bobs-Machine",
              "Bomber-Eyewear",
              "Bombora",
              "Boss-Audio",
              "BW",
              "Caframo",
              "Cal-June",
              "Calcutta",
              "Camco",
              "Cannon",
              "Cargo-Buckle",
              "CDI-Electronics",
              "Garmin",
              "Interlux-Paint",
              "Jabsco",
              "Johnson-Pump",
              "Lewmar-Marine",
              "Magma-Grills",
              "Mercury-Mercruiser",
              "Sierra-Marine",
              "starbrite",
              "T-H-Marine",
              "TACO-Marine",
              "Taylor-Made-Products",
              "Wise-Boat-Seats",
              "Yamaha",
              "Yeti"
            ],
            "type": "string",
            "description": "Pick a brand to browse. Use `customBrandSlug` instead for a brand not listed here."
          },
          "customBrandSlug": {
            "title": "Custom brand slug (mode=brand_browse)",
            "type": "string",
            "description": "Override `brandSlug` with any wholesalemarine.com brand URL slug not in the dropdown, e.g. `Suzuki-Marine`. Takes priority over `brandSlug` when set. Find the exact slug from a brand page URL: wholesalemarine.com/brands/<slug>.html"
          },
          "productUrls": {
            "title": "Product URLs (mode=direct_product_url)",
            "type": "array",
            "description": "One or more wholesalemarine.com product page URLs to scrape in full detail.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "sortOrder": {
            "title": "Sort order",
            "enum": [
              "featured",
              "newest",
              "bestselling",
              "alphaasc",
              "alphadesc",
              "priceasc",
              "pricedesc"
            ],
            "type": "string",
            "description": "Sort order applied to listing pages (mode=keyword_search / category_browse / brand_browse). Ignored for direct_product_url.",
            "default": "bestselling"
          },
          "minPrice": {
            "title": "Min price (USD)",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Drop products priced below this amount."
          },
          "maxPrice": {
            "title": "Max price (USD)",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Drop products priced above this amount."
          },
          "inStockOnly": {
            "title": "In stock only",
            "type": "boolean",
            "description": "Only emit products currently in stock (mode=direct_product_url only; listing pages don't expose stock status).",
            "default": false
          },
          "includeRatings": {
            "title": "Include ratings & review counts",
            "type": "boolean",
            "description": "Fetch each product's customer rating (average score, review count, star breakdown) from the store's review widget. Adds one extra request per product, so disable it for faster runs if ratings aren't needed.",
            "default": true
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Hard cap on emitted records.",
            "default": 20
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}