HTTP
gatOS serves HTTP/1.1 on loopback by default. The preferred host port is 4242; the listener falls
back to an ephemeral port if it is occupied, so read the status window when a fixed URL does not work.
Inside the guest, $GATOS_HTTP already points at the service. Set http_bind_host to a specific
host-interface IP or 0.0.0.0 for all IPv4 interfaces when another machine needs direct access.
HTTP has no authentication, so that also exposes its control routes to reachable clients.
# Hostcurl http://127.0.0.1:4242/v1/timecurl http://127.0.0.1:4242/v1/vessels/active/telemetry
# Guestwget -qO- "$GATOS_HTTP/time"The aggregate endpoints return JSON snapshots. /v1/fs/<path> mirrors ordinary /sim field files
as text and accepts raw writes. It can also emit Server-Sent Events for fields that change. /v1/events
and /v1/vessels/<id>/stream are SSE feeds.
curl -X POST --data '0.5' \ http://127.0.0.1:4242/v1/fs/vessels/active/ctl/throttlePOST /v1/command is the generic JSON command form. It always requires vessel_id, including an
empty string for global actions such as camera, schedules, and audio. HTTP has dedicated binary upload
routes for audio clips; camera tracks remain ordinary field writes.
See the HTTP reference for every route, response, limit, SSE behavior, and the important exceptions around audio upload and terminal video.