Security model

Authenticate each surface with the right credential.

StateSet Voice separates tenant runtime traffic from platform administration, Twilio callback verification, browser admin sessions, and short-lived media stream access.

Credential types

CredentialUse
Tenant bearer tokenPublic tenant API calls such as outbound calls, sessions, call logs, and automation endpoints.
Admin API keyTenant configuration, API keys, agents, rollout governance, diagnostics, and phone routes.
Admin session cookieBrowser admin workflows after username/password login is configured.
Twilio signatureIncoming Twilio webhook callbacks before returning TwiML or acknowledging status events.
Stream tokenShort-lived credential used during Twilio Media Streams WebSocket setup.

Tenant request

curl -sS "https://voice.stateset.app/api/v1/call-logs?limit=10" \
  -H "Authorization: Bearer ${STATESET_VOICE_API_KEY}"

Admin request

curl -sS "https://voice.stateset.app/api/v1/admin/tenants" \
  -H "x-admin-key: ${STATESET_ADMIN_API_KEY}"

Operational rules

  • Keep tenant API keys and admin API keys in separate secret stores and CI scopes.
  • Use one tenant credential per environment or integration boundary.
  • Verify Twilio signatures in production and rotate stream-token secrets with a previous-secret overlap window.