Global Fishing Watch AIS Datasets and APIs

Datadory delivers global fishing watch ais datasets and apis data covering the whole ocean as an evidence base: apparent fishing effort on 0.01-degree daily grids back to 2012, vessel identity resolved across 40-plus public registries, and event streams for encounters, loitering, port visits, SAR detections and AIS-off gaps - roughly 70,000 characterized vessels a year.

What is the Global Fishing Watch AIS Datasets and APIs collection?

Most AIS products tell you where a ship says it is. This one asks what it was doing there - and what it was hiding. Global Fishing Watch publishes research-grade maritime activity data derived from broadcast AIS, government VMS partnerships and deep-learning classification of satellite imagery, organized into four product groups: gridded apparent fishing effort and vessel presence, vessel identity resolution, a multi-class event stream, and per-vessel insights.

The scale is the story. Apparent fishing effort runs as daily global grids at 0.01-degree resolution back to 2012 - twelve-plus years of where fishing pressure concentrated, split by flag state and gear type - alongside monthly 0.1-degree grids and per-MMSI daily hours. The identity layer resolves MMSI, IMO number or name against GFW's own AIS identity records plus more than 40 public regional and national registries. The events layer classifies behaviour: apparent fishing events, encounters between vessel types (fishing-carrier, tanker-fishing, carrier-bunker and more), loitering, port visits, and AIS-off gaps - the dark-vessel signature. A separate layer carries Sentinel-1/2 detections of fixed offshore infrastructure from 2017 onward.

Inside Datadory's marine transportation shelf this record holds a unique seat: it is the only one that reads behaviour rather than movement or cargo. MarineCadastre counts positions; Eurostat counts tonnes; this counts what ships did when nobody was meant to be watching. Get a sample of this dataset cut to your region, gear types and years.

What do the delivered rows look like?

One observation per grid cell per day in the effort layers; one observation per detected event in the events layers. The shape below follows the verified field dictionary:

# Effort layer: one row per grid cell, per day
dataset          : public-global-fishing-effort:latest   # layer selector
mmsi             : <vessel MMSI>                         # identity joins on mmsi / imo / shipname
geartype         : trawlers                              # trawlers, longliners, purse seines, ...
flag             : <flag state>                          # effort splits by flag state and gear
hours            : <apparent fishing hours>              # aggregated per cell or region report
# Events layer adds:
event_type       : encounter                             # fishing | encounter | loitering | port_visit | gap
start_time       : <event start>                         # with end_time bounding the window

An honesty note first: the record ships no sample file, so the block above shows structure rather than pasted extracts - concrete values arrive with your sample request instead of being invented here. Three things worth noticing anyway. hours is an apparent measure - model-inferred fishing behaviour from AIS patterns, not observed catches - so it reads activity pressure, not landings. The identity fields are the join key that lets you attach behaviour to a specific hull across years even when its MMSI changes. And the event taxonomy is typed by vessel-pair class, which means "carrier meeting bunker near the EEZ edge" is a query, not a manual review project.

Which fields does the dataset include?

Eleven documented attributes carry the model, split between an identity spine (mmsi, imo, shipname, flag, geartype) and an activity payload (hours, event_type, temporal bounds). Definitions were inferred during research from the publisher's documentation rather than shape-exact against live responses - the exact response naming for your pipeline locks when your sample is prepared. The dictionary below is the full set.

How wide does coverage run?

  • Geography: global ocean, built from AIS receivers, satellite AIS providers and partner VMS programs - no regional gating, the same cells cover the North Atlantic and the Pacific.
  • Temporal: AIS-derived effort, presence and identity run from 2012 to within about 96 hours of the present; SAR vessel detections start 2017 and run to roughly five days ago; fixed-infrastructure detections run from 2017 onward; the static fishing-effort release maps 2012 through 2024.
  • Granularity: three resolutions stacked - 0.01-degree daily grids, 0.1-degree monthly grids by flag state and gear, and 0.1-degree daily hours per MMSI, plus per-event and per-vessel identity records.

On Datadory's 0-10 quality rubric the record scores 9, against a 7.81 average across the 1,744 cataloged datasets - held up by twelve-plus years of daily global grids, a 40-plus-registry identity backbone and a typed event taxonomy, and held back mainly by inferred (rather than shape-verified) field documentation.

How is the data delivered?

API, files, or your warehouse. Daily, weekly, or hourly.

Who uses this data, and for what?

  • IUU-fishing investigation and enforcement support - pull apparent effort by gear type and flag state, then overlay AIS-off gaps to flag vessels that went quiet exactly where the pressure was.
  • Transshipment detection - query encounters typed by vessel pair (fishing-carrier, tanker-fishing, carrier-bunker) to screen for at-sea transfer corridors instead of reading track plots by hand.
  • Supply-chain and ESG due diligence - check whether carriers and reefers on your route actually called at ports with loitering-heavy approaches before signing the charter.
  • Port-call and market context - read port visits and loitering around a hub as an activity index no customs table publishes.
  • Insurance and risk screening - use gaps, encounters and loitering histories as behavioural risk features alongside flag and age.
  • Academic and cited journalism - anchor papers and investigations to a named, versioned product whose provenance runs to satellite-AIS providers and VMS partnerships.

Which personas get the most value?

Data scientists and ML engineers rank first: typed event tables with a stable identity spine train anomaly models without a labeling sprint (their marine-transportation workflows). Journalists, academics and students get citable, versioned layers behind every dark-fleet headline (their use cases). Competitive-intel teams watch rival fleets' port-call and loitering patterns quarter over quarter (their use cases). Market researchers and consultants read effort and port visits as regional activity indices (their use cases). Developers building data products get map-ready grids and typed events that render as monitoring dashboards (builders' use cases), and e-commerce operators benchmark ocean-leg exposure for seafood and perishable supply chains (their workflows).

What notes come attached to this dataset?

  • MarineCadastre AIS Vessel Traffic Data (USCG Nationwide AIS) - the raw-position counterpart for US waters: billions of timestamped broadcasts where GFW contributes the classified interpretation (MarineCadastre).
  • EMODnet Vessel Density Maps (EU Waters) - the intensity-grid counterpart for EU basins, counting presence per square kilometre where GFW labels what the presence was doing (EMODnet).
  • vs UNCTADstat Maritime Transport Data Centre - behavioural event records against official fleet-capacity and trade statistics; field-by-field breakdown in the dedicated comparison.
  • Glossary notes - why a dark vessel is defined by silence, how a transshipment event shows up as an encounter record, and what an AIS position report contributes before any classification runs.

Two honesty notes before you request a sample. "Apparent" is doing real work throughout: effort and events are model-inferred from broadcast behaviour, so a vessel that never carried AIS stays invisible to every layer here regardless of what it did. And the field dictionary was inferred from documentation rather than shape-verified against live responses, so confirm exact response naming against your prepared sample before hard-coding parsers. Full slice ranking sits on the marine transportation data hub, with the ranked view at best marine-ports-services datasets.

Field dictionary

Every field below is documented against real records. The full dictionary ships with the sample.

Field dictionary - eleven documented attributes spanning the identity spine and the activity payload; definitions inferred from the publisher's documentation (examples illustrate shape, not pasted rows)
fieldtypedefinitionexample
datasetstringLayer selector passed with each request picking the data product: effort, presence, SAR presence, vessel identity, fishing events, encounters, loitering, port visits, gaps or fixed infrastructure.public-global-fishing-effort:latest
vesselIdstringInternal vessel identifier returned by the identity layer and used to pull event histories for a single hull.<internal id>
mmsiintegerMaritime Mobile Service Identity broadcast by the vessel; primary join key across effort, presence and event layers.7831410
imointegerIMO ship identification number matched against public registries; survives MMSI changes, which is what makes multi-year tracking possible.9<7-digit>
shipnamestringVessel name as reported in AIS or registry records; searchable alongside identifiers.<name>
flagstringFlag state of the vessel; the axis along which effort aggregates split.<flag state>
geartypeenumGear classification used in effort layers - trawlers, longliners, purse seines and the rest of the scheme.trawlers
hoursnumberApparent fishing or presence hours aggregated per grid cell or region report; the payload column of every effort layer.<hours>
distance_from_port_kmenumEffort filter bucketing results by distance from shore, using 0-5 km range values.0-5 km
event_typeenumEvents layer activity class: apparent fishing, encounter, loitering, port visit or AIS-off gap, with encounters typed by vessel-pair class.encounter
start_time / end_timedatetimeTemporal bounds of an event or report window.<ISO datetime>

Coverage at a glance

chipvalue
GeographyGlobal ocean coverage from AIS receivers, satellite AIS providers and partner VMS programs - no regional gating
TemporalEffort, presence and identity from 2012 to ~96 hours ago; SAR detections 2017 to ~5 days ago; fixed infrastructure 2017 onward; static effort release 2012-2024
Granularity0.01-degree daily grids; 0.1-degree monthly grids by flag state and gear; 0.1-degree daily hours per MMSI; per-event and per-vessel identity records

Questions buyers ask

What does one observation of global fishing watch ais datasets and apis data contain?

It depends on the layer. Effort layers store one row per grid cell per day: the layer selector, the aggregation window and the apparent fishing or presence hours. Event layers store one row per detected incident: event_type (fishing, encounter, loitering, port visit or AIS-off gap) with start_time and end_time bounds. Identity records carry mmsi, imo, shipname and flag resolved against public registries.

How far back does the fishing-effort history run?

Daily gridded apparent fishing effort reaches back to 2012 and runs to within about 96 hours of the present, which makes it one of the longest consistent behavioural time series in commercial maritime data. The static bulk release maps 2012 through 2024 at daily 0.01-degree and monthly 0.1-degree resolution, with per-MMSI daily hours alongside.

What exactly is an 'encounter' event, and which vessel pairs are typed?

An encounter marks two vessels appearing to meet at sea long enough to suggest a transfer. The taxonomy types them by pair class: fishing-carrier, fishing-support, fishing-bunker, fishing-fishing, tanker-fishing, carrier-bunker and support-banker. That typing turns transshipment screening into a filtered query over candidate pairs instead of a manual review of track plots.

Does the dataset really capture dark vessels?

Partially, and the mechanism matters. AIS-off gaps flag vessels whose transponder went silent, and SAR detections from 2017 onward spot vessels broadcasting nothing at all. What no AIS-derived product can see is a hull that never transmitted and was never imaged - so treat gaps as a signal to investigate, not proof of illicit behaviour.

Is 'apparent fishing effort' the same as catch data?

No. Effort measures model-inferred fishing behaviour from AIS movement patterns - hours a vessel moved like a trawler or a longliner inside a cell. It says where pressure concentrated, not what came out of the water. Pair it with landing or trade statistics when the question needs tonnage rather than intensity.

How granular are the grids, and can I aggregate them my own way?

Three published resolutions stack on the same footprint: 0.01-degree daily grids, 0.1-degree monthly grids split by flag state and gear type, and 0.1-degree daily hours keyed to individual MMSIs. Because the cells are regular, they re-aggregate cleanly to any custom polygon - EEZs, RFMO boundaries or your own operating boxes - without resampling artifacts.

Which companion datasets sharpen the picture?

Raw-position feeds give the unclassified substrate: MarineCadastre's USCG Nationwide AIS broadcasts for US waters, or EMODnet's EU density grids for presence intensity without behaviour labels. Official statistics add the counterweight - UNCTADstat fleet capacity and Eurostat port handling - so behavioural signals can be read against what was actually moved. Datadory delivers all of them under one delivery contract.

See the rows before you pay anything.

Name this dataset and we send real records from it — scoped to the fields you asked for.

See pricing