Media & research

News media — data-driven journalism with physical-world sources

How journalists, editors, and news organizations use NTHMAP to report on trade, shipping, and geopolitical events with primary-source data.

Investigative and data journalism has exploded in the last decade, driven by cheap data access and tools like Overture, OpenStreetMap, Bellingcat's techniques, and ship-tracking sites. NTHMAP slots into that workflow as a structured, API-accessible source of physical-world data that journalists can cite and verify.

Why journalists care about vessel data

A lot of the most consequential news stories of the last few years have physical-world components:

  • Russian oil shipments evading the G7 price cap (2022-present)
  • Houthi attacks and Red Sea rerouting (2023-present)
  • Baltimore Key Bridge collision and port closure (2024)
  • Ever Given Suez Canal blockage (2021)
  • LA/Long Beach congestion crisis (2021-2022)
  • Baltic Sea pipeline sabotage investigations (2022)

All of these required reporters to quickly answer questions like "how many tankers visited this port in the last 30 days?" or "where was this specific ship when the incident happened?"

NTHMAP gives newsrooms a REST API for exactly those questions.

Common investigation patterns

1. "Who visited this port?"

# Vessels near Primorsk (Russian Baltic crude terminal) right now
nthmap vessels list --bbox 28.3,59.9,28.7,60.2 --format json | \
  jq '[.[] | {mmsi, name, flag, last_port, destination, load_pct}]'

Take the mmsi column, cross-reference with Equasis or Clarksons for registered owner, and you have a reporter-grade list of named vessels calling at a specific port.

2. "Where was this ship when the incident happened?"

For any vessel with an MMSI, NTHMAP gives 24-hour track history (Pro). For specific high-profile investigations, enterprise customers can request longer histories.

nthmap vessels track 311000001 --format json > ever-given-track.json

3. "What's inside this zone right now?"

The draw tool is the reporter's best friend. Upload a GeoJSON boundary (say, Russian EEZ waters around a known pipeline) and get back vessels + infrastructure + events in one call.

import nthmap

client = nthmap.Client(api_key="ntm_live_...")

# Nord Stream pipeline sabotage site (approximate)
incident_zone = {
    "type": "Polygon",
    "coordinates": [[[14.0, 54.5], [16.5, 54.5], [16.5, 55.5], [14.0, 55.5], [14.0, 54.5]]]
}

snapshot = client.draw_analyze(geojson=incident_zone, draw_type="polygon")
print(f"Vessels in zone: {snapshot['total_vessels']}")
for v in snapshot['vessels_inside'][:10]:
    print(f"  {v['name']} ({v['flag']}) - {v['vessel_type_str']}")

Example investigations that would have used NTHMAP

"How much Russian crude is reaching India?"

Between 2022 and 2024, Indian refiners became the largest buyers of discounted Russian crude. A data journalist tracking this would want:

  1. Vessels loading at Russian Baltic (Primorsk) and Black Sea (Novorossiysk) ports
  2. Route tracking through the Suez Canal
  3. Arrivals at Indian refinery ports (Sikka, Jamnagar, Mundra)

NTHMAP returns all three via straightforward API calls. Combined with customs data and satellite imagery, you can build a rigorous account of the shift.

"What's the state of the Red Sea corridor this week?"

Ongoing story. Every Friday, a data reporter runs:

nthmap chokepoints list --format json | jq '.[] | select(.name | test("Aden|Hormuz"))'
nthmap events list --bbox 41,10,50,18 --types conflict --active
nthmap vessels list --bbox 41,10,50,16 --format json | jq length

That's the factual backbone for a weekly column. The narrative and context come from the reporter's expertise.

"Which refineries are running and which aren't?"

Not directly answerable — NTHMAP doesn't track refinery operational state. But you can use vessel activity as a proxy:

# Crude inbound to a specific refinery over a week (requires enterprise history)
# Or snapshot current state:
nthmap vessels list --bbox $(bbox_around $REFINERY_LAT $REFINERY_LNG 30)

Verification & trust

Journalists need to be able to cite their sources and verify their data. NTHMAP helps here too:

  1. Attribution — NTHMAP raw responses include source attribution where the upstream source requires it (NOAA, USGS, AISstream, etc.)
  2. Timestamp integrity — every record has a captured_at timestamp from the NTHMAP backend, so a reporter can cite the exact moment the snapshot was taken
  3. Reproducibility — the API is deterministic; another reporter running the same query at the same moment gets the same result
  4. Public source chain — NTHMAP doesn't provide classified or proprietary data; everything traces back to publicly-licensed or open sources

Pricing for newsrooms

NTHMAP offers discounted nonprofit and journalism tiers for verified news organizations. Email press@nthmap.com with your organization, your use case, and a press credentials link. We typically approve within 48 hours.

Academic journalism programs are also eligible for free access through the academic program.

Embargo & deadline friendliness

One common frustration with data sources: APIs that rate-limit right when you're racing to file a story. NTHMAP's Pro tier gives 300 req/min which is plenty for interactive investigation, and enterprise customers get dedicated quota for time-pressure work.

AI-assisted reporting

A relatively new workflow: use the NTHMAP MCP server with an AI agent for first-pass investigative research:

Check if there's unusual activity around the Kerch Strait right now. Include vessel counts, any active events, and compare to what you'd expect.

The agent runs the NTHMAP tool calls and returns a structured summary. The reporter then verifies the key claims against NTHMAP's raw data before publishing. This cuts research time in half for time-sensitive stories.

See the MCP documentation and the AI agents use case.

Getting started

Launch the app on the free tier to explore. For production reporting workflows, the Pro tier is usually enough — unlock events, chokepoints, draw tools, and API access.

Email press@nthmap.com for the press discount application.