Skip to content

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.

Terminal window
# Host
curl http://127.0.0.1:4242/v1/time
curl http://127.0.0.1:4242/v1/vessels/active/telemetry
# Guest
wget -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.

Terminal window
curl -X POST --data '0.5' \
http://127.0.0.1:4242/v1/fs/vessels/active/ctl/throttle

POST /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.