Telnyx · Capability

Telnyx API — Assistants

Telnyx API — Assistants. 45 operations. Lead operation: List assistants. Self-contained Naftiko capability covering one Telnyx business surface.

Run with Naftiko TelnyxAssistants

What You Can Do

GET
Getassistantspublicassistantsget — List assistants
/v1/ai/assistants
POST
Createnewassistantpublicassistantspost — Create an assistant
/v1/ai/assistants
POST
Importassistantspublicassistantsimportpost — Import assistants from external provider
/v1/ai/assistants/import
GET
Getallassistanttags — Get All Tags
/v1/ai/assistants/tags
GET
Getassistanttestspublicassistantstestsget — List assistant tests with pagination
/v1/ai/assistants/tests
POST
Createassistanttestpublicassistantstestspost — Create a new assistant test
/v1/ai/assistants/tests
GET
Fetchtestsuitespublicassistantsteststestsuitesget — Get all test suite names
/v1/ai/assistants/tests/test-suites
GET
Gettestsuiterunsfortestpublicassistantsteststestsuitessuitenamerunsget — Get test suite run history
/v1/ai/assistants/tests/test-suites/{suite-name}/runs
POST
Triggertestsuiterunspublicassistantsteststestsuitessuitenamerunspost — Trigger test suite execution
/v1/ai/assistants/tests/test-suites/{suite-name}/runs
DELETE
Deleteassistanttestpublicassistantsteststestiddelete — Delete an assistant test
/v1/ai/assistants/tests/{test-id}
GET
Getassistanttestpublicassistantsteststestidget — Get assistant test by ID
/v1/ai/assistants/tests/{test-id}
PUT
Updateassistanttestpublicassistantsteststestidput — Update an assistant test
/v1/ai/assistants/tests/{test-id}
GET
Gettestrunsfortestpublicassistantsteststestidrunsget — Get test run history for a specific test
/v1/ai/assistants/tests/{test-id}/runs
POST
Triggertestrunpublicassistantsteststestidrunspost — Trigger a manual test run
/v1/ai/assistants/tests/{test-id}/runs
GET
Gettestrunpublicassistantsteststestidrunsrunidget — Get specific test run details
/v1/ai/assistants/tests/{test-id}/runs/{run-id}
DELETE
Deleteassistantpublicassistantsassistantiddelete — Delete an assistant
/v1/ai/assistants/{assistant-id}
GET
Getassistantpublicassistantsassistantidget — Get an assistant
/v1/ai/assistants/{assistant-id}
POST
Updateassistantpublicassistantsassistantidpost — Update an assistant
/v1/ai/assistants/{assistant-id}
DELETE
Deletecanarydeployassistantsassistantidcanarydeploysdelete — Delete Canary Deploy
/v1/ai/assistants/{assistant-id}/canary-deploys
GET
Getcanarydeployassistantsassistantidcanarydeploysget — Get Canary Deploy
/v1/ai/assistants/{assistant-id}/canary-deploys
POST
Createcanarydeployassistantsassistantidcanarydeployspost — Create Canary Deploy
/v1/ai/assistants/{assistant-id}/canary-deploys
PUT
Updatecanarydeployassistantsassistantidcanarydeploysput — Update Canary Deploy
/v1/ai/assistants/{assistant-id}/canary-deploys
POST
Assistantchatpublicassistantsassistantidchatpost — Assistant Chat (BETA)
/v1/ai/assistants/{assistant-id}/chat
POST
Assistantsmschatassistantsassistantidchatsmspost — Assistant Sms Chat
/v1/ai/assistants/{assistant-id}/chat/sms
POST
Cloneassistantpublicassistantsassistantidclonepost — Clone Assistant
/v1/ai/assistants/{assistant-id}/clone
GET
Getscheduledevents — List scheduled events
/v1/ai/assistants/{assistant-id}/scheduled-events
POST
Createscheduledevent — Create a scheduled event
/v1/ai/assistants/{assistant-id}/scheduled-events
DELETE
Deletescheduledevent — Delete a scheduled event
/v1/ai/assistants/{assistant-id}/scheduled-events/{event-id}
GET
Getscheduledevent — Get a scheduled event
/v1/ai/assistants/{assistant-id}/scheduled-events/{event-id}
POST
Addassistanttag — Add Assistant Tag
/v1/ai/assistants/{assistant-id}/tags
DELETE
Removeassistanttag — Remove Assistant Tag
/v1/ai/assistants/{assistant-id}/tags/{tag}
GET
Getassistanttexmlpublicassistantsassistantidtexmlget — Get assistant texml
/v1/ai/assistants/{assistant-id}/texml
DELETE
Removeassistanttool — Remove Assistant Tool
/v1/ai/assistants/{assistant-id}/tools/{tool-id}
PUT
Addassistanttool — Add Assistant Tool
/v1/ai/assistants/{assistant-id}/tools/{tool-id}
POST
Testassistanttoolpublicassistantsassistantidtoolstoolidtestpost — Test Assistant Tool
/v1/ai/assistants/{assistant-id}/tools/{tool-id}/test
GET
Getassistantversionspublicassistantsassistantidversionsget — Get all versions of an assistant
/v1/ai/assistants/{assistant-id}/versions
DELETE
Deleteassistantversionpublicassistantsassistantidversionsversioniddelete — Delete a specific assistant version
/v1/ai/assistants/{assistant-id}/versions/{version-id}
GET
Getassistantversionpublicassistantsassistantidversionsversionidget — Get a specific assistant version
/v1/ai/assistants/{assistant-id}/versions/{version-id}
POST
Updateassistantversionpublicassistantsassistantidversionsversionidpost — Update a specific assistant version
/v1/ai/assistants/{assistant-id}/versions/{version-id}
POST
Promoteassistantversionpublicassistantsassistantidversionsversionidpromotepost — Promote an assistant version to main
/v1/ai/assistants/{assistant-id}/versions/{version-id}/promote
GET
Listtools — List Tools
/v1/ai/tools
POST
Createtoolpost — Create Tool
/v1/ai/tools
DELETE
Deletetooltoolid — Delete Tool
/v1/ai/tools/{tool-id}
GET
Gettooltoolid — Get Tool
/v1/ai/tools/{tool-id}
PATCH
Updatetooltoolid — Update Tool
/v1/ai/tools/{tool-id}

MCP Tools

list-assistants

List assistants

read-only idempotent
create-assistant

Create an assistant

import-assistants-external-provider

Import assistants from external provider

get-all-tags

Get All Tags

read-only idempotent
list-assistant-tests-pagination

List assistant tests with pagination

read-only idempotent
create-new-assistant-test

Create a new assistant test

get-all-test-suite-names

Get all test suite names

read-only idempotent
get-test-suite-run-history

Get test suite run history

read-only idempotent
trigger-test-suite-execution

Trigger test suite execution

read-only
delete-assistant-test

Delete an assistant test

idempotent
get-assistant-test-id

Get assistant test by ID

read-only idempotent
update-assistant-test

Update an assistant test

idempotent
get-test-run-history-specific

Get test run history for a specific test

read-only idempotent
trigger-manual-test-run

Trigger a manual test run

read-only
get-specific-test-run-details

Get specific test run details

read-only idempotent
delete-assistant

Delete an assistant

idempotent
get-assistant

Get an assistant

read-only idempotent
update-assistant

Update an assistant

delete-canary-deploy

Delete Canary Deploy

idempotent
get-canary-deploy

Get Canary Deploy

read-only idempotent
create-canary-deploy

Create Canary Deploy

update-canary-deploy

Update Canary Deploy

idempotent
assistant-chat-beta

Assistant Chat (BETA)

assistant-sms-chat

Assistant Sms Chat

clone-assistant

Clone Assistant

list-scheduled-events

List scheduled events

read-only idempotent
create-scheduled-event

Create a scheduled event

delete-scheduled-event

Delete a scheduled event

idempotent
get-scheduled-event

Get a scheduled event

read-only idempotent
add-assistant-tag

Add Assistant Tag

remove-assistant-tag

Remove Assistant Tag

idempotent
get-assistant-texml

Get assistant texml

read-only idempotent
remove-assistant-tool

Remove Assistant Tool

idempotent
add-assistant-tool

Add Assistant Tool

idempotent
test-assistant-tool

Test Assistant Tool

read-only
get-all-versions-assistant

Get all versions of an assistant

read-only idempotent
delete-specific-assistant-version

Delete a specific assistant version

idempotent
get-specific-assistant-version

Get a specific assistant version

read-only idempotent
update-specific-assistant-version

Update a specific assistant version

promote-assistant-version-main

Promote an assistant version to main

list-tools

List Tools

read-only idempotent
create-tool

Create Tool

delete-tool

Delete Tool

idempotent
get-tool

Get Tool

read-only idempotent
update-tool

Update Tool

idempotent

Capability Spec

telnyx-assistants.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Telnyx API — Assistants
  description: 'Telnyx API — Assistants. 45 operations. Lead operation: List assistants. Self-contained Naftiko capability
    covering one Telnyx business surface.'
  tags:
  - Telnyx
  - Assistants
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    TELNYX_API_KEY: TELNYX_API_KEY
capability:
  consumes:
  - type: http
    namespace: telnyx-assistants
    baseUri: https://api.telnyx.com/v2
    description: Telnyx API — Assistants business capability. Self-contained, no shared references.
    resources:
    - name: ai-assistants
      path: /ai/assistants
      operations:
      - name: getassistantspublicassistantsget
        method: GET
        description: List assistants
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createnewassistantpublicassistantspost
        method: POST
        description: Create an assistant
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: ai-assistants-import
      path: /ai/assistants/import
      operations:
      - name: importassistantspublicassistantsimportpost
        method: POST
        description: Import assistants from external provider
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: ai-assistants-tags
      path: /ai/assistants/tags
      operations:
      - name: getallassistanttags
        method: GET
        description: Get All Tags
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: ai-assistants-tests
      path: /ai/assistants/tests
      operations:
      - name: getassistanttestspublicassistantstestsget
        method: GET
        description: List assistant tests with pagination
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: test_suite
          in: query
          type: string
          description: Filter tests by test suite name
        - name: telnyx_conversation_channel
          in: query
          type: string
          description: Filter tests by communication channel (e.g., 'web_chat', 'sms')
        - name: destination
          in: query
          type: string
          description: Filter tests by destination (phone number, webhook URL, etc.)
        - name: page
          in: query
          type: object
          description: 'Consolidated page parameter (deepObject style). Originally: page[size], page[number]'
      - name: createassistanttestpublicassistantstestspost
        method: POST
        description: Create a new assistant test
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: ai-assistants-tests-test-suites
      path: /ai/assistants/tests/test-suites
      operations:
      - name: fetchtestsuitespublicassistantsteststestsuitesget
        method: GET
        description: Get all test suite names
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: ai-assistants-tests-test-suites-suite_name-runs
      path: /ai/assistants/tests/test-suites/{suite_name}/runs
      operations:
      - name: gettestsuiterunsfortestpublicassistantsteststestsuitessuitenamerunsget
        method: GET
        description: Get test suite run history
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: suite_name
          in: path
          type: string
          required: true
        - name: status
          in: query
          type: string
          description: Filter runs by execution status (pending, running, completed, failed, timeout)
        - name: test_suite_run_id
          in: query
          type: string
          description: Filter runs by specific suite execution batch ID
        - name: page
          in: query
          type: object
          description: 'Consolidated page parameter (deepObject style). Originally: page[size], page[number]'
      - name: triggertestsuiterunspublicassistantsteststestsuitessuitenamerunspost
        method: POST
        description: Trigger test suite execution
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: suite_name
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: ai-assistants-tests-test_id
      path: /ai/assistants/tests/{test_id}
      operations:
      - name: deleteassistanttestpublicassistantsteststestiddelete
        method: DELETE
        description: Delete an assistant test
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: test_id
          in: path
          type: string
          required: true
      - name: getassistanttestpublicassistantsteststestidget
        method: GET
        description: Get assistant test by ID
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: test_id
          in: path
          type: string
          required: true
      - name: updateassistanttestpublicassistantsteststestidput
        method: PUT
        description: Update an assistant test
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: test_id
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: ai-assistants-tests-test_id-runs
      path: /ai/assistants/tests/{test_id}/runs
      operations:
      - name: gettestrunsfortestpublicassistantsteststestidrunsget
        method: GET
        description: Get test run history for a specific test
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: test_id
          in: path
          type: string
          required: true
        - name: status
          in: query
          type: string
          description: Filter runs by execution status (pending, running, completed, failed, timeout)
        - name: page
          in: query
          type: object
          description: 'Consolidated page parameter (deepObject style). Originally: page[size], page[number]'
      - name: triggertestrunpublicassistantsteststestidrunspost
        method: POST
        description: Trigger a manual test run
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: test_id
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: ai-assistants-tests-test_id-runs-run_id
      path: /ai/assistants/tests/{test_id}/runs/{run_id}
      operations:
      - name: gettestrunpublicassistantsteststestidrunsrunidget
        method: GET
        description: Get specific test run details
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: test_id
          in: path
          type: string
          required: true
        - name: run_id
          in: path
          type: string
          required: true
    - name: ai-assistants-assistant_id
      path: /ai/assistants/{assistant_id}
      operations:
      - name: deleteassistantpublicassistantsassistantiddelete
        method: DELETE
        description: Delete an assistant
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: assistant_id
          in: path
          type: string
          required: true
      - name: getassistantpublicassistantsassistantidget
        method: GET
        description: Get an assistant
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: assistant_id
          in: path
          type: string
          required: true
        - name: fetch_dynamic_variables_from_webhook
          in: query
          type: boolean
        - name: from
          in: query
          type: string
        - name: to
          in: query
          type: string
        - name: call_control_id
          in: query
          type: string
      - name: updateassistantpublicassistantsassistantidpost
        method: POST
        description: Update an assistant
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: assistant_id
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: ai-assistants-assistant_id-canary-deploys
      path: /ai/assistants/{assistant_id}/canary-deploys
      operations:
      - name: deletecanarydeployassistantsassistantidcanarydeploysdelete
        method: DELETE
        description: Delete Canary Deploy
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: assistant_id
          in: path
          type: string
          required: true
      - name: getcanarydeployassistantsassistantidcanarydeploysget
        method: GET
        description: Get Canary Deploy
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: assistant_id
          in: path
          type: string
          required: true
      - name: createcanarydeployassistantsassistantidcanarydeployspost
        method: POST
        description: Create Canary Deploy
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: assistant_id
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: updatecanarydeployassistantsassistantidcanarydeploysput
        method: PUT
        description: Update Canary Deploy
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: assistant_id
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: ai-assistants-assistant_id-chat
      path: /ai/assistants/{assistant_id}/chat
      operations:
      - name: assistantchatpublicassistantsassistantidchatpost
        method: POST
        description: Assistant Chat (BETA)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: assistant_id
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: ai-assistants-assistant_id-chat-sms
      path: /ai/assistants/{assistant_id}/chat/sms
      operations:
      - name: assistantsmschatassistantsassistantidchatsmspost
        method: POST
        description: Assistant Sms Chat
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: assistant_id
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: ai-assistants-assistant_id-clone
      path: /ai/assistants/{assistant_id}/clone
      operations:
      - name: cloneassistantpublicassistantsassistantidclonepost
        method: POST
        description: Clone Assistant
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: assistant_id
          in: path
          type: string
          required: true
    - name: ai-assistants-assistant_id-scheduled_events
      path: /ai/assistants/{assistant_id}/scheduled_events
      operations:
      - name: getscheduledevents
        method: GET
        description: List scheduled events
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: assistant_id
          in: path
          type: string
          required: true
        - name: from_date
          in: query
          type: string
        - name: to_date
          in: query
          type: string
        - name: conversation_channel
          in: query
          type: string
        - name: page
          in: query
          type: object
          description: 'Consolidated page parameter (deepObject style). Originally: page[size], page[number]'
      - name: createscheduledevent
        method: POST
        description: Create a scheduled event
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: assistant_id
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: ai-assistants-assistant_id-scheduled_events-event_id
      path: /ai/assistants/{assistant_id}/scheduled_events/{event_id}
      operations:
      - name: deletescheduledevent
        method: DELETE
        description: Delete a scheduled event
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: assistant_id
          in: path
          type: string
          required: true
        - name: event_id
          in: path
          type: string
          required: true
      - name: getscheduledevent
        method: GET
        description: Get a scheduled event
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: assistant_id
          in: path
          type: string
          required: true
        - name: event_id
          in: path
          type: string
          required: true
    - name: ai-assistants-assistant_id-tags
      path: /ai/assistants/{assistant_id}/tags
      operations:
      - name: addassistanttag
        method: POST
        description: Add Assistant Tag
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: assistant_id
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: ai-assistants-assistant_id-tags-tag
      path: /ai/assistants/{assistant_id}/tags/{tag}
      operations:
      - name: removeassistanttag
        method: DELETE
        description: Remove Assistant Tag
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: assistant_id
          in: path
          type: string
          required: true
        - name: tag
          in: path
          type: string
          required: true
    - name: ai-assistants-assistant_id-texml
      path: /ai/assistants/{assistant_id}/texml
      operations:
      - name: getassistanttexmlpublicassistantsassistantidtexmlget
        method: GET
        description: Get assistant texml
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: assistant_id
          in: path
          type: string
          required: true
    - name: ai-assistants-assistant_id-tools-tool_id
      path: /ai/assistants/{assistant_id}/tools/{tool_id}
      operations:
      - name: removeassistanttool
        method: DELETE
        description: Remove Assistant Tool
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: assistant_id
          in: path
          type: string
          required: true
        - name: tool_id
          in: path
          type: string
          required: true
      - name: addassistanttool
        method: PUT
        description: Add Assistant Tool
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: assistant_id
          in: path
          type: string
          required: true
        - name: tool_id
          in: path
          type: string
          required: true
    - name: ai-assistants-assistant_id-tools-tool_id-test
      path: /ai/assistants/{assistant_id}/tools/{tool_id}/test
      operations:
      - name: testassistanttoolpublicassistantsassistantidtoolstoolidtestpost
        method: POST
        description: Test Assistant Tool
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: assistant_id
          in: path
          type: string
          required: true
        - name: tool_id
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: ai-assistants-assistant_id-versions
      path: /ai/assistants/{assistant_id}/versions
      operations:
      - name: getassistantversionspublicassistantsassistantidversionsget
        method: GET
        description: Get all versions of an assistant
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: assistant_id
          in: path
          type: string
          required: true
    - name: ai-assistants-assistant_id-versions-version_id
      path: /ai/assistants/{assistant_id}/versions/{version_id}
      operations:
      - name: deleteassistantversionpublicassistantsassistantidversionsversioniddelete
        method: DELETE
        description: Delete a specific assistant version
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: assistant_id
          in: path
          type: string
          required: true
        - name: version_id
          in: path
          type: string
          required: true
      - name: getassistantversionpublicassistantsassistantidversionsversionidget
        method: GET
        description: Get a specific assistant version
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: assistant_id
          in: path
          type: string
          required: true
        - name: version_id
          in: path
          type: string
          required: true
        - name: include_mcp_servers
          in: query
          type: boolean
      - name: updateassistantversionpublicassistantsassistantidversionsversionidpost
        method: POST
        description: Update a specific assistant version
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: assistant_id
          in: path
          type: string
          required: true
        - name: version_id
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: ai-assistants-assistant_id-versions-version_id-promote
      path: /ai/assistants/{assistant_id}/versions/{version_id}/promote
      operations:
      - name: promoteassistantversionpublicassistantsassistantidversionsversionidpromotepost
        method: POST
        description: Promote an assistant version to main
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: assistant_id
          in: path
          type: string
          required: true
        - name: version_id
          in: path
          type: string
          required: true
    - name: ai-tools
      path: /ai/tools
      operations:
      - name: listtools
        method: GET
        description: List Tools
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: filter[type]
          in: query
          type: string
        - name: filter[name]
          in: query
          type: string
        - name: page[size]
          in: query
          type: integer
        - name: page[number]
          in: query
          type: integer
      - name: createtoolpost
        method: POST
        description: Create Tool
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: ai-tools-tool_id
      path: /ai/tools/{tool_id}
      operations:
      - name: deletetooltoolid
        method: DELETE
        description: Delete Tool
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: tool_id
          in: path
          type: string
          required: true
      - name: gettooltoolid
        method: GET
        description: Get Tool
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: tool_id
          in: path
          type: string
          required: true
      - name: updatetooltoolid
        method: PATCH
        description: Update Tool
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: tool_id
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    authentication:
      type: bearer
      token: '{{env.TELNYX_API_KEY}}'
  exposes:
  - type: rest
    namespace: telnyx-assistants-rest
    port: 8080
    description: REST adapter for Telnyx API — Assistants. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/ai/assistants
      name: ai-assistants
      description: REST surface for ai-assistants.
      operations:
      - method: GET
        name: getassistantspublicassistantsget
        description: List assistants
        call: telnyx-assistants.getassistantspublicassistantsget
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createnewassistantpublicassistantspost
        description: Create an assistant
        call: telnyx-assistants.createnewassistantpublicassistantspost
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/ai/assistants/import
      name: ai-assistants-import
      description: REST surface for ai-assistants-import.
      operations:
      - method: POST
        name: importassistantspublicassistantsimportpost
        description: Import assistants from external provider
        call: telnyx-assistants.importassistantspublicassistantsimportpost
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/ai/assistants/tags
      name: ai-assistants-tags
      description: REST surface for ai-assistants-tags.
      operations:
      - method: GET
        name: getallassistanttags
        description: Get All Tags
        call: telnyx-assistants.getallassistanttags
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/ai/assistants/tests
      name: ai-assistants-tests
      description: REST surface for ai-assistants-tests.
      operations:
      - method: GET
        name: getassistanttestspublicassistantstestsget
        description: List assistant tests with pagination
        call: telnyx-assistants.getassistanttestspublicassistantstestsget
        with:
          test_suite: rest.test_suite
          telnyx_conversation_channel: rest.telnyx_conversation_channel
          destination: rest.destination
          page: rest.page
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createassistanttestpublicassistantstestspost
        description: Create a new assistant test
        call: telnyx-assistants.createassistanttestpublicassistantstestspost
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/ai/assistants/tests/test-suites
      name: ai-assistants-tests-test-suites
      description: REST surface for ai-assistants-tests-test-suites.
      operations:
      - method: GET
        name: fetchtestsuitespublicassistantsteststestsuitesget
        description: Get all test suite names
        call: telnyx-assistants.fetchtestsuitespublicassistantsteststestsuitesget
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/ai/assistants/tests/test-suites/{suite-name}/runs
      name: ai-assistants-tests-test-suites-suite-name-runs
      description: REST surface for ai-assistants-tests-test-suites-suite_name-runs.
      operations:
      - method: GET
        name: gettestsuiterunsfortestpublicassistantsteststestsuitessuitenamerunsget
        description: Get test suite run history
        call: telnyx-assistants.gettestsuiterunsfortestpublicassistantsteststestsuitessuitenamerunsget
        with:
          suite_name: rest.suite_name
          status: rest.status
          test_suite_run_id: rest.test_suite_run_id
          page: rest.page
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: triggertestsuiterunspublicassistantsteststestsuitessuitenamerunspost
        description: Trigger test suite execution
        call: telnyx-assistants.triggertestsuiterunspublicassistantsteststestsuitessuitenamerunspost
        with:
          suite_name: rest.suite_name
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/ai/assistants/tests/{test-id}
      name: ai-assistants-tests-test-id
      description: REST surface for ai-assistants-tests-test_id.
      operations:
      - method: DELETE
        name: deleteassistanttestpublicassistantsteststestiddelete
        description: Delete an assistant test
        call: telnyx-assistants.deleteassistanttestpublicassistantsteststestiddelete
        with:
          test_id: rest.test_id
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: getassistanttestpublicassistantsteststestidget
        description: Get assistant test by ID
        call: telnyx-assistants.getassistanttestpublicassistantsteststestidget
        with:
          test_id: rest.test_id
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: updateassistanttestpublicassistantsteststestidput
        description: Update an assistant test
        call: telnyx-assistants.updateassistanttestpublicassistantsteststestidput
        with:
          test_id: rest.test_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/ai/assistants/tests/{test-id}/runs
      name: ai-assistants-tests-test-id-runs
      description: REST surface for ai-assistants-tests-test_id-runs.
      operations:
      - method: GET
        name: gettestrunsfortestpublicassistantsteststestidrunsget
        description: Get test run history for a specific test
        call: telnyx-assistants.gettestrunsfortestpublicassistantsteststestidrunsget
        with:
          test_id: rest.test_id
          status: rest.status
          page: rest.page
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: triggertestrunpublicassistantsteststestidrunspost
        description: Trigger a manual test run
        call: telnyx-assistants.triggertestrunpublicassistantsteststestidrunspost
        with:
          test_id: rest.test_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/ai/assistants/tests/{test-id}/runs/{run-id}
      name: ai-assistants-tests-test-id-runs-run-id
      description: REST surface for ai-assistants-tests-test_id-runs-run_id.
      operations:
      - method: GET
        name: gettestrunpublicassistantsteststestidrunsrunidget
        description: Get specific test run details
        call: telnyx-assistants.gettestrunpublicassistantsteststestidrunsrunidget
        with:
          test_id: rest.test_id
          run_id: rest.run_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/ai/assistants/{assistant-id}
      name: ai-assistants-assistant-id
      description: REST surface for ai-assistants-assistant_id.
      operations:
      - method: DELETE
        name: deleteassistantpublicassistantsassistantiddelete
        description: Delete an assistant
        call: telnyx-assistants.deleteassistantpublicassistantsassistantiddelete
        with:
          assistant_id: rest.assistant_id
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: getassistantpublicassistantsassistantidget
        description: Get an assistant
        call: telnyx-assistants.getassistantpublicassistantsassistantidget
        with:
          assistant_id: rest.assistant_id
          fetch_dynamic_variables_from_webhook: rest.fetch_dynamic_variables_from_webhook
          from: rest.from
          to: rest.to
          call_control_id: rest.call_control_id
        outputParameters:
        - type: object
          mapping: $.
      - method: P

# --- truncated at 32 KB (61 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/telnyx/refs/heads/main/capabilities/telnyx-assistants.yaml