nightshipd exposes a single HTTP API. The full spec is an OpenAPI document, and every running server serves live, browsable docs.
Every nightshipd serves its own API reference — no
separate site to keep in sync:
/api/docs — e.g. https://builds.example.com/api/docs./api/openapi.yaml./api/version returns a small JSON blob.
The API covers channels, builds, tokens, invites, and groups, plus the Tide
sync descriptor endpoint (GET /api/tide/sync/{channel}) that
hands a client presigned URLs. The desktop app and both CLIs speak this same
API — anything they do, you can script.
Requests carry a bearer token; a server rejects unauthenticated requests with
401 until you present a valid one. Public channels are the
exception — their read paths serve token-less followers.