## Basic tool info Model name: google/gemini 3.8 live Model description: Google Gemini 3.8 Live is a low-latency audio model for voice agents. It streams natural 24 kHz speech, supports tool calling, and optional Search grounding. Model cover: https://cdn.wiro.ai/uploads/models/google-gemini-3-8-live-cover.webp Model categories: - tool - partner - use-agent - price-list - nogpu-pipeline - voice-agent - speech-to-speech - realtime-conversation Run Task Endpoint (POST): https://api.wiro.ai/v1/Run/google/gemini-3-8-live Get Task Detail Endpoint (POST): https://api.wiro.ai/v1/Task/Detail ## Model Inputs: - name: voice label: voice help: Required. The voice of the AI assistant. It speaks the language of the conversation automatically. type: select default: Puck options: - value: "Puck" label: Puck - Upbeat (default) - value: "Kore" label: Kore - Firm - value: "Zephyr" label: Zephyr - Bright - value: "Charon" label: Charon - Informative - value: "Fenrir" label: Fenrir - Excitable - value: "Leda" label: Leda - Youthful - value: "Orus" label: Orus - Firm - value: "Aoede" label: Aoede - Breezy - value: "Callirrhoe" label: Callirrhoe - Easy-going - value: "Autonoe" label: Autonoe - Bright - value: "Enceladus" label: Enceladus - Breathy - value: "Iapetus" label: Iapetus - Clear - value: "Umbriel" label: Umbriel - Easy-going - value: "Algieba" label: Algieba - Smooth - value: "Despina" label: Despina - Smooth - value: "Erinome" label: Erinome - Clear - value: "Algenib" label: Algenib - Gravelly - value: "Rasalgethi" label: Rasalgethi - Informative - value: "Laomedeia" label: Laomedeia - Upbeat - value: "Achernar" label: Achernar - Soft - value: "Alnilam" label: Alnilam - Firm - value: "Schedar" label: Schedar - Even - value: "Gacrux" label: Gacrux - Mature - value: "Pulcherrima" label: Pulcherrima - Forward - value: "Achird" label: Achird - Friendly - value: "Zubenelgenubi" label: Zubenelgenubi - Casual - value: "Vindemiatrix" label: Vindemiatrix - Gentle - value: "Sadachbia" label: Sadachbia - Lively - value: "Sadaltager" label: Sadaltager - Knowledgeable - value: "Sulafat" label: Sulafat - Warm - name: system_instructions label: system instructions help: Required. Instructions that define the AI assistant's behavior and personality. type: textarea default: You are a helpful voice assistant. Speak clearly and concisely. - name: thinking_level label: thinking level help: Optional. None uses gemini-3.8-live for the fastest replies. Low, medium and high switch to gemini-3.8-live-extended-thinking, which reasons in the background and may say a short filler while it thinks (higher latency and cost). type: select default: none options: - value: "none" label: None - value: "low" label: Low - value: "medium" label: Medium - value: "high" label: High - name: web_search label: web search help: Optional. Lets the assistant search Google for current information. Each search query is billed separately. type: select default: false options: - value: "false" label: Off - value: "true" label: On - Google Search grounding - name: input_audio_rate label: input audio rate help: Optional. Sample rate of the 16-bit PCM microphone input. AI voice output is always 24kHz 16-bit PCM. type: select default: 16000 options: - value: "16000" label: 16kHz (recommended, native) - value: "24000" label: 24kHz - value: "8000" label: 8kHz (phone quality) - name: start_sensitivity label: speech start sensitivity help: Optional. How readily the start of user speech is detected. Lower it in noisy environments. type: select default: high options: - value: "high" label: High - Detects speech start more often (default) - value: "low" label: Low - Ignores more background noise - name: end_sensitivity label: speech end sensitivity help: Optional. How readily the end of user speech is detected. type: select default: high options: - value: "high" label: High - Ends the turn sooner, faster replies (default) - value: "low" label: Low - Tolerates longer pauses - name: turn_detection_silence_ms label: silence duration (ms) help: Optional. How long the user must be silent (in ms) before the AI starts responding. Leave empty for Google's default. type: number 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}" | awk '{print $NF}')"; ``` ## Run Command - Make HTTP Post Request ```bash curl -X POST "https://api.wiro.ai/v1/Run/google/gemini-3-8-live" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "voice": "Puck", "system_instructions": "You are a helpful voice assistant. Speak clearly and concisely.", "thinking_level": "none", "web_search": "false", "input_audio_rate": "16000", "start_sensitivity": "high", "end_sensitivity": "high", "turn_detection_silence_ms": null, "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", "totalcost": "0.003510000000", "chargedcost": "0.002808000000", "discountamount": "0.000702000000", "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 } ``` totalcost is the list price. chargedcost is the amount actually billed after any discount (a store fee is included on store runs); discountamount is the discount. chargedcost is null until the charge is recorded (shortly after task_postprocess_end) and "0" for a failed or cancelled task. ## 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.