Datalastic Vessel Data API
Static ship specifications and vessel search.
Static ship specifications and vessel search.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/datalastic-vessel-data-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Datalastic Maritime Historical Vessel Data API
description: Datalastic provides real-time AIS vessel tracking, historical ship movements, vessel specifications, and global port data over REST. A database of 750,000+ ships is queryable by MMSI, IMO, or Datalastic UUID. All endpoints are served from https://api.datalastic.com/api/v0 and authenticate with an api-key query parameter tied to a subscription plan. Usage is metered in monthly database credits - most endpoints deduct one credit per vessel or port returned, and historical endpoints deduct one credit per vessel per day of data. All plans share a limit of 600 API calls per minute.
version: v0
contact:
name: Datalastic
url: https://datalastic.com
servers:
- url: https://api.datalastic.com/api/v0
description: Datalastic production API
security:
- apiKey: []
tags:
- name: Vessel Data
description: Static ship specifications and vessel search.
paths:
/vessel_info:
get:
operationId: getVesselInfo
tags:
- Vessel Data
summary: Ship specifications
description: Returns static specifications for a single vessel identified by uuid, mmsi, or imo - MMSI, IMO, country name, call sign, ship type and subtype, gross tonnage, deadweight, TEU, length, breadth, year built, and home port. Deducts 1 credit per vessel.
parameters:
- $ref: '#/components/parameters/Uuid'
- $ref: '#/components/parameters/Mmsi'
- $ref: '#/components/parameters/Imo'
responses:
'200':
description: Static vessel specification data.
content:
application/json:
schema:
$ref: '#/components/schemas/VesselInfoResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
/vessel_find:
get:
operationId: findVessels
tags:
- Vessel Data
summary: Vessel finder search
description: Searches the 750,000+ ship database by name (exact or fuzzy match), type, specific subtype, flag country, gross tonnage, deadweight, dimensions, and year built. Deducts 1 credit per vessel found.
parameters:
- name: name
in: query
description: Vessel name to search for.
required: false
schema:
type: string
- name: fuzzy
in: query
description: Set to 1 for similar-name matching (Eric matches Erica); 0 for exact name matching.
required: false
schema:
type: integer
enum:
- 0
- 1
- $ref: '#/components/parameters/VesselType'
- $ref: '#/components/parameters/VesselTypeSpecific'
- name: country_iso
in: query
description: Flag country of the vessels as a 2-letter ISO code.
required: false
schema:
type: string
- name: gross_tonnage_min
in: query
description: Minimum gross tonnage.
required: false
schema:
type: number
- name: gross_tonnage_max
in: query
description: Maximum gross tonnage.
required: false
schema:
type: number
- name: deadweight_min
in: query
description: Minimum deadweight tonnage.
required: false
schema:
type: number
- name: deadweight_max
in: query
description: Maximum deadweight tonnage.
required: false
schema:
type: number
- name: length_min
in: query
description: Minimum vessel length in meters.
required: false
schema:
type: number
- name: length_max
in: query
description: Maximum vessel length in meters.
required: false
schema:
type: number
- name: breadth_min
in: query
description: Minimum vessel breadth in meters.
required: false
schema:
type: number
- name: breadth_max
in: query
description: Maximum vessel breadth in meters.
required: false
schema:
type: number
- name: year_built_min
in: query
description: Earliest year built.
required: false
schema:
type: integer
- name: year_built_max
in: query
description: Latest year built.
required: false
schema:
type: integer
- name: next
in: query
description: Pagination cursor for retrieving the next page of results.
required: false
schema:
type: string
responses:
'200':
description: Vessels matching the search criteria.
content:
application/json:
schema:
$ref: '#/components/schemas/VesselFindResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/TooManyRequests'
components:
schemas:
VesselFindResponse:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/VesselInfo'
meta:
$ref: '#/components/schemas/Meta'
VesselInfoResponse:
type: object
properties:
data:
$ref: '#/components/schemas/VesselInfo'
meta:
$ref: '#/components/schemas/Meta'
VesselInfo:
type: object
description: Static ship specification data.
properties:
uuid:
type: string
description: Datalastic vessel UUID.
name:
type: string
description: Vessel name.
mmsi:
type: string
description: Maritime Mobile Service Identity.
imo:
type: string
description: International Maritime Organization number.
country_name:
type: string
description: Flag country name.
callsign:
type: string
description: Radio call sign.
type:
type: string
description: Ship type.
type_specific:
type: string
description: Ship subtype.
gross_tonnage:
type: number
description: Gross tonnage.
deadweight:
type: number
description: Deadweight tonnage.
teu:
type: number
description: Container capacity in TEU.
length:
type: number
description: Length in meters.
breadth:
type: number
description: Breadth in meters.
year_built:
type: integer
description: Year the vessel was built.
home_port:
type: string
description: Registered home port.
Meta:
type: object
description: Response metadata.
properties:
duration:
type: number
description: Server processing time in seconds.
endpoint:
type: string
description: The endpoint that served the request.
success:
type: boolean
description: Whether the request succeeded.
Error:
type: object
properties:
meta:
type: object
properties:
success:
type: boolean
error:
type: string
description: Error message, for example Too Many Requests.
parameters:
Imo:
name: imo
in: query
description: Vessel International Maritime Organization number (7-digit).
required: false
schema:
type: string
VesselType:
name: type
in: query
description: Vessel type filter (for example Cargo, Tanker, Fishing).
required: false
schema:
type: string
Mmsi:
name: mmsi
in: query
description: Vessel Maritime Mobile Service Identity (9-digit number).
required: false
schema:
type: string
VesselTypeSpecific:
name: type_specific
in: query
description: Vessel subtype filter (for example Crude Oil Tanker). Can be used on its own or combined with type. Use _empty_ to include or exclude vessels whose type is NULL.
required: false
schema:
type: string
Uuid:
name: uuid
in: query
description: Datalastic vessel UUID.
required: false
schema:
type: string
responses:
TooManyRequests:
description: Rate limit exceeded. All plans share a limit of 600 API calls per minute.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
Unauthorized:
description: Missing or invalid api-key.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NotFound:
description: No vessel or resource matched the supplied identifier.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
securitySchemes:
apiKey:
type: apiKey
in: query
name: api-key
description: Personal API key issued with a Datalastic subscription. Passed as the api-key query parameter on every request.