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.