Skip to main content
GET
Port disruption pulse

Authorizations

Authorization
string
header
required

GDELT Cloud API key. Send as Authorization: Bearer gdelt_sk_....

Query Parameters

country
string

Country filter on port-pulse. Accepts a country name, ISO-2, or ISO-3 (e.g. Ukraine, UA, UKR) via the shared resolveCountryInput layer; an unresolvable value returns 400 INVALID_COUNTRY.

Case-insensitive match on port name, alternate name, or UN/LOCODE.

lng_terminal
boolean

true → only ports with an LNG terminal.

oil_terminal
boolean

true → only ports with an oil terminal.

near
string

Point 'lat,lon' for a radius search; combine with radius_km (default 200).

near_gem_id
string

GEM energy-asset gem_id — scope to ports within radius_km of that asset (cross-source join).

radius_km
number

Radius in km for near / near_gem_id. Default 200; clamped 1–2000.

days
integer
default:14

GDELT event window in days (1–30). Defaults to 14.

Required range: 1 <= x <= 30
event_radius_km
number
default:50

How close an event must be to a port to count it (5–500 km). Defaults to 50.

Required range: 5 <= x <= 500
limit
integer
default:20

Number of ports to score (1–50). Defaults to 20.

Required range: 1 <= x <= 50

Response

Risk-ranked ports with their pulse. Each row: port_id, name, unlocode, country, lat, lon, harbor_size, lng_terminal / oil_terminal, relevant_events, conflict_events, events_last_7d, anomaly_ratio, energy_exposure, pulse_level, ais_coverage, and up to 3 recent_events. A summary block totals the window.

success
boolean
data
object[]
summary
object
applied_filters
object