Skip to content

HTTP API

Public stream

GET /<mount> returns the live stream. The response includes icy-* headers and Content-Type for the configured profile. HEAD returns headers without creating a listener.

Endpoint Purpose
GET /radio Audio stream
GET /radio with Icy-MetaData: 1 Audio with ICY metadata blocks
GET /_kite/v1/events?mount=/radio SSE metadata/source events
GET /_kite/v1/ws?mount=/radio WebSocket audio and JSON events
GET /_kite/v1/playlist.m3u?mount=/radio Absolute M3U playlist
GET /status-json.xsl Mount status JSON
GET /healthz Process health on the admin listener
GET /readyz Listener readiness on the admin listener

Source ingest

Source clients authenticate with HTTP Basic Auth using the configured mount username and password. Kite accepts PUT /radio, POST /radio, and legacy SOURCE /radio ICE/1.0 over HTTP/1.1. The media profile must match the mount configuration.

Admin API

Admin endpoints require Authorization: Bearer <KITE_ADMIN_TOKEN>.

Method Endpoint Purpose
GET /api/v1/config Redacted active config and ETag
PUT /api/v1/config Validate, persist, and activate config
POST /api/v1/config/validate Validate a proposed config
POST /api/v1/reload Reload config from disk
GET /api/v1/mounts Runtime mount status
DELETE /api/v1/source?mount=/radio Disconnect active source
GET /metrics Prometheus exposition

Use If-Match with the config ETag to avoid overwriting a newer revision. Listener addresses, admin bind settings, and TLS mode require a restart.