Boat Trader Scraper $1.3/1K💰 | Boat Listings | Dealer Data avatar

Boat Trader Scraper $1.3/1K💰 | Boat Listings | Dealer Data

Pricing

from $1.27 / 1,000 results

Go to Apify Store
Boat Trader Scraper $1.3/1K💰 | Boat Listings | Dealer Data

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

Ahmed Jasarevic

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

19 days ago

Last modified

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:

FieldTypeRequiredDefaultNotes
startUrlsarray 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.
maxItemsintegerNo10Maximum 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.
proxyConfigurationobjectNo{"useApifyProxy": false}Standard Apify proxy field. Leave it as-is — the defaults are what the actor is tuned for.
concurrencyintegerNo3Maximum 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.
loadImagesbooleanNofalseWhen 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.
sortstringNorecommended-descAccepted for forward compatibility; not applied by the current build.
distancestringNo25miAccepted 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 POST to 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

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.

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

CapabilityOther Boat Trader scrapersThis 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 listingYes — dedicated dealers dataset
Whole-catalog pagination from any start URLVariesYes (3 pages concurrently, deduplicated)
listingPrice parsed from every cardVariesYes — 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 named dealers, where the boat fields (year, make, model, price, listingPrice) are null. Any other URL produces boat records in the default dataset. Both kinds can be in the same run — each goes to its own dataset, and maxItems is applied to each dataset separately.
  • Stop conditions: a boat run ends when maxItems is 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 at maxItems or the end of the list.
  • Cost/billing: pay per result — $0.0013 per record, plus a $0.0005 per-GB start fee. Set maxItems to bound spend.
  • Pricing: price and listingPrice both carry the numeric price on boat records; both are null for "call for price"/POA listings.

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).