Skip to main content
POST
/
v1
/
get-signed-url
curl --request POST \ --url https://api.mascot.bot/v1/get-signed-url \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data ' { "config": { "provider": "elevenlabs", "provider_config": { "api_key": "sk_your_elevenlabs_api_key_here", "agent_id": "agent_1234567890", "sample_rate": 16000 } } } '
{
  "signed_url": "wss://api.mascot.bot/v1/conversation?token=eyJhbGciOiJIUzI1NiIs...",
  "api_key": "mascot_ephemeral_abc123...",
  "base_url": "https://api.mascot.bot"
}
Send your provider connection details and get a signed WebSocket URL on our server that sets up a proxied connection between your client SDK and your chosen conversational AI provider — with real-time visemes injected into the stream for avatar lip sync. Supported providers:
  • elevenlabs — ElevenLabs Conversational AI Agents
  • gemini — Google Gemini Live API
  • openai — OpenAI Realtime API

Language-Specific Viseme Models

All providers support an optional viseme_model field in provider_config to select a language-optimized viseme prediction model:
  • "default" — English (used when viseme_model is omitted)
  • "indonesian" — Bahasa Indonesia
Example: ElevenLabs with Indonesian model
{
  "config": {
    "provider": "elevenlabs",
    "provider_config": {
      "api_key": "sk_your_key",
      "agent_id": "agent_123",
      "viseme_model": "indonesian"
    }
  }
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
config
object
required

Configuration parameters

Response

Successful response containing connection credentials for the conversational AI proxy. The response format varies by provider:

ElevenLabs: Returns a signed_url — use it directly as the WebSocket URL with the ElevenLabs SDK.

Gemini: Returns api_key and base_url — pass them to the Google AI SDK as apiKey and httpOptions.baseUrl.

OpenAI: Returns a signed_url — use it as the WebSocket URL in OpenAIRealtimeWebSocket's createWebSocket factory.

signed_url
string

(ElevenLabs, OpenAI) Signed WebSocket URL with encrypted token. For ElevenLabs, use directly as the WebSocket URL. For OpenAI, pass to createWebSocket in OpenAIRealtimeWebSocket.

Example:

"wss://api.mascot.bot/v1/conversation?token=eyJhbGciOiJIUzI1NiIs..."

api_key
string

(Gemini) Mascot Bot proxy token — use as apiKey in GoogleGenAI

Example:

"mascot_ephemeral_abc123..."

base_url
string

(Gemini) Proxy base URL — use as httpOptions.baseUrl in GoogleGenAI

Example:

"https://api.mascot.bot"