YachtBuyer APIyachtbuyer.com ↗
Access used and new yacht listings, boat models, broker details, specifications, and Top 100 yacht rankings from YachtBuyer.com via a structured API.
What is the YachtBuyer API?
The YachtBuyer.com API exposes 7 endpoints covering used yacht search, new yacht and boat model browsing, full listing detail pages, broker resolution, news articles, and the Top 100 longest yachts list. The search_used_yachts endpoint alone returns up to 8 filterable fields — including length, budget range, cabin count, and geography — with paginated results carrying price, location, year, engine data, and feature arrays per listing.
curl -X GET 'https://api.parse.bot/scraper/23f33517-d5a7-4432-8891-a6c948622ac1/search_used_yachts?geo=int&page=1&sort_by=relevance&budget_to=10000000&cabins_to=10&length_to=50&budget_from=1000000&cabins_from=3&length_from=30' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace yachtbuyer-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: YachtBuyer SDK — browse used/new yachts, get details, check rankings."""
from parse_apis.yachtbuyer_api import YachtBuyer, Sort, ListingNotFound
client = YachtBuyer()
# Search used yachts sorted by price, filtering by length range
for yacht in client.usedyachts.search(sort_by=Sort.PRICE_ASC, length_from="30", length_to="50", limit=3):
print(yacht.name, yacht.price, yacht.location, yacht.length)
# Drill into one used yacht's full listing detail
yacht = client.usedyachts.search(sort_by=Sort.LENGTH_DESC, limit=1).first()
if yacht:
detail = client.listingdetails.get(url=yacht.url)
print(detail.title, detail.amenities, len(detail.images))
# Browse new yacht models from builders
for model in client.newyachts.search(limit=5):
print(model.name, model.brand)
# Get the top-ranked longest yachts in the world
for ranked in client.rankedyachts.list(limit=5):
print(ranked.rank, ranked.name, ranked.vessel_id)
# Typed error handling on a listing lookup
try:
bad = client.listingdetails.get(url="https://www.yachtbuyer.com/en/fake/for-sale/nonexistent-000000")
print(bad.title)
except ListingNotFound as exc:
print(f"listing gone: {exc.url}")
print("exercised: usedyachts.search / listingdetails.get / newyachts.search / rankedyachts.list")
Search for used yachts for sale with optional filters for length, budget, cabins, geography, and sorting. Returns paginated results with yacht details including price, location, year, engines, and features. Each page returns up to ~30 results.
| Param | Type | Description |
|---|---|---|
| geo | string | Geographic filter (e.g. 'int' for international). |
| page | integer | Page number for pagination. |
| sort_by | string | Sort order for results. |
| budget_to | string | Maximum budget filter in currency units. |
| cabins_to | string | Maximum number of cabins. |
| length_to | string | Maximum length in meters. |
| budget_from | string | Minimum budget filter in currency units. |
| cabins_from | string | Minimum number of cabins. |
| length_from | string | Minimum length in meters. |
{
"type": "object",
"fields": {
"results": "array of yacht listing objects with name, url, brand, price, location, year, engines, features, length, and model",
"has_more": "boolean indicating if more pages are available",
"current_page": "integer current page number",
"total_results": "integer total number of matching listings"
},
"sample": {
"data": {
"results": [
{
"url": "https://www.yachtbuyer.com/en/lurssen/for-sale/pelorus-563e9c43",
"name": "PELORUS",
"year": "2003 (2025)",
"brand": "Lurssen",
"model": "Custom",
"price": "€160,000,000",
"length": "115m",
"engines": "2 x Wartsila 5,300hp",
"features": "Stabilisers, Helipad, Elevator, Spa",
"location": "Montenegro"
}
],
"has_more": true,
"current_page": 1,
"total_results": 2238
},
"status": "success"
}
}About the YachtBuyer API
Search and Filter Listings
search_used_yachts accepts filters for budget_from, budget_to, cabins_from, cabins_to, length_to, geo, sort_by, and page. Each result object includes name, url, brand, price, location, year, engines, features, length, and model. The response also returns total_results, current_page, and has_more for pagination. search_new_yachts and search_boats follow the same pagination shape but return only name, url, and brand — new and builder listings on YachtBuyer.com do not carry price, year, or engine data.
Listing Detail and Broker Data
get_listing_detail takes a full yachtbuyer.com listing URL and returns the complete detail page: images (array of image URLs), brokers (array of objects with name and company), specifications (object keyed by category, each containing key-value spec pairs), amenities (array of strings), description, and ld_json (structured Vehicle schema.org data). When a search result shows a yacht listed by multiple brokers, resolve_overlay accepts an overlay_id from that result and returns an array of direct listing URLs with associated broker name and company — letting you identify all brokerage sources for a single vessel.
Editorial and Reference Data
get_news returns the latest articles from YachtBuyer with title, url, date, and summary per article — useful for tracking market trends or new launches. get_top100_yachts returns a ranked list of the world's longest yachts, each with name, rank, and vessel_id. The vessel_id can be used to construct a URL for a subsequent get_listing_detail call where a listing exists.
The YachtBuyer API is a managed, monitored endpoint for yachtbuyer.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when yachtbuyer.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official yachtbuyer.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a yacht search tool filtered by budget range and cabin count using
search_used_yachtsparameters - Aggregate broker contact information across multiple brokerages for the same vessel using
resolve_overlay - Display full yacht specifications, amenities, and image galleries by calling
get_listing_detailwith a listing URL - Track which new yacht models are available from builders by paginating through
search_new_yachts - Populate a superyacht reference database with ranked vessel names from
get_top100_yachts - Syndicate maritime industry news with structured article metadata from
get_news - Compare used yacht listings by length and location using geographic and length filters on
search_used_yachts
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does YachtBuyer.com have an official developer API?+
What does `resolve_overlay` return and when do I need it?+
overlay_id rather than a direct listing URL. Passing that ID to resolve_overlay returns an array of objects, each with a direct url, broker name, and broker company, so you can retrieve the individual brokerage listings.Do new yacht and boat search results include price, year, or engine data?+
search_new_yachts and search_boats return only name, url, and brand per result. Those fields are not present in new or builder listings on YachtBuyer.com. Full specification detail is available for individual listings via get_listing_detail where a listing page exists.Does the API support filtering used yacht searches by vessel type or hull material?+
search_used_yachts filters cover budget, cabin count, length, geography, sort order, and pagination. Vessel type and hull material filters are not exposed. You can fork this API on Parse and revise it to add those filter parameters if YachtBuyer.com surfaces them on the search interface.