openapi: 3.1.0 info: title: VesselFinder AIS Containers Distance API description: 'REST API providing real-time and on-demand AIS vessel positions, voyage information, and vessel master data from the VesselFinder global AIS network (terrestrial and satellite). Authentication is performed via the `userkey` query parameter. Responses default to JSON and may be requested as XML by setting `format=xml`. Most pay-per-use methods deduct credits from the account''s balance; subscription methods (VesselsList, LiveData) are billed by fleet or area size and dataset selection. ' version: '1.0' contact: name: VesselFinder API Support url: https://api.vesselfinder.com/docs/ license: name: Commercial — VesselFinder Terms of Use url: https://www.vesselfinder.com/terms servers: - url: https://api.vesselfinder.com description: VesselFinder AIS API security: - UserKey: [] tags: - name: Distance description: Sea-route distance and geometry between two points. paths: /distance: get: tags: - Distance summary: Get Sea Distance description: Return the shortest sea route between two coordinates as a GeoJSON LineString together with distance in meters. operationId: getDistance parameters: - $ref: '#/components/parameters/userkey' - name: from in: query required: true description: Origin as `lon,lat`. schema: type: string example: 27.3711,43.256 - name: to in: query required: true description: Destination as `lon,lat`. schema: type: string example: 128.345,-34.223 - name: gateways in: query description: Comma-separated list of allowed gateways (suez, panama, kiel, oresund, messina, corinth, malacca, drake, magellan, northeast, northwest). schema: type: string - name: ECA in: query description: Emission Control Area preference. schema: type: string enum: - allow - deny - minimize - name: EPSG3857 in: query description: Set to 1 to return coordinates in WebMercator (EPSG:3857). schema: type: integer enum: - 0 - 1 responses: '200': description: GeoJSON Feature describing the computed route. content: application/json: schema: $ref: '#/components/schemas/DistanceResponse' '401': $ref: '#/components/responses/Unauthorized' '402': $ref: '#/components/responses/PaymentRequired' components: responses: Unauthorized: description: Invalid or missing userkey. PaymentRequired: description: Insufficient credits or expired access. parameters: userkey: name: userkey in: query required: true description: Personal API key issued by VesselFinder. schema: type: string schemas: DistanceResponse: type: object description: GeoJSON Feature describing the computed route. properties: type: type: string example: Feature properties: type: object properties: Crossing: type: array items: type: string description: Ordered list of canals, straits, and passages crossed. Distance: type: number description: Route length in meters. DistanceECA: type: number description: Distance spent in ECA zones in meters. geometry: type: object properties: type: type: string example: LineString coordinates: type: array items: type: array items: type: number securitySchemes: UserKey: type: apiKey in: query name: userkey