Skip to main content
Version: 0.9.13

API service operations

The API service runs the TelAPI server — a Fastify-based HTTP and WebSocket API that handles call tokens, browser-to-ARI channel communication, provider webhooks, and external API endpoints. Multiple instances run behind a managed Load Balancer with TLS termination and sticky sessions.

Instance

FieldValue
NetworkPrivate only — no public IP; traffic arrives via managed load balancer
ScalableYes — set initial count in your provisioning tool; the Ops Scaler can adjust count dynamically

Containers

ContainerImagePortPurpose
voiceai-telapi${ECR_REGISTRY}/voiceai-telapi:${ECR_TAG} (Node 24-alpine)3001API + WebSocket gateway (host network)
voiceai-otel-collectorotel/opentelemetry-collector-contrib:0.150.1Telemetry collector

Load balancer

FieldValue
FrontendHTTPS :443 with managed TLS for DOMAIN_API
Backend:3001
Health checkGET /health
Sticky sessionsEnabled — required for WebSocket
Target selectionrole=api,environment=${ENVIRONMENT}

Networking

Private network only — no public IP. All traffic arrives through the LB. Outbound to ECR, AWS Secrets, and provider APIs goes through the Squid proxy.

API surface by feature flag

Surfacewebrtc enabledwebrtc disabled
GET /healthAvailableAvailable
/api/v1/webhooks/*AvailableAvailable
/api/v1/sessions/*AvailableNot registered
/api/v1/runtime/*AvailableNot registered
/api/v1/endpointsAvailableNot registered
/ws/sessionAvailableNot registered

See also