The Skylight integration with EarthRanger brings maritime surveillance intelligence directly into your operational picture. Events detected by Skylight — from fishing activity and vessel rendezvous to satellite-based detections — are automatically pulled into EarthRanger as reports, allowing your team to monitor, triage, and respond without switching between platforms.
Each event is enriched with vessel information where available, including vessel name, MMSI, IMO, flag state, and vessel type. For events involving two vessels (such as rendezvous), both are included. Detection events where no vessel identity is known will show an empty vessel list — these represent untracked or "dark" targets identified by satellite sensors.
The integration currently supports six event types: Fishing, Dark Rendezvous, Standard Rendezvous, Speed Range, Marine Entry, and Vessel Detection. Vessel Detection events are generated by four satellite sensors — Synthetic Aperture Radar (Sentinel-1), optical imagery (Sentinel-2 and Landsat 8/9), and nighttime lights (VIIRS) — and are further distinguished by title: Dark Vessel Detection for unidentified targets and AIS Correlated Vessel Detection for detections matched to a known AIS-transmitting vessel.
Supported Types
| ER Event Type | Display Title |
|---|---|
| fishing_alert_rep | Fishing |
| detection_alert_rep | Vessel Detection |
| speed_range_alert_rep | Speed Range |
| entry_alert_rep | Marine Entry |
| dark_rendezvous_alert_rep | Vessel Dark Rendezvous Event |
| standard_rendezvous_alert_rep | Standard Rendezvous |
Vessel Detection
ID: detection_alert_rep
{
"schema": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"properties": {
"detection_type": {
"type": "string",
"title": "Detection Type"
},
"estimated_length": {
"type": "number",
"title": "Estimated Length (m)"
},
"heading": {
"type": "number",
"title": "Heading (deg)"
},
"score": {
"type": "number",
"title": "Detection Score"
},
"estimated_speed": {
"type": "number",
"title": "Estimated Speed (kts)"
},
"estimated_vessel_category": {
"type": "string",
"title": "Estimated Vessel Category"
},
"distance_to_coast_m": {
"type": "number",
"title": "Distance to Coast (m)"
},
"orientation": {
"type": "number",
"title": "Orientation (deg)"
},
"meters_per_pixel": {
"type": "number",
"title": "Meters Per Pixel"
},
"radiance": {
"type": "number",
"title": "Radiance (nW)"
},
"skylight_link": {
"type": "string",
"title": "Skylight Link"
},
"vessels": {
"type": "array",
"title": "Vessels",
"items": {
"type": "object",
"properties": {
"vessel_name": { "type": "string", "title": "Name" },
"mmsi": { "type": "number", "title": "MMSI" },
"imo": { "type": "string", "title": "IMO" },
"vessel_type": { "type": "string", "title": "Vessel Type" },
"country": { "type": "string", "title": "Country" },
"length": { "type": "number", "title": "Length (m)" }
}
}
}
},
"definition": [
"detection_type",
"estimated_length",
"heading",
"score",
"estimated_speed",
"estimated_vessel_category",
"distance_to_coast_m",
"orientation",
"meters_per_pixel",
"radiance",
"skylight_link",
"vessels"
]
}
}
Entry Alert
ID: entry_alert_rep
{
"schema": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"properties": {
"entry_speed": {
"type": "number",
"title": "Entry Speed (kts)"
},
"entry_heading": {
"type": "number",
"title": "Entry Heading (deg)"
},
"end_heading": {
"type": "number",
"title": "Exit Heading (deg)"
},
"exit_date": {
"type": "string",
"title": "Exit Date"
},
"duration_in_area": {
"type": "string",
"title": "Duration in Area"
},
"skylight_link": {
"type": "string",
"title": "Skylight Link"
},
"vessels": {
"type": "array",
"title": "Vessels",
"items": {
"type": "object",
"properties": {
"vessel_name": { "type": "string", "title": "Name" },
"mmsi": { "type": "number", "title": "MMSI" },
"imo": { "type": "string", "title": "IMO" },
"vessel_type": { "type": "string", "title": "Vessel Type" },
"country": { "type": "string", "title": "Country" },
"length": { "type": "number", "title": "Length (m)" }
}
}
}
},
"definition": [
"entry_speed",
"entry_heading",
"end_heading",
"exit_date",
"duration_in_area",
"skylight_link",
"vessels"
]
}
}
Speed Range
ID: speed_range_alert_rep
{
"schema": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"properties": {
"average_speed_range": {
"type": "number",
"title": "Average Speed (kts)"
},
"duration_in_seconds": {
"type": "number",
"title": "Duration (seconds)"
},
"distance": {
"type": "number",
"title": "Distance (nm)"
},
"skylight_link": {
"type": "string",
"title": "Skylight Link"
},
"vessels": {
"type": "array",
"title": "Vessels",
"items": {
"type": "object",
"properties": {
"vessel_name": { "type": "string", "title": "Name" },
"mmsi": { "type": "number", "title": "MMSI" },
"imo": { "type": "string", "title": "IMO" },
"vessel_type": { "type": "string", "title": "Vessel Type" },
"country": { "type": "string", "title": "Country" },
"length": { "type": "number", "title": "Length (m)" }
}
}
}
},
"definition": [
"average_speed_range",
"duration_in_seconds",
"distance",
"skylight_link",
"vessels"
]
}
}
Fishing Alert
ID: fishing_alert_rep
{
"schema": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"properties": {
"fishing_score": {
"type": "number",
"title": "Fishing Score"
},
"skylight_link": {
"type": "string",
"title": "Skylight Link"
},
"vessels": {
"type": "array",
"title": "Vessels",
"items": {
"type": "object",
"properties": {
"vessel_name": { "type": "string", "title": "Name" },
"mmsi": { "type": "number", "title": "MMSI" },
"imo": { "type": "string", "title": "IMO" },
"vessel_type": { "type": "string", "title": "Vessel Type" },
"country": { "type": "string", "title": "Country" },
"length": { "type": "number", "title": "Length (m)" }
}
}
}
},
"definition": [
"fishing_score",
"skylight_link",
"vessels"
]
}
}
Dark Rendezvous Event
ID: dark_rendezvous_alert_rep
{
"schema": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"properties": {
"osr_score": {
"type": "number",
"title": "OSR Score"
},
"duration_hours": {
"type": "number",
"title": "Duration (hours)"
},
"skylight_link": {
"type": "string",
"title": "Skylight Link"
},
"vessels": {
"type": "array",
"title": "Vessels",
"items": {
"type": "object",
"properties": {
"vessel_name": { "type": "string", "title": "Name" },
"mmsi": { "type": "number", "title": "MMSI" },
"imo": { "type": "string", "title": "IMO" },
"vessel_type": { "type": "string", "title": "Vessel Type" },
"country": { "type": "string", "title": "Country" },
"length": { "type": "number", "title": "Length (m)" }
}
}
}
},
"definition": [
"osr_score",
"duration_hours",
"skylight_link",
"vessels"
]
}
}
Vessel Standard Rendezvous Event
ID: standard_rendezvous_alert_rep
{
"schema": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"properties": {
"duration_hours": {
"type": "number",
"title": "Duration (hours)"
},
"skylight_link": {
"type": "string",
"title": "Skylight Link"
},
"vessels": {
"type": "array",
"title": "Vessels",
"items": {
"type": "object",
"properties": {
"vessel_name": { "type": "string", "title": "Name" },
"mmsi": { "type": "number", "title": "MMSI" },
"imo": { "type": "string", "title": "IMO" },
"vessel_type": { "type": "string", "title": "Vessel Type" },
"country": { "type": "string", "title": "Country" },
"length": { "type": "number", "title": "Length (m)" }
}
}
}
},
"definition": [
"duration_hours",
"skylight_link",
"vessels"
]
}
}
