Digitraffic (Fintraffic) AIS V1 API

Automatic Identification System (AIS) APIs

GitHub OpenAPI

Operations 3

GET /api/ais/v1/vessels Return latest vessel metadata for all known vessels #
GET /api/ais/v1/vessels/{mmsi} Return latest vessel metadata by mmsi #
GET /api/ais/v1/locations Find latest vessel locations by mmsi and optional timestamp interval in… #

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/digitraffic-fi:digitraffic-fi-ais-v1-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

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 Specification

digitraffic-fi-ais-v1-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Digitraffic Marine AIS V1 API
  version: 'Branch: master, tag: 2026.11.2-1 #0bde4c1 @ 2026-11-03T08:19:21+0000'
  description: 'OpenAPI document


    Digitraffic is a service operated by Fintraffic, offering real time traffic information. Currently the service covers *road, marine and rail* traffic. More information can be found at the Digitraffic website


    The service has a public Google-group meri.digitraffic.fi for communication between developers, service administrators and Fintraffic. The discussion in the forum is mostly in Finnish, but you''re welcome to communicate in English too.


    ### General notes of the API

    * Many Digitraffic APIs use the GeoJSON format. The definition of GeoJSON can be found at https://tools.ietf.org/html/rfc7946.

    * For dates and times, the ISO 8601 format is used with "Zulu" zero offset from UTC unless otherwise specified (i.e., "yyyy-mm-ddThh:mm:ss[.mmm]Z"). E.g. 2019-11-01T06:30:00Z.'
  termsOfService: https://www.digitraffic.fi/en/terms-of-service/
  contact:
    name: Digitraffic / Fintraffic
    url: https://www.digitraffic.fi/
  license:
    name: Creative Commons 4.0 BY
    url: https://creativecommons.org/licenses/by/4.0/
servers:
- url: https://meri.digitraffic.fi
tags:
- name: AIS V1
  description: Automatic Identification System (AIS) APIs
paths:
  /api/ais/v1/vessels:
    get:
      tags:
      - AIS V1
      summary: Return latest vessel metadata for all known vessels
      operationId: allVessels
      parameters:
      - name: from
        in: query
        description: From timestamp in milliseconds from Unix epoch 1970-01-01T00:00:00Z. Default value is 24 hours in the past.
        required: false
        schema:
          type: integer
          format: int64
      - name: to
        in: query
        description: To timestamp
        required: false
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: Successful retrieval of vessel metadata
          content:
            application/json;charset=UTF-8:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/VesselMetadataJsonV1'
        '500':
          description: Internal server error
  /api/ais/v1/vessels/{mmsi}:
    get:
      tags:
      - AIS V1
      summary: Return latest vessel metadata by mmsi
      operationId: vesselMetadataByMssi
      parameters:
      - name: mmsi
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: Successful retrieval of vessel metadata
          content:
            application/json;charset=UTF-8:
              schema:
                $ref: '#/components/schemas/VesselMetadataJsonV1'
        '404':
          description: Vessel metadata not found
        '500':
          description: Internal server error
  /api/ais/v1/locations:
    get:
      tags:
      - AIS V1
      summary: Find latest vessel locations by mmsi and optional timestamp interval in…
      operationId: vesselLocationsByMssiAndTimestamp
      parameters:
      - name: mmsi
        in: query
        description: Maritime Mobile Service Identity (MMSI)
        required: false
        schema:
          type: integer
          format: int32
      - name: from
        in: query
        description: From timestamp in milliseconds from Unix epoch 1970-01-01T00:00:00Z. Default value is 24 hours in the past.
        required: false
        schema:
          type: integer
          format: int64
      - name: to
        in: query
        description: To timestamp
        required: false
        schema:
          type: integer
          format: int64
      - name: radius
        in: query
        description: Radius of search circle in kilometers (km) using haversine formula.
        required: false
        schema:
          type: number
          format: double
      - name: latitude
        in: query
        description: Latitude of the point
        required: false
        schema:
          type: number
          format: double
      - name: longitude
        in: query
        description: Longitude of the point
        required: false
        schema:
          type: number
          format: double
      responses:
        '200':
          description: OK
          content:
            application/json;charset=UTF-8:
              schema:
                $ref: '#/components/schemas/VesselLocationFeatureCollectionV1'
            application/geo+json;charset=UTF-8:
              schema:
                $ref: '#/components/schemas/VesselLocationFeatureCollectionV1'
            application/vnd.geo+json;charset=UTF-8:
              schema:
                $ref: '#/components/schemas/VesselLocationFeatureCollectionV1'
components:
  schemas:
    VesselMetadataJsonV1:
      required:
      - callSign
      - destination
      - draught
      - eta
      - imo
      - mmsi
      - name
      - posType
      - referencePointA
      - referencePointB
      - referencePointC
      - referencePointD
      - shipType
      - timestamp
      type: object
      properties:
        name:
          type: string
          description: Name of the vessel, maximum 20 characters using 6-bit ASCII
        timestamp:
          type: integer
          description: Record timestamp in milliseconds from Unix epoch
          format: int64
        shipType:
          maximum: 255
          minimum: 0
          type: integer
          description: Vessel's AIS ship type
          format: int32
        mmsi:
          type: integer
          description: Maritime Mobile Service Identity
          format: int32
        draught:
          maximum: 255
          minimum: 0
          type: integer
          description: Maximum present static draught in 1/10m, 255 = draught 25.5 m or greater, 0 = not available (default)
          format: int32
        imo:
          type: integer
          description: Vessel International Maritime Organization (IMO) number
          format: int32
        callSign:
          type: string
          description: Call sign, maximum 7 6-bit ASCII characters
        eta:
          type: integer
          description: 'Estimated time of arrival; MMDDHHMM UTC

            Bits 19-16: month; 1-12; 0 = not available = default

            Bits 15-11: day; 1-31; 0 = not available = default

            Bits 10-6: hour; 0-23; 24 = not available = default

            Bits 5-0: minute; 0-59; 60 = not available = default

            For SAR aircraft, the use of this field may be decided by the responsible administration'
          format: int64
        posType:
          maximum: 15
          minimum: 0
          type: integer
          description: 'Type of electronic position fixing device: 0 = undefined (default)

            1 = GPS

            2 = GLONASS

            3 = combined GPS/GLONASS

            4 = Loran-C

            5 = Chayka

            6 = integrated navigation system

            7 = surveyed

            8 = Galileo,

            9-14 = not used

            15 = internal GNSS'
          format: int32
        referencePointA:
          type: integer
          description: Reference point for reported position dimension A
          format: int64
        referencePointB:
          type: integer
          description: Reference point for reported position dimension B
          format: int64
        referencePointC:
          type: integer
          description: Reference point for reported position dimension C
          format: int64
        referencePointD:
          type: integer
          description: Reference point for reported position dimension D
          format: int64
        destination:
          type: string
          description: Destination, maximum 20 characters using 6-bit ASCII
      description: Vessel metadata model
    VesselLocationPropertiesV1:
      required:
      - cog
      - mmsi
      - navStat
      - posAcc
      - raim
      - rot
      - sog
      - timestamp
      - timestampExternal
      type: object
      properties:
        mmsi:
          type: integer
          description: Maritime Mobile Service Identity (nine digit identifier)
          format: int32
        sog:
          type: number
          description: Speed over ground in knots, 102.3 = not available
          format: double
        cog:
          maximum: 360
          minimum: 0
          type: number
          description: Course over ground in degrees, 360 = not available (default)
          format: double
        navStat:
          maximum: 15
          minimum: 0
          type: integer
          description: "Navigational status. \nValue range between 0 - 15. \n0 = under way using engine, \n1 = at anchor, \n2 = not under command, \n3 = restricted maneuverability, \n4 = constrained by her draught, \n5 = moored, \n6 = aground, \n7 = engaged in fishing, \n8 = under way sailing, \n9 = reserved for future amendment of navigational status for ships carrying DG, HS, or MP, or IMO hazard or pollutant category C, high speed craft (HSC), \n10 = reserved for future amendment of navigational status for ships carrying dangerous goods (DG), harmful substances (HS) or marine pollutants (MP), or IMO hazard or pollutant category A, wing in ground (WIG), \n11 = power-driven vessel towing astern (regional use),\n12 = power-driven vessel pushing ahead or towing alongside (regional use), \n13 = reserved for future use, \n14 = AIS-SART (active), MOB-AIS, EPIRB-AIS, \n15 = default"
          format: int32
        rot:
          maximum: 127
          minimum: -128
          type: integer
          description: "Rate of turn, ROT[AIS]. \nValues range between -128 - 127. –128 indicates that value is not available (default).\nCoded by ROT[AIS] = 4.733 SQRT(ROT[IND]) where ROT[IND] is the Rate of Turn degrees per minute, as indicated by an external sensor. \n+127 = turning right at 720 degrees per minute or higher\n-127 = turning left at 720 degrees per minute or higher."
          format: int32
        posAcc:
          type: boolean
          description: Position accuracy, true = high, false = low
        raim:
          type: boolean
          description: Receiver autonomous integrity monitoring (RAIM) flag of electronic position fixing device
        heading:
          maximum: 359
          minimum: 0
          type: integer
          description: Degrees (0-359), 511 = not available (default)
          format: int32
        timestamp:
          maximum: 63
          minimum: 0
          type: integer
          description: "UTC second when the report was generated by the electronic position system (EPFS). \nValues: \n0-59 UTC second, \n60 if time stamp is not available, which should also be the default value, \n61 if positioning system is in manual input mode, \n62 if electronic position fixing system operates in estimated (dead reckoning) mode, \n63 if the positioning system is inoperative)"
          format: int64
        timestampExternal:
          type: integer
          description: Location record timestamp in milliseconds from Unix epoch.
          format: int64
      description: GeoJSON Properties object
    VesselLocationFeatureV1:
      required:
      - geometry
      - mmsi
      - properties
      type: object
      properties:
        mmsi:
          type: integer
          description: Maritime Mobile Service Identity (nine digit identifier)
          format: int32
        type:
          type: string
          description: GeoJSON object type
        geometry:
          $ref: '#/components/schemas/Point'
        properties:
          $ref: '#/components/schemas/VesselLocationPropertiesV1'
        additionalProperties:
          type: object
          additionalProperties:
            type: object
      description: GeoJSON Feature object
    VesselLocationFeatureCollectionV1:
      required:
      - dataUpdatedTime
      - features
      type: object
      properties:
        type:
          type: string
          description: GeoJSON object type
        dataUpdatedTime:
          type: string
          description: Data last updated time
          format: date-time
        features:
          type: array
          items:
            $ref: '#/components/schemas/VesselLocationFeatureV1'
        additionalProperties:
          type: object
          additionalProperties:
            type: object
      description: GeoJSON FeatureCollection object
    Point:
      required:
      - coordinates
      - type
      type: object
      properties:
        type:
          type: string
          example: Point
          enum:
          - Point
        coordinates:
          type: array
          description: 'An array of coordinates. Coordinates are in WGS84 format in decimal degrees: [LONGITUDE, LATITUDE, {ALTITUDE}]. Altitude is optional and measured in meters.'
          example:
          - 26.97677492
          - 65.3467385
          items:
            type: number
            description: 'An array of coordinates. Coordinates are in WGS84 format in decimal degrees: [LONGITUDE, LATITUDE, {ALTITUDE}]. Altitude is optional and measured in meters.'
            format: double
        additionalProperties:
          type: object
          additionalProperties:
            type: object
      description: GeoJSON Point Geometry object