Hume Empathic Voice Interface (EVI) API

Real-time emotionally intelligent speech-to-speech voice interface delivered over WebSockets. Includes configuration, prompt, and tool management plus chat history, chat group operations, and webhook events for tool calls and chat lifecycle.

OpenAPI Specification

hume-ai-evi-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Speech-to-speech (EVI)
  version: 1.0.0
paths:
  /v0/evi/chat/{chat_id}/send:
    post:
      operationId: send
      summary: Send Message
      description: Send a message to a specific chat.
      tags:
        - subpackage_controlPlane
      parameters:
        - name: chat_id
          in: path
          required: true
          schema:
            type: string
        - name: X-Hume-Api-Key
          in: header
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/controlPlane_send_Response_200'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ControlPlanePublishEvent'
  /v0/evi/configs:
    post:
      operationId: create-config
      summary: Create config
      description: >-
        Creates a **Config** which can be applied to EVI.


        For more details on configuration options and how to configure EVI, see our [configuration
        guide](/docs/speech-to-speech-evi/configuration).
      tags:
        - subpackage_configs
      parameters:
        - name: X-Hume-Api-Key
          in: header
          required: true
          schema:
            type: string
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/return_config_public'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/posted_config'
    get:
      operationId: list-configs
      summary: List configs
      description: >-
        Fetches a paginated list of **Configs**.


        For more details on configuration options and how to configure EVI, see our [configuration
        guide](/docs/speech-to-speech-evi/configuration).
      tags:
        - subpackage_configs
      parameters:
        - name: page_number
          in: query
          description: >-
            Specifies the page number to retrieve, enabling pagination.


            This parameter uses zero-based indexing. For example, setting `page_number` to 0 retrieves the first page of
            results (items 0-9 if `page_size` is 10), setting `page_number` to 1 retrieves the second page (items
            10-19), and so on. Defaults to 0, which retrieves the first page.
          required: false
          schema:
            type: integer
            default: 0
        - name: page_size
          in: query
          description: >-
            Specifies the maximum number of results to include per page, enabling pagination. The value must be between
            1 and 100, inclusive.


            For example, if `page_size` is set to 10, each page will include up to 10 items. Defaults to 10.
          required: false
          schema:
            type: integer
        - name: restrict_to_most_recent
          in: query
          description: >-
            By default, `restrict_to_most_recent` is set to true, returning only the latest version of each config. To
            include all versions of each config in the list, set `restrict_to_most_recent` to false.
          required: false
          schema:
            type: boolean
        - name: name
          in: query
          description: Filter to only include configs with this name.
          required: false
          schema:
            type: string
        - name: X-Hume-Api-Key
          in: header
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/return_paged_configs'
  /v0/evi/configs/{id}:
    get:
      operationId: list-config-versions
      summary: List config versions
      description: >-
        Fetches a list of a **Config's** versions.


        For more details on configuration options and how to configure EVI, see our [configuration
        guide](/docs/speech-to-speech-evi/configuration).
      tags:
        - subpackage_configs
      parameters:
        - name: id
          in: path
          description: Identifier for a Config. Formatted as a UUID.
          required: true
          schema:
            type: string
            format: uuid
        - name: page_number
          in: query
          description: >-
            Specifies the page number to retrieve, enabling pagination.


            This parameter uses zero-based indexing. For example, setting `page_number` to 0 retrieves the first page of
            results (items 0-9 if `page_size` is 10), setting `page_number` to 1 retrieves the second page (items
            10-19), and so on. Defaults to 0, which retrieves the first page.
          required: false
          schema:
            type: integer
            default: 0
        - name: page_size
          in: query
          description: >-
            Specifies the maximum number of results to include per page, enabling pagination. The value must be between
            1 and 100, inclusive.


            For example, if `page_size` is set to 10, each page will include up to 10 items. Defaults to 10.
          required: false
          schema:
            type: integer
        - name: restrict_to_most_recent
          in: query
          description: >-
            By default, `restrict_to_most_recent` is set to true, returning only the latest version of each config. To
            include all versions of each config in the list, set `restrict_to_most_recent` to false.
          required: false
          schema:
            type: boolean
        - name: X-Hume-Api-Key
          in: header
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/return_paged_configs'
    post:
      operationId: create-config-version
      summary: Create config version
      description: >-
        Updates a **Config** by creating a new version of the **Config**.


        For more details on configuration options and how to configure EVI, see our [configuration
        guide](/docs/speech-to-speech-evi/configuration).
      tags:
        - subpackage_configs
      parameters:
        - name: id
          in: path
          description: Identifier for a Config. Formatted as a UUID.
          required: true
          schema:
            type: string
            format: uuid
        - name: X-Hume-Api-Key
          in: header
          required: true
          schema:
            type: string
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/return_config_public'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/posted_config_version'
    patch:
      operationId: update-config-name
      summary: Update config name
      description: >-
        Updates the name of a **Config**.


        For more details on configuration options and how to configure EVI, see our [configuration
        guide](/docs/speech-to-speech-evi/configuration).
      tags:
        - subpackage_configs
      parameters:
        - name: id
          in: path
          description: Identifier for a Config. Formatted as a UUID.
          required: true
          schema:
            type: string
            format: uuid
        - name: X-Hume-Api-Key
          in: header
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configs_update-config-name_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/posted_config_name'
    delete:
      operationId: delete-config
      summary: Delete config
      description: >-
        Deletes a **Config** and its versions.


        For more details on configuration options and how to configure EVI, see our [configuration
        guide](/docs/speech-to-speech-evi/configuration).
      tags:
        - subpackage_configs
      parameters:
        - name: id
          in: path
          description: Identifier for a Config. Formatted as a UUID.
          required: true
          schema:
            type: string
            format: uuid
        - name: X-Hume-Api-Key
          in: header
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configs_delete-config_Response_200'
  /v0/evi/configs/{id}/version/{version}:
    get:
      operationId: get-config-version
      summary: Get config version
      description: >-
        Fetches a specified version of a **Config**.


        For more details on configuration options and how to configure EVI, see our [configuration
        guide](/docs/speech-to-speech-evi/configuration).
      tags:
        - subpackage_configs
      parameters:
        - name: id
          in: path
          description: Identifier for a Config. Formatted as a UUID.
          required: true
          schema:
            type: string
            format: uuid
        - name: version
          in: path
          description: >-
            Version number for a Config.


            Configs, Prompts, Custom Voices, and Tools are versioned. This versioning system supports iterative
            development, allowing you to progressively refine configurations and revert to previous versions if needed.


            Version numbers are integer values representing different iterations of the Config. Each update to the
            Config increments its version number.
          required: true
          schema:
            type: integer
        - name: X-Hume-Api-Key
          in: header
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/return_config_public'
    patch:
      operationId: update-config-description
      summary: Update config description
      description: >-
        Updates the description of a **Config**.


        For more details on configuration options and how to configure EVI, see our [configuration
        guide](/docs/speech-to-speech-evi/configuration).
      tags:
        - subpackage_configs
      parameters:
        - name: id
          in: path
          description: Identifier for a Config. Formatted as a UUID.
          required: true
          schema:
            type: string
            format: uuid
        - name: version
          in: path
          description: >-
            Version number for a Config.


            Configs, Prompts, Custom Voices, and Tools are versioned. This versioning system supports iterative
            development, allowing you to progressively refine configurations and revert to previous versions if needed.


            Version numbers are integer values representing different iterations of the Config. Each update to the
            Config increments its version number.
          required: true
          schema:
            type: integer
        - name: X-Hume-Api-Key
          in: header
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/return_config_public'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/posted_config_version_description'
    delete:
      operationId: delete-config-version
      summary: Delete config version
      description: >-
        Deletes a specified version of a **Config**.


        For more details on configuration options and how to configure EVI, see our [configuration
        guide](/docs/speech-to-speech-evi/configuration).
      tags:
        - subpackage_configs
      parameters:
        - name: id
          in: path
          description: Identifier for a Config. Formatted as a UUID.
          required: true
          schema:
            type: string
            format: uuid
        - name: version
          in: path
          description: >-
            Version number for a Config.


            Configs, Prompts, Custom Voices, and Tools are versioned. This versioning system supports iterative
            development, allowing you to progressively refine configurations and revert to previous versions if needed.


            Version numbers are integer values representing different iterations of the Config. Each update to the
            Config increments its version number.
          required: true
          schema:
            type: integer
        - name: X-Hume-Api-Key
          in: header
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/configs_delete-config-version_Response_200'
  /v0/evi/prompts:
    post:
      operationId: create-prompt
      summary: Create prompt
      description: >-
        Creates a **Prompt** that can be added to an [EVI
        configuration](/reference/speech-to-speech-evi/configs/create-config).


        See our [prompting guide](/docs/speech-to-speech-evi/guides/phone-calling) for tips on crafting your system
        prompt.
      tags:
        - subpackage_prompts
      parameters:
        - name: X-Hume-Api-Key
          in: header
          required: true
          schema:
            type: string
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/return_prompt_public'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/posted_prompt'
    get:
      operationId: list-prompts
      summary: List prompts
      description: >-
        Fetches a paginated list of **Prompts**.


        See our [prompting guide](/docs/speech-to-speech-evi/guides/phone-calling) for tips on crafting your system
        prompt.
      tags:
        - subpackage_prompts
      parameters:
        - name: page_number
          in: query
          description: >-
            Specifies the page number to retrieve, enabling pagination.


            This parameter uses zero-based indexing. For example, setting `page_number` to 0 retrieves the first page of
            results (items 0-9 if `page_size` is 10), setting `page_number` to 1 retrieves the second page (items
            10-19), and so on. Defaults to 0, which retrieves the first page.
          required: false
          schema:
            type: integer
            default: 0
        - name: page_size
          in: query
          description: >-
            Specifies the maximum number of results to include per page, enabling pagination. The value must be between
            1 and 100, inclusive.


            For example, if `page_size` is set to 10, each page will include up to 10 items. Defaults to 10.
          required: false
          schema:
            type: integer
        - name: restrict_to_most_recent
          in: query
          description: >-
            By default, `restrict_to_most_recent` is set to true, returning only the latest version of each prompt. To
            include all versions of each prompt in the list, set `restrict_to_most_recent` to false.
          required: false
          schema:
            type: boolean
        - name: name
          in: query
          description: Filter to only include prompts with name.
          required: false
          schema:
            type: string
        - name: X-Hume-Api-Key
          in: header
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/return_paged_prompts'
  /v0/evi/prompts/{id}:
    get:
      operationId: list-prompt-versions
      summary: List prompt versions
      description: >-
        Fetches a list of a **Prompt's** versions.


        See our [prompting guide](/docs/speech-to-speech-evi/guides/phone-calling) for tips on crafting your system
        prompt.
      tags:
        - subpackage_prompts
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
        - name: page_number
          in: query
          description: >-
            Specifies the page number to retrieve, enabling pagination.


            This parameter uses zero-based indexing. For example, setting `page_number` to 0 retrieves the first page of
            results (items 0-9 if `page_size` is 10), setting `page_number` to 1 retrieves the second page (items
            10-19), and so on. Defaults to 0, which retrieves the first page.
          required: false
          schema:
            type: integer
            default: 0
        - name: page_size
          in: query
          description: >-
            Specifies the maximum number of results to include per page, enabling pagination. The value must be between
            1 and 100, inclusive.


            For example, if `page_size` is set to 10, each page will include up to 10 items. Defaults to 10.
          required: false
          schema:
            type: integer
        - name: restrict_to_most_recent
          in: query
          description: >-
            By default, `restrict_to_most_recent` is set to true, returning only the latest version of each prompt. To
            include all versions of each prompt in the list, set `restrict_to_most_recent` to false.
          required: false
          schema:
            type: boolean
        - name: X-Hume-Api-Key
          in: header
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/return_paged_prompts'
    post:
      operationId: create-prompt-version
      summary: Create prompt version
      description: >-
        Updates a **Prompt** by creating a new version of the **Prompt**.


        See our [prompting guide](/docs/speech-to-speech-evi/guides/phone-calling) for tips on crafting your system
        prompt.
      tags:
        - subpackage_prompts
      parameters:
        - name: id
          in: path
          description: Identifier for a Prompt. Formatted as a UUID.
          required: true
          schema:
            type: string
            format: uuid
        - name: X-Hume-Api-Key
          in: header
          required: true
          schema:
            type: string
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/return_prompt_public'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/posted_prompt_version'
    patch:
      operationId: update-prompt-name
      summary: Update prompt name
      description: >-
        Updates the name of a **Prompt**.


        See our [prompting guide](/docs/speech-to-speech-evi/guides/phone-calling) for tips on crafting your system
        prompt.
      tags:
        - subpackage_prompts
      parameters:
        - name: id
          in: path
          description: Identifier for a Prompt. Formatted as a UUID.
          required: true
          schema:
            type: string
            format: uuid
        - name: X-Hume-Api-Key
          in: header
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/prompts_update-prompt-name_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/posted_prompt_name'
    delete:
      operationId: delete-prompt
      summary: Delete prompt
      description: >-
        Deletes a **Prompt** and its versions.


        See our [prompting guide](/docs/speech-to-speech-evi/guides/phone-calling) for tips on crafting your system
        prompt.
      tags:
        - subpackage_prompts
      parameters:
        - name: id
          in: path
          description: Identifier for a Prompt. Formatted as a UUID.
          required: true
          schema:
            type: string
            format: uuid
        - name: X-Hume-Api-Key
          in: header
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/prompts_delete-prompt_Response_200'
  /v0/evi/prompts/{id}/version/{version}:
    get:
      operationId: get-prompt-version
      summary: Get prompt version
      description: >-
        Fetches a specified version of a **Prompt**.


        See our [prompting guide](/docs/speech-to-speech-evi/guides/phone-calling) for tips on crafting your system
        prompt.
      tags:
        - subpackage_prompts
      parameters:
        - name: id
          in: path
          description: Identifier for a Prompt. Formatted as a UUID.
          required: true
          schema:
            type: string
            format: uuid
        - name: version
          in: path
          description: >-
            Version number for a Prompt.


            Prompts, Configs, Custom Voices, and Tools are versioned. This versioning system supports iterative
            development, allowing you to progressively refine prompts and revert to previous versions if needed.


            Version numbers are integer values representing different iterations of the Prompt. Each update to the
            Prompt increments its version number.
          required: true
          schema:
            type: integer
        - name: X-Hume-Api-Key
          in: header
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/return_prompt_public'
    patch:
      operationId: update-prompt-description
      summary: Update prompt description
      description: >-
        Updates the description of a **Prompt**.


        See our [prompting guide](/docs/speech-to-speech-evi/guides/phone-calling) for tips on crafting your system
        prompt.
      tags:
        - subpackage_prompts
      parameters:
        - name: id
          in: path
          description: Identifier for a Prompt. Formatted as a UUID.
          required: true
          schema:
            type: string
            format: uuid
        - name: version
          in: path
          description: >-
            Version number for a Prompt.


            Prompts, Configs, Custom Voices, and Tools are versioned. This versioning system supports iterative
            development, allowing you to progressively refine prompts and revert to previous versions if needed.


            Version numbers are integer values representing different iterations of the Prompt. Each update to the
            Prompt increments its version number.
          required: true
          schema:
            type: integer
        - name: X-Hume-Api-Key
          in: header
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/return_prompt_public'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/patched_prompt_version_description'
    delete:
      operationId: delete-prompt-version
      summary: Delete prompt version
      description: >-
        Deletes a specified version of a **Prompt**.


        See our [prompting guide](/docs/speech-to-speech-evi/guides/phone-calling) for tips on crafting your system
        prompt.
      tags:
        - subpackage_prompts
      parameters:
        - name: id
          in: path
          description: Identifier for a Prompt. Formatted as a UUID.
          required: true
          schema:
            type: string
            format: uuid
        - name: version
          in: path
          description: >-
            Version number for a Prompt.


            Prompts, Configs, Custom Voices, and Tools are versioned. This versioning system supports iterative
            development, allowing you to progressively refine prompts and revert to previous versions if needed.


            Version numbers are integer values representing different iterations of the Prompt. Each update to the
            Prompt increments its version number.
          required: true
          schema:
            type: integer
        - name: X-Hume-Api-Key
          in: header
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/prompts_delete-prompt-version_Response_200'
  /v0/evi/tools:
    post:
      operationId: create-tool
      summary: Create tool
      description: >-
        Creates a **Tool** that can be added to an [EVI
        configuration](/reference/speech-to-speech-evi/configs/create-config).


        Refer to our [tool use](/docs/speech-to-speech-evi/features/tool-use#function-calling) guide for comprehensive
        instructions on defining and integrating tools into EVI.
      tags:
        - subpackage_tools
      parameters:
        - name: X-Hume-Api-Key
          in: header
          required: true
          schema:
            type: string
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/return_user_defined_tool'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/posted_user_defined_tool'
    get:
      operationId: list-tools
      summary: List tools
      description: >-
        Fetches a paginated list of **Tools**.


        Refer to our [tool use](/docs/speech-to-speech-evi/features/tool-use#function-calling) guide for comprehensive
        instructions on defining and integrating tools into EVI.
      tags:
        - subpackage_tools
      parameters:
        - name: page_number
          in: query
          description: >-
            Specifies the page number to retrieve, enabling pagination.


            This parameter uses zero-based indexing. For example, setting `page_number` to 0 retrieves the first page of
            results (items 0-9 if `page_size` is 10), setting `page_number` to 1 retrieves the second page (items
            10-19), and so on. Defaults to 0, which retrieves the first page.
          required: false
          schema:
            type: integer
            default: 0
        - name: page_size
          in: query
          description: >-
            Specifies the maximum number of results to include per page, enabling pagination. The value must be between
            1 and 100, inclusive.


            For example, if `page_size` is set to 10, each page will include up to 10 items. Defaults to 10.
          required: false
          schema:
            type: integer
        - name: restrict_to_most_recent
          in: query
          description: >-
            By default, `restrict_to_most_recent` is set to true, returning only the latest version of each tool. To
            include all versions of each tool in the list, set `restrict_to_most_recent` to false.
          required: false
          schema:
            type: boolean
        - name: name
          in: query
          description: Filter to only include tools with name.
          required: false
          schema:
            type: string
        - name: X-Hume-Api-Key
          in: header
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/return_paged_user_defined_tools'
  /v0/evi/tools/{id}:
    get:
      operationId: list-tool-versions
      summary: List tool versions
      description: >-
        Fetches a list of a **Tool's** versions.


        Refer to our [tool use](/docs/speech-to-speech-evi/features/tool-use#function-calling) guide for comprehensive
        instructions on defining and integrating tools into EVI.
      tags:
        - subpackage_tools
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
        - name: page_number
          in: query
          description: >-
            Specifies the page number to retrieve, enabling pagination.


            This parameter uses zero-based indexing. For example, setting `page_number` to 0 retrieves the first page of
            results (items 0-9 if `page_size` is 10), setting `page_number` to 1 retrieves the second page (items
            10-19), and so on. Defaults to 0, which retrieves the first page.
          required: false
          schema:
            type: integer
            default: 0
        - name: page_size
          in: query
          description: >-
            Specifies the maximum number of results to include per page, enabling pagination. The value must be between
            1 and 100, inclusive.


            For example, if `page_size` is set to 10, each page will include up to 10 items. Defaults to 10.
          required: false
          schema:
            type: integer
        - name: restrict_to_most_recent
          in: query
          description: >-
            By default, `restrict_to_most_recent` is set to true, returning only the latest version of each tool. To
            include all versions of each tool in the list, set `restrict_to_most_recent` to false.
          required: false
          schema:
            type: boolean
        - name: X-Hume-Api-Key
          in: header
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/return_paged_user_defined_tools'
    post:
      operationId: create-tool-version
      summary: Create tool version
      description: >-
        Updates a **Tool** by creating a new version of the **Tool**.


        Refer to our [tool use](/docs/speech-to-speech-evi/features/tool-use#function-calling) guide for comprehensive
        instructions on defining and integrating tools into EVI.
      tags:
        - subpackage_tools
      parameters:
        - name: id
          in: path
          description: Identifier for a Tool. Formatted as a UUID.
          required: true
          schema:
            type: 

# --- truncated at 32 KB (171 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/hume-ai/refs/heads/main/openapi/hume-ai-evi-openapi.yml