Boat & Yacht Listings Scraper for Yachtall avatar

Boat & Yacht Listings Scraper for Yachtall

Pricing

from $2.00 / 1,000 results

Go to Apify Store
Boat & Yacht Listings Scraper for Yachtall

Boat & Yacht Listings Scraper for Yachtall

Scrape boat & yacht listings from Yachtall: title, price, currency, year, boat type & category, length, cabins, fuel, location, seller and photos. For marine market research, pricing and dealer leads. Independent tool, not affiliated with Yachtall.

Pricing

from $2.00 / 1,000 results

Rating

0.0

(0)

Developer

Haketa

Haketa

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

18 hours ago

Last modified

Features

Limited permissions

Share

Boat & Yacht Listings Scraper for Yachtall ⛵ — Marine Market Data Extractor

Apify Actor Data Format: JSON / CSV / Excel Pagination: 1,000+ Deep Maintenance: Active Proxy: Datacenter Friendly

Extract comprehensive boat and yacht listings from Yachtall — one of Europe's largest international marine marketplaces — at scale, with no login and no coding required. This Yachtall scraper collects full vessel specifications, including asking price, currency, year built, boat type (sailboat, powerboat), category, length, beam, draught, hull material, cabins, fuel, mooring location, high-resolution photo, and selling dealer or broker with their named contact person.

Leave the input empty to scrape all featured boats, or paste specific category and search URLs (e.g. /en/sailboats, /en/motorboats, or custom filtered searches). With unlocked 1,000+ pagination, you can extract thousands of boat listings directly into JSON, CSV, Excel, or API.


⚡ At a glance

FeatureDetail
Target WebsiteYachtall (International Boat & Yacht Marketplace)
Output FormatsJSON, CSV, Excel (XLSX), XML, HTML Table, RSS
Key Data FieldsBoat Name, Price, Currency, Year Built, Type, Length (m), Cabins, Location, Broker/Seller, Contact Person, Photos
Pagination & DepthUnlocked 1,000+ deep pagination across consecutive search pages (?pg=N)
AuthenticationNone required (No cookies, no API key, no account needed)
Average Speed~40–60 enriched boat listings per minute
Proxy RequirementDatacenter proxy friendly (Cost-effective out of the box)
IntegrationsWebhooks, Zapier, Make, Google Sheets, Airbyte, Python, Node.js, cURL

🔎 Why scrape Yachtall?

Yachtall lists over 25,000 boats and yachts from professional brokers, shipyards, and private sellers across Germany, the Netherlands, Italy, France, Spain, Croatia, the UK, and international waters. Each listing represents a comprehensive marine asset dossier: an asking price, structural specifications (hull material, draft, beam), propulsion details (engine, fuel), interior accommodations (cabins, berths), and verified broker contact details.

That data is indispensable for the global maritime industry:

  • Marine Market Valuation & Residual Value: Benchmark asking prices by boat type, shipyard, hull length, and manufacturing year to build accurate appraisal models.
  • Broker & Dealer Lead Generation: Every listing identifies the selling marine brokerage and frequently names the individual sales representative.
  • Inventory & Supply Intelligence: Track which boat classes (catamarans, trawlers, motor yachts, sailing yachts) are surging or depreciating across regional marinas.
  • Finance & Marine Insurance Prospecting: Source recently listed vessels to price yacht loans, warranty products, and marine insurance policies.

Manually navigating boat listings and copying technical specifications across individual tabs is unviable. This Yachtall data extractor automates the entire discovery, pagination, and detail enrichment pipeline.


💼 Core Use Cases & Applications

1. Marine Brokerage Lead Generation

Discover active yacht brokers, dealerships, and charter companies across Europe. Extract business names, contact persons, and inventory portfolios to build high-value B2B partner directories.

2. Vessel Valuation & Price Benchmarking

Calculate real market asking prices for specific hull lengths (e.g. 12m to 15m) and vintage brackets (e.g. 2015–2022). Identify undervalued boats listed below market equilibrium for yacht flipping or brokerage mandates.

3. Marine Insurance & Surveying

Gather historical comparable sales data for yacht surveyors, loss adjusters, and marine underwriters assessing replacement value and damage risks.

4. Marine Equipment & Refit Suppliers

Target owners and dealers of specific boat categories (e.g., steel hulls, multihulls, diesel trawlers) with tailored refit services, rigging hardware, electronics, and marine coatings.

5. PropTech & Marine Market Intelligence

Power marine listing aggregator portals, mobile apps, and investment dashboards with real-time boat inventory feeds.


⛵ Covered Boat Types & Categories

This scraper extracts listings across all boat classifications indexed on Yachtall:

  • ⛵ Sailing Boats & Yachts: Cruisers, Daysailers, Catamarans, Trimarans, Regatta / Racing Yachts, Motorsailers, Gulets, Wooden Classics
  • 🛥️ Motorboats & Power Yachts: Flybridge Yachts, Hardtop / Open Cruisers, Trawlers, Sportsboats, Ribs / Inflatables, Cabin Cruisers, Mega Yachts
  • 🚤 Small Craft & Specialized Vessels: Fishing Boats, Houseboats, Commercial Vessels, Electric Boats, Dinghies

📊 Extracted Data Fields

Every listing is cleaned, typed, and normalized. Here is the full data schema:

🛳️ Listing & Specification Fields

Field NameTypeCoverageDescription
boatIdString🟢 High (100%)Unique Yachtall listing identifier (e.g. s312456)
titleString🟢 High (100%)Vessel name / model headline (e.g. Bavaria Cruiser 46)
brandString🟢 High (95%)Shipyard or manufacturer brand (e.g. Bavaria, Beneteau, Sunseeker)
priceNumber🟢 High (92%)Asking price parsed as a clean numeric value (e.g. 245000)
currencyString🟢 High (92%)Currency code (e.g. EUR, USD, GBP, CHF)
conditionString🟢 High (90%)Vessel condition (used or new)
yearBuiltNumber🟢 High (90%)Construction / launch year (e.g. 2018)
boatTypeString🟢 High (98%)Primary propulsion classification (sailboat, powerboat)
boatCategoryString🟢 High (92%)Specific vessel category (e.g. cruiser, flybridge, catamaran)
lengthMetersNumber🟢 High (94%)Overall length parsed in metric meters (e.g. 14.27)
lengthRawString🟢 High (94%)Raw length string as provided (e.g. 14.27 m / 46.82 ft)
beamRawString🟢 High (88%)Beam / width measurement (e.g. 4.35 m)
draughtRawString🟡 Conditional (75%)Draft / depth measurement (e.g. 2.10 m)
hullMaterialString🟢 High (85%)Hull construction material (e.g. GRP, steel, aluminium, wood)
cabinsNumber🟡 Conditional (80%)Number of passenger / guest cabins
fuelString🟢 High (85%)Fuel type (e.g. diesel, petrol, electric)
conditionDetailString🟢 High (85%)Descriptive condition notes
locationString🟢 High (96%)Geographic location / mooring country & marina
sellerString🟢 High (98%)Marine brokerage, dealership, or private seller name
sellerContactString🟡 Conditional (75%)Named broker contact person or sales advisor
imageString🟢 High (95%)Primary high-resolution photograph URL
descriptionString🟢 High (90%)Descriptive text snippet detailing equipment and refits
listingUrlString🟢 High (100%)Direct canonical URL to the listing on Yachtall
scrapedAtString🟢 High (100%)ISO-8601 extraction timestamp

⚙️ Input Parameters

Configure the scraper easily using the Apify Console or API:

ParameterTypeDefaultDescription
startUrlsArray of Strings["https://www.yachtall.com/en/boats"]List of Yachtall listing or category URLs (e.g. /en/boats, /en/sailboats, /en/motorboats, or a filtered search URL).
includeDetailsBooleantrueFetch each boat's detail page for complete price, technical specs, and broker contact data. Turn off for ultra-fast title+URL indexing.
maxItemsInteger0Maximum vessels to collect across all URLs (0 = unlimited). Prefilled at 60 for rapid exploratory tests.
maxPagesInteger0Maximum consecutive search pages to paginate per URL (0 = unlimited, governed by maxItems).
proxyConfigurationObjectDatacenterApify proxy configuration. Datacenter proxies deliver optimal speed and cost efficiency out of the box.

📦 Example Output

Here is a representative JSON record returned by the actor:

{
"boatId": "s284910",
"title": "Bavaria Cruiser 46 Style",
"brand": "Bavaria",
"price": 289000,
"currency": "EUR",
"condition": "used",
"yearBuilt": 2019,
"boatType": "sailboat",
"boatCategory": "sailing yacht",
"lengthMeters": 14.27,
"lengthRaw": "14.27 m (46.82 ft)",
"beamRaw": "4.35 m",
"draughtRaw": "2.10 m",
"hullMaterial": "GRP",
"cabins": 3,
"fuel": "diesel",
"location": "Croatia, Split Marina",
"seller": "Adria Marine Brokerage",
"sellerContact": "Marko Horvat",
"image": "https://img.yachtall.com/boats/28/49/10/bavaria-cruiser-46-main.jpg",
"description": "Excellently maintained Bavaria Cruiser 46 Style in 3-cabin owner layout. Equipped with bow thruster, furling mainsail, teak cockpit, Garmin navigation pack, heating and solar panels.",
"listingUrl": "https://www.yachtall.com/en/boat/bavaria-cruiser-46-style-s284910",
"scrapedAt": "2026-11-10T13:20:00.000Z"
}

🔄 Comparison: Yachtall Scraper vs. Alternatives

Feature / CapabilityYachtall ScraperManual Search & CopyGeneric Web Scraper
Speed & Throughput~50 boats / min (with specs)1 boat / 4 minSlow and fragile
Technical SpecificationsStructured JSON-LD extractionManual copyingUnstructured text snippets
Seller & Broker ContactNormalized company & contactHard to parseOften missing
1,000+ Deep PaginationUnlocked deep ?pg=N traversalImpracticalBlocked after 2-3 pages
Cost EfficiencyPure HTTP (Datacenter friendly)High labor costHeavy browser overhead
De-duplicationIn-memory ID trackingHigh human errorDuplicate items across pages

💻 How to Use via API

You can trigger runs programmatically using the Apify API and official SDKs:

Python Example

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run_input = {
"startUrls": ["https://www.yachtall.com/en/sailboats"],
"includeDetails": True,
"maxItems": 100,
"maxPages": 0
}
run = client.actor("haketa/yachtall-scraper").call(run_input=run_input)
# Fetch dataset items
items = client.dataset(run["defaultDatasetId"]).list_items().items
for boat in items:
print(f"{boat['title']} ({boat['yearBuilt']}) - {boat['price']} {boat['currency']} | Location: {boat['location']}")

Node.js Example

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const input = {
startUrls: ['https://www.yachtall.com/en/motorboats'],
includeDetails: true,
maxItems: 50,
maxPages: 0
};
const run = await client.actor('haketa/yachtall-scraper').call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Successfully scraped ${items.length} motor yachts!`);

cURL Example

curl "https://api.apify.com/v2/acts/haketa~yachtall-scraper/runs?token=YOUR_APIFY_TOKEN" \
-X POST \
-H "Content-Type: application/json" \
-d '{
"startUrls": ["https://www.yachtall.com/en/boats"],
"includeDetails": true,
"maxItems": 60
}'

📈 Analyzing Marine Market Data with Pandas

Once your dataset is downloaded, you can load it into Pandas for fast exploratory analysis and pricing models:

import pandas as pd
# Load dataset CSV exported from Apify
df = pd.read_csv("yachtall_boats.csv")
# Filter boats with valid price and length
valid_boats = df.dropna(subset=["price", "lengthMeters", "yearBuilt"])
print("Price Statistics (€):")
print(valid_boats["price"].describe())
# Median asking price by boat type and category
pricing_summary = valid_boats.groupby(["boatType", "yearBuilt"])["price"].median()
print("\nMedian Price by Type and Vintage:")
print(pricing_summary.tail(15))
# Top boat brokers by inventory volume
top_brokers = df["seller"].value_counts().head(10)
print("\nTop Active Brokers:")
print(top_brokers)

💡 Best Practices & Pro Tips

  1. Lightweight Indexing First: If you only need vessel names and listing URLs, set includeDetails: false. The scraper runs at maximum speed (~300 boats per minute).
  2. Category-Specific Crawls: For targeted research, paste filtered category URLs (e.g. catamarans or flybridge cruisers in the Mediterranean) into startUrls.
  3. Empty Run Exploration: Running with default {} automatically crawls recent featured vessels on Yachtall.
  4. Scheduled Price Monitoring: Set up recurring monthly schedules to identify seasonal boat price drops across European marinas.
  5. Deduplication: Built-in set tracking prevents duplicate boats from being saved if listings shift between pages during scraping.

❓ Frequently Asked Questions (FAQ)

Do I need a Yachtall account or premium subscription?

No. The scraper gathers publicly available listing data without requiring any login credentials, session cookies, or Yachtall membership.

Can I scrape specific boat brands (e.g., Sunseeker, Bavaria, Beneteau)?

Yes. Perform your search directly on Yachtall, apply filters for shipyard brand, length, price, or location, and copy the resulting search URL into startUrls.

Does the scraper run on Datacenter proxies?

Yes. Yachtall pages load reliably using Apify's standard Datacenter proxy infrastructure, keeping compute and bandwidth costs minimal.

What does setting maxPages to 0 do?

Setting maxPages to 0 enables automatic unlimited pagination. The scraper will continue requesting subsequent pages (?pg=2, ?pg=3, etc.) until your requested maxItems quota is satisfied or the category ends.

Can I export directly to Excel or CSV?

Yes. From the Apify Console dataset view or via API, you can export your records directly as an .xlsx file, .csv, or automatically synchronize with Google Sheets.


🗺️ Key Marine Regions Covered

This actor extracts boats across all major European and international sailing regions:

  • 🌊 Mediterranean Sea: Côte d'Azur (France), Balearic Islands & Costa Brava (Spain), Liguria & Sardinia (Italy), Greek Aegean Islands, Turkish Turquoise Coast
  • 🏝️ Adriatic Sea: Dalmatian Coast, Split, Dubrovnik, Zadar, Istrian Peninsula (Croatia), Venice & Rimini (Italy), Kotor (Montenegro)
  • ⚓ North & Baltic Seas: Kiel Fjord, Flensburg, Hamburg (Germany), IJsselmeer & Zeeland (Netherlands), Stockholm Archipelago & Gothenburg (Sweden), Denmark
  • ⛵ Atlantic & English Channel: Solent, Southampton, Plymouth (UK), Brittany & Arcachon (France), Lisbon & Algarve (Portugal), Canary Islands
  • 🏞️ Inland Waterways & Lakes: Lake Constance (Bodensee), Lake Geneva, Lake Maggiore, Lake Garda, Berlin / Brandenburg Lakes, Friesland Canals

🗄️ Database Storage: SQL / PostgreSQL Schema

For marine analytics teams storing listings in a relational data warehouse, here is an optimized schema with indexing for fast specification and pricing queries:

CREATE TABLE yachtall_boats (
boat_id VARCHAR(32) PRIMARY KEY,
title TEXT NOT NULL,
brand VARCHAR(128),
price NUMERIC(14, 2),
currency VARCHAR(8) DEFAULT 'EUR',
condition VARCHAR(16), -- new | used
year_built INTEGER,
boat_type VARCHAR(32), -- sailboat | powerboat
boat_category VARCHAR(64),
length_meters NUMERIC(6, 2),
beam_raw VARCHAR(64),
draught_raw VARCHAR(64),
hull_material VARCHAR(64),
cabins INTEGER,
fuel VARCHAR(32),
location TEXT,
seller TEXT,
seller_contact TEXT,
image_url TEXT,
description TEXT,
listing_url TEXT NOT NULL,
scraped_at TIMESTAMPTZ DEFAULT NOW()
);
-- Indexing for valuation models and comparable market searches
CREATE INDEX idx_yachtall_type_year ON yachtall_boats (boat_type, year_built);
CREATE INDEX idx_yachtall_price ON yachtall_boats (price, currency);
CREATE INDEX idx_yachtall_length ON yachtall_boats (length_meters);
CREATE INDEX idx_yachtall_seller ON yachtall_boats (seller);

🔄 Automated Workflows & CRM Sync

Connect your scraped yacht listings directly with your operational stack:

  • CRM Ingestion: Automatically route new broker contacts into Salesforce, HubSpot, or Pipedrive via Apify Webhooks.
  • Instant Alerts: Trigger Slack or Telegram notifications whenever a new boat under a specific price threshold appears in your target marina.
  • Automated Spreadsheet Refresh: Sync new listings directly into Google Sheets or Airtable using the Apify Zapier / Make integration.
  • Data Lake Sync: Ingest raw JSON batches directly into AWS S3, Google Cloud Storage, or Snowflake for longitudinal trend analysis.

⚖️ Disclaimer

This actor is an independent data extraction tool developed for market research and public intelligence purposes. It is not affiliated with, endorsed by, or sponsored by Yachtall or its operating entities. All product and brand names are trademarks of their respective holders.


📋 Changelog

Version 1.2 (2026-11)

  • Deep 1,000+ Pagination: Set maxPages default to 0 (minimum: 0) and enabled deep multi-page traversal (?pg=N) governed by maxItems.
  • Enhanced Spec Normalization: Standardized length in meters parsing and refined seller contact splitting.
  • Optimized Prefill Execution: Fast prefill configuration completing in under 60 seconds with full technical specifications.
  • Expanded Documentation: Complete field coverage indicators, pandas analytics recipes, and API examples.

Version 1.1

  • Added parallel detail fetching with concurrency pooling.
  • Added broker and contact person parsing (parseSeller).
  • Mirrored output to Key-Value Store OUTPUT record for synchronous calls.

Version 1.0

  • Initial public release supporting boat search URLs, JSON-LD spec extraction, and multi-format exports.
⌂ 换网址