---
title: "Search vessel registry"
method: GET
path: "/api/v0/vessel_find"
tags: ["Ship Static Data"]
---

# Search vessel registry

`GET /api/v0/vessel_find`

## Request

- Base URL: `https://api.datalastic.com`
- URL: `https://api.datalastic.com/api/v0/vessel_find`
- Auth: one of:
  - API key in header `x-api-key`
  - API key in query parameter `api-key`
- TypeScript: <https://skmtc.dev/datalastic/apis/datalastic-maritime-api/docs/api/v0/vessel_find/get.ts> (a function with typed inputs; its response is checked against the schema)

Search the vessel database by any combination of type, name,
dimensions, country, or year built, without needing a specific MMSI or
IMO. Returns static specifications for each match.

Returns up to 500 results per page. When more results exist, `meta.next`
carries a pagination token. Pass it back as the `next` parameter to
fetch the following page, and stop when `meta.next` is absent.

**Credit cost:** 1 per vessel found, capped at 500 credits per request.

## Query parameters

- `name` string
- `country_iso` string
- `type` string
- `type_specific` string
- `fuzzy` 0 | 1
- `_empty_` boolean
- `gross_tonnage_min` integer
- `gross_tonnage_max` integer
- `deadweight_min` integer
- `deadweight_max` integer
- `length_min` number, float
- `length_max` number, float
- `breadth_min` number, float
- `breadth_max` number, float
- `year_built_min` integer
- `year_built_max` integer
- `next` string

## Response `200`

Matching vessels.

- object
  - `data` VesselInfo[]
    - `uuid` string, uuid
    - `name` string
    - `mmsi` string
    - `imo` string
    - `callsign` string
    - `country_iso` string
    - `country_name` string
    - `type` string
    - `type_specific` string
    - `gross_tonnage` integer, nullable
    - `deadweight` integer, nullable
    - `teu` integer, nullable: Twenty-foot equivalent unit capacity (container ships only).
    - `liquid_gas` number, nullable: Liquid gas capacity in cubic metres.
    - `length` number, float, nullable: Length overall in metres.
    - `breadth` number, float, nullable: Beam in metres.
    - `draught_avg` number, float, nullable
    - `draught_max` number, float, nullable
    - `speed_avg` number, float, nullable: Typical service speed in km/h.
    - `speed_max` number, float, nullable: Maximum speed in km/h.
    - `year_built` integer, nullable
    - `home_port` string, nullable
  - `meta` Meta
    - `duration` number, float: Server-side query time in seconds.
    - `endpoint` string
    - `success` boolean
    - `next` string: Pagination token. Present on paginated endpoints (`/vessel_find`) only when more results exist. Pass it back as the `next` query parameter to fetch the following page.

## Other responses

- `400`: Missing required parameter or invalid parameter value.
- `401`: Invalid or expired API key.
- `402`: API key is valid but the credit balance is exhausted or the subscription has expired. Purchase more credits to continue.
- `404`: Requested vessel, port, or resource was not found. No credits deducted.
- `429`: More than 600 API calls in a single minute. The response carries a `Retry-After` header with the wait in seconds. Use it for backoff.
- `500`: Server-side error. Retry the request.

## Changes

- **2026-09-08** `a29cf323d1c3`: 2 warning, 19 info
  - deleted the `query` request parameter `api-key`
  - deleted the `query` request parameter `page`
  - added the new optional `query` request parameter `_empty_`
  - added the new optional `query` request parameter `breadth_max`
  - …17 more
- **2026-05-12** `0b2f634e7f91`: 1 info
  - added the new optional `query` request parameter `fuzzy`

[Operation history](https://skmtc.dev/datalastic/apis/datalastic-maritime-api/changes/api/v0/vessel_find/get.md)

---

[API](https://skmtc.dev/datalastic/apis/datalastic-maritime-api.md) - [All operations](https://skmtc.dev/datalastic/apis/datalastic-maritime-api/llms.txt) - [OpenAPI document](https://skmtc.dev/datalastic/apis/datalastic-maritime-api/revisions/2097cdbffcb4?raw)
