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: 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