Next free-source hunt
We check for new free data every weekday.
Datasets / OSINT
globalfishingwatch.org/

Global Fishing Watch APIs

FreeNon-commercial onlyauth: free API keyCC-BY-NC-4.0#osint#maritime#vessel-tracking#non-commercial#ais✓ verified Nov 4, 2026

⚠️ Non-commercial use only: CC BY-NC 4.0, no commercial licence offered

Global Fishing Watch's licence and rate-limits page says:

“The Services are available for noncommercial use only in accordance with the CC BY-NC 4.0 license, including complying with the attribution requirements set forth in Section 3 below.”

Source: Global Fishing Watch licence and rate limits (checked Nov 4, 2026). This isn't legal advice.

For raw AIS data under more open terms, see:

Each source has its own terms; read its licence note before you use it.

Global Fishing Watch APIs

Global Fishing Watch publishes APIs for apparent fishing activity and vessel presence, radar-detected "dark" vessels that are not broadcasting AIS, vessel identity lookups across AIS and dozens of public registries, vessel encounters and transshipment events, and bulk CSV/JSON export, built from AIS combined with government VMS and satellite radar data. A free API token is required.

Required Attribution:

"Powered by Global Fishing Watch." linked to globalfishingwatch.org, or the full dataset citation format the provider documents.

Coverage

Global coverage of AIS- and VMS-tracked fishing and carrier vessels, radar-based dark-vessel detections, and vessel-to-vessel encounters at sea, with identity cross-references across 40-plus public registries. Rate limits: 50,000 requests per day and 1,500,000 per month per user across all of that user's tokens; exceeding a limit returns HTTP 429 and blocks access for 24 hours (daily) or 30 days (monthly).

Verdict

This is a maritime-domain-awareness signal for dark-vessel detection, transshipment and encounter monitoring, and vessel-identity resolution beyond what raw AIS alone shows. Global Fishing Watch licenses the APIs under CC BY-NC 4.0 and says they are "only available for noncommercial purposes" such as research, NGOs, journalism and open government tools; it does not currently offer commercial licensing terms, and it can revoke access at its discretion. Use for non-commercial purposes only, credit Global Fishing Watch as its attribution guidance requires, and stay under the published rate limits.

Get the free weekly email

Free weekly email of newly verified free data. Unsubscribe by emailing us.

Use in your agent

Load Global Fishing Watch vessel identity records into pandas and Parquet. Checked against the provider's documentation on Nov 4, 2026.

Raw skill file (/skills/global-fishing-watch-api.md)Also in our MCP server: call get_ingestion_skill with {"slug": "global-fishing-watch-api"}.

Access

  • Register for a free non-commercial API token at globalfishingwatch.org/our-apis/tokens.
  • Send it as an Authorization: Bearer header; the snippet reads GFW_API_TOKEN.

Request

bash
curl -H "Authorization: Bearer $GFW_API_TOKEN" -g 'https://gateway.api.globalfishingwatch.org/v3/vessels/search?query=7831410&datasets[0]=public-global-vessel-identity:latest'

Format

JSON with an entries array of vessel-identity records (ssvid, imo, shipname, flag, geartype, registry matches) and metadata on which registries matched.

Load into pandas and Parquet

Needs Python 3 with requests, pandas and pyarrow.

python
"""Global Fishing Watch vessel identity search -> pandas -> Parquet. Needs a free non-commercial API token."""
import os
import requests
import pandas as pd

TOKEN = os.environ["GFW_API_TOKEN"]
URL = "https://gateway.api.globalfishingwatch.org/v3/vessels/search"
params = {"query": "7831410", "datasets[0]": "public-global-vessel-identity:latest"}
r = requests.get(URL, params=params, headers={"Authorization": f"Bearer {TOKEN}"}, timeout=60)
r.raise_for_status()
entries = r.json().get("entries", [])
df = pd.json_normalize(entries, sep=".")
df.to_parquet("gfw_vessel_search.parquet", index=False)
print(len(df), "matching vessel-identity records")

Needs a personal API key; not run.

Limits

  • 50,000 requests per day and 1,500,000 per month per user, enforced across all of that user's tokens.
  • Exceeding a limit returns HTTP 429 and blocks access for 24 hours (daily) or 30 days (monthly).

Quirks

  • Every v3 endpoint needs the Bearer token, including search and public datasets.
  • datasets[] and includes[] use repeated bracketed query parameters, which need an unencoded [ ] request (curl -g).
  • Dark-vessel and encounter endpoints are separate from vessel identity search.

Terms and attribution

  • "The Services are available for noncommercial use only in accordance with the CC BY-NC 4.0 license, including complying with the attribution requirements set forth in Section 3 below."
  • Attribute as "Powered by Global Fishing Watch." linked to globalfishingwatch.org, or the documented full citation.

Sources

Information and education only. Not financial, investment, legal or tax advice. Listings can be inaccurate, incomplete or out of date and are provided "as is". Free tiers, limits and licenses belong to each provider and can change, so check the provider's own terms before you rely on them. Terms & Disclaimer