Wholesale Marine Scraper
Pricing
from $3.00 / 1,000 results
Wholesale Marine Scraper
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.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
Crawler Bros
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Scrape Wholesale Marine — a large online retailer of boat parts, marine electronics, trailer parts, watersports gear, and outdoor equipment. Search the entire catalog by keyword, browse any product category or brand, or pull rich product detail (price, SKU, brand, stock status, images, full description) straight from a product page URL.
No login, no API key, and no cookies are required — every mode works out of the box.
What this actor does
- Keyword search — full-text product search across the entire catalog, just like the site's own search box.
- Category browse — walk any of 200+ product categories (propellers, bimini tops, boat covers, engine parts, thermostats, solenoids, fuel filters, carburetor kits, and more) from the newest to the best-selling item.
- Brand browse — pull every product from a specific brand (Yamaha, Mercury Mercruiser, Garmin, Attwood, Jabsco, TACO Marine, and 60+ others).
- Direct product URL — feed in one or more exact product page URLs and get back the full product detail record (SKU, UPC/MPN, brand, stock quantity, gallery images, category breadcrumbs, and cleaned description).
- Sorting — apply the site's own sort orders (featured, newest, best selling, price low→high, price high→low, name A→Z / Z→A) to any listing mode.
- Price filtering — drop products outside a min/max USD price range.
- Stock filtering — restrict to in-stock products (only meaningful on
direct_product_url, since listing pages don't expose per-item stock status). - Ratings & reviews — average customer rating, total review count, and star breakdown for every product that has any (fetched from the store's own review widget; toggle off with
includeRatingsif not needed). - Every output field is only included when real data is available — no placeholder or "N/A" values.
Output per product
| Field | Type | Present on | Description |
|---|---|---|---|
productId | string | all | Internal numeric product ID |
title | string | all | Product name |
brand | string | brand_browse, direct_product_url | Manufacturer/brand name |
brandUrl | string (URL) | direct_product_url | Link to the brand's page on the site |
sku | string | direct_product_url | Manufacturer/vendor SKU |
upc | string | direct_product_url | UPC barcode, when a valid one is published |
mpn | string | direct_product_url | Manufacturer part number |
gtin | string | direct_product_url | Global Trade Item Number, when valid |
price | number | all | Current selling price (USD) |
priceFormatted | string | all | Price formatted as $X,XXX.XX |
listPrice | number | when on sale | Original / list price (USD), only when higher than the current price |
listPriceFormatted | string | when on sale | List price formatted |
discountAmount | number | when on sale | listPrice - price |
discountPercent | number | when on sale | Discount percentage |
currency | string | all | Always USD |
inStock | boolean | direct_product_url | Whether the item is currently purchasable |
stockQuantity | integer | direct_product_url (when published) | Units currently on hand |
description | string | all | Product blurb (listing) or full cleaned description (detail) |
imageUrl | string (URL) | listing modes | Listing thumbnail image |
images | array of strings (URL) | direct_product_url | Full-resolution gallery images |
primaryImage | string (URL) | direct_product_url | First/main gallery image |
categoryPath | array of strings | direct_product_url | Breadcrumb trail (e.g. ["Engine & Fuel", "Boat Propellers"]) |
categorySlug | string | category_browse | The category slug used for this run |
variantOptions | array of objects | direct_product_url (when the product has purchase options) | Purchasable options such as Size or Color, e.g. {"name": "Size", "required": true, "values": ["S", "M", "L"]}. Color options rendered as unlabeled swatches (no text value on the page) are not included. |
specifications | object | direct_product_url (when the product page publishes attribute specs) | Key/value technical specs straight from the product page's own spec block — the exact keys vary by category (e.g. Material, Voltage, Style, Warranty Length, USCG Rating, Supplier Number, Fast Ship). Values already captured as sku/mpn/upc are not duplicated here. |
ratingValue | number | when the product has reviews | Average customer star rating (1–5) |
reviewCount | integer | when the product has reviews | Total number of customer reviews |
ratingDistribution | object | when the product has reviews | Review count per star, e.g. {"1": 2, "2": 1, "3": 0, "4": 4, "5": 57} |
productUrl | string (URL) | all | Canonical product page URL |
recordType | string | all | Always product |
scrapedAt | string (ISO 8601) | all | UTC timestamp of when the record was scraped |
Input
| Field | Type | Default | Description |
|---|---|---|---|
mode | select | keyword_search | keyword_search / category_browse / brand_browse / direct_product_url |
searchQuery | string | propeller | Free-text query (mode=keyword_search) |
categoryPath | select | – | Category to browse (mode=category_browse) — 200+ curated options |
customCategoryPath | string | – | Any category URL slug not in the dropdown (overrides categoryPath) |
brandSlug | select | – | Brand to browse (mode=brand_browse) — 60+ curated options |
customBrandSlug | string | – | Any brand URL slug not in the dropdown (overrides brandSlug) |
productUrls | array of strings | – | Product page URLs to scrape (mode=direct_product_url) |
sortOrder | select | bestselling | featured / newest / bestselling / alphaasc / alphadesc / priceasc / pricedesc |
minPrice | integer | – | Drop products priced below this (USD) |
maxPrice | integer | – | Drop products priced above this (USD) |
inStockOnly | boolean | false | Only emit in-stock products (direct_product_url only) |
includeRatings | boolean | true | Fetch each product's rating/review count (adds one request per product) |
maxItems | integer | 20 | Hard cap on emitted records (1–1000) |
Example: keyword search sorted by price
{"mode": "keyword_search","searchQuery": "bilge pump","sortOrder": "priceasc","maxItems": 50}
Example: browse a category
{"mode": "category_browse","categoryPath": "boat-propellers","sortOrder": "bestselling","minPrice": 50,"maxPrice": 300,"maxItems": 100}
Example: browse a brand not in the dropdown
{"mode": "brand_browse","customBrandSlug": "CE-Smith","sortOrder": "alphaasc","maxItems": 50}
Example: full detail for specific products
{"mode": "direct_product_url","productUrls": ["https://www.wholesalemarine.com/turning-point-hustler-3-blade-9x-9p-propeller-2111-0910/"],"inStockOnly": true}
Use cases
- Dropshipping & e-commerce — sync live prices, stock status, and images from Wholesale Marine to your own storefront.
- Price monitoring — track price changes and discounts across an entire category or brand over time.
- Competitor research — compare marine parts pricing and catalog breadth against other retailers.
- Marketplace listing enrichment — pull SKUs, UPCs/MPNs, specs, and gallery images to populate marketplace listings.
- Review/reputation analysis — aggregate rating distributions across a brand or category to spot standout products.
- Boat parts sourcing — find every product from a specific brand or category without manually browsing the site.
FAQ
Is this affiliated with Wholesale Marine? No, this is a third-party actor using the publicly accessible wholesalemarine.com website. It is not affiliated with, endorsed by, or sponsored by Wholesale Marine.
Do I need a proxy or login? No. All modes work with the default Apify datacenter proxy group, and no account or cookies are required.
What's the difference between the listing modes and direct_product_url? keyword_search, category_browse, and brand_browse read the fast listing-page cards (title, price, thumbnail, short blurb). direct_product_url fetches the full product page for maximum detail — SKU, UPC/MPN, stock quantity, full gallery, and category breadcrumbs — but costs one request per product URL.
Can I browse a category or brand that isn't in the dropdown? Yes — use customCategoryPath or customBrandSlug with the exact URL slug from the site (e.g. the part between wholesalemarine.com/ and the trailing slash for categories, or between /brands/ and .html for brands).
Why is stockQuantity sometimes missing even in direct_product_url mode? Some products don't publish exact on-hand quantities on their page; only inStock (true/false) is guaranteed when the site exposes availability at all.
Why don't listing modes include stock status? Wholesale Marine's category/search/brand listing pages don't render a stock indicator on the product card — only the full product page does. Use direct_product_url if you need to filter by inStockOnly.
How current are the prices? Prices are scraped live on every run, straight from the page the actor requests.
Where do ratings come from? The store's on-page review widget renders client-side via JavaScript, but its data comes from a public review-summary endpoint that the actor queries directly (one extra request per product) so ratingValue, reviewCount, and ratingDistribution reflect the same real numbers shown on the site. Products with zero reviews simply omit these fields rather than show a fake 0.
Limitations
- Stock quantity and in-stock status are only available in
direct_product_urlmode. - The
categoryPathandbrandSlugdropdowns cover the site's full stable taxonomy at the time of writing; use the correspondingcustom*field for anything newer. variantOptionsonly lists dropdown-style options (e.g. Size). Color options rendered as visual swatches with no text label on the page cannot be reported as real values, so they're omitted rather than guessed.