---
title: "Get sea route between locations."
method: GET
path: "/route/v2/sea/{locations}"
tags: ["Shortest"]
---

# Get sea route between locations.

`GET /route/v2/sea/{locations}`

This endpoints returns the route between a source location and a target location on sea, along with the route distance (in meters), duration (in milliseconds) and the crossed areas. We return the shortest route sailed considering traffic separation schemes and port entries. 

### Locations: origin, destination and waypoints

Locations can be specified as coordinate pairs or UN/LOCODEs. Coordinate pairs are formatted as `longitude,latitude`. Each position should be separated by semicolons `;`. You can add up to 20 positions, including waypoints on a route (up to 18), or request several legs of a trip in one go by listing more than two positions. For instance: `-1.26617431640625,50.79551936692376;8.8330078125,53.88491634606499;-3.2409667968749996,53.50111704294316`.

### Vessel specific routes

You can get vessel specific routes by specifying the IMO number of a vessel. The returned route will be compatible with the vessel dimensions (width (in m), length (in m), maximum draft (in m)). If the IMO is not given, We choose a small vessel in order not to block any route. 
You can also specify the current draft (in m) of the vessel using the parameter `vesselDraft`, with or without giving an IMO. If both IMO and vessel draft are given, the given draft (in m) is used and the other dimensions (width, length) are retrieved from the IMO number.
The response contains static information about the vessel used (width (in m), length (in m), maximum draft (in m)).

### Continuous coordinates

Depending on the boolean parameter `continuousCoordinates`, the longitudes of the points of the route returned can be between -180° and 180° (`false`) or continuous (ie greater than 180° or lower than -180° after crossing the antimeridian). 
The default behavior is to return continuous coordinates (the parameter is set to `true` as default). However, we encourage the use of normalized longitudes between -180° and 180° setting the parameter to `true` when requesting a route.

### Routing parameters

#### Departure time and vessel speed

To compute an accurate ETA, you can specify:
- Departure time using the `departure` parameter (Unix timestamp in milliseconds).
- Vessel speed, either in km/h using `speed`, or in knots using `speedInKts`.
If the route crosses restricted-speed zones (for example, canals), the system automatically applies area speed limits. Outside of those areas, the specified vessel speed is used.

#### Inland waterways navigation

Routing through inland waterways is supported, if the vessel draft allows it.

#### Zone preferences

**ECA / SECA zones**
Use the parameter `avoidSeca=true` to minimize the route travelled within Emission Control Areas (ECAs or SECAs).

**HRA (High Risk Areas)**
Use `avoidHRA=true` to minimize the route travelled in high-risk regions. 
- If none of your requested points are inside the HRA, the zone will be fully avoided. 
- Otherwise, the system reduces the route within the HRA as much as possible. 
- The distance sailed in HRA is available in the `hraIntersection` field of the response.

**Ice areas**
- By default, some seas that are difficult to navigate due to ice (for example the Bering Sea, the Northern Sea Route) are avoided. 
- You can override this using `allowIceAreas=true`.

**Blocked areas**
- Use the `blockAreas` parameter to manually exclude specific regions (Panama Canal: `11112`, Suez Canal: `11117`).
- If your locations list includes a blocked area, the API returns a `400` error, with the index of the problematic location and the ID of the blocked area.

### Support endpoints and resources
- Browse the list of supported [Block Areas](/reference/block-areas) to look up area IDs by name.
- You can also use our [Geocoding API](https://developer.searoutes.com/reference/getgeocodingarea) to retrieve an area id from its name.

## Path parameters

- `locations` string, required

## Query parameters

- `continuousCoordinates` boolean
- `allowIceAreas` boolean
- `avoidHRA` boolean
- `avoidSeca` boolean
- `blockAreas` integer
- `departure` integer
- `imo` integer
- `speed` number
- `speedInKts` number
- `vesselDraft` number

## Response `200`

OK

- GeoJsonObject — GeoJSon object The coordinate reference system for all GeoJSON coordinates is a geographic coordinate reference system, using the World Geodetic System 1984 (WGS 84) datum, with longitude and latitude units of decimal degrees. This is equivalent to the coordinate reference system identified by the Open Geospatial Consortium (OGC) URN An OPTIONAL third-position element SHALL be the height in meters above or below the WGS 84 reference ellipsoid. In the absence of elevation values, applications sensitive to height or depth SHOULD interpret positions as being at local ground or sea level.
  - `type` 'Feature' | 'FeatureCollection' | 'Point' | 'MultiPoint' | 'LineString' | 'MultiLineString' | 'Polygon' | 'MultiPolygon' | 'GeometryCollection', required
  - `bbox` number[] — A GeoJSON object MAY have a member named "bbox" to include information on the coordinate range for its Geometries, Features, or FeatureCollections. The value of the bbox member MUST be an array of length 2*n where n is the number of dimensions represented in the contained geometries, with all axes of the most southwesterly point followed by all axes of the more northeasterly point. The axes order of a bbox follows the axes order of geometries.

## Other responses

- `400` — Bad request
- `404` — Not found

---

[API](https://skmtc.dev/searoutes/apis/geocoding.md) · [All operations](https://skmtc.dev/searoutes/apis/geocoding/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/searoutes/geocoding/revisions/59f769fc4f39/schema)
