Boat Trader Scraper $1.3/1K💰 | Boat Listings | Dealer Data
Pricing
from $1.27 / 1,000 results
Boat Trader Scraper $1.3/1K💰 | Boat Listings | Dealer Data
Scrape Boat Trader — America's largest boat marketplace — for complete new and used boat listings and the full dealer directory. Track boat prices, research used boat values, build marine market intelligence. Only $1.30 per 1,000 results.
Pricing
from $1.27 / 1,000 results
Rating
0.0
(0)
Developer
Ahmed Jasarevic
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Boat Trader Scraper — Boat Listings & Dealer Directory Data
Extract complete Boat Trader boat listings — price, year, make, model, location and dealer — plus the full dealer directory with phones, from America's largest boat marketplace, at $1.30 per 1,000 results, the lowest verified price for Boat Trader data.
Main Use Cases
- Boat price tracking & monitoring — collect listing prices and watch the market over time with scheduled runs
- Used boat values & valuation research — build real-time active-listing comps, the same method Boat Trader's own Price Checker uses, for fair-market pricing research
- Marine market research — analyze inventory, makes, models, and price levels across regions and dealers
- Boat dealer database & lead generation — extract the full Boat Trader dealer directory: dealer name, address, city, state, phone, logo, and profile URL
- Boat inventory data for analytics — feed structured new and used boat listings into dashboards, spreadsheets, and market reports
How It Works
The actor launches a full headless Chrome browser, opens your start URLs on boattrader.com and walks the public browse pages (/boats/, /boats/page-N/) exactly like a normal visitor. It reads the listing cards on each page and pushes one structured JSON record per listing to the default dataset. Start URLs that contain /boat-dealers/ are detected automatically and their records go to a separate dealers dataset instead.
It scrapes three pages concurrently, deduplicates by listing ID, and stops when — whichever comes first — maxItems is reached, two consecutive pages return no listings, or the results wrap (the first listing of a page matches the very first listing seen). If a page returns a bot-challenge page, the actor retries once with a fresh browser session.
Scrape Boat Listings For Price Tracking
The input is a standard Apify actor input object:
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
startUrls | array of { url } | Yes* | https://www.boattrader.com/boats/ | Any Boat Trader browse URL. URLs containing /boat-dealers/ produce dealer records (separate dealers dataset). *Required in the schema; if omitted, the actor falls back to the default boats catalog. |
maxItems | integer | No | 0 (no limit) | Maximum number of listings to scrape across all pages. Set a value to cap cost on large catalog runs. |
sort | string | No | recommended-desc | Accepted for forward compatibility; not applied by the current build. |
distance | string | No | 25mi | Accepted for forward compatibility; not applied by the current build. |
Boat Listing & Dealer Data Fields
Each record in the default (boats) dataset contains:
id, category ("boat" or "dealer"), title, year, make, model, type, boatClass, condition, price, discountPrice, priceHidden, length (ft), state, city, country, zip, distanceToFilteredLocation, dealerName, dealerRootName, dealerId, dealerLogo, contact, images, address, phone, listingPrice, portalLink, url
Populated from browse pages: id, category, title, year, make, model, listingPrice (parsed from the visible price text; null for "call for price"/POA listings), state, city, country, zip, dealerName, dealerLogo, images, portalLink, url.
Reserved, currently always null/false in this build: type, boatClass, condition, price, discountPrice, priceHidden (false), length, distanceToFilteredLocation, dealerRootName, dealerId (boats), contact, address (boats), phone (boats) — the browse-card extraction does not open individual detail pages in this build. Use listingPrice for prices.
Dealer records (in the dealers dataset) are populated with: id, category ("dealer"), title (dealer name), dealerName, dealerId, dealerLogo, address, city, state, zip, phone (from the call-now link), images, url. Year/make/model/price fields are null for dealer rows.
Example Input
Run this to scrape the default boats catalog with a cost cap:
{"startUrls": [{ "url": "https://www.boattrader.com/boats/" }],"maxItems": 100}
Run this to build a dealer directory:
{"startUrls": [{ "url": "https://www.boattrader.com/boat-dealers/" }],"maxItems": 50}
Example Output
Boat listing (default dataset):
{"id": "13041234","category": "boat","title": "2020 Sea Ray Sundancer 320","year": 2020,"make": "Sea Ray","model": "Sundancer 320","state": "FL","city": "Fort Lauderdale","country": "US","zip": "33316","dealerName": "MarineMax","dealerLogo": "https://media.boattrader.com/images/dealer-logo.png","images": ["https://media.boattrader.com/images/photo1.jpg"],"listingPrice": 249900,"portalLink": "https://www.boattrader.com/boats-for-sale/boat/13041234/2020-Sea-Ray-Sundancer-320","url": "https://www.boattrader.com/boats-for-sale/boat/13041234/2020-Sea-Ray-Sundancer-320","type": null,"boatClass": null,"condition": null,"price": null,"discountPrice": null,"priceHidden": false,"length": null,"distanceToFilteredLocation": null,"dealerRootName": null,"dealerId": null,"contact": null,"address": null,"phone": null}
Dealer record (dealers dataset):
{"id": "987654","category": "dealer","title": "MarineMax Fort Lauderdale","dealerName": "MarineMax Fort Lauderdale","dealerId": "987654","dealerLogo": "https://media.boattrader.com/images/dealer-logo.png","address": "4550 Anglers Ave, Fort Lauderdale, FL","city": "Fort Lauderdale","state": "FL","phone": "+1 954-555-0134","images": ["https://media.boattrader.com/images/dealer-logo.png"],"url": "https://www.boattrader.com/boat-dealers/987654/marinemax-fort-lauderdale","year": null,"make": null,"model": null,"price": null,"condition": null,"listingPrice": null}
Automate Boat Price Monitoring With Schedules And Integrations
Any Apify actor can be scheduled and piped into the rest of your stack:
- Schedule it — run weekly for price tracking, or daily to catch price drops early
- REST API — call it programmatically from your own app or an AI agent with a simple
POSTto the Apify API - Webhooks — get notified when each run finishes and forward the dataset to your service
- Zapier / Make — connect Boat Trader data to Google Sheets, Slack, Airtable, or your CRM via Apify's official integrations
Related Marine Market Scrapers
- YachtWorld Scraper — the world's largest yacht and boat marketplace; broker-heavy inventory on a global scale (7 users, 4 monthly — most active marine actor)
- YATCO Scraper — US yacht listings with specifications, pricing, and broker details (28 users — largest marine actor)
- Boat24 Scraper & Market Intelligence — Europe's largest boat marketplace with built-in valuation reports (14 users)
- Boat Trader Scraper (crawlerbros) — another Boat Trader scraper with per-listing dealer contact data (4 users, 5.00★)
- ApolloDuck Scraper & Market Intelligence — UK/Europe boats, barges, and narrowboats (6 users)
Boat Trader Scraper FAQ
Is there a Boat Trader official API?
No. Boat Trader does not publish a public API for listing data. The standard, documented way to get structured Boat Trader data is reading the public browse pages — which is exactly what this actor does. This actor is the Boat Trader API alternative for apps and agents that need the data programmatically.
How much is my boat worth?
The most accurate, current method is comparing real-time active listings — the same approach Boat Trader's own Boat Price Checker uses. With this actor you can collect every comparable listing (year, make, model, location, asking price) from the whole catalog and compute current market value or price-per-foot yourself. Guide-book baselines (JD Power/NADA, ABOS Marine Blue Book) are useful for older boats, but they lag the market.
How is this different from scraping YachtWorld?
Boat Trader is the largest boat marketplace in America, heavy on dealer inventory and private sellers, and it exposes the full dealer directory — a unique data source. YachtWorld (covered, for example, by the crawlerbros YachtWorld Scraper) is the world's largest yacht and boat marketplace, more broker- and yacht-focused and more global. Scrape both for a complete marine market picture.
How do I build a boat dealer database?
Run the actor on https://www.boattrader.com/boat-dealers/ and every dealer on the browse pages lands in the separate dealers dataset with dealer name, address, city, state, ZIP, phone, logo, and profile URL. This is the low-cost alternative to paid boat-dealer databases (commercial products selling 8,000–40,000 dealer records at $27–$299).
How often should I track boat prices?
Boats sit on the market far longer than cars, so weekly is a solid default for price tracking; daily is only worth it when you monitor specific fast-moving models or a particular dealer's inventory. Because runs are cheap (pay per result), a weekly catalog snapshot costs little.
Is scraping Boat Trader legal?
This actor reads only publicly accessible pages — it does not log in, bypass paywalls, or solve CAPTCHAs. You are responsible for respecting Boat Trader's Terms of Service and robots.txt and for how you use the data.
Why Use This Scraper — Verified Comparison
| Capability | Other Boat Trader scrapers | This actor |
|---|---|---|
| Price per 1,000 results | $2.00 (jungle_synthesizer) — $2.80 (solidcode) — $4.33 (crawlerbros) — $5.00 (lulzasaur) | $1.30 |
| Full dealer directory (name, address, phone, logo, profile URL) | Not offered — dealer contact only per listing | Yes — dedicated dealers dataset |
| Whole-catalog pagination from any start URL | Varies | Yes (3 pages concurrently, deduplicated) |
listingPrice parsed from every card | Varies | Yes — numeric or null for POA/call-for-price |
| Actor start cost | $0.005–$0.10 per event | $0.0005 per event |
SEO Keywords
boat trader scraper, boattrader scraper, boat listings scraper, scrape boat listings, boat price tracker, track boat prices, boat price monitoring, used boat values, boat valuation data, boat market data, marine market research, boat dealer list, boat dealer database, boat dealer leads, boat dealer directory, boat inventory data, boats for sale data, new and used boat listings, boat trader api, boattrader api alternative, yachtworld alternative, boat price per foot, boat depreciation data, boat market analysis
For AI Agents & LLM Apps
Purpose: returns structured Boat Trader boat listing records (catalog pages) and, for /boat-dealers/ start URLs, dealer-directory records — as JSON. Boats go to the run's default dataset; dealers go to a separate dataset named dealers.
Minimal working input:
{"startUrls": [{ "url": "https://www.boattrader.com/boats/" }],"maxItems": 50}
startUrls may be omitted entirely (the actor then defaults to https://www.boattrader.com/boats/). maxItems defaults to 0 = no limit — a cost-aware agent should always set it.
Output fields: id, category ("boat"/"dealer"), title, year, make, model, state, city, country, zip, dealerName, dealerLogo, images, listingPrice, portalLink, url, plus reserved null fields (type, boatClass, condition, price, discountPrice, priceHidden: false, length, distanceToFilteredLocation, dealerRootName, dealerId, contact, address, phone — note the browse-card build does not populate the structured price; use listingPrice).
Behaviors an agent should know:
- Mode routing: start URLs containing
/boat-dealers/switch the run to dealer-directory mode → records land in a separate dataset nameddealers, and boat fields (year,make,model,price,listingPrice) come backnull. Non-dealer URLs → boat records in the default dataset. Do not mix both kinds of URLs in one run if you want them in the same dataset. - Stop conditions: run ends when
maxItemsis hit, after 2 consecutive empty pages, or when the catalog wraps. It does not crawl the entire site; it walks numbered browse pages from your start URL. - Cost/billing: pay per result — $0.0013 per record in the default dataset, plus a $0.0005 per-GB start fee. Set
maxItemsto bound spend. - Pricing: use
listingPrice(parsed numeric) — the structuredpricefield is alwaysnullin this build.
Legal & Compliance Disclaimer
This actor is an independent project and is not affiliated with, endorsed by, or sponsored by Boat Trader (Trader Interactive). It accesses only publicly available boattrader.com pages — no login, no CAPTCHA solving, no paid-content bypass. Users are responsible for complying with Boat Trader's Terms of Service and applicable data-protection laws (including GDPR/CCPA where EU/California data is involved) and for how they use the data. The dealers dataset contains business contact data (dealer names, addresses, phone numbers); do not use it for unsolicited commercial outreach in violation of applicable law (e.g. CAN-SPAM, TCPA).