Marine OS

For developers

Sea route & distance API

One GET request returns the practical sea route between any two ports or coordinates: distance in nautical miles, kilometers and statute miles, voyage time at your speed, the canals and straits used, and optional route geometry. Computed over the open Eurostat global shipping-lane network, the same class of network behind freight routing tools, at a fraction of incumbent API pricing.

The endpoint

curl "https://marine-os-lime.vercel.app/api/v1/searoute?from=SGSIN&to=NLRTM&speed=14&geometry=1" \
  -H "Authorization: Bearer mos_your_key"
{
  "from": { "name": "Singapore", "code": "SGSIN", "lat": 1.26, "lng": 103.83 },
  "to":   { "name": "Rotterdam", "code": "NLRTM", "lat": 51.92, "lng": 4.50 },
  "distance": { "nm": 8439.2, "km": 15629.4, "mi": 9711.7 },
  "hours": 602.8,
  "passages": ["malacca", "suez", "gibraltar", "dover"],
  "geometry": { "type": "LineString", "coordinates": [[103.83, 1.26], ...] }
}
ParameterDescription
from, toUN/LOCODE (e.g. SGSIN) or "lat,lng". About 1,600 major ports resolve by code.
speedKnots. When set, the response includes voyage hours.
avoidComma list of passages to route around: suez, panama, kiel, corinth, gibraltar, dover, bosporus, malacca, sunda, babelmandeb, ormuz, bering, magellan, northwest, northeast, cape_horn.
geometrygeometry=1 adds a GeoJSON LineString of the route.

POST with a JSON body is also supported. Every response carries an X-Quota-Remaining header.

In your language

Python

import requests

r = requests.get(
    "https://marine-os-lime.vercel.app/api/v1/searoute",
    params={"from": "SGSIN", "to": "NLRTM", "speed": 14},
    headers={"Authorization": "Bearer mos_your_key"},
)
route = r.json()
print(route["distance"]["nm"], "nm,", route["hours"], "h")

JavaScript

const res = await fetch(
  "https://marine-os-lime.vercel.app/api/v1/searoute?from=SGSIN&to=NLRTM&speed=14",
  { headers: { Authorization: "Bearer mos_your_key" } }
)
const route = await res.json()
console.log(route.distance.nm, "nm,", route.hours, "h")

How the pricing compares

Sea distance APIs are priced all over the map. Public list prices as of August 2026 (verify with each vendor):

ProviderListed entry priceCalls included
Marine OS Route API$799/mo billed annually10,000/mo (~$0.08 per call)
Searoutesfrom ~400 EUR/mo3,000/mo listed at entry
NAVAPIfrom ~6,900 EUR/yrunlimited (annual commitment)
Seametrixfrom ~1,500 EUR/yrplan-dependent

Providers differ in what they model (ECA zones, vessel-specific constraints, emissions methodology). If you need planning-grade port-to-port distances, times, and geometry, run the same queries against a trial key of each and compare numbers and cost. Our sea distance API guide walks through the whole provider landscape.

Pricing

BEST VALUE

Annual

$799/mo

Billed yearly ($9,588/yr). Save 33% vs monthly.

  • 10,000 API calls per month
  • All passages and route geometry included
  • Email support from the founder
  • Cancel anytime in Stripe
Subscribe annual

Monthly

$1,199/mo

No commitment.

  • 10,000 API calls per month
  • All passages and route geometry included
  • Email support from the founder
  • Cancel anytime in Stripe
Subscribe monthly

Want to test first? Email support.marineos@gmail.com for a free 100-call trial key. Comparable sea-distance APIs list from roughly 400 EUR per month, so run the same queries against both and compare.

Honest scope

Distances are computed over the open Eurostat maritime network: realistic, planning-grade port-to-port figures of the kind freight tools publish. It is not a weather-routed or draft-optimized voyage plan, and it is not for navigation. If you need to sanity-check the output, our free sea distance pages publish the same engine's numbers for 56 known routes.

Frequently asked questions

How are the distances calculated?

Shortest path over the open Eurostat global shipping-lane network with your canal and strait choices applied, plus the exact start and end points stitched on. Distance is measured along that path; hours are distance divided by your speed.

How does pricing compare to Searoutes, NAVAPI, and Seametrix?

As publicly listed, Searoutes starts around 400 EUR per month with 3,000 calls included, NAVAPI from about 6,900 EUR per year, and Seametrix from about 1,500 EUR per year. The Marine OS API is $799 per month billed annually with 10,000 calls included, which works out to roughly $0.08 per call. Verify current pricing with each vendor; a free trial key makes it easy to run the same queries against both.

What happens if I go over 10,000 calls?

Calls beyond the quota return HTTP 429 until the monthly reset. If you consistently need more, email us and we will set up a higher tier.

Which ports are supported?

About 1,600 major seaports resolve by UN/LOCODE, and any point on earth works as "lat,lng", which covers smaller harbors and offshore points.

Is there a free trial?

Yes. Email support.marineos@gmail.com and we will issue a trial key with 100 calls so you can validate the numbers against your current provider before subscribing.

How do I cancel?

Subscriptions run through Stripe and can be canceled anytime; your key stays active until the end of the paid period.