Skip to main content

Streaming

Streaming manages real-time voice/avatar sessions and outbound campaigns over the streaming gateway. Use this resource to deploy streaming workflows, start sessions, and read transcripts and metrics.

Access it as client.streaming on a Strongly client, or the same path on AsyncStrongly with await. All methods exist on both with identical signatures.

Methods

Lifecycle & actions

deploy

deploy(workflow_id: str, *, workflow_name: Optional[str] = None, cpu: Optional[str] = None, memory: Optional[str] = None, disk: Optional[str] = None, gpu: Optional[int] = None, gpu_type: Optional[str] = None, idle_timeout_seconds: Optional[int] = None, max_session_duration_seconds: Optional[int] = None, max_concurrent_sessions: Optional[int] = None, strongly_services: Optional[Mapping[str, Any]] = None) -> StreamingDeployment

Deploy a streaming workflow so it can accept sessions.

Args: workflow_id: The workflow id to deploy. workflow_name: Optional deployment label. cpu, memory, disk: Resource requests. gpu, gpu_type: GPU count and type. idle_timeout_seconds: Idle timeout before the pod drains. max_session_duration_seconds: Hard cap on a single session. max_concurrent_sessions: Concurrent-session ceiling. strongly_services: STRONGLY_SERVICES bundle override.

undeploy

undeploy(workflow_id: str) -> None

Undeploy a streaming workflow (graceful drain).

Other

end_session

end_session(session_id: str) -> None

End a streaming session (graceful drain).

errors

errors(session_id: str) -> List[StreamingErrorEvent]

Get errors emitted by the streaming-errors substrate for the session.

handoffs

handoffs(session_id: str) -> Dict[str, Any]

Get multi-agent handoff history for a streaming session.

inject_message

inject_message(session_id: str, text: str, *, role: Role = "system") -> None

Inject a text message into an active session.

list_deployments

list_deployments(workflow_id: str) -> List[StreamingDeployment]

List deployment rows for a streaming workflow.

list_sessions

list_sessions(*, workflow_id: Optional[str] = None, status: Optional[str] = None, limit: Optional[int] = None, offset: Optional[int] = None, sort: Optional[str] = None) -> List[StreamingSession]

List sessions for the caller's organization.

list_sessions_for_workflow

list_sessions_for_workflow(workflow_id: str, *, status: Optional[str] = None, limit: Optional[int] = None, offset: Optional[int] = None) -> List[StreamingSession]

List sessions (paginated) for a specific workflow.

list_workflows

list_workflows(*, search: Optional[str] = None, status: Optional[str] = None, limit: Optional[int] = None, offset: Optional[int] = None, sort: Optional[str] = None) -> List[StreamingWorkflow]

List streaming workflows in the caller's organization.

metrics

metrics(session_id: str) -> List[SessionMetricsWindow]

Get rolled-up 5s metric windows for the session.

session

session(session_id: str) -> StreamingSession

Get a single session by id.

start_session

start_session(workflow_id: str, *, metadata: Optional[Dict[str, Any]] = None, estimated_duration_seconds: Optional[int] = None, correlation_id: Optional[str] = None, disposition_schema_version: Optional[str] = None) -> SessionStartResult

Start a new streaming session. Returns session_id + ws_url + ws_token.

transcript

transcript(session_id: str, *, limit: Optional[int] = None, offset: Optional[int] = None) -> List[TranscriptTurn]

Get the full conversation transcript for a session.

workflow

workflow(workflow_id: str) -> StreamingWorkflow

Get a single streaming workflow by id.