Discovery

Composer instances announce themselves on the local network via UDP broadcast and listen for the announcements of their peers, building up a cache of the other Composer hosts reachable on the same LAN. This section exposes that cache over HTTP so a multi-instance dashboard or control surface can enumerate available hosts — their identity, connection endpoints, and currently loaded project — without the operator hand-configuring every machine. Discovery is enabled and tuned via Settings; on a host where it isn't configured the endpoint simply returns an empty list rather than an error.

GET /api/discovery/instances

Returns the list of other Composer instances this host has discovered on the local network. Composer's discovery service announces itself via UDP broadcast and listens for peer announcements; this endpoint exposes whatever's currently in the discovered-instances cache. Useful when building a multi-instance dashboard or a control surface that needs to enumerate available Composer hosts.

The discovery service is enabled / configured via Settings — when not enabled or not configured on this host, the endpoint returns an empty array (it doesn't error).

Parameters: None

Response:

  • 200 OK — JSON array of discovered instances. Each entry carries the announcing peer's identity (InstanceId, Hostname, AppType, Version), connection endpoints (HttpApiHostName / HttpApiPort / WebSocketsPort, SourceAddress), the currently loaded project (ProjectName), and freshness markers (UptimeSeconds, LastSeen). Empty array [] when the discovery service isn't configured or hasn't received any announcements yet.
[
  {
    "InstanceId": "5f2b8a1e-9c0a-4d3f-8e7c-b1d2f3a4e5b6",
    "Hostname": "STUDIO-RACK-02",
    "Version": "2.6.9621.15005",
    "AppType": "Desktop",
    "ProjectName": "Evening News",
    "UptimeSeconds": 3742.18,
    "HttpApiPort": 44433,
    "HttpApiHostName": "studio-rack-02.lan",
    "WebSocketsPort": 44434,
    "SourceAddress": "10.0.4.18",
    "LastSeen": "2026-05-05T14:32:11.482Z"
  },
  {
    "InstanceId": "8a4c1d2e-3b5f-4a6c-9d0e-7f8b9c0d1e2f",
    "Hostname": "PLAYOUT-RUNTIME-A",
    "Version": "2.6.9621.15005",
    "AppType": "Runtime",
    "ProjectName": "promo-loop.prj",
    "UptimeSeconds": 86421.93,
    "HttpApiPort": 44433,
    "HttpApiHostName": "playout-runtime-a.lan",
    "WebSocketsPort": 44434,
    "SourceAddress": "10.0.4.31",
    "LastSeen": "2026-05-05T14:32:09.117Z"
  }
]