Skip to content

jams

jam api endpoints for shared listening rooms.

create_jam(body: CreateJamRequest, session: Session = Depends(require_auth)) -> JamResponse

create a new jam.

get_active_jam(session: Session = Depends(require_auth)) -> JamResponse | None

get the user’s current active jam.

get_jam_preview(code: str) -> JamPreviewResponse

public preview info for a jam (no auth required).

get_jam(code: str, session: Session = Depends(require_auth)) -> JamResponse

get jam details by code.

join_jam(code: str, session: Session = Depends(require_auth)) -> JamResponse

join a jam.

leave_jam(code: str, session: Session = Depends(require_auth)) -> dict[str, bool]

leave a jam.

end_jam(code: str, session: Session = Depends(require_auth)) -> dict[str, bool]

end a jam (host only).

jam_command(code: str, body: CommandRequest, session: Session = Depends(require_auth)) -> dict[str, Any]

send a playback command to the jam.

jam_websocket(ws: WebSocket, code: str, session_id: Annotated[str | None, Cookie()] = None) -> None

WebSocket endpoint for real-time jam sync.