#Hello,I have set the Dynamic variable during triggered the https://api.elevenlabs.io/v1/convai/twi
1 messages · Page 1 of 1 (latest)
Short answer:
To pass dynamic variables to a Twilio outbound call, you must include them inside the conversation_initiation_client_data.dynamic_variables object in your POST body, and reference them in your agentâs prompt using double curly braces with an exact name match. Example:
POST https://api.elevenlabs.io/v1/convai/twilio/outbound-call
{
"agent_id": "AGENT_ID",
"agent_phone_number_id": "PHONE_NUMBER_ID",
"to_number": "+1XXXYYYZZZZ",
"conversation_initiation_client_data": {
"dynamic_variables": {
"customer_name": "John Doe",
"account_status": "premium"
}
// optionally:
// "conversation_config_override": {
// "agent": { "first_message": "Hi {{customer_name}}!" }
// }
}
}
What to check:
- Prompt placeholders: Use {{customer_name}} style in your agent prompt/first message, and ensure the key names match exactly (caseâsensitive).
- Where you put the data: Dynamic variables must be nested under conversation_initiation_client_data when calling /v1/convai/twilio/outbound-call.
- Types: Values must be strings, numbers, or booleans (no objects/arrays).
- Reserved names: Donât prefix your own variables with system__ (reserved for built-ins like system__call_sid).
- If youâre overriding prompt/first_message instead of using variables, enable those override permissions in the agentâs Security settings; otherwise the override is ignored. Dynamic variables do not require that setting.
- Note on Twilio guides: The webhook-based âTwilio personalizationâ docs are for inbound calls. For outbound calls, pass conversation_initiation_client_data directly in your API request as shown above.
If itâs still not substituting, please share:
- The exact JSON you POSTed (with conversation_initiation_client_data.dynamic_variables),
- The exact {{...}} placeholders used in your agent prompt/first message,
and Iâll pinpoint the mismatch.
Thank it's working
Awesomeâglad itâs working!
For future reference:
- Dynamic variables: syntax ({{variable_name}}), system variables, and troubleshooting. (elevenlabs.io)
- Outbound call API: accepts conversation_initiation_client_data for passing dynamic_variables at call start. (elevenlabs.io)
- Conversation initiation client data structure: dynamic_variables and optional overrides. (elevenlabs.io)
If you need a minimal JSON example for conversation_initiation_client_data, I can share one.
Sources:
Dynamic variables | ElevenLabs Documentation
Outbound call via twilio | ElevenLabs Documentation
Personalization | ElevenLabs Documentation
https://api.elevenlabs.io/v1/convai/conversations
in converastion api i want to know about the status nums
{"result":"1. Describe how you implemented server-side rendering with Angular Universal to improve performance and SEO; what challenges and trade-offs did you address?\n2. How did you design real-time vehicle tracking with Google Maps, Mapbox, and PubNub; explain data flow, synchronization, and handling of high update rates?\n3. What error handling and authentication patterns did you implement with Angular HttpClient when integrating RESTful APIs in your portals?\n4. Describe your approach to component architecture, state management, and reuse in scalable Angular applications like Proveera Exports.\n5. Explain how you built CI/CD pipelines with GitHub Actions for testing and deployment; how did you handle rollbacks and environment configurations?","call_id":null}
i returning this type of questions string but elevenlab consider this questions string as single question.
Hereâs what the Conversations API returns for status, and how to send multiple questions so they arenât treated as a single message.
- Conversation status values
- status (string, not numeric) can be one of: initiated, in-progress, processing, done, failed. See GET /v1/convai/conversations/:conversation_id. (elevenlabs.io)
- In list responses youâll also see call_successful with possible values: success, failure, unknown. See GET /v1/convai/conversations. (elevenlabs.io)
- Your multi-line âquestionsâ string being treated as one question
- Passing a single text value (e.g., via dynamic variables or a single text input) is processed as one user message. To submit multiple questions, send them as separate user messages:
- Over WebSocket: send multiple events of type "user_message", each with its own text. (elevenlabs.io)
- Via SDKs: call the sendMessage (or equivalent) method multiple times to enqueue distinct user turns. (elevenlabs.io)
- If youâre starting a Twilio outbound call and need to pass initial data, use conversation_initiation_client_data in the request. This supports overrides and dynamic_variables at conversation start. (elevenlabs.io)
References
- Get conversation details (statuses): GET /v1/convai/conversations/:conversation_id. (elevenlabs.io)
- List conversations (call_successful enum): GET /v1/convai/conversations. (elevenlabs.io)
- Client-to-server events (multiple user_message events). (elevenlabs.io)
- Twilio outbound call (conversation_in
please share the example
Here are the verified details and examples from the official ElevenLabs docs.
Conversation status values (Conversations API)
- GET /v1/convai/conversations/:conversation_id returns status as an enum string with these allowed values: initiated, in-progress, processing, done, failed. See the example response on the endpoint page. (elevenlabs.io)
- You can list conversations with GET /v1/convai/conversations; each item includes status plus fields like call_successful (success|failure|unknown) and direction (inbound|outbound). Filtering options are documented on that page. (elevenlabs.io)
Why your ânumbered questionsâ are treated as one item
- Tool and client-tool results are appended to the conversation context as one message; if you return a single string, the agent sees a single blob of text. The docs note that when a tool is configured to wait for a response, the response is appended to the conversation context. (elevenlabs.io)
How to pass multiple questions as discrete items (example)
- Return structured JSON (not one string). For example, have your webhook/tool return:
{ "response": { "questions": [
"Describe how you implemented server-side rendering with Angular UniversalâŠ",
"How did you design real-time vehicle tracking with Google Maps, Mapbox, and PubNubâŠ",
"What error handling and authentication patterns did you implement with Angular HttpClientâŠ"
]}}
Then map that array into a dynamic variable via tool assignments:- source: response
- dynamic_variable: questions
- value_path: response.questions
Assignments use dot notation to pick values from your toolâs JSON response and write them to dynamic variables. (elevenlabs.io)
How the agent uses that data
- Dynamic variables can be referenced in your prompt/first message (e.g., {{questions}}) or consumed by the LLM from the appended tool result, allowing you to instruct the agent (in its system prompt) to iterate over the array and ask items one by one. The behavior of dynamic variables and assignment via tool responses is described in the dynamic variables guide. (elevenlabs.io)
References
- Get conversation details (statuses): GET /v1/convai/conversations/:conversation_id. (elevenlabs.io)
- List conversations (filters, call_successful): GET /v1/convai/conversations. (elevenlabs.io)
- Client tools âwait for responseâ appends the result to context. (elevenlabs.io)
- Dynamic variables and dot-notation assignments from tool responses. (elevenlabs.io)
- Tools API shows the assignments structure (source, dynamic_variable, value_path). (elevenlabs.io)
If youâd like, share which tool type youâre using (client tool vs. webhook/server tool
Hello, after the call, I need to get the status. What should I do? Which type of changes i should do elevenlab?
Short answer: use postâcall webhooks (recommended) or poll the Conversations API.
What to do
- Enable postâcall webhooks for your agents to be notified when a call ends and analysis is finished. Choose:
- post_call_transcription for full transcript, analysis, metadata (includes a status field).
- post_call_audio for just the full-call audio (base64). (elevenlabs.io)
- Secure and harden delivery:
- Validate the ElevenLabs-Signature HMAC on every request, optionally allowlist the documented IPs, and ensure your endpoint returns HTTP 200; repeated failures autoâdisable delivery. (elevenlabs.io)
- Update parsers for the Aug 15, 2025 webhook format change: transcription webhooks now also include has_audio, has_user_audio, has_response_audio (aligned with the GET Conversation response). (elevenlabs.io)
If you prefer polling (or as a fallback)
- Call GET /v1/convai/conversations/:conversation_id and check status (initiated | in-progress | processing | done | failed). The response also includes the optional analysis object and the has_audio flags noted above. (elevenlabs.io)
- To enumerate recent calls or find the ID to poll, use GET /v1/convai/conversations (filters available by agent_id, time, success, etc.). (elevenlabs.io)
- To fetch the recording after completion, call GET /v1/convai/conversations/:conversation_id/audio. (elevenlabs.io)
Small but important agent change (if you created the agent via API/SDK)
- Add the End Call system tool so the agent can explicitly terminate calls; itâs added by default for agents created in the dashboard but must be added manually for API/SDK-created agents. (elevenlabs.io)
If you share how youâre placing calls (telephony vs WebRTC) and whether you can accept webhooks, I can point you to the exact setup steps.
Sources:
Post-call webhooks | ElevenLabs Documentation
Post-call webhooks | ElevenLabs Documentation
Post-call webhooks | ElevenLabs Documentation
Get conversation details | ElevenLabs Documentation
List conversations | ElevenLabs Documentation
Get conversation audio | ElevenLabs Documentation
End call | ElevenLabs Documentation
I have created one GET api and created post-webhook in the elevenlab and map this with agent. but still this method is not calling.
method API is created in .net core
Likely cause: you created a GET endpoint but enabled a post-call webhook. Post-call webhooks only send POST requests after a call ends, so a GET action in your .NET app will never be hit.
What to check
-
If you enabled a post-call webhook
- Listener must be an HTTPS POST endpoint that returns HTTP 200 quickly; ElevenLabs will not call GET. (elevenlabs.io)
- Enable it in Agents Platform settings and note that repeated failures autoâdisable the webhook (10+ consecutive failures, last success >7 days). (elevenlabs.io)
- Verify HMAC signature in the ElevenLabs-Signature header (format t=timestamp,v0=hash). Optionally allowlist ElevenLabs egress IPs if your firewall blocks requests. (elevenlabs.io)
- Event types you can receive: post_call_transcription and post_call_audio. These fire only after a conversation finishes. (elevenlabs.io)
-
If you intended to call your API during the conversation
- Use a Server Tool (Webhook tool) on the agent. You can set Method=GET and define path/query/body params; the agent will invoke it when the LLM decides itâs relevant. Provide a clear name/description and instruct usage in the system prompt. (elevenlabs.io)
- Test tool calls via Simulate Conversations/Tool Call Testing to confirm the agent actually triggers the tool and passes parameters. (elevenlabs.io)
Quick next steps (pick one path)
- For postâcall data: implement a POST /webhook in .NET, return 200, verify HMAC, ensure the endpoint is publicly reachable over HTTPS, and reâenable the webhook if it was autoâdisabled. Then place a test call and confirm delivery. (elevenlabs.io)
- For inâcall API usage: add a Webhook tool with Method=GET, wire it to your agent, and update the agent prompt to say exactly when to call it. Use the simulator to verify tool_calls appear. (elevenlabs.io)
If you share which one you configured (postâcall webhook vs. server tool), I can point you to the exact place in the dashboard and the expected payload/behavior. (elevenlabs.io)
Sources:
Post-call webhooks | ElevenLabs Documentation
Post-call webhooks | ElevenLabs Documentation
Post-call webhooks | ElevenLabs Documentation
Post-call webhooks | ElevenLabs Documentation
Server tools | ElevenLabs Documentation
Simulate Conversations | ElevenLabs Documentation
Post-call webhooks | ElevenLabs Documentation
Server tools | ElevenLabs Documentation
Server tools | ElevenLabs Documentation
GET. (elevenlabs.io)
Enable it in Agents Platform settings and note that repeated failures autoâdisable the webhook (10+ consecutive failures, last success >7 days).
please provide the steps to check.
Below are the quickest checks to get your webhook firing again. All items are taken from ElevenLabsâ official docs.
- Confirm the HTTP method
- ElevenLabs webhooks call your endpoint with POST, not GET. If your .NET endpoint only accepts GET, it will never be invoked. Switch it to accept POST. (elevenlabs.io)
- Ensure the webhook is enabled and mapped to Agents
- Create/enable the webhook in the general Settings > Webhooks page. Then select it in product settings (Agents Platform) so it listens for postâcall events. (elevenlabs.io)
- You can also enable Postâcall Webhooks for all agents from the Conversational AI settings page. (elevenlabs.io)
- Cookbook example: Agents Platform settings > âPostâCall Webhookâ > create webhook and paste your URL. (elevenlabs.io)
- Check for autoâdisable due to failures
- Webhooks autoâdisable after 10+ consecutive failures if the last success was over 7 days ago (or never succeeded). Reâenable them in Settings when this happens. (elevenlabs.io)
- Verify success criteria on your endpoint
- Must return HTTP 200 quickly for each POST; failures count toward autoâdisable. For HIPAA compliance there are no retries if a webhook fails. (elevenlabs.io)
- Validate signatures
- Use the shared secret shown when you create the webhook to verify the ElevenLabsâSignature header (format: t=timestamp,v0=hash where hash is HMACâSHA256 of âtimestamp.request_bodyâ). (elevenlabs.io)
- Trigger a real event to test
- Postâcall webhooks fire after a call ends and analysis completes. Start and complete a test call to generate an event. If testing locally, expose your server (e.g., via ngrok) and use that public URL in the webhook settings. (elevenlabs.io)
- Permissions
- Only workspace admins can configure webhooks for a workspace. Confirm you have the required role. (elevenlabs.io)
If after these checks the POST still doesnât hit your server, reâenable the webhook (if
please share the steps to check errors of webhook calling
Hereâs how to diagnose webhook-call failures using only whatâs in ElevenLabsâ docs:
- Verify itâs enabled and attached to your agent
- Go to General Settings > Webhooks and confirm the webhook is enabled. Webhooks can be autoâdisabled after 10+ consecutive failures if the last success was >7 days ago; reâenable it here. Then make sure this webhook is selected inside the product settings (Agents Platform). (elevenlabs.io)
- Confirm HTTP method and success criteria
- ElevenLabs sends POST requests to your listener. If your endpoint only supports GET, it wonât be called. Your handler must quickly return HTTP 200 on receipt; repeated nonâ200 responses can cause autoâdisable. (elevenlabs.io)
- Check signature validation
- Inspect the ElevenLabs-Signature header (format: t=timestamp,v0=hash). Compute HMAC-SHA256 over âtimestamp.request_bodyâ with your shared secret and compare to v0. Also validate the timestamp tolerance. If validation fails, log the reason and still ensure your server returns a 2xx once youâve accepted the event for processing. (elevenlabs.io)
- Confirm URL reachability and correct secret
- If developing locally, expose your endpoint (e.g., ngrok) and paste the public URL into Agents Platform > PostâCall Webhook settings. After saving, copy the webhook secret and use it in your server for HMAC checks. Update the URL/secret whenever they change. (elevenlabs.io)
- Verify header/secret configuration in the UI
- In Agents Platform settings, you can configure the webhook URL and manage which secrets are sent in headers. Click the webhook to confirm the expected headers are being sent. (elevenlabs.io)
- Understand delivery behavior while debugging
- Each webhook event is dispatched only once; thereâs no documented reâdelivery UI. If you miss an event during debugging, fetch product data via the API instead. (elevenlabs.io)
If you still canât identify the issue after these checks, capture your serverâs raw request logs (status code, headers, body) around the POST attempts and contact ElevenLabs Support with details. (help.elevenlabs.io)
Sources:
Webhooks | ElevenLabs Documentation
Webhooks | ElevenLabs Documentation
Webhooks | ElevenLabs Documentation
Data Collection and Analysis with Agents Platform in Next.js | ElevenLabs Documentation
Twilio personalization | ElevenLabs Documentation
Webhooks | ElevenLabs Documentation
How can I contact support? â ElevenLabs
still not wroking. is that anot her way to call webhook?
Short answer: yesâbut not via GET. ElevenLabs sends webhooks as HTTP POST only. A GET-only endpoint will never be called. Use one of these supported options instead:
-
Keep using postâcall webhooks (POST only)
- Ensure the webhook is enabled in Settings, attached to Agents Platform, and reâenable it if autoâdisabled after 10+ consecutive failures with no success in the last 7 days. Return HTTP 200 quickly and verify the ElevenLabs-Signature HMAC. If you enabled âSend audio data,â handle chunked transfer. For HIPAA, failed webhooks are not retried.
-
Call your API during the conversation via a Webhook Tool (supports GET/POST/âŠ)
- Add a webhook tool to the agent and set Method=GET if you need a GET call. See the tools overview and the Zendesk integration which shows a webhook tool using Method: GET. You can also create/manage tools via the ConvAI CLI.
-
Use the Twilio personalization webhook (on inbound calls)
- If youâre using Twilio, the platform can POST to your endpoint at call start to fetch conversation-init data you return.
-
Skip webhooks and poll for results
- After a call ends, fetch the transcript and metadata with Get Conversation.
If your current POST webhook âstill isnât working,â verify these items:
- Itâs enabled and mapped to Agents Platform; reâenable if autoâdisabled.
- Your handler accepts POST and returns 2xx quickly; otherwise deliveries will be marked failed and may autoâdisable.
- You validate ElevenLabs-Signature (HMAC of timestamp.request_body) with your stored secret.
- If you toggled âSend audio data,â your server reads chunked requests.
- For local testing, expose your endpoint (e.g., via ngrok) and use that HTTPS URL in Settings.
If you share your current endpoint type and where you attached it (postâcall vs tool vs Twilio), I can point to the exact config page to switch it.
yes, i have created the post method.
Great â since you now have a POST endpoint, use this checklist to verify delivery and find errors:
- Confirm the webhook is active and mapped
- In Webhooks settings, make sure itâs enabled (not autoâdisabled) and selected for Agents Platform events. Autoâdisabled occurs after 10+ consecutive failures with last success >7 days; you must reâenable it. (elevenlabs.io)
- Trigger the correct event
- Postâcall webhooks only fire after a call ends and analysis completes. They must receive a 200 to be marked successful; there are no retries for failures (HIPAA). (elevenlabs.io)
- Return 200 quickly
- Your listener should validate the signature and promptly return HTTP 200; otherwise the webhook may be autoâdisabled. Events are dispatched only once. (elevenlabs.io)
- Verify HMAC signature
- Validate the ElevenLabsâSignature header format t=timestamp,v0=hash where v0 is HMACâSHA256 of âtimestamp.request_bodyâ using your webhook secret. Reject if timestamp too old or signature mismatch. (elevenlabs.io)
- Check status and last error via API
- Call List Workspace Webhooks to see is_disabled, is_auto_disabled, most_recent_failure_error_code, and most_recent_failure_timestamp:
- GET /v1/workspace/webhooks (requires xiâapiâkey). (elevenlabs.io)
- If developing locally
- Expose your server with ngrok, set that URL as the PostâCall Webhook in Agents settings, and store the generated webhook secret. (elevenlabs.io)
- Need another way to get the data (without webhooks)?
- Poll the Conversations API instead:
- Get conversation: GET /v1/convai/conversations/:conversation_id
- Get conversation audio: GET /v1/convai/conversations/:conversation_id/audio
These return the same postâcall data youâd receive via the transcription webhook. (elevenlabs.io)
- If you meant a different webhook (preâcall personalization)
- For inbound Twilio calls you can configure a personalization webhook that ElevenLabs calls during the dialing window; enable âfetch conversation initiation dataâ on the agent and set the webhook URL and secrets. (elevenlabs.io)
If any of the checks above still show failures, share the most_recent_failure_error_code and timestamp from step 5 and we can pinpoint the next action. (elevenlabs.io)
Thanks,
Webhook is working fine.
But in the webhook response JSON i didn't get the recordingUri. I have also enable the Send audio data. but still not get the recodinguri.
Short answer: ElevenLabs postâcall webhooks donât include a recordingUri field. If you enable âSend audio data,â the platform sends an Audio webhook whose payload contains the full call audio as a base64 string in data.full_audioânot a URL. (elevenlabs.io)
How to get the audio:
- Via webhook: Configure your webhook as an Audio webhook (or enable âSend audio dataâ). Parse data.full_audio (base64 MP3) from the post_call_audio event. There is no recording URI in this payload. (elevenlabs.io)
- Via API: Use GET /v1/convai/conversations/{conversation_id}/audio to download the conversationâs audio. You can take conversation_id from the post_call_transcription webhookâs data and then generate/store your own URL if needed. (elevenlabs.io)
- Optional check: The Conversation details API includes has_audio flags (and, as of Aug 15, 2025, these same flags are also added to the transcription webhookâs data) so you can confirm whether audio exists before fetching. (elevenlabs.io)
References:
- Postâcall webhooks (event types, payloads, âSend audio dataâ toggle, and migration notes). (elevenlabs.io)
- Get conversation audio endpoint. (elevenlabs.io)
- Postâcall webhook cookbook example (shows the transcription webhook structure and conversation_id field). (elevenlabs.io)
- Get conversation details (has_audio flags). (elevenlabs.io)
Sources:
Post-call webhooks | ElevenLabs Documentation
Post-call webhooks | ElevenLabs Documentation
Get conversation audio | ElevenLabs Documentation
Get conversation details | ElevenLabs Documentation
Post-call webhooks | ElevenLabs Documentation
Get conversation audio | ElevenLabs Documentation
Data Collection and Analysis with Agents Platform in Next.js | ElevenLabs Documentation
Get conversation details | ElevenLabs Documentation
curl https://api.elevenlabs.io/v1/convai/conversations/conversation_id/audio
-H "xi-api-key: xi-api-key"
in above api it returns the audio object instead of recoding url..
Short answer: that endpoint returns the audio itself, not a downloadable ârecording URL.â This is the intended behavior.
What the docs say
- GET /v1/convai/conversations/{conversation_id}/audio is âGet the audio recording of a particular conversation.â The response is the recording data; a public URL is not provided. (elevenlabs.io)
- If you want to confirm the conversation has audio before fetching it, call GET /v1/convai/conversations/{conversation_id} and check has_audio / has_user_audio / has_response_audio. (elevenlabs.io)
- If you enabled âSend audio dataâ on webhooks, the audio is delivered in a separate post_call_audio webhook as a base64-encoded MP3 string (full_audio). There is no recordingUri in that payload. (elevenlabs.io)
How to proceed
- To download: call GET /v1/convai/conversations/{conversation_id}/audio with your xi-api-key and save the response body as a file on your side. The API does not return a pre-signed/recording URL. (elevenlabs.io)
- If you need a link to share, store the bytes you fetched (or the webhookâs base64) in your own storage (e.g., S3) and serve a URL from there. ElevenLabs does not document a ârecording URLâ endpoint. (elevenlabs.io)
Related references
- Get conversation audio endpoint: /v1/convai/conversations/:conversation_id/audio. (elevenlabs.io)
- Get conversation details (has_audio flags). (elevenlabs.io)
- Post-call audio webhook format (full_audio as base64 MP3). (elevenlabs.io)
Sources:
Get conversation audio | ElevenLabs Documentation
Get conversation details | ElevenLabs Documentation
Post-call webhooks | ElevenLabs Documentation
Get conversation audio | ElevenLabs Documentation
Get conversation audio | ElevenLabs Documentation
Get conversation audio | ElevenLabs Documentation
Get conversation details | ElevenLabs Documentation
Post-call webhooks | ElevenLabs Documentation
Should i set the dynamic voice during the https://api.elevenlabs.io/v1/convai/twilio/outbound-call api call?
Short answer: You canât pass a prerecorded âdynamic audio file/URLâ to play via the outbound-call endpoint. What you can pass at call start are dynamic variables and config overrides (e.g., choose the voice and the agentâs first spoken message) via conversation_initiation_client_data in the POST body.
- Endpoint: POST /v1/convai/twilio/outbound-call supports conversation_initiation_client_data (optional). (elevenlabs.io)
- Allowed fields in conversation_initiation_client_data include:
- conversation_config_override.tts.voice_id (pick the voice for this call)
- conversation_config_override.agent.first_message (what the agent says first)
- dynamic_variables (perâcall values you reference in prompts/messages) (elevenlabs.io)
Example body (fields trimmed to whatâs relevant):
{
"agent_id": "your_agent_id",
"agent_phone_number_id": "your_phone_number_id",
"to_number": "+1XXXXXXXXXX",
"conversation_initiation_client_data": {
"conversation_config_override": {
"tts": { "voice_id": "VOICE_ID" },
"agent": { "first_message": "Hi, this is ACME. Is now a good time?" }
},
"dynamic_variables": { "customer_name": "Jane" }
}
}
References:
- Outbound call API parameters and schema. (elevenlabs.io)
- Conversation initiation client data structure (overrides and dynamic variables). (elevenlabs.io)
If your goal is to play a custom prerecorded clip, thatâs not supported by this endpoint per the docs; use an agent first_message (TTS) or other workflow instead. (elevenlabs.io)
Sources:
Outbound call via twilio | ElevenLabs Documentation
Personalization | ElevenLabs Documentation
Outbound call via twilio | ElevenLabs Documentation
Personalization | ElevenLabs Documentation
Outbound call via twilio | ElevenLabs Documentation
In the webhook response getting the cost:460. what is the 460. can you please explore.
Short answer: cost is credits.
Details
- In the post_call_transcription webhook, data.metadata.cost is the total credits billed for that conversation. See the example payload showing "cost": 296. (elevenlabs.io)
- Conversational AI is priced in credits per minute; the exact credits-per-minute depends on your plan (e.g., Free 666, Starter 600, Creator 400, Pro 454, Scale 555, Business 800). To estimate minutes for cost=460: minutes â 460 / [your planâs credits-per-minute]. (help.elevenlabs.io)
Why cost may not equal a simple duration Ă rate
- Silent periods >10s are billed at 5% of the normal perâminute rate for the silent portion. (elevenlabs.io)
- Setup/prompt testing is billed at half cost. If your webhook payload includes metadata.charging.dev_discount, that discount may have applied. (help.elevenlabs.io)
- If Burst Pricing is enabled and you exceeded your concurrency, excess calls are charged at 2Ă rate. (elevenlabs.io)
- LLM usage is passed through and converted to credits, which can add to the total. (help.elevenlabs.io)
Where to verify
- Check Developers â Usage (Usage Analytics) in the dashboard to see perâproduct and perâAPI key credit usage. (help.elevenlabs.io)
Sources:
Webhooks | ElevenLabs Documentation
How much does Conversational AI cost? â ElevenLabs
Introduction - Conversational voice AI agents | ElevenLabs Documentation
How much does Conversational AI cost? â ElevenLabs
Burst pricing | ElevenLabs Documentation
How much does Conversational AI cost? â ElevenLabs
How can I see information about credit usage for my account? â ElevenLabs
Should i get the dollor cost based on conversation