Datalastic Historical API

Past AIS positions for vessels and zones.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/datalastic-historical-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

datalastic-historical-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Datalastic Maritime Historical 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: Historical
  description: Past AIS positions for vessels and zones.
paths:
  /inradius_history:
    get:
      operationId: getInRadiusHistory
      tags:
      - Historical
      summary: Historical vessel traffic within a radius
      description: Replays past vessel traffic for a zone. Cost is calculated as the number of days multiplied by the number of vessels per day (maximum 500 vessels per day).
      parameters:
      - name: lat
        in: query
        description: Latitude of the zone center point. Requires lon.
        required: false
        schema:
          type: number
      - name: lon
        in: query
        description: Longitude of the zone center point. Requires lat.
        required: false
        schema:
          type: number
      - name: port_uuid
        in: query
        description: Port UUID to use as the zone center point.
        required: false
        schema:
          type: string
      - name: port_unlocode
        in: query
        description: Port UN/LOCODE to use as the zone center point.
        required: false
        schema:
          type: string
      - name: radius
        in: query
        description: Search radius in nautical miles. Maximum 50 NM.
        required: true
        schema:
          type: number
          maximum: 50
      - $ref: '#/components/parameters/Days'
      - $ref: '#/components/parameters/From'
      - $ref: '#/components/parameters/To'
      responses:
        '200':
          description: Historical vessel traffic for the requested zone and period.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VesselListResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /vessel_history:
    get:
      operationId: getVesselHistory
      tags:
      - Historical
      summary: Historical vessel track
      description: Returns past AIS positions for a vessel identified by uuid, mmsi, or imo, filtered by a days lookback or an explicit from/to date range in YYYY-MM-DD format. A maximum of 31 days may be requested from the from date. Each day of data per vessel deducts 1 credit.
      parameters:
      - $ref: '#/components/parameters/Uuid'
      - $ref: '#/components/parameters/Mmsi'
      - $ref: '#/components/parameters/Imo'
      - $ref: '#/components/parameters/Days'
      - $ref: '#/components/parameters/From'
      - $ref: '#/components/parameters/To'
      responses:
        '200':
          description: Historical track positions for the vessel.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VesselHistoryResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
components:
  schemas:
    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.
    VesselHistoryResponse:
      type: object
      properties:
        data:
          type: object
          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.
            positions:
              type: array
              description: Historical track positions.
              items:
                type: object
                properties:
                  lat:
                    type: number
                  lon:
                    type: number
                  speed:
                    type: number
                  course:
                    type: number
                  heading:
                    type: number
                  destination:
                    type: string
                  last_position_epoch:
                    type: integer
                  last_position_UTC:
                    type: string
        meta:
          $ref: '#/components/schemas/Meta'
    VesselPosition:
      type: object
      description: Real-time AIS position data for a vessel.
      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_iso:
          type: string
          description: Flag country ISO code.
        type:
          type: string
          description: Vessel type.
        type_specific:
          type: string
          description: Vessel subtype.
        lat:
          type: number
          description: Latitude of the last reported position.
        lon:
          type: number
          description: Longitude of the last reported position.
        speed:
          type: number
          description: Speed over ground in knots.
        course:
          type: number
          description: Course over ground in degrees.
        heading:
          type: number
          description: True heading in degrees.
        navigation_status:
          type: string
          description: AIS navigational status.
        destination:
          type: string
          description: Reported destination.
        last_position_epoch:
          type: integer
          description: Unix timestamp of the last position report.
        last_position_UTC:
          type: string
          description: UTC timestamp of the last position report.
    Error:
      type: object
      properties:
        meta:
          type: object
          properties:
            success:
              type: boolean
            error:
              type: string
              description: Error message, for example Too Many Requests.
    VesselListResponse:
      type: object
      properties:
        data:
          type: object
          properties:
            vessels:
              type: array
              items:
                $ref: '#/components/schemas/VesselPosition'
            total:
              type: integer
              description: Number of vessels returned.
        meta:
          $ref: '#/components/schemas/Meta'
  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'
  parameters:
    Mmsi:
      name: mmsi
      in: query
      description: Vessel Maritime Mobile Service Identity (9-digit number).
      required: false
      schema:
        type: string
    From:
      name: from
      in: query
      description: Start date for the data in YYYY-MM-DD format. A maximum of 31 days may be requested from this date.
      required: false
      schema:
        type: string
        format: date
    Days:
      name: days
      in: query
      description: Number of days back from today to return data for (for example days=5 returns the last 5 days).
      required: false
      schema:
        type: integer
    Imo:
      name: imo
      in: query
      description: Vessel International Maritime Organization number (7-digit).
      required: false
      schema:
        type: string
    To:
      name: to
      in: query
      description: End date for the data in YYYY-MM-DD format.
      required: false
      schema:
        type: string
        format: date
    Uuid:
      name: uuid
      in: query
      description: Datalastic vessel UUID.
      required: false
      schema:
        type: string
  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.