Campaign scoring
Fetch multi-window campaign risk scores for a vessel by IMO, with time-decay weighting across watchlist categories for sanctions and dark-fleet triage.
Multi-window vessel risk scoring with time-decay weighting and watchlist subscription.
Campaign scores aggregate seven signal types — spoofing, temporal motifs, STS transfers, dark events, destination deceptions, lifecycle changes, and PSC inspections — into a single 0–1 risk score per vessel. Scores are computed across 30, 90, and 180-day windows with exponential time decay so recent activity weighs more heavily.
GET /api/v1/vessels/{imo}/campaign-score
Get the campaign risk score for a vessel.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
imo | string | ✓ | 7-digit IMO number (path param) |
Response
{
"imo": 9876543,
"score": {
"overall_score": 0.64,
"risk_level": "high",
"window_30": 0.72,
"window_90": 0.64,
"window_180": 0.51,
"reference_date": "2026-04-18T00:00:00Z"
},
"isSubscribed": true
}imo is returned as a number, and score is null when no campaign score has been computed yet for the vessel.
Errors
400— Invalid IMO number format500— Database error retrieving the campaign score
Risk levels
| Level | Score range | Description |
|---|---|---|
| critical | > 0.75 | Multiple corroborated high-severity signals |
| high | 0.50 – 0.75 | Significant recent risk activity |
| medium | 0.25 – 0.50 | Moderate or aging signals |
| low | < 0.25 | Minimal risk indicators |
Signal weights
Each signal type contributes differently to the aggregate score:
| Signal type | Weight |
|---|---|
| Spoofing alert | 0.80 |
| Destination deception | 0.70 |
| Temporal motif | 0.60 |
| STS transfer | 0.50 |
| Dark event | 0.40 |
| Lifecycle change | 0.30 |
| PSC inspection | 0.20 |
Severity multipliers (low = 0.5×, medium = 1×, high = 1.5×, critical = 2×) and signal confidence also factor into the final score.
Example
curl -X GET -H "X-API-Key: YOUR_KEY" \
https://www.axiomoverwatch.io/api/v1/vessels/9876543/campaign-scorePOST /api/v1/vessels/{imo}/campaign-score
Subscribe or unsubscribe a vessel to your watchlist directly from the campaign score view.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
imo | string | ✓ | 7-digit IMO number (path param) |
action | string | ✓ | 'subscribe' or 'unsubscribe' |
watchlist_id | string | Target watchlist. Must be owned by the caller. Creates "Default Watchlist" if omitted. |
Response
{ "success": true }Errors
400— Invalid IMO number format400—watchlist_idis empty400—actionmust besubscribeorunsubscribe401— Unauthorized (no signed-in session)403— Forbidden (watchlist_idnot owned by the caller)404— Watchlist not found500— Database error (score fetch, watchlist create/update)
Example
curl -X POST -H "X-API-Key: YOUR_KEY" \
https://www.axiomoverwatch.io/api/v1/vessels/9876543/campaign-score \
-d '{"action":"subscribe"}'Export Estimates
Weekly aggregated cargo volume predictions by port and commodity class, with confidence intervals and historical accuracy backtests for export forecasting.
Risk Intelligence
Fourteen-factor vessel risk scoring with dark fleet detection, STS transfers, loitering, identity changes, draft anomalies, and PSC inspection signals.