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
3
Total users
2
Monthly active users
19 days 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 reads your start URLs on boattrader.com and covers both halves of the site. Boat listing URLs (/boats/, /boats/page-N/, any search or listing page) produce one structured JSON record per boat in the default dataset. Any start URL containing dealer in its path (such as /boat-dealers/ or /dealers) is detected automatically and produces dealer records in a separate dealers dataset instead.
For speed, records are read in bulk rather than page by page: the actor negotiates a session with the site up front and then pulls whole pages of records per request, so a run spends a few seconds establishing that session and the rest of its time on lightweight requests. If a page still has to be loaded the old-fashioned way, it does that automatically — you do not need to choose a mode.
Listing photos, logos and fonts are skipped by default — image URLs are still collected — which makes runs several times faster and much cheaper.
No input to configure for reliability. The actor handles reconnection and route changes on its own; there is nothing to turn on or off.
It deduplicates by record ID and stops when — whichever comes first — maxItems is reached, two consecutive pages return no records, the results wrap (the first record of a page matches the very first record seen), or the site stops serving listings.
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 dealer in the path (e.g. /boat-dealers/, /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 | 10 | Maximum number of records per dataset (0 = no limit). Applies per dataset, so a run that mixes boat and dealer URLs collects up to this many of each. |
proxyConfiguration | object | No | {"useApifyProxy": false} | Standard Apify proxy field. Leave it as-is — the defaults are what the actor is tuned for. |
concurrency | integer | No | 3 | Maximum pages fetched at the same time. The actor starts at one request, ramps up to this number while pages keep coming back clean, and backs off to one whenever the site pushes back. Raise it for speed on a healthy run, lower it to save memory. |
loadImages | boolean | No | false | When false, photos/logos/fonts are not downloaded (URLs are still extracted). Set to true only if you need the binaries themselves, not just their URLs. |
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"), 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 on boat records: id, category, title, year, make, model, type (power/sail/…), boatClass, condition (new/used), price, length, listingPrice, state, city, country, zip, dealerName, dealerLogo, dealerId, images, address (listing city/state), portalLink, url.
Always null on boat records: discountPrice (only set when a listing carries a discount), phone (the actor does not open detail pages), dealerRootName and contact (not published by the source), plus priceHidden (false) and distanceToFilteredLocation (null unless a location filter is applied). The three price fields are null for "call for price"/POA listings.
Dealer records (in the dealers dataset) use the same fields plus website, latitude and longitude, and set title to the dealer name. Boat-specific fields (year, make, model, type, boatClass, condition, price, length, listingPrice, discountPrice) are null for dealer rows.
Dealer records (in the dealers dataset) are populated with: id, category ("dealer"), title (dealer name), dealerName, dealerId, dealerLogo, address, city, state, country, zip, phone, website (the dealer's own site, normalized to a full URL), latitude, longitude, images, portalLink, url. Year/make/model/price fields are null for dealer rows.
Across the full directory the fields that are not present for every dealer are the ones the site itself does not publish: website (~85% of dealers), dealerLogo (~96%), zip (~99%), phone (~99%). address, state and city are present for all but a handful.
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 for a larger full-catalog run:
{"startUrls": [{ "url": "https://www.boattrader.com/boats/" }],"maxItems": 1000,"concurrency": 5}
Run this to build a dealer directory:
{"startUrls": [{ "url": "https://www.boattrader.com/boat-dealers/" }],"maxItems": 50}
Example Output
Boat listing (default dataset):
{"id": "9956499","category": "boat","title": "2026 Tidewater 302 CC Adventure","year": 2026,"make": "Tidewater","model": "302 CC Adventure","type": "power","boatClass": "power-center","condition": "new","price": 297200,"discountPrice": null,"priceHidden": false,"length": 30,"state": "MA","city": "Weymouth","country": "US","zip": "02188","distanceToFilteredLocation": null,"dealerName": "Monahan's Marine","dealerRootName": null,"dealerId": "5684","dealerLogo": "https://images.boatsgroup.com/images/1/upload/rsz_monahans-marine-logo.png","contact": null,"images": ["https://images.boattrader.com/resize/1/64/99/2026-tidewater-302-cc-adventure-power-9956499-20260721061942819-1.jpg","https://images.boatsgroup.com/images/1/upload/rsz_monahans-marine-logo.png"],"address": "Weymouth, MA","phone": null,"listingPrice": 297200,"portalLink": "https://www.boattrader.com/boat/2026-tidewater-302-cc-adventure-9956499/","url": "https://www.boattrader.com/boat/2026-tidewater-302-cc-adventure-9956499/"}
Dealer record (dealers dataset):
{"id": "425522","category": "dealer","title": "Pirie Marine and Power Sports","dealerName": "Pirie Marine and Power Sports","dealerId": "425522","dealerLogo": "https://images.boatsgroup.com/images/profiles/party425522/party425522-1706640155804.png","address": "53 Sunset Park Road, Ellsworth, ME","city": "Ellsworth","state": "ME","country": "US","zip": "04605","phone": "(207) 664-0500","website": "http://www.piriemarine.com","latitude": 44.54341,"longitude": -68.419464,"images": ["https://images.boatsgroup.com/images/profiles/party425522/party425522-1706640155804.png"],"url": "https://www.boattrader.com/boats/dealer-pirie-marine-and-power-sports-425522/","portalLink": "https://www.boattrader.com/boats/dealer-pirie-marine-and-power-sports-425522/","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 the whole directory — around 2,800 dealers — lands in the separate dealers dataset with dealer name, full address, city, state, ZIP, phone, logo, the dealer's own website, and map coordinates. This is the low-cost alternative to paid boat-dealer databases (commercial products selling 8,000–40,000 dealer records at $27–$299). Because the whole directory is one list rather than a paginated search, the full crawl is a handful of requests rather than one page render per screen of results.
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, ZIP, phone, logo, website, coordinates) | 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 dealer-directory 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 10 in the schema and 0 = no limit — a cost-aware agent should always set it.
Output fields: id, category ("boat"/"dealer"), title, year, make, model, type, boatClass, condition, price, state, city, country, zip, dealerName, dealerId, dealerLogo, images, address, phone, website, latitude, longitude, listingPrice, portalLink, url, plus reserved null fields (discountPrice, priceHidden: false, length, distanceToFilteredLocation, dealerRootName, contact).
Behaviors an agent should know:
- Mode routing: any start URL whose path contains
dealer(for example/boat-dealers/or/dealers) is treated as the dealer directory and normalized to the canonical dealer URL; it produces dealer records in a dataset nameddealers, where the boat fields (year,make,model,price,listingPrice) arenull. Any other URL produces boat records in the default dataset. Both kinds can be in the same run — each goes to its own dataset, andmaxItemsis applied to each dataset separately. - Stop conditions: a boat run ends when
maxItemsis hit, after 2 consecutive empty pages, or when the catalog wraps; it walks numbered browse pages from your start URL. A dealer run walks the whole directory (~2,800 records, ~15 requests) and stops atmaxItemsor the end of the list. - Cost/billing: pay per result — $0.0013 per record, plus a $0.0005 per-GB start fee. Set
maxItemsto bound spend. - Pricing:
priceandlistingPriceboth carry the numeric price on boat records; both arenullfor "call for price"/POA listings.
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).