AI · AI
Voice and chat agents, phone numbers, and calls with their transcripts.
Each user connects their own account. Every call carries both identities — the agent and the person it is acting for — so the agent can never reach past what that individual can already do.
Tokens live in the vault and attach server-side at call time. The agent holds a session, not a secret, and revoking access does not mean rotating a key.
Who asked, which agent acted, which action ran, and the verdict that let it through — one audit trail across every integration, not one per vendor.
Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.
retellai_delete_delete_agent_by_agent_idWRITEDelete an existing agent via DELETE /delete-agent/{agent_id}
retellai_delete_delete_agent_version_by_agent_idWRITEDelete a specific agent version. via DELETE /delete-agent-version/{agent_id}
retellai_delete_delete_app_by_app_idWRITEDelete an App. Fails when agents or knowledge bases still reference it, unless force_delete is set. If a CRM config is linked to this App, the link is cleared. via DELETE /delete-app/{app_id}
retellai_delete_delete_chat_agent_by_agent_idWRITEDelete an existing chat agent via DELETE /delete-chat-agent/{agent_id}
retellai_delete_delete_chat_by_chat_idWRITEDelete an existing chat via DELETE /delete-chat/{chat_id}
retellai_delete_delete_contact_by_contact_idWRITEDelete a contact. A contact linked to a record in a connected CRM cannot be deleted while two-way sync is active — unlink the CRM app first, otherwise the next sync would recreate it. via DELETE /delete-contact/{contact_id}
retellai_delete_delete_conversation_flow_by_conversation_flow_idWRITEDelete a conversation flow and all its versions via DELETE /delete-conversation-flow/{conversation_flow_id}
retellai_delete_delete_conversation_flow_component_by_conversation_flow_component_idWRITEDelete a shared conversation flow component. When deleting a shared component, creates local copies for all linked conversation flows. via DELETE /delete-conversation-flow-component/{conversation_flow_component_id}
retellai_delete_delete_knowledge_base_by_knowledge_base_idWRITEDelete an existing knowledge base via DELETE /delete-knowledge-base/{knowledge_base_id}
retellai_delete_delete_knowledge_base_source_by_knowledge_base_id_source_by_source_idWRITEDelete an existing source from knowledge base via DELETE /delete-knowledge-base-source/{knowledge_base_id}/source/{source_id}
retellai_delete_delete_phone_number_by_phone_numberWRITEDelete an existing phone number via DELETE /delete-phone-number/{phone_number}
retellai_delete_delete_retell_llm_by_llm_idWRITEDelete an existing Retell LLM Response Engine via DELETE /delete-retell-llm/{llm_id}
retellai_delete_delete_test_case_definition_by_test_case_definition_idWRITEDelete a test case definition via DELETE /delete-test-case-definition/{test_case_definition_id}
retellai_delete_v2_delete_call_by_call_idWRITEDelete a specific call and its associated data via DELETE /v2/delete-call/{call_id}
retellai_get_get_agent_by_agent_idREADRetrieve details of a specific agent via GET /get-agent/{agent_id}
retellai_get_get_agent_versions_by_agent_idREADGet agent versions. Large version histories may be truncated. via GET /get-agent-versions/{agent_id}. Retell's contract marks this operation deprecated (its description also warns that large version histories may be truncated); prefer retellai_get_list_agent_versions_by_agent_id (GET /list-agent-versions/{agent_id}), which lists stored versions of a voice or chat agent with pagination
retellai_get_get_api_key_infoREADGet info about the API key used to authenticate, and the org that owns it. via GET /get-api-key-info
retellai_get_get_app_by_app_idREADGet an App by id. via GET /get-app/{app_id}
retellai_get_get_backfill_contact_job_statusREADGet the status of the contact analysis data backfill job. via GET /get-backfill-contact-job-status
retellai_get_get_batch_test_by_test_case_batch_job_idREADGet a batch test job by ID via GET /get-batch-test/{test_case_batch_job_id}
retellai_get_get_chat_agent_by_agent_idREADRetrieve details of a specific chat agent via GET /get-chat-agent/{agent_id}
retellai_get_get_chat_agent_versions_by_agent_idREADGet chat agent versions. Large version histories may be truncated. via GET /get-chat-agent-versions/{agent_id}. Retell's contract marks this operation deprecated (its description also warns that large version histories may be truncated); prefer retellai_get_list_agent_versions_by_agent_id (GET /list-agent-versions/{agent_id}), which lists stored versions of a voice or chat agent with pagination
retellai_get_get_chat_by_chat_idREADRetrieve details of a specific chat via GET /get-chat/{chat_id}
retellai_get_get_concurrencyREADGet the current concurrency and concurrency limit of the org via GET /get-concurrency
retellai_get_get_contact_by_contact_idREADRetrieve a contact by ID. via GET /get-contact/{contact_id}
retellai_get_get_contact_by_phone_by_phone_numberREADRetrieve a contact by phone number. At most one contact exists per phone number in an organization. via GET /get-contact-by-phone/{phone_number}
retellai_get_get_contact_importREADStatus and counts for the org's current or latest contact import. via GET /get-contact-import
retellai_get_get_conversation_flow_by_conversation_flow_idREADRetrieve details of a specific Conversation Flow via GET /get-conversation-flow/{conversation_flow_id}
retellai_get_get_conversation_flow_component_by_conversation_flow_component_idREADGet a shared conversation flow component via GET /get-conversation-flow-component/{conversation_flow_component_id}
retellai_get_get_crm_configREADGet the organization's CRM configuration: which CRM app is linked, the custom contact fields defined for it, and how post-call analysis data is written back to contacts. Returns an empty configuration when nothing has been set up yet. via GET /get-crm-config
retellai_get_get_crm_schemaREADGet the contact schema of the connected CRM: the fields available on its contact object, which are the values that sync mappings can reference. via GET /get-crm-schema
retellai_get_get_knowledge_base_by_knowledge_base_idREADRetrieve details of a specific knowledge base via GET /get-knowledge-base/{knowledge_base_id}
retellai_get_get_mcp_tools_by_agent_idREADGet MCP tools for a specific agent via GET /get-mcp-tools/{agent_id}
retellai_get_get_phone_number_by_phone_numberREADRetrieve details of a specific phone number via GET /get-phone-number/{phone_number}
retellai_get_get_retell_llm_by_llm_idREADRetrieve details of a specific Retell LLM Response Engine via GET /get-retell-llm/{llm_id}
retellai_get_get_sync_job_statusREADGet the status of the organization's contact sync, whether it was started manually or by the schedule. Returns status `idle` when no sync is running. via GET /get-sync-job-status
retellai_get_get_test_case_definition_by_test_case_definition_idREADGet a test case definition by ID via GET /get-test-case-definition/{test_case_definition_id}
retellai_get_get_test_run_by_test_case_job_idREADGet a test case job (test run) by ID via GET /get-test-run/{test_case_job_id}
retellai_get_get_voice_by_voice_idREADRetrieve details of a specific voice via GET /get-voice/{voice_id}
retellai_get_list_agent_versions_by_agent_idREADList stored versions of a voice or chat agent with pagination. via GET /list-agent-versions/{agent_id}
retellai_get_list_app_usages_by_app_idREADList the agents and knowledge bases referencing an App, most recently configured first by default. via GET /list-app-usages/{app_id}
retellai_get_list_appsREADList Apps in the organization (paginated). via GET /list-apps
retellai_get_list_contact_conversations_by_contact_idREADList a contact's conversations (inbound calls, outbound calls, and chats) merged into a single timeline, most recent first. Results are matched by the contact's phone number. Use the returned `pagination_key` to fetch the next page. via GET /list-contact-conversations/{contact_id}
retellai_get_list_knowledge_basesREADList all knowledge bases via GET /list-knowledge-bases
retellai_get_list_voicesREADList all voices available to the user via GET /list-voices
retellai_get_v2_get_call_by_call_idREADRetrieve details of a specific call via GET /v2/get-call/{call_id}
retellai_get_v2_list_batch_testsREADList batch test jobs with pagination via GET /v2/list-batch-tests
retellai_get_v2_list_conversation_flow_componentsREADList shared conversation flow components with pagination via GET /v2/list-conversation-flow-components
retellai_get_v2_list_conversation_flowsREADList conversation flows with pagination via GET /v2/list-conversation-flows
retellai_get_v2_list_export_requestsREADList export requests with pagination via GET /v2/list-export-requests
retellai_get_v2_list_phone_numbersREADList phone numbers with pagination via GET /v2/list-phone-numbers
retellai_get_v2_list_retell_llmsREADList Retell LLM Response Engines with pagination via GET /v2/list-retell-llms
retellai_get_v2_list_test_case_definitionsREADList test case definitions with pagination via GET /v2/list-test-case-definitions
retellai_get_v2_list_test_runs_by_test_case_batch_job_idREADList test case jobs (test runs) for a batch test job with pagination via GET /v2/list-test-runs/{test_case_batch_job_id}
retellai_patch_end_chat_by_chat_idWRITEEnd an ongoing chat via PATCH /end-chat/{chat_id}
retellai_patch_update_agent_by_agent_idWRITEUpdate an existing agent's latest draft version via PATCH /update-agent/{agent_id}
retellai_patch_update_app_by_app_idWRITEPartially update an App. Omitted fields remain unchanged. Updating auth_config or tenant metadata invalidates the cached provider token immediately. Providers using the OAuth callback reject auth_config and must be reauthorized through connect-app. via PATCH /update-app/{app_id}
retellai_patch_update_chat_agent_by_agent_idWRITEUpdate an existing chat agent via PATCH /update-chat-agent/{agent_id}
retellai_patch_update_chat_by_chat_idWRITEUpdate metadata and sensitive data storage settings for an existing chat. via PATCH /update-chat/{chat_id}
retellai_patch_update_contact_by_contact_idWRITEUpdate an existing contact. via PATCH /update-contact/{contact_id}
retellai_patch_update_conversation_flow_by_conversation_flow_idWRITEUpdate an existing conversation flow via PATCH /update-conversation-flow/{conversation_flow_id}
retellai_patch_update_conversation_flow_component_by_conversation_flow_component_idWRITEUpdate an existing shared conversation flow component via PATCH /update-conversation-flow-component/{conversation_flow_component_id}
retellai_patch_update_phone_number_by_phone_numberWRITEUpdate agent bound to a purchased phone number via PATCH /update-phone-number/{phone_number}
retellai_patch_update_retell_llm_by_llm_idWRITEUpdate an existing Retell LLM Response Engine via PATCH /update-retell-llm/{llm_id}
retellai_patch_v2_update_call_by_call_idWRITEUpdate metadata and sensitive data storage settings for an existing call. via PATCH /v2/update-call/{call_id}
retellai_patch_v2_update_live_call_by_call_idWRITEUpdate an ongoing call at runtime. Supports overriding dynamic variables, metadata, and the data storage setting on the running call, and controlling the live agent (inject context, trigger a response). These overrides take effect immediately on the live call; metadata and data storage setting changes are also persisted to the call record. To update a call that is no longer ongoing, use /v2/update-call/{call_id}. via PATCH /v2/update-live-call/{call_id}
retellai_post_add_community_voiceWRITEAdd a community voice to the voice library via POST /add-community-voice
retellai_post_agent_playground_completion_by_agent_idWRITEStateless playground completion. Send the full conversation history (same shape as chat completion messages) and receive only the newly generated messages. Nothing is persisted server-side — the caller manages conversation state. via POST /agent-playground-completion/{agent_id}
retellai_post_backfill_contact_analysis_dataWRITETrigger a backfill job that re-applies analysis data mappings to contacts using historical call data. Only one backfill job can run per organization at a time. via POST /backfill-contact-analysis-data
retellai_post_create_agentWRITECreate a new agent via POST /create-agent
retellai_post_create_agent_version_by_agent_idWRITECreate a new draft agent version from a base version. via POST /create-agent-version/{agent_id}
retellai_post_create_appWRITECreate an App: the connection to one external system (a CRM, calendar, support desk, and so on), holding its credentials and settings. Providers with caller-managed credentials accept auth_config. Providers using the OAuth callback must omit auth_config and be authorized through connect-app. Credentials are stored encrypted and never returned. Up to 20 apps per provider. via POST /create-app
retellai_post_create_batch_callWRITECreate a batch call via POST /create-batch-call
retellai_post_create_batch_testWRITECreate a batch test to run multiple test cases via POST /create-batch-test
retellai_post_create_chatWRITECreate a chat session via POST /create-chat
retellai_post_create_chat_agentWRITECreate a new chat agent via POST /create-chat-agent
retellai_post_create_chat_completionWRITECreate a chat completion message via POST /create-chat-completion
retellai_post_create_contactWRITECreate a new contact. via POST /create-contact
retellai_post_create_contact_importWRITEStart an incremental contact import from an uploaded CSV: creates new contacts and updates existing ones matched by phone number. Mapped columns overwrite the matched contact's fields; unmapped columns are ignored. Runs asynchronously — poll get-contact-import for progress. via POST /create-contact-import
retellai_post_create_conversation_flowWRITECreate a new Conversation Flow that can be attached to an agent. This is used to generate response output for the agent. via POST /create-conversation-flow
retellai_post_create_conversation_flow_componentWRITECreate a new shared conversation flow component via POST /create-conversation-flow-component
retellai_post_create_phone_numberWRITEBuy a new phone number & Bind agents via POST /create-phone-number
retellai_post_create_retell_llmWRITECreate a new Retell LLM Response Engine that can be attached to an agent. This is used to generate response output for the agent. via POST /create-retell-llm
retellai_post_create_sms_chatWRITEStart an outbound SMS chat conversation with a phone number using the specified agent. The agent must be configured for chat mode. The initial SMS message will be automatically generated and sent based on the agent's configuration. via POST /create-sms-chat
retellai_post_create_test_case_definitionWRITECreate a new test case definition via POST /create-test-case-definition
retellai_post_import_phone_numberWRITEImport a phone number from custom telephony & Bind agents via POST /import-phone-number
retellai_post_list_contactsWRITEList contacts, newest conversation first by default, with the total count of matches alongside the page. Page through results with `pagination_key`; `skip` is available for offset-style paging but is slower on large contact sets and can repeat or miss rows as contacts are updated. via POST /list-contacts
retellai_post_publish_agent_version_by_agent_idWRITEPublish an existing draft version in place. via POST /publish-agent-version/{agent_id}
retellai_post_repair_agent_by_agent_idWRITERemove references to resources that no longer exist in your workspace from an agent draft version and its response engine — tools whose app connection has been deleted, unknown knowledge bases, and deleted shared components — and remap voices that are no longer accessible to a default voice. If the agent's response engine version has been published, the engine is left untouched and only agent-level references are repaired. Repairing an agent with nothing to fix is a no-op. via POST /repair-agent/{agent_id}
retellai_post_run_sync_jobWRITEStart a contact sync with the linked CRM app immediately, instead of waiting for the scheduled sync. One sync runs per organization at a time: starting another while one is in flight is rejected. Poll get-sync-job-status for progress. via POST /run-sync-job
retellai_post_search_community_voiceWRITESearch for community voices from voice providers via POST /search-community-voice
retellai_post_test_app_auth_by_app_idWRITEProbe the App's stored credentials by making a minimal authenticated call to the provider. Returns success=true on a successful round-trip, and records the outcome on the App's connection_status either way. via POST /test-app-auth/{app_id}
retellai_post_update_crm_configWRITEUpdate the organization's CRM configuration. Omitted fields stay as they are; a field that is sent replaces its stored value in full. via POST /update-crm-config
retellai_post_v2_create_phone_callWRITECreate a new outbound phone call via POST /v2/create-phone-call
retellai_post_v2_create_web_callWRITECreate a new web call via POST /v2/create-web-call
retellai_post_v2_list_agentsWRITEList unique agents with pagination. via POST /v2/list-agents
retellai_post_v2_register_phone_callWRITERegister a new phone call for custom telephony via POST /v2/register-phone-call
retellai_post_v2_stop_call_by_call_idWRITEStop an ongoing call. via POST /v2/stop-call/{call_id}
retellai_post_v3_create_web_callWRITECreate a new web call and return browser connection details. via POST /v3/create-web-call
retellai_post_v3_list_callsWRITEList calls with unified cursor pagination response. via POST /v3/list-calls
retellai_post_v3_list_chatsWRITEList chats with unified cursor pagination response. via POST /v3/list-chats
retellai_put_rerun_call_analysis_by_call_idWRITERerun post-call analysis for a specific call. This operation incurs charges. via PUT /rerun-call-analysis/{call_id}
retellai_put_rerun_chat_analysis_by_chat_idWRITERerun post-chat analysis for a specific chat. This operation incurs charges. via PUT /rerun-chat-analysis/{chat_id}
retellai_put_update_test_case_definition_by_test_case_definition_idWRITEUpdate a test case definition via PUT /update-test-case-definition/{test_case_definition_id}
Put Retell AI behind one governed endpoint.
Same permissions, same audit trail, whatever else you connect next.