U
UpVoot Docs

API Reference

All HTTP and WebSocket endpoints exposed by the UpVoot platform.

The UpVoot platform exposes one primary interface (the voice WebSocket) and a set of dashboard REST APIs protected by Clerk authentication (for your own account management). Third-party integrations only need the WebSocket endpoint.

Voice WebSocket

PropertyValue
URLwss://api.upvoot.com/voice/<api-key>
ProtocolWebSocket (RFC 6455)
AuthAPI key in URL path
Audio inBinary frames — PCM L16 16kHz mono
Audio outBinary frames — PCM L16 16kHz mono
Control in/outJSON text frames

HTTP responses on upgrade

StatusMeaning
101 Switching ProtocolsConnected successfully
401 UnauthorizedAPI key missing or malformed
403 ForbiddenKey revoked
402 Payment RequiredInsufficient point balance
404 Not FoundKey not found
500 Internal Server ErrorPlatform error

Server → client JSON messages

typeFieldsDescription
audio_startAgent has begun speaking; binary audio frames follow
audio_endAgent finished speaking; listening for caller
transcriptrole, textFinal transcript. role is "user" or "assistant"
interimtextPartial real-time transcript of caller speech
turn_startLLM processing has begun
errorcode, messageA recoverable platform error occurred
call_endreasonServer is closing the call (balance depleted, max turns reached, etc.)

Client → server JSON messages

typeFieldsDescription
end_callGracefully end the call from the client side

Dashboard REST API

These endpoints are used by the UpVoot dashboard and are authenticated via Clerk session cookies. They are not intended for direct third-party access, but are documented here for completeness.

Agents

MethodPathDescription
GET/api/agentsList all agents for the authenticated user
POST/api/agentsCreate a new agent
GET/api/agents/:idGet a single agent
PATCH/api/agents/:idUpdate agent settings
DELETE/api/agents/:idDelete an agent

API Keys

MethodPathDescription
GET/api/keysList all API keys
POST/api/keysGenerate a new key (returns raw key once)
DELETE/api/keys/:idRevoke a key

Usage

MethodPathDescription
GET/api/usageCall logs with optional filters

On this page

No Headings