## Basic tool info Model name: elevenlabs/Realtime Conversational AI Model description: A real-time voice conversation tool using ElevenLabs' AI voice agents. Customize voices, behaviors, and languages for interactive AI experiences. Model cover: https://cdn.wiro.ai/uploads/models/elevenlabs-realtime-conversational-ai-cover.webp Model categories: - tool - partner - realtime-conversation - quick-showcase - fast-inference - voice-agent - speech-to-speech - elevenlabs - nogpu-pipeline Run Task Endpoint (POST): https://api.wiro.ai/v1/Run/elevenlabs/realtime-conversational-ai Get Task Detail Endpoint (POST): https://api.wiro.ai/v1/Task/Detail ## Model Inputs: - name: voice_id label: voice help: Required. The voice of the AI agent. type: select default: 21m00Tcm4TlvDq8ikWAM options: - value: "21m00Tcm4TlvDq8ikWAM" label: Rachel - Warm, calm (recommended) - value: "EXAVITQu4vr4xnSDxMaL" label: Sarah - Soft, friendly - value: "FGY2WhTYpPnrIDTdsKH5" label: Laura - Upbeat, conversational - value: "IKne3meq5aSn9XLyUdCD" label: Charlie - Casual, Australian - value: "JBFqnCBsd6RMkjVDRZzb" label: George - Warm, British - value: "N2lVS1w4EtoT3dr4eOWO" label: Callum - Intense, transatlantic - value: "XB0fDUnXU5powFXDhCwa" label: Charlotte - Seductive, Swedish - value: "Xb7hH8MSUJpSbSDYk0k2" label: Alice - Confident, British - value: "XrExE9yKIg1WjnnlVkGX" label: Matilda - Warm, friendly - value: "onwK4e9ZLuTAKqWW03F9" label: Daniel - Deep, authoritative, British - value: "pqHfZKP75CvOlQylNhV4" label: Bill - Trustworthy, American - value: "nPczCjzI2devNBz1zQrb" label: Brian - Deep, narrator - name: system_instructions label: system instructions help: Required. Instructions that define the AI agent's behavior and personality. type: textarea default: You are a helpful voice assistant. Speak clearly and concisely. - name: first_message label: first message help: Optional. The greeting message the agent says when the conversation starts. type: text default: Hello, how can I help you today? - name: language label: language help: Optional. Language for the AI agent. Default: English. type: select default: auto options: - value: "auto" label: Auto - value: "en" label: English - value: "tr" label: Turkish - value: "es" label: Spanish - value: "fr" label: French - value: "de" label: German - value: "it" label: Italian - value: "pt" label: Portuguese - value: "nl" label: Dutch - value: "pl" label: Polish - value: "sv" label: Swedish - value: "ru" label: Russian - value: "ar" label: Arabic - value: "hi" label: Hindi - value: "ja" label: Japanese - value: "ko" label: Korean - value: "zh" label: Chinese - name: tts_model_id label: TTS model help: Optional. Text-to-speech model. Turbo is fastest, Multilingual is highest quality. type: select default: eleven_turbo_v2 options: - value: "eleven_turbo_v2" label: Turbo v2 - Fast, low latency (recommended) - value: "eleven_multilingual_v2" label: Multilingual v2 - Higher quality, multi-language - value: "eleven_flash_v2_5" label: Flash v2.5 - Fastest, lowest latency - name: turn_timeout label: turn timeout (seconds) help: Optional. How long the agent waits for user to respond before re-prompting. Default: 7 seconds. type: number default: 7 - name: silence_end_call_timeout label: silence auto-close (seconds) help: Optional. Auto-close session after this many seconds of user silence. Default: 30 seconds. type: number default: 30 - name: max_duration_seconds label: max session duration (seconds) help: Optional. Maximum total session length. Default: 600 seconds (10 minutes). type: number default: 600 - name: turn_eagerness label: turn eagerness help: Optional. How eagerly the agent jumps in to respond. Low = patient, High = fast-paced. type: select default: normal options: - value: "low" label: Low - Patient, waits for user to finish - value: "normal" label: Normal (default) - value: "high" label: High - Quick responses, fast-paced dialogue - name: end_call label: auto end call help: Optional. Allow the agent to automatically end the call when the conversation is complete. Default: Enabled. type: select default: 1 options: - value: "1" label: Enabled - Agent can end the call when conversation is done (recommended) - value: "0" label: Disabled - Agent cannot end the call - name: speed label: speech speed help: Optional. Speech speed multiplier. 1 = normal, lower = slower, higher = faster. type: float default: 1 - name: stability label: voice stability help: Optional. Voice consistency. Higher = more stable but monotone, lower = more expressive but variable. type: float default: 0.5 - name: similarity_boost label: voice similarity help: Optional. How closely the output matches the selected voice. Higher = more similar. type: float default: 0.8 - name: optimize_streaming_latency label: streaming latency optimization help: Optional. Trade-off between audio quality and response speed. Higher = faster but lower quality. type: select default: 3 options: - value: "0" label: 0 - No optimization (best quality) - value: "1" label: 1 - Slight optimization - value: "2" label: 2 - Moderate optimization - value: "3" label: 3 - Good balance (recommended) - value: "4" label: 4 - Maximum optimization (lowest latency) - name: output_audio_format label: output audio format help: Optional. Audio format for AI voice output. Must match the frontend audio player sample rate. type: select default: pcm_24000 options: - value: "pcm_16000" label: PCM 16kHz (default) - value: "pcm_24000" label: PCM 24kHz (recommended) - value: "pcm_22050" label: PCM 22.05kHz - value: "pcm_44100" label: PCM 44.1kHz (high quality) - value: "ulaw_8000" label: μ-law 8kHz (telephony) - name: input_audio_format label: input audio format help: Optional. Audio format for user microphone input. Must match the frontend audio recorder sample rate. type: select default: pcm_24000 options: - value: "pcm_16000" label: PCM 16kHz (default) - value: "pcm_24000" label: PCM 24kHz (recommended) - value: "pcm_22050" label: PCM 22.05kHz - value: "pcm_44100" label: PCM 44.1kHz (high quality) - name: server_tools label: server tools (JSON) help: Optional. JSON array of webhook tools the agent can call during conversation. Example: [{"name": "get_weather", "description": "When user asks about weather", "method": "GET", "url": "https://api.example.com/weather/{city}", "path_parameters": [{"name": "city", "type": "string", "description": "City name"}]}, {"name": "create_order", "description": "When user wants to place an order", "method": "POST", "url": "https://api.example.com/orders", "headers": {"Authorization": "Bearer YOUR_KEY"}, "body_parameters": [{"name": "product", "type": "string", "description": "Product name"}, {"name": "quantity", "type": "number", "description": "Quantity"}]}] type: textarea default: ## Integration Header Prepare ```bash # Sign up Wiro dashboard and create project export YOUR_API_KEY="{{useSelectedProjectAPIKey}}"; export YOUR_API_SECRET="XXXXXXXXX"; # unix time or any random integer value export NONCE=$(date +%s); # hmac-SHA256 (YOUR_API_SECRET+Nonce) with YOUR_API_KEY export SIGNATURE="$(echo -n "${YOUR_API_SECRET}${NONCE}" | openssl dgst -sha256 -hmac "${YOUR_API_KEY}")"; ``` ## Run Command - Make HTTP Post Request ```bash curl -X POST "https://api.wiro.ai/v1/Run/elevenlabs/realtime-conversational-ai" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "voice_id": "21m00Tcm4TlvDq8ikWAM", "system_instructions": "You are a helpful voice assistant. Speak clearly and concisely.", "first_message": "Hello, how can I help you today?", "language": "auto", "tts_model_id": "eleven_turbo_v2", "turn_timeout": 7, "silence_end_call_timeout": 30, "max_duration_seconds": 600, "turn_eagerness": "normal", "end_call": "1", "speed": "1", "stability": "0.5", "similarity_boost": "0.8", "optimize_streaming_latency": "3", "output_audio_format": "pcm_24000", "input_audio_format": "pcm_24000", "server_tools": "", "callbackUrl": "You can provide a callback URL; Wiro will send a POST request to it when the task is completed." }'; ``` ## Run Command - Response ```json { "errors": [], "taskid": "2221", "socketaccesstoken": "eDcCm5yyUfIvMFspTwww49OUfgXkQt", "result": true } ``` ## Get Task Detail - Make HTTP Post Request with Task ID ```bash curl -X POST "https://api.wiro.ai/v1/Task/Detail" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "taskid": "2221" }'; ``` ## Get Task Detail - Make HTTP Post Request with Socket Access Token ```bash curl -X POST "https://api.wiro.ai/v1/Task/Detail" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "tasktoken": "eDcCm5yyUfIvMFspTwww49OUfgXkQt" }'; ``` ## Get Task Detail - Response ```json { "total": "1", "errors": [], "tasklist": [ { "id": "2221", "uuid": "15bce51f-442f-4f44-a71d-13c6374a62bd", "socketaccesstoken": "eDcCm5yyUfIvMFspTwww49OUfgXkQt", "parameters": {}, "debugoutput": "", "debugerror": "", "starttime": "1734513809", "endtime": "1734513813", "elapsedseconds": "6.0000", "status": "task_postprocess_end", "createtime": "1734513807", "canceltime": "0", "assigntime": "1734513807", "accepttime": "1734513807", "preprocessstarttime": "1734513807", "preprocessendtime": "1734513807", "postprocessstarttime": "1734513813", "postprocessendtime": "1734513814", "outputs": [ { "id": "6bc392c93856dfce3a7d1b4261e15af3", "name": "0.png", "contenttype": "image/png", "parentid": "6c1833f39da71e6175bf292b18779baf", "uuid": "15bce51f-442f-4f44-a71d-13c6374a62bd", "size": "202472", "addedtime": "1734513812", "modifiedtime": "1734513812", "accesskey": "dFKlMApaSgMeHKsJyaDeKrefcHahUK", "url": "https://cdn1.wiro.ai/6a6af820-c5050aee-40bd7b83-a2e186c6-7f61f7da-3894e49c-fc0eeb66-9b500fe2/0.png" } ], "size": "202472" } ], "result": true } ``` ## Kill Task - Make HTTP Post Request with Task ID ```bash curl -X POST "https://api.wiro.ai/v1/Task/Kill" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "taskid": "534574" }'; ``` ## Kill Task - Make HTTP Post Request with Socket Access Token ```bash curl -X POST "https://api.wiro.ai/v1/Task/Kill" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "socketaccesstoken": "ZpYote30on42O4jjHXNiKmrWAZqbRE" }'; ``` ## Kill Task - Response ```json { "errors": [], "tasklist": [ { "id": "534574", "uuid": "15bce51f-442f-4f44-a71d-13c6374a62bd", "name": "", "socketaccesstoken": "ZpYote30on42O4jjHXNiKmrWAZqbRE", "parameters": { "inputImage": "https://api.wiro.ai/v1/File/mCmUXgZLG1FNjjjwmbtPFr2LVJA112/inputImage-6060136.png" }, "debugoutput": "", "debugerror": "", "starttime": "1734513809", "endtime": "1734513813", "elapsedseconds": "6.0000", "status": "task_cancel", "cps": "0.000585000000", "totalcost": "0.003510000000", "guestid": null, "projectid": "699", "modelid": "598", "description": "", "basemodelid": "0", "runtype": "model", "modelfolderid": "", "modelfileid": "", "callbackurl": "", "marketplaceid": null, "createtime": "1734513807", "canceltime": "0", "assigntime": "1734513807", "accepttime": "1734513807", "preprocessstarttime": "1734513807", "preprocessendtime": "1734513807", "postprocessstarttime": "1734513813", "postprocessendtime": "1734513814", "pexit": "0", "categories": "["tool","image-to-image","quick-showcase","compare-landscape"]", "outputs": [ { "id": "6bc392c93856dfce3a7d1b4261e15af3", "name": "0.png", "contenttype": "image/png", "parentid": "6c1833f39da71e6175bf292b18779baf", "uuid": "15bce51f-442f-4f44-a71d-13c6374a62bd", "size": "202472", "addedtime": "1734513812", "modifiedtime": "1734513812", "accesskey": "dFKlMApaSgMeHKsJyaDeKrefcHahUK", "foldercount": "0", "filecount": "0", "ispublic": 0, "expiretime": null, "url": "https://cdn1.wiro.ai/6a6af820-c5050aee-40bd7b83-a2e186c6-7f61f7da-3894e49c-fc0eeb66-9b500fe2/0.png" } ], "size": "202472" } ], "result": true } ``` ## Cancel Task - Make HTTP Post Request (For tasks on queue) ```bash curl -X POST "https://api.wiro.ai/v1/Task/Cancel" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "taskid": "634574" }'; ``` ## Cancel Task - Response ```json { "errors": [], "tasklist": [ { "id": "634574", "uuid": "15bce51f-442f-4f44-a71d-13c6374a62bd", "name": "", "socketaccesstoken": "ZpYote30on42O4jjHXNiKmrWAZqbRE", "parameters": { "inputImage": "https://api.wiro.ai/v1/File/mCmUXgZLG1FNjjjwmbtPFr2LVJA112/inputImage-6060136.png" }, "debugoutput": "", "debugerror": "", "starttime": "1734513809", "endtime": "1734513813", "elapsedseconds": "6.0000", "status": "task_cancel", "cps": "0.000585000000", "totalcost": "0.003510000000", "guestid": null, "projectid": "699", "modelid": "598", "description": "", "basemodelid": "0", "runtype": "model", "modelfolderid": "", "modelfileid": "", "callbackurl": "", "marketplaceid": null, "createtime": "1734513807", "canceltime": "0", "assigntime": "1734513807", "accepttime": "1734513807", "preprocessstarttime": "1734513807", "preprocessendtime": "1734513807", "postprocessstarttime": "1734513813", "postprocessendtime": "1734513814", "pexit": "0", "categories": "["tool","image-to-image","quick-showcase","compare-landscape"]", "outputs": [ { "id": "6bc392c93856dfce3a7d1b4261e15af3", "name": "0.png", "contenttype": "image/png", "parentid": "6c1833f39da71e6175bf292b18779baf", "uuid": "15bce51f-442f-4f44-a71d-13c6374a62bd", "size": "202472", "addedtime": "1734513812", "modifiedtime": "1734513812", "accesskey": "dFKlMApaSgMeHKsJyaDeKrefcHahUK", "foldercount": "0", "filecount": "0", "ispublic": 0, "expiretime": null, "url": "https://cdn1.wiro.ai/6a6af820-c5050aee-40bd7b83-a2e186c6-7f61f7da-3894e49c-fc0eeb66-9b500fe2/0.png" } ], "size": "202472" } ], "result": true } ``` ## Task Status Information This section defines the possible task status values returned by the API when polling for task completion. ### Completed Task Statuses (Polling can stop) These indicate that the task has reached a terminal state — either success or failure. Once any of these is received, polling should stop. - task_postprocess_end : Task completed successfully and post-processing is done. - task_cancel : Task was cancelled by the user or system. ### Running Task Statuses (Continue polling) These statuses indicate that the task is still in progress. Polling should continue if one of these is returned. - task_queue : Task is waiting in the queue. - task_accept : Task has been accepted for processing. - task_assign : Task is being assigned to a worker. - task_preprocess_start : Preprocessing is starting. - task_preprocess_end : Preprocessing is complete. - task_start : Task execution has started. - task_output : Output is being generated.