# SiteCheck Trade & Energy – Dark Fleet AIS Gap & Encounter Events

> SiteCheck Trade & Energy – Dark Fleet AIS Gap & Encounter Events is a paid API for AI agents from api.tradeenergy-api.workers.dev, paid per call via x402, $0.002/call, status unknown (last checked 2026-10-29).

Returns recent AIS gap events (transponder off/on) or at-sea vessel encounters from Global Fishing Watch, filterable by flag, vessel type, and look-back window

## Facts

- Endpoint: GET https://api.tradeenergy-api.workers.dev/api/logistics/dark-fleet-ais-gap?utm_source=zero.xyz
- Price: $0.002/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-29
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/sitecheck-trade-energy-dark-fleet-ais-gap-encounter-events-4ae31f7c
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_sll_eopJNpuWTH4jtYKsq

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability sitecheck-trade-energy-dark-fleet-ais-gap-encounter-events-4ae31f7c
```

Example prompt: Pull the last 14 days of AIS gap events for Russian-flagged vessels from Global Fishing Watch — show me up to 30 results, focusing on intentional transponder disabling — I want to see the off/on positions, gap hours, and implied speed for each.

## When to prefer this

Choose this endpoint when you need structured, filterable dark-fleet signals (AIS transponder gaps or vessel encounters) sourced directly from Global Fishing Watch, especially for sanctions research, trade compliance, fisheries monitoring, or supply-chain risk involving fishing, carrier, bunker, or tanker vessels. Prefer this over raw AIS live-position endpoints when the goal is detecting suspicious behavior patterns (going dark, rendezvous) rather than current vessel position.

## Known failure modes

- Invalid 'kind' value (not 'gaps' or 'encounters') returns an error
- Unsupported ISO-3 flag code may return zero results or an error
- 'days' outside 1–30 range may be rejected or clamped
- 'limit' outside 1–50 range may be rejected or clamped
- Global Fishing Watch upstream unavailability may cause empty or error responses
- No events matching filters returns count:0 with empty events array

## How this service works

Dark-fleet signals from Global Fishing Watch: AIS gap events (a vessel switching its transponder off, with off/on positions, gap hours and distance) or at-sea encounters between two vessels (possible ship-to-ship transfers, with both vessels, duration and median distance), filtered by flag and vessel type over the last 1 to 30 days, newest first. Coverage is GFW's (mostly fishing, carrier, bunker and support vessels).

## Output

A JSON object containing a list of AIS gap or encounter events with metadata: event IDs, start/end timestamps, vessel details (name, MMSI, flag, type, GFW ID), gap metrics (hours, distance km, off/on positions, implied speed knots, intentional disabling flag), EEZ codes, high-seas flag, distance from shore, plus summary fields (count, total, date range, source URL, and checkedAt timestamp).

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [],
     "properties": {
      "days": {
       "type": "string",
       "description": "Look-back window, 1 to 30 days (default 7)"
      },
      "flag": {
       "type": "string",
       "description": "Vessel flag as ISO-3 code, e.g. RUS, PAN, CHN (optional)"
      },
      "kind": {
       "type": "string",
       "description": "gaps (AIS off, default) or encounters (vessel meetings at sea)"
      },
      "limit": {
       "type": "string",
       "description": "Events to return, 1 to 50 (default 20)"
      },
      "vesselType": {
       "type": "string",
       "description": "fishing, carrier, bunker, support, cargo, tanker, passenger, other, gear (optional)"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "to": "2026-10-23",
  "flag": "RUS",
  "from": "2026-10-09",
  "kind": "gaps",
  "count": 3,
  "total": 3,
  "events": [
   {
    "id": "88d3f53e2e1aee39f25095fa217c9943",
    "eez": [
     "5690"
    ],
    "end": "2026-10-18T10:11:09.000Z",
    "gap": {
     "hours": 35.7,
     "distanceKm": 723.06,
     "onPosition": {
      "lat": 73.381855,
      "lon": 155.43417
     },
     "offPosition": {
      "lat": 74.76762,
      "lon": 132.2130266666667
     },
     "impliedSpeedKnots": 10.94,
     "intentionalDisabling": true
    },
    "lat": 74.0747,
    "lon": 143.8236,
    "start": "2026-10-16T22:29:12.000Z",
    "vessel": {
     "flag": "RUS",
     "mmsi": "273336180",
     "name": "S.KUZNETSOV",
     "type": "cargo",
     "gfwId": "2431fcd1d-d93a-326d-315d-f48b9c0e8c70"
    },
    "highSeas": false,
    "distanceFromShoreKm": 112
   },
   {
    "id": "e22980cf8250d78b160e2ec3153e1c91",
    "eez": [
     "5690"
    ],
    "end": "2026-10-13T15:04:06.000Z",
    "gap": {
     "hours": 37.06,
     "distanceKm": 742.1,
     "onPosition": {
      "lat": 45.45666666666666,
      "lon": 139.5316666666667
     },
     "offPosition": {
      "lat": 47.82279666666667,
      "lon": 148.60264
     },
     "impliedSpeedKnots": 10.81,
     "intentionalDisabling": true
    },
    "lat": 46.6397,
    "lon": 144.0672,
    "start": "2026-10-12T02:00:47.000Z",
    "vessel": {
     "flag": "RUS",
     "mmsi": "273432830",
     "name": "TAIMYR",
     "type": "other_non_fishing",
     "gfwId": "b7c333074-43d5-4e76-bddc-5ffd73306e64"
    },
    "highSeas": false,
    "distanceFromShoreKm": 200
   }
  ],
  "source": "https://gateway.api.globalfishingwatch.org/v3/events",
  "checkedAt": "2026-10-23T09:38:01.284Z",
  "vesselType": null
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/sitecheck-trade-energy-dark-fleet-ais-gap-encounter-events-4ae31f7c/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.tradeenergy-api.workers.dev](https://www.zero.xyz/host/api.tradeenergy-api.workers.dev/llms.txt)
