boat.vin

Developer API

Salvage boats, jet skis and HINs, as JSON

Every boat and jet ski at Copart and IAA in the US and Canada, upcoming and sold with the last bid, plus a HIN decoder. Plain REST, one key, paid with SalvageAlert credits.

50 free credits
with a free account
60+ requests/min
more on paid plans
OpenAPI 3
for Postman and SDK generators

Quick start

  1. 1

    Create a free account

    It is a SalvageAlert account, and it comes with 50 API credits.

  2. 2

    Create a key

    In your account, under API. Copy it: it is shown once.

  3. 3

    Make a call

    Send it as a Bearer token. Each call says what it cost and what is left.

curl "https://salvagealert.com/api/v1/boats?status=live&kind=pwc&sort=ending&per_page=10" \
  -H "Authorization: Bearer $SA_API_KEY"

Authentication

Every request carries your key in the Authorization header. Keys start with sa_live_, work on boat.vin’s endpoints and on all of SalvageAlert’s, and can be revoked at any time from your account. Keep them on your server: never in a web page or an app bundle.

Base URL

https://salvagealert.com/api/v1

Header

Authorization: Bearer sa_live_…

Credits and limits

Calls are paid with SalvageAlert API credits, the same balance as the car API. A free boat.vin account starts with 50. Paid SalvageAlert plans add 500 or 5,000 a month, and credit packs top up any account. Errors are never charged.

EndpointCost
GET /boats1 credit per page
GET /boats/{source}/{lot_key}1 credit
GET /boats/hin/{hin}1 credit
GET /boats/makesFree

Every response carries x-credits-charged, x-credits-balance, x-ratelimit-limit, x-ratelimit-remaining and x-request-id. The free plan allows 60 requests a minute.

Buy credits

1 credit

GET/boats/{source}/{lot_key}

One lot: photos, HIN, damage, every sale it went through, its bid trail and what similar boats sold for.

curl "https://salvagealert.com/api/v1/boats/copart_us/70849645" \
  -H "Authorization: Bearer $SA_API_KEY"

Response

{
  "boat": {
    "id": "copart_us:70849645",
    "year": 2023, "make": "Yamaha", "model": "FX CRUISER",
    "hin": "YAMA2324F323",
    "status": "live",
    "price": { "value": 3100, "currency": "USD", "basis": "current_bid" },
    "primaryDamage": "UNDERCARRIAGE", "title": "Salvage",
    "hours": 41, "engine": null, "lengthFt": null,
    "images": ["https://…/1.jpg", "…"],
    "bidHistory": [{ "ts": 1793500000, "bid": 2600 }, { "ts": 1793590000, "bid": 3100 }],
    "saleEvents": [{ "saleDate": 1791200000000, "highBid": 2800, "currency": "USD", "kind": "auction" }],
    "auctionUrl": "https://www.copart.com/lot/70849645",
    "…": "63 fields in all"
  },
  "comps": {
    "basis": "2021–2025 Yamaha jet skis",
    "count": 12, "median": 4100, "low": 2600, "high": 6200,
    "currency": "USD", "items": [ … ]
  },
  "similar": [ … ]
}

1 credit

GET/boats/hin/{hin}

Decode a HIN and list every Copart and IAA listing that carried it.

curl "https://salvagealert.com/api/v1/boats/hin/SERR2727K900" \
  -H "Authorization: Bearer $SA_API_KEY"

Response

{
  "hin": "SERR2727K900",
  "decode": {
    "mic": "SER",
    "builder": "Sea Ray",
    "serial": "R2727",
    "format": "current",
    "format_label": "Current format (since Aug 1984)",
    "productionMonth": 11,
    "productionYear": 1999,
    "modelYear": 2000,
    "certain": true,
    "issues": []
  },
  "builder_code": { "mic": "SER", "lots": 4, "makes": [{ "make": "Sea Ray", "count": 3 }] },
  "listings": []
}

Free

GET/boats/makes

The values the filters take: makes, hull types, damage, titles, regions.

curl "https://salvagealert.com/api/v1/boats/makes?kind=pwc" \
  -H "Authorization: Bearer $SA_API_KEY"

Errors

Errors come back as JSON with a code you can switch on, and a request id to quote to support. None of them costs a credit.

400invalid_source · invalid_lot_key · invalid_hinA parameter is wrong.
401invalid_credentialsMissing, wrong or revoked key.
402insufficient_creditsThe balance is too low for this call.
404not_foundNo such lot.
429rate_limitToo many requests this minute; retry after x-ratelimit-reset.
{ "error": { "code": "insufficient_credits", "message": "…" }, "request_id": "4895a721-…" }

Need more than boats?

The same key reaches SalvageAlert’s full API: cars, trucks and motorcycles at Copart and IAA in four countries, webhooks, VIN watches and price statistics.