Datadory notebook
How Developers & Data-Product Builders Use Marine Ports & Services Data
Developers and data-product builders use marine ports services data as a ready-made backend for logistics dashboards, berth-activity alerts and trade benchmarks. Across the eleven primary datasets Datadory catalogs for this industry, the load-bearing layers are NOAA CO-OPS' tide and water-level observations at 43 PORTS installations, USACE Waterborne Commerce's per-port cargo statistics for 1,381 locations, and BTS Principal Ports' 150 U.S. port polygons keyed to the same USACE codes.
1,744 datasets. Pick your catch.
Which marine ports feeds move fast enough to build on?
The first thing a builder wants to know about an operational slice is whether it moves fast enough to be worth wiring in, and Marine Ports & Services clears that bar: 7 of the 11 primary datasets Datadory catalogs here expose official APIs, against a catalog-wide baseline of 573 of 1,744 developer-relevant datasets (36.6%). The three core federal feeds are also the freshest in the stack.
USACE Waterborne Commerce Statistics Center – U.S. Waterborne Commerce Data serves its statistics as flat static JSON instead of a query language. The Port and Waterway Tool front end reads a small file tree: years.json listing data years 2002 through 2024, regions.json covering the four coastal regions, per-year-per-region locations.json registers, and fiveYearCargoReport.json plus fiveYearTripsReport.json per location — a shape you can mirror wholesale into local storage and query offline.
What belongs in your geometry and benchmark layers?
Where history matters more than freshness, two layers carry the spatial and comparative weight of this slice.
BTS Principal Ports – National Transportation Atlas Database is the anchor record (quality score 10): exactly 150 principal U.S. port polygons carrying RANK, PORT (the USACE port code), TYPE with observed values Coastal, Internal and Great Lakes, PORTNAME, and TOTAL, DOMESTIC, FOREIGN_, IMPORTS and EXPORTS short-tonnage values for calendar year 2023. The documented attribute dictionary lives at DOI 10.21949/1529073, the item record shows 4.6 million views and a July 14, 2026 modification stamp, and the full BTS Hub DCAT feed lists 142 sibling transportation datasets.
Natural Earth – World Ports (1:10m Cultural Vectors) adds global context in a single ~51 KB package: 1,081 verified port points as shapefile components plus GeoJSON, version 5.0.0 with shapefile components last revised 2021, each point carrying feature class, scalerank and an optional port website URL. One integration gotcha is worth writing into your fetch script: plain curl receives HTTP 406 from naturalearthdata.com, while a browser User-Agent plus Referer header returns application/zip, and the GitHub raw mirrors serve individual .shp/.dbf/.prj components directly.
The World Bank indicators round out the comparative tier. World Bank – Container Port Traffic (TEU) holds 17,490 records of which 2,793 carry non-null values across 207 economies for 2005-2024, and the companion Liner Shipping Connectivity Index (IS.SHP.GCNW.XQ) adds 2,628 non-null observations across 169 economies for 2006-2021. Filter nulls client-side and both indicators become tidy country-year frames in seconds.
How do you turn USACE and BTS records into one tonnage panel?
The two government sources share a join key, which is what makes a unified panel an afternoon's work rather than a quarter's.
USACE cargo reports arrive per location with locationId, name, description (the legal 'Section Included' boundary text), locationType of PORT or WATERWAY, regionId across Atlantic Coast, Gulf Coast/Mississippi River System/Antilles, Great Lakes, and Pacific Coast/Alaska/Hawaii, commodityId with commodityName, and five-year arrays: allDelta0..4 for totals plus receiptsDelta0..4, shipmentsDelta0..4, intraDelta0..4 and thruDelta0..4 splitting inbound, outbound, intra-port and through movements in short tons. Trips reports carry the same five-year grain by vessel class (SELF_PROP_DRY, TANKER, TOWBOAT, DRY_CARGO_BARGE, LIQUID_BARGE, RAFTED_LOGS, OTHER) and draft band. The 2023 register holds 1,381 locations - 819 PORT entries such as 'Houston Port Authority, TX' and 562 WATERWAY segments with controlling depths.
Join it to BTS Principal Ports on the USACE port code stored in the PORT field, and the polygon layer contributes geometry, the Coastal/Internal/Great Lakes typing and the CY 2023 tonnage summary columns. Two design notes come straight from the metadata: the layer is built for national-scale use and may not suit local-scale mapping, and the grains differ - BTS and USACE publish annually while operational feeds move in minutes, so anything joining tonnage to live positions needs an explicit time-grain bridge rather than a naive timestamp join.
Can you ship live vessel positions inside your own product?
Live vessel movement is the most demanding corner of this slice, and it splits into two very different shapes of record.
Which sources need special handling before they ship?
Directory-style coverage is where builders get surprised, because it behaves differently from every other layer in the slice.
The CBP Ports of Entry – Official U.S. Port Directory covers all 328 U.S. ports of entry as labeled fields - Port Code, Port Director, Office Hours, address and crossing-type notes - but publishes them as server-rendered HTML across 56 state and territory index pages (Texas 32, Florida 24 and California 19 verified during research), each detail page carrying its own Last Modified stamp. Treat it as a slowly-changing dimension to snapshot and diff, not a feed to stream.
AAPA's U.S. Port Directory & Statistics covers the Western Hemisphere from the industry side: a member-ports map with cargo profiles and channel depths, a PDF statistics library, and a 2024 economic contribution report quantifying a $2.89 trillion GDP impact. It is the richest single portrait of port economics in the slice, and also the record where reuse terms matter most - check them before anything ships outward.
What does a first-week build look like?
Every step below uses only sources named above:
- Land the geometry. Load BTS Principal Ports into PostGIS or geopandas, confirm all 150 polygons resolve, and check the PORT field's USACE codes against the attribute dictionary at DOI 10.21949/1529073.
- Mirror the tonnage bank. Walk USACE's years.json (2002-2024), pull regions.json, then iterate locations.json per year and region, caching each fiveYearCargoReport.json and fiveYearTripsReport.json - files run 30-340 KB each, so the full sweep is modest storage.
- Add the world layer. Read Natural Earth's ne_10m_ports GeoJSON (fetching the zip takes a browser User-Agent plus Referer header - plain curl gets HTTP 406), giving you 1,081 points for everything outside U.S. coverage.
- Overlay the benchmarks. Join IS.SHP.GOOD.TU and IS.SHP.GCNW.XQ country-year TEU and connectivity scores onto any per-country rollup you ship, dropping null economies client-side.
Where to go next
The marine-ports-services data guide is the pillar treatment: all 14 pooled datasets scored and grouped by workflow. For this same evidence base rendered as a persona shortlist, open marine ports & services data for developers builders, or browse all developers-builders resources to compare industries. The marine-ports-services data hub indexes the best-of pages, and the dataset pages behind this article start at NOAA CO-OPS API – Tides, Currents & Water Levels and USACE Waterborne Commerce Statistics Center – U.S. Waterborne Commerce Data.
Pick up where this leaves off
Every one of these ships with sample rows before you commit to anything.
NOAA CO-OPS API – Tides, Currents & Water Levels
USACE Waterborne Commerce Statistics Center – U.S. Waterborne Commerce Data
BTS Principal Ports – National Transportation Atlas Database
Natural Earth – World Ports (1:10m Cultural Vectors)
World Bank – Container Port Traffic (TEU)
AISHub Open AIS Data Sharing Network
Want rows instead of a pitch? Name the datasets.
API, files, or your warehouse. Daily, weekly, or hourly.
Get a sampleQuestions worth asking
Which marine ports dataset should I prototype against first?
NOAA CO-OPS. One request pattern covers tide predictions, 6-minute water levels and per-bin currents across 43 PORTS installations, 301 active water-level stations and 86 current stations, returning JSON, XML or CSV within documented per-request limits such as one month of 6-minute data.
How do I combine port boundaries with cargo tonnage?
Join BTS Principal Ports' 150 U.S. port polygons to USACE Waterborne Commerce reports on the USACE port code stored in the PORT field. The polygon side contributes geometry, Coastal/Internal/Great Lakes typing and CY 2023 tonnage summary columns; the report side contributes five-year commodity movements.
Can I ship live vessel positions inside my own product?
Yes, through two different shapes of record. AISHub's sharing network serves roughly 100,000 vessels seen in a rolling 24-hour window to stations that contribute a qualifying NMEA feed, while VT Explorer tracks over 300,000 vessels daily with structured port-call events between arrival and departure.
What do I do about sources that publish only web pages?
Snapshot and diff them. CBP's directory of 328 ports of entry exists as server-rendered HTML across 56 state and territory index pages, so treat it as a slowly-changing dimension with its own Last Modified stamps rather than a streaming feed.