⚫ In memoriam — Joshua Baer, founder of Capital Factory (1975–2026). Read the tribute →
The world’s working waterfront

A global database of harbours & ports.

Every commercial port, fishing harbour and sheltered basin we could find on the open map — thousands of them, across every continent — in one sortable, searchable worksheet. Click any column to sort, click any row to open its detail card, and jump straight to the spot in Google Maps or fly there in Google Earth. Built entirely from open data: © OpenStreetMap contributors (ODbL). Marinas & yacht harbours live on the separate Marinas page.

Master worksheet

Every harbour, sortable & searchable.

Sorted by country, then name. Use the search box to filter the entire dataset by harbour name, country, or region; use the type chips to narrow by category. For speed the table shows the first 500 matching rows — search to narrow to the harbour you want.

Loading…
# Harbour Country Region Type Website Coordinates Maps Earth
Loading harbour data…

Type key: port commercial / industrial port · fishing fishing harbour · harbour general sheltered harbour or basin.  Every row links out: “Maps” opens Google Maps at the coordinates; “Earth” flies there in Google Earth (web).

About the data

Open data, mapped to the water’s edge.

Real harbours from OpenStreetMap — not invented

Every harbour on this page comes from OpenStreetMap, the open map of the world built by hundreds of thousands of contributors. We query the public Overpass API for features tagged as harbours and ports (harbour=yes, seamark:type=harbour, landuse=harbour, industrial=port), keep the named ones, de-duplicate them, and capture each one’s coordinates, country, region, type, and any website or phone the map records. Nothing is fabricated. Where OSM doesn’t record a detail, the cell is simply left blank.

Coverage and detail vary by region exactly as the open map does — some coastlines are mapped in fine grain, others sparsely. Found a missing or wrong harbour? The fix is to improve OpenStreetMap itself, and it will flow through on the next refresh.