openapi: 3.0.2 info: title: MarineTraffic Vessel Positions API version: 1.0.0 description: Retrieve current and historical AIS vessel positions for single vessels, fleets, areas of interest, ports, and bounding boxes. Includes the modern AIS API and the Legacy Vessel Positions API plus the Vessel Historical Track endpoints. contact: name: MarineTraffic url: https://www.marinetraffic.com/ servers: - url: https://services.marinetraffic.com/api tags: - name: AIS API - name: Vessel Positions (Legacy API) - name: Vessel Historical Track paths: /exportvesseltrack/{api_key}: get: tags: - Vessel Historical Track summary: Single Vessel Historical Positions description: "Get all historical positions of a single vessel for a specific period of time.

Notes\ \ " operationId: exportvesseltrack parameters: - $ref: '#/components/parameters/api_key' - $ref: '#/components/parameters/v_PS01' - $ref: '#/components/parameters/shipid_PS01' - $ref: '#/components/parameters/mmsi_PS01' - $ref: '#/components/parameters/imo_PS01' - $ref: '#/components/parameters/days_PS01' - $ref: '#/components/parameters/fromdate_PS01' - $ref: '#/components/parameters/todate_PS01' - $ref: '#/components/parameters/period_PS01' - $ref: '#/components/parameters/msgtype_PS01' - $ref: '#/components/parameters/protocol' responses: '200': description: Successful Response content: application/json: schema: oneOf: - $ref: '#/components/schemas/200_ps01_default' - $ref: '#/components/schemas/200_ps01_extended' application/xml: schema: oneOf: - $ref: '#/components/schemas/200_ps01_default' - $ref: '#/components/schemas/200_ps01_extended' examples: Default: summary: Simple value: "\n\n \n \n \n \n \n" Extended: summary: Extended value: "\n\n \n\ \ \n \n \n \n \n \n \n \n \n" '400': description: Bad Request content: application/json: schema: oneOf: - $ref: '#/components/schemas/400_ps01_days_out_of_limit' - $ref: '#/components/schemas/400_ps01_missing_ship_identifier' application/xml: schema: oneOf: - $ref: '#/components/schemas/400_ps01_days_out_of_limit' - $ref: '#/components/schemas/400_ps01_missing_ship_identifier' examples: Days out of limit: summary: Days out of limit value: "\n\n \n \n \n" Missing ship identifier: summary: Missing ship identifier value: "\n\n \n \ \ \n \n" '429': description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/429_too_many_requests' application/xml: schema: $ref: '#/components/schemas/429_too_many_requests' examples: Area out of bound: summary: Too Many Requests value: "\n\n \n \ \ \n \n" '/exportvesseltrack/{api_key} ': get: tags: - Vessel Historical Track summary: Vessel Historical Positions in an Area description: "Get vessel historical positions for a single or for all vessels inside an area of your preference for\ \ a specific period of time.\n

\nNotes " operationId: exportvesseltrack_ parameters: - $ref: '#/components/parameters/api_key' - $ref: '#/components/parameters/v_PS01' - $ref: '#/components/parameters/days_PS01' - $ref: '#/components/parameters/fromdate_PS01' - $ref: '#/components/parameters/todate_PS01' - $ref: '#/components/parameters/MINLAT_PS01' - $ref: '#/components/parameters/MAXLAT_PS01' - $ref: '#/components/parameters/MINLON_PS01' - $ref: '#/components/parameters/MAXLON_PS01' - $ref: '#/components/parameters/shipid_PS01_2' - $ref: '#/components/parameters/mmsi_PS01' - $ref: '#/components/parameters/imo_PS01' - $ref: '#/components/parameters/period_PS01' - $ref: '#/components/parameters/msgtype_PS01' - $ref: '#/components/parameters/protocol' responses: '200': description: Successful Response content: application/json: schema: oneOf: - $ref: '#/components/schemas/200_ps01_default' - $ref: '#/components/schemas/200_ps01_extended' application/xml: schema: oneOf: - $ref: '#/components/schemas/200_ps01_default' - $ref: '#/components/schemas/200_ps01_extended' examples: Default: summary: Simple value: "\n\n \n \n \n \n \n" Extended: summary: Extended value: "\n\n \n \n \n\ \ \n \n \n \n \n \n \n" '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/400_ps01_area_out_of_bound' application/xml: schema: $ref: '#/components/schemas/400_ps01_area_out_of_bound' examples: Area out of bound: summary: Area out of bound value: "\n\n \n \ \ \n \n" '429': description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/429_too_many_requests' application/xml: schema: $ref: '#/components/schemas/429_too_many_requests' examples: Area out of bound: summary: Too Many Requests value: "\n\n \n \ \ \n \n" /exportvessels/{api_key}: get: tags: - Vessel Positions (Legacy API) summary: Vessel Positions of a Static Fleet description: "Keep a close eye on the vessel or group of vessels of your interest.

Notes " operationId: exportvessels parameters: - $ref: '#/components/parameters/api_key' - $ref: '#/components/parameters/v_PS02' - $ref: '#/components/parameters/timespan_PS02' - $ref: '#/components/parameters/shiptype_PS02' - $ref: '#/components/parameters/msgtype_PS02' - $ref: '#/components/parameters/protocol' responses: '200': description: Successful Response content: application/json: schema: oneOf: - $ref: '#/components/schemas/200_ps02_default' - $ref: '#/components/schemas/200_ps02_extended' - $ref: '#/components/schemas/200_ps02_full' application/xml: schema: oneOf: - $ref: '#/components/schemas/200_ps02_default' - $ref: '#/components/schemas/200_ps02_extended' - $ref: '#/components/schemas/200_ps02_full' examples: Default: summary: Simple value: "\n\n \n \ \ \n" Extended: summary: Extended value: "\n\n \n \n" Full: summary: Full value: "\n\n \n \n" '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/403_ps02_infinite_timespan' application/xml: schema: $ref: '#/components/schemas/403_ps02_infinite_timespan' examples: Infinite timespan: summary: Infinite timespan value: "\n\n \n \ \ \n \n" '/exportvessels/{api_key} ': get: tags: - Vessel Positions (Legacy API) summary: Vessel Positions of a Dynamic Fleet description: "Monitor vessel activity for your MarineTraffic fleet(s).

Notes " operationId: exportvessels__ parameters: - $ref: '#/components/parameters/api_key' - $ref: '#/components/parameters/v_PS03' - $ref: '#/components/parameters/timespan_PS03' - $ref: '#/components/parameters/shiptype_PS03' - $ref: '#/components/parameters/msgtype_PS03' - $ref: '#/components/parameters/protocol' responses: '200': description: Successful Response content: application/json: schema: oneOf: - $ref: '#/components/schemas/200_ps03_default' - $ref: '#/components/schemas/200_ps03_extended' - $ref: '#/components/schemas/200_ps03_full' application/xml: schema: oneOf: - $ref: '#/components/schemas/200_ps03_default' - $ref: '#/components/schemas/200_ps03_extended' - $ref: '#/components/schemas/200_ps03_full' examples: Default: summary: Simple value: "\n\n \n \ \ \n \n" Extended: summary: Extended value: "\n\n \n \n" Full: summary: Full value: "\n\n \n \n" '429': description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/429_too_many_requests' application/xml: schema: $ref: '#/components/schemas/429_too_many_requests' examples: Area out of bound: summary: Too Many Requests value: "\n\n \n \ \ \n \n" '/exportvessels/{api_key} ': get: tags: - Vessel Positions (Legacy API) summary: Vessel Positions Within a Port description: "Monitor vessel activity in one or more ports of your interest.

Notes " operationId: exportvessels___ parameters: - $ref: '#/components/parameters/api_key' - $ref: '#/components/parameters/v_PS04' - $ref: '#/components/parameters/timespan_PS04' - $ref: '#/components/parameters/shiptype_PS04' - $ref: '#/components/parameters/msgtype_PS04' - $ref: '#/components/parameters/protocol' responses: '200': description: Successful Response content: application/json: schema: oneOf: - $ref: '#/components/schemas/200_ps04_default' - $ref: '#/components/schemas/200_ps04_extended' - $ref: '#/components/schemas/200_ps04_full' application/xml: schema: oneOf: - $ref: '#/components/schemas/200_ps04_default' - $ref: '#/components/schemas/200_ps04_extended' - $ref: '#/components/schemas/200_ps04_full' examples: Default: summary: Simple value: "\n\n \n \n \ \ \n \n \n" Extended: summary: Extended value: "\n\n \n \n \n \n \n" Full: summary: Full value: "\n\n \n \n \n \n \n" '429': description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/429_too_many_requests' application/xml: schema: $ref: '#/components/schemas/429_too_many_requests' examples: Area out of bound: summary: Too Many Requests value: "\n\n \n \ \ \n \n" '/exportvessels/{api_key} ': get: tags: - Vessel Positions (Legacy API) summary: Vessel Positions in a Predefined Bounding Box description: "Monitor vessel activity in an area of your interest.

Notes " operationId: exportvessels____ parameters: - $ref: '#/components/parameters/api_key' - $ref: '#/components/parameters/v_PS05' - $ref: '#/components/parameters/timespan_PS05' - $ref: '#/components/parameters/shiptype_PS05' - $ref: '#/components/parameters/msgtype_PS05' - $ref: '#/components/parameters/protocol' responses: '200': description: Successful Response content: application/json: schema: oneOf: - $ref: '#/components/schemas/200_ps05_default' - $ref: '#/components/schemas/200_ps05_extended' - $ref: '#/components/schemas/200_ps05_full' application/xml: schema: oneOf: - $ref: '#/components/schemas/200_ps05_default' - $ref: '#/components/schemas/200_ps05_extended' - $ref: '#/components/schemas/200_ps05_full' examples: Default: summary: Simple value: "\n\n \n \n \ \ \n \n \n" Extended: summary: Extended value: "\n\n \n \n \n \n \n" Full: summary: Full value: "\n\n \n \n \n \n \n" '429': description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/429_too_many_requests' application/xml: schema: $ref: '#/components/schemas/429_too_many_requests' examples: Area out of bound: summary: Too Many Requests value: "\n\n \n \ \ \n \n" '/exportvessels/{api_key} ': get: tags: - Vessel Positions (Legacy API) summary: Vessel Positions in a Dynamic Bounding Box description: "Retrieve positions for vessels sailing in an area that you define each time you call the service.

\ \ Notes " operationId: exportvessels_____ parameters: - $ref: '#/components/parameters/api_key' - $ref: '#/components/parameters/v_PS06' - $ref: '#/components/parameters/timespan_PS06' - $ref: '#/components/parameters/shiptype_PS06' - $ref: '#/components/parameters/MAXLAT_PS06' - $ref: '#/components/parameters/MINLON_PS06' - $ref: '#/components/parameters/MAXLON_PS06' - $ref: '#/components/parameters/MINLAT_PS06' - $ref: '#/components/parameters/protocol' - $ref: '#/components/parameters/msgtype_PS06' responses: '200': description: Successful Response content: application/json: schema: oneOf: - $ref: '#/components/schemas/200_ps06_default' - $ref: '#/components/schemas/200_ps06_extended' - $ref: '#/components/schemas/200_ps06_full' application/xml: schema: oneOf: - $ref: '#/components/schemas/200_ps06_default' - $ref: '#/components/schemas/200_ps06_extended' - $ref: '#/components/schemas/200_ps06_full' examples: Default: summary: Simple value: "\n\n \n \n\ \ \n \n \n" Extended: summary: Extended value: "\n\n \n \n \n \n \n" Full: summary: Full value: "\n\n \n \n \n \n \n" '429': description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/429_too_many_requests' application/xml: schema: $ref: '#/components/schemas/429_too_many_requests' examples: Area out of bound: summary: Too Many Requests value: "\n\n \n \ \ \n \n" /exportvessel/{api_key}: get: tags: - Vessel Positions (Legacy API) summary: Single Vessel Positions description: "Get the latest available position and voyage information for a particular vessel.

Notes\ \ " operationId: exportvessel parameters: - $ref: '#/components/parameters/api_key' - $ref: '#/components/parameters/v_PS07' - $ref: '#/components/parameters/shipid_PS07' - $ref: '#/components/parameters/imo_PS07' - $ref: '#/components/parameters/mmsi_PS07' - $ref: '#/components/parameters/timespan_PS07' - $ref: '#/components/parameters/msgtype_PS07' - $ref: '#/components/parameters/protocol' responses: '200': description: Successful Response content: application/json: schema: oneOf: - $ref: '#/components/schemas/200_ps07_default' - $ref: '#/components/schemas/200_ps07_extended' application/xml: schema: oneOf: - $ref: '#/components/schemas/200_ps07_default' - $ref: '#/components/schemas/200_ps07_extended' examples: Default: summary: Simple value: "\n\n \n" Extended: summary: Extended value: "\n\n \n\ " '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/400_ps07__missing_ship_identifier' application/xml: schema: $ref: '#/components/schemas/400_ps07__missing_ship_identifier' examples: ' Missing ship identifier': summary: ' Missing ship identifier' value: "\n\n \n \ \ \n \n" '429': description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/429_too_many_requests' application/xml: schema: $ref: '#/components/schemas/429_too_many_requests' examples: Area out of bound: summary: Too Many Requests value: "\n\n \n \ \ \n \n" /exportvessels-custom-area/{api_key}: get: tags: - Vessel Positions (Legacy API) summary: Vessel Positions in a Custom Area description: "Monitor vessel activity in a Custom Area of your interest.

Notes " operationId: exportvessels-custom-area parameters: - $ref: '#/components/parameters/api_key' - $ref: '#/components/parameters/v_PS08' - $ref: '#/components/parameters/timespan_PS08' - $ref: '#/components/parameters/shiptype_generic_PS08' - $ref: '#/components/parameters/shiptype_detailed_PS08' - $ref: '#/components/parameters/msgtype_PS08' - $ref: '#/components/parameters/protocol' responses: '200': description: Successful Response content: application/json: schema: oneOf: - $ref: '#/components/schemas/200_ps08_default' - $ref: '#/components/schemas/200_ps08_extended' - $ref: '#/components/schemas/200_ps08_full' application/xml: schema: oneOf: - $ref: '#/components/schemas/200_ps08_default' - $ref: '#/components/schemas/200_ps08_extended' - $ref: '#/components/schemas/200_ps08_full' examples: Default: summary: Simple value: "\n\n \n \n \ \ \n \n \n" Extended: summary: Extended value: "\n\n \n \n \n \n \n" Full: summary: Full value: "\n\n \n \n \n \n \n" '429': description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/429_too_many_requests' application/xml: schema: $ref: '#/components/schemas/429_too_many_requests' examples: Area out of bound: summary: Too Many Requests value: "\n\n \n \ \ \n \n" '/exportvessels/{api_key} ': get: tags: - AIS API summary: Vessel Positions description: "The latest version of this API endpoint, including significant improvements, is available here.

Please contact your Customer Success Manager to request access to the new endpoint.




\n\ Track vessels of interest anywhere in the world.

Notes" operationId: exportvessels______ parameters: - $ref: '#/components/parameters/api_key' - $ref: '#/components/parameters/v_MTA030AD_1' - $ref: '#/components/parameters/timespan_MTA030AD' - $ref: '#/components/parameters/vessel_type' - $ref: '#/components/parameters/cursor' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/protocol_mandatory' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/200_MTA030AD' '429': description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/429_too_many_requests' '/exportvessels-custom-area/{api_key} ': get: tags: - AIS API summary: Vessel Positions in an Area of Interest description: "The latest version of this API endpoint, including significant improvements, is available here.

Please contact your Customer Success Manager to request access to the new endpoint.




\n\ Track Vessels of interest in a predefined area of interest.

Notes" operationId: exportvessels-custom-area_ parameters: - $ref: '#/components/parameters/api_key' - $ref: '#/components/parameters/v_MTA030AD_2' - $ref: '#/components/parameters/timespan_MTA030AD' - $ref: '#/components/parameters/vessel_type' - $ref: '#/components/parameters/cursor' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/protocol_mandatory' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/200_MTA030AD' '429': description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/429_too_many_requests' '/exportvessel/{api_key} ': get: tags: - AIS API summary: Single Vessel Positions description: "The latest version of this API endpoint, including significant improvements, is available here.

Please contact your Customer Success Manager to request access to the new endpoint.




\n\ Get the latest available position and voyage information for a single vessel.

Notes" operationId: exportvessel_ parameters: - $ref: '#/components/parameters/api_key' - $ref: '#/components/parameters/v_MTA030AD_3' - $ref: '#/components/parameters/shipid_PS07' - $ref: '#/components/parameters/imo_PS07' - $ref: '#/components/parameters/mmsi_PS07' - $ref: '#/components/parameters/timespan_MTA030AD' - $ref: '#/components/parameters/protocol_mandatory' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/200_MTA030AD_single' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/400_ps07__missing_ship_identifier' '429': description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/429_too_many_requests' components: parameters: api_key: name: api_key in: path description: 'API key: 40-character hexadecimal number' required: true schema: type: string cursor: name: cursor in: query description: The pagination cursor provided in the metadata section of the previous response required: false schema: type: string limit: name: limit in: query description: The limit of vessels per page (min=1000, max=5000) required: false schema: type: integer default: 2000 protocol_mandatory: name: protocol in: query description: "Response type. Use one of the following: