Internal Stream Metrics

Internal-only live-bitrate snapshot for the CALLING token's own user, for the keyless MCP server (a separate process that cannot read this process's in-memory enforcement state). Returns ONLY {streaming, current_mbps, cap_mbps} -- a strict subset of enforcement.get_user_metrics with NO stream key, NO destination URL, NO MediaMTX path. Locked behind the internal-read secret (require_internal_secret, distinct from the relay hook secret) and the same Caddy @internal_only matcher, so it is never reachable from the public internet.

2026-07-30: user_id is resolved SERVER-SIDE from the caller's own bearer token (payload.token, POST body -- never a query string, mirroring /internal/resolve-token's own discipline), via the exact same tokens.resolve_token every other PAT-authenticated path goes through. Previously took a bare user_id query param, trusting the caller's claim with only require_internal_secret as the gate; safety depended entirely on every MCP tool sourcing that claim from its own resolved identity and never accepting one as an argument -- a property enforced by discipline, not by this endpoint. There is no user_id parameter left to mismatch now, because there is no user_id parameter. See the multi-tenant authorization audit in docs/AUDIT-LOG.md.

uptime / is-live are derived MCP-side from StreamSession (the MCP container reads the DB directly); only bitrate has to come over this hop because it lives in the control-plane's memory.

post/internal/stream-metrics

Request

  • Base URL: https://sleipnir.tv (the document declares no server; this is the origin it was published from)
  • URL: https://sleipnir.tv/internal/stream-metrics
  • Auth: none declared

Headers

X-Sleipnir-Hook-Authstring nullable

Request body

tokenstring nullable

Response

Successful Response

unknown required

Changes

No recorded changes to this operation across all 1 revision of this API.