Hydra
API Reference

Complete reference of all WebSocket stream event types and their payloads.

Event Types

Every WebSocket message has a type field and a data payload. Below is the complete reference for each event type.


aircraft

Military aircraft position updates.

{
  "type": "aircraft",
  "data": {
    "positions": [
      {
        "icaoHex": "AE1234",
        "callsign": "FORTE12",
        "lat": 36.12,
        "lng": -5.35,
        "altitudeBaro": 55000,
        "groundSpeed": 310,
        "track": 92.4,
        "verticalRate": 0,
        "category": "ISR",
        "isMilitary": true,
        "registration": "10-2045",
        "icaoType": "GLXE",
        "model": "RQ-4B Global Hawk",
        "operator": "US Air Force",
        "squawk": "3615",
        "emergency": "none",
        "timestamp": "2026-03-21T08:30:00.000Z",
        "flightId": "cm5flight001",
        "country": "United States",
        "flagCode": "US"
      }
    ],
    "count": 1,
    "timestamp": "2026-03-21T08:30:00.000Z"
  }
}
Field Type Description
icaoHex string ICAO 24-bit hex address
callsign string | null ADS-B callsign
lat number Latitude
lng number Longitude
altitudeBaro number | null Barometric altitude (feet)
groundSpeed number | null Ground speed (knots)
track number | null Track angle (degrees)
verticalRate number | null Vertical rate (ft/min)
category string ISR, VIP, BOMBER, COMMAND, TANKER, TRANSPORT, FIGHTER, HELICOPTER, UAV, TRAINER, UNKNOWN
isMilitary boolean Always true for this stream
registration string | null Aircraft registration number
icaoType string | null ICAO type designator
model string | null Aircraft model name
operator string | null Operating entity
squawk string | null Transponder squawk code
emergency string Emergency status (none, general, lifeguard, minfuel, nordo, unlawful, downed)
flightId string Internal flight tracking ID
country string | null Operator country
flagCode string | null ISO country code

vessel

Vessel position updates from AIS.

{
  "type": "vessel",
  "data": {
    "positions": [
      {
        "mmsi": "211234567",
        "name": "NORTHERN SPIRIT",
        "callSign": "DABC",
        "lat": 57.68,
        "lng": 11.94,
        "speed": 12.3,
        "course": 245.0,
        "heading": 243,
        "navStatus": 0,
        "category": "TANKER",
        "flag": "DE",
        "destination": "ROTTERDAM",
        "shipType": 80,
        "voyageId": "cm5voyage001",
        "timestamp": 1711008000000
      }
    ],
    "count": 1,
    "timestamp": "2026-03-21T08:30:00.000Z"
  }
}
Field Type Description
mmsi string Maritime Mobile Service Identity
name string | null Vessel name
callSign string | null Radio call sign
lat number Latitude
lng number Longitude
speed number | null Speed over ground (knots)
course number | null Course over ground (degrees)
heading number | null True heading (degrees)
navStatus number | null AIS navigational status code
category string CARGO, TANKER, MILITARY
flag string | null Flag state ISO code
destination string | null AIS reported destination
shipType number | null AIS ship type code
voyageId string Internal voyage tracking ID
timestamp number Position timestamp (epoch ms)

signal

OSINT intelligence signals.

{
  "type": "signal",
  "data": {
    "signals": [
      {
        "id": "cm5abc123",
        "title": "Elevated naval activity in Eastern Mediterranean",
        "description": "Three warships detected repositioning near Cyprus...",
        "severity": "HIGH",
        "category": "NAVAL",
        "source": "AIS",
        "sourceRef": "ais-pattern-20260321",
        "region": "Middle East",
        "countries": ["IL", "GR", "CY"],
        "latitude": 35.2,
        "longitude": 33.4,
        "isActive": true,
        "metadata": null,
        "createdAt": "2026-03-21T08:15:00.000Z"
      }
    ]
  }
}
Field Type Description
id string Signal identifier
title string Signal title
description string Detailed description
severity string CRITICAL, HIGH, MEDIUM, LOW, INFO
category string Signal category enum
source string Signal source enum
sourceRef string | null External source reference
region string | null Geographic region
countries string[] ISO country codes
latitude number | null Signal latitude
longitude number | null Signal longitude
isActive boolean Whether signal is still active
metadata object | null Source-specific metadata (often null on stream)
createdAt string ISO 8601 timestamp

alert

Missile and rocket alerts from Pikud HaOref.

{
  "type": "alert",
  "data": {
    "alerts": [
      {
        "id": "cm5alert001",
        "title": "Rocket alert — Sderot, Ibim, Nir Am",
        "description": "Rocket and missile fire detected...",
        "severity": "CRITICAL",
        "category": "MISSILE_ALERT",
        "source": "OREF",
        "sourceRef": "oref-20260321-001",
        "region": "Gaza Envelope",
        "countries": ["IL"],
        "latitude": 31.52,
        "longitude": 34.59,
        "isActive": true,
        "metadata": {},
        "createdAt": "2026-03-21T06:45:12.000Z"
      }
    ],
    "count": 1,
    "timestamp": "2026-03-21T06:45:12.000Z"
  }
}

Same fields as signal events, but always category: "MISSILE_ALERT" and source: "OREF".


market

Geopolitical prediction market price updates.

{
  "type": "market",
  "data": {
    "markets": [
      {
        "conditionId": "0xabc123...",
        "question": "Will Russia and Ukraine reach a ceasefire by July 2026?",
        "outcomePrices": { "Yes": 0.23, "No": 0.77 },
        "previousPrices": { "Yes": 0.21, "No": 0.79 },
        "priceChange": 0.02
      }
    ],
    "timestamp": "2026-03-21T08:30:00.000Z"
  }
}
Field Type Description
conditionId string Polymarket condition ID
question string Market question
outcomePrices object Current outcome probabilities (0.0–1.0)
previousPrices object | null Previous outcome probabilities
priceChange number Absolute change in "Yes" price since last update

market_correlation

AI-detected correlations between intelligence signals and prediction markets.

{
  "type": "market_correlation",
  "data": {
    "signal": { "id": "cm5abc123", "title": "...", "category": "NAVAL" },
    "correlations": [
      {
        "marketId": "market-001",
        "conditionId": "0xabc123...",
        "question": "Will there be a naval conflict in the Mediterranean?",
        "correlationScore": 0.87,
        "impactDirection": "YES_UP",
        "reasoning": "Naval buildup near Cyprus historically correlates with...",
        "currentPrices": { "Yes": 0.31, "No": 0.69 }
      }
    ],
    "timestamp": "2026-03-21T08:30:00.000Z"
  }
}
Field Type Description
correlationScore number AI confidence score (0.0–1.0)
impactDirection string YES_UP, YES_DOWN, MIXED, UNKNOWN
reasoning string | null LLM explanation of the correlation

x_post

X/Twitter OSINT posts from tracked accounts.

{
  "type": "x_post",
  "data": {
    "posts": [
      {
        "id": "post-001",
        "content": "Breaking: Large military convoy spotted moving...",
        "handle": "IntelCrab",
        "displayName": "OSINT Aggregator",
        "avatarUrl": "https://...",
        "reputation": "VERIFIED",
        "severity": "HIGH",
        "relevanceScore": 0.92,
        "topics": ["military", "deployment"],
        "countries": ["UA", "RU"],
        "postedAt": "2026-03-21T08:20:00.000Z",
        "mediaUrls": ["https://..."]
      }
    ],
    "count": 1,
    "timestamp": "2026-03-21T08:20:00.000Z"
  }
}

tension

Global tension score metric.

{
  "type": "tension",
  "data": {
    "score": 67,
    "components": {
      "geopolitical": 72,
      "military": 65,
      "cyber": 58
    },
    "activeFlights": 142,
    "activeSignals": 38,
    "timestamp": "2026-03-21T08:30:00.000Z"
  }
}

online_count

Number of currently connected clients.

{
  "type": "online_count",
  "data": {
    "count": 347,
    "timestamp": "2026-03-21T08:30:00.000Z"
  }
}

chat_message

Live chat message from a connected user.

{
  "type": "chat_message",
  "data": {
    "id": "msg-001",
    "userId": "user-abc",
    "displayName": "analyst_47",
    "avatarUrl": null,
    "content": "Anyone seeing the ISR activity over the Black Sea?",
    "createdAt": "2026-03-21T08:25:00.000Z"
  }
}

chat_history

Sent once on connection — last 50 chat messages.

{
  "type": "chat_history",
  "data": {
    "messages": [
      {
        "id": "msg-001",
        "userId": "user-abc",
        "displayName": "analyst_47",
        "avatarUrl": null,
        "content": "...",
        "createdAt": "2026-03-21T08:25:00.000Z"
      }
    ]
  }
}