# yaml-language-server: $schema=https://app.stainlessapi.com/config.schema.json

organization:
  name: retell
  docs: https://docs.retellai.com/
  contact: support@retellai.com
  github_org: RetellAI
resources:
  call:
    methods:
      create-phone-call:
        endpoint: post /v2/create-phone-call
        default_request_options:
          timeout: PT2M
      register-phone-call: post /v2/register-phone-call
      create-web-call: post /v2/create-web-call
      retrieve: get /v2/get-call/{call_id}
      list:
        endpoint: post /v3/list-calls
        default_request_options:
          timeout: PT5M
      rerun-analysis: put /rerun-call-analysis/{call_id}
      update: patch /v2/update-call/{call_id}
      update-live: patch /v2/update-live-call/{call_id}
      stop: post /v2/stop-call/{call_id}
      delete: delete /v2/delete-call/{call_id}
    models:
      call_response: "#/components/schemas/V2CallResponse"
      phone_call_response: "#/components/schemas/V2PhoneCallResponse"
      web_call_response: "#/components/schemas/V2WebCallResponse"
  chat:
    methods:
      create: post /create-chat
      create-sms-chat: post /create-sms-chat
      end: patch /end-chat/{chat_id}
      retrieve: get /get-chat/{chat_id}
      create-chat-completion:
        endpoint: post /create-chat-completion
        default_request_options:
          timeout: PT5M
      list:
        endpoint: post /v3/list-chats
        default_request_options:
          timeout: PT5M
      rerun-analysis: put /rerun-chat-analysis/{chat_id}
      update: patch /update-chat/{chat_id}
      delete: delete /delete-chat/{chat_id}
    models:
      chat_response: "#/components/schemas/ChatResponse"
  phone_number:
    methods:
      create: post /create-phone-number
      import: post /import-phone-number
      retrieve: get /get-phone-number/{phone_number}
      list: get /v2/list-phone-numbers
      update: patch /update-phone-number/{phone_number}
      delete: delete /delete-phone-number/{phone_number}
    models:
      phone_number_response: "#/components/schemas/PhoneNumberResponse"
  agent:
    methods:
      create: post /create-agent
      retrieve: get /get-agent/{agent_id}
      list: post /v2/list-agents
      update: patch /update-agent/{agent_id}
      delete: delete /delete-agent/{agent_id}
      publish: post /publish-agent-version/{agent_id}
      create-version: post /create-agent-version/{agent_id}
      delete-version: delete /delete-agent-version/{agent_id}
      get-versions: get /get-agent-versions/{agent_id}
    models:
      agent_response: "#/components/schemas/AgentResponse"
  chat_agent:
    methods:
      create: post /create-chat-agent
      retrieve: get /get-chat-agent/{agent_id}
      list: post /v2/list-agents
      update: patch /update-chat-agent/{agent_id}
      delete: delete /delete-chat-agent/{agent_id}
      publish: post /publish-agent-version/{agent_id}
      create-version: post /create-agent-version/{agent_id}
      delete-version: delete /delete-agent-version/{agent_id}
      get-versions: get /get-chat-agent-versions/{agent_id}
    models:
      chat_agent_response: "#/components/schemas/ChatAgentResponse"
  llm:
    methods:
      create: post /create-retell-llm
      retrieve: get /get-retell-llm/{llm_id}
      list: get /v2/list-retell-llms
      update: patch /update-retell-llm/{llm_id}
      delete: delete /delete-retell-llm/{llm_id}
    models:
      llm_response: "#/components/schemas/RetellLLMResponse"
  conversation_flow:
    methods:
      create: post /create-conversation-flow
      retrieve: get /get-conversation-flow/{conversation_flow_id}
      list: get /v2/list-conversation-flows
      update: patch /update-conversation-flow/{conversation_flow_id}
      delete: delete /delete-conversation-flow/{conversation_flow_id}
    models:
      conversation_flow_response: "#/components/schemas/ConversationFlowResponse"
  conversation_flow_component:
    methods:
      create: post /create-conversation-flow-component
      retrieve:
        get /get-conversation-flow-component/{conversation_flow_component_id}
      list: get /v2/list-conversation-flow-components
      update:
        patch
        /update-conversation-flow-component/{conversation_flow_component_id}
      delete:
        delete
        /delete-conversation-flow-component/{conversation_flow_component_id}
    models:
      conversation_flow_component_response: "#/components/schemas/ConversationFlowComponentResponse"
  knowledge_base:
    methods:
      create:
        skip_test_reason: custom code
        endpoint: post /create-knowledge-base
      retrieve: get /get-knowledge-base/{knowledge_base_id}
      list: get /list-knowledge-bases
      delete: delete /delete-knowledge-base/{knowledge_base_id}
      add-sources:
        skip_test_reason: custom code
        endpoint: post /add-knowledge-base-sources/{knowledge_base_id}
      delete-source:
        delete
        /delete-knowledge-base-source/{knowledge_base_id}/source/{source_id}
    models:
      knowledge_base_response: "#/components/schemas/KnowledgeBaseResponse"
  voice:
    methods:
      add-resource: post /add-community-voice
      clone: post /clone-voice
      retrieve: get /get-voice/{voice_id}
      list: get /list-voices
      search: post /search-community-voice
    models:
      voice_response: "#/components/schemas/VoiceResponse"
  concurrency:
    methods:
      retrieve: get /get-concurrency
  identity:
    methods:
      retrieve: get /get-api-key-info
  export_request:
    methods:
      list: get /v2/list-export-requests
  batch_call:
    methods:
      create-batch-call:
        endpoint: post /create-batch-call
        default_request_options:
          timeout: PT5M
    models:
      batch_call_response: "#/components/schemas/BatchCallResponse"
  tests:
    methods:
      create-test-case-definition: post /create-test-case-definition
      get-test-case-definition:
        get /get-test-case-definition/{test_case_definition_id}
      list-test-case-definitions: get /v2/list-test-case-definitions
      update-test-case-definition:
        put /update-test-case-definition/{test_case_definition_id}
      delete-test-case-definition:
        delete /delete-test-case-definition/{test_case_definition_id}
      create-batch-test: post /create-batch-test
      get-batch-test: get /get-batch-test/{test_case_batch_job_id}
      list-batch-tests: get /v2/list-batch-tests
      get-test-run: get /get-test-run/{test_case_job_id}
      list-test-runs: get /v2/list-test-runs/{test_case_batch_job_id}
    models:
      test_case_definition_response: "#/components/schemas/TestCaseDefinition"
      batch_test_response: "#/components/schemas/TestCaseBatchJob"
      test_case_job_response: "#/components/schemas/TestCaseJob"
  playground:
    methods:
      completion:
        endpoint: post /agent-playground-completion/{agent_id}
        default_request_options:
          timeout: PT5M
  mcp_tool:
    methods:
      get-mcp-tools: get /get-mcp-tools/{agent_id}
    models:
      mcp_tool_definition: "#/components/schemas/MCPToolDefinition"

targets:
  typescript:
    package_name: retell-sdk
    production_repo: RetellAI/retell-typescript-sdk#main
    keep_files:
      - .github/workflows/stlc-promote.yml
    publish:
      npm:
        auth_method: oidc
      release:
        branch: main
        prerelease: true
    options:
      mcp_server:
        package_name: "@retell-ai/mcp-server"
        enable_code_tool: true
        enable_docs_tool: true
    staging_repo: RetellAI/retell-typescript-sdk-staging
  python:
    # name to import from
    package_name: retell
    # name on the pypi registry
    project_name: retell-sdk
    production_repo: RetellAI/retell-python-sdk#main
    keep_files:
      - .github/workflows/stlc-promote.yml
    publish:
      pypi: true
      release:
        branch: main
        prerelease: true
    staging_repo: RetellAI/retell-python-sdk-staging

security_schemes:
  api_key:
    type: http
    scheme: bearer
settings:
  license: Apache-2.0
  disable_mock_tests: true
client_settings:
  opts:
    api_key:
      type: string
      example: "YOUR_RETELL_API_KEY"
      read_env: RETELL_API_KEY
      auth:
        security_scheme: api_key
      nullable: false
environments:
  production: https://api.retellai.com
query_settings:
  nested_format: brackets
  array_format: brackets
readme:
  example_requests:
    default:
      type: request
      endpoint: post /create-agent
      params: &ref_0 {}
    headline:
      type: request
      endpoint: post /create-agent
      params: *ref_0
    pagination:
      type: request
      endpoint: get /v2/list-phone-numbers
      params: {}
  include_stainless_attribution: false
openapi:
  code_samples:
    mintlify: true
