Syllable Channels.targets API

Operations related to channel target configuration. A channel target links a channel to an agent, allowing users to communicate with the agent through that channel. For more information, see [Console docs](https://docs.syllable.ai/Resources/Channels).

Operations 5

GET /api/v1/channels/available-targets Available Targets List #
GET /api/v1/channels/targets Get Channel Targets #
POST /api/v1/channels/{channel_id}/targets Assign A Channel Target #
GET /api/v1/channels/{channel_id}/targets/{target_id} Get A Channel Target #
PUT /api/v1/channels/{channel_id}/targets/{target_id} Edit Channel Target #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/syllable-channels-targets-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

syllable-channels-targets-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: SyllableSDK Channels.targets API
  description: "\n# Syllable Platform SDK\n\nSyllable SDK gives you the power of awesome AI agentry. \U0001F680\n\n## Overview\n\nThe Syllable SDK provides a comprehensive set of tools and APIs to integrate powerful AI\ncapabilities into your communication applications. Whether you're building phone agents, chatbots,\nvirtual assistants, or any other AI-driven solutions, Syllable SDK has got you covered.\n\n## Features\n\n- **Agent Configuration**: Create and manage agents that can interact with users across various \nchannels.\n- **Channel Management**: Configure channels like SMS, web chat, and more to connect agents with \nusers.\n- **Custom Messages**: Set up custom messages that agents can deliver as greetings or responses.\n- **Conversations**: Track and manage conversations between users and agents, including session \nmanagement.\n- **Tools and Workflows**: Leverage tools and workflows to enhance agent capabilities, such as data \nprocessing and API calls.\n- **Data Sources**: Integrate data sources to provide agents with additional context and \ninformation.\n- **Insights and Analytics**: Analyze conversations and sessions to gain insights into user \ninteractions.\n- **Permissions and Security**: Manage permissions to control access to various features and \nfunctionalities.\n- **Language Support**: Define language groups to enable multilingual support for agents.\n- **Outbound Campaigns**: Create and manage outbound communication campaigns to reach users \neffectively.\n- **Session Labels**: Label sessions with evaluations of quality and descriptions of issues \nencountered.\n- **Incident Management**: Track and manage incidents related to agent interactions.\n"
  version: 0.0.3
servers:
- url: https://api.syllable.cloud
  description: API server
tags:
- name: channels.targets
  description: Operations related to channel target configuration. A channel target           links a channel to an agent, allowing users to communicate with the agent through that           channel. For more information, see           [Console docs](https://docs.syllable.ai/Resources/Channels).
paths:
  /api/v1/channels/available-targets:
    get:
      tags:
      - channels.targets
      summary: Available Targets List
      description: List the available phone numbers
      operationId: available_targets
      security:
      - APIKeyHeader: []
      parameters:
      - name: page
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
            minimum: 0
          - type: 'null'
          description: The page number from which to start (0-based)
          examples:
          - 0
          default: 0
          title: Page
        description: The page number from which to start (0-based)
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
          description: The maximum number of items to return
          examples:
          - 25
          default: 25
          title: Limit
        description: The maximum number of items to return
      - name: search_fields
        in: query
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/AvailableTargetProperties'
          description: String names of fields to search. Correspond by index to search field values
          examples:
          - name
          default: []
          title: Search Fields
        description: String names of fields to search. Correspond by index to search field values
      - name: search_field_values
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
          description: Values of fields to search. Correspond by index to search fields. Unless field name contains "list", an individual search field value cannot be a list
          examples:
          - Some Object Name
          default: []
          title: Search Field Values
        description: Values of fields to search. Correspond by index to search fields. Unless field name contains "list", an individual search field value cannot be a list
      - name: order_by
        in: query
        required: false
        schema:
          anyOf:
          - $ref: '#/components/schemas/AvailableTargetProperties'
          - type: 'null'
          description: The field whose value should be used to order the results
          examples:
          - name
          title: Order By
        description: The field whose value should be used to order the results
      - name: order_by_direction
        in: query
        required: false
        schema:
          anyOf:
          - $ref: '#/components/schemas/OrderByDirection'
          - type: 'null'
          description: The direction in which to order the results
          title: Order By Direction
        description: The direction in which to order the results
      - name: fields
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              $ref: '#/components/schemas/AvailableTargetProperties'
          - type: 'null'
          description: The fields to include in the response
          default: []
          title: Fields
        description: The fields to include in the response
      - name: start_datetime
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: The start datetime for filtering results
          examples:
          - '2023-01-01T00:00:00Z'
          title: Start Datetime
        description: The start datetime for filtering results
      - name: end_datetime
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: The end datetime for filtering results
          examples:
          - '2024-01-01T00:00:00Z'
          title: End Datetime
        description: The end datetime for filtering results
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListResponse_AvailableTarget_'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-codeSamples:
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom syllable_sdk import SyllableSDK, models\n\n\nwith SyllableSDK(\n    api_key_header=os.getenv(\"SYLLABLESDK_API_KEY_HEADER\", \"\"),\n) as ss_client:\n\n    res = ss_client.channels.targets.available_targets(page=0, limit=25, search_fields=[\n        models.AvailableTargetProperties.TARGET,\n    ], search_field_values=[\n        \"Some Object Name\",\n    ], start_datetime=\"2023-01-01T00:00:00Z\", end_datetime=\"2024-01-01T00:00:00Z\")\n\n    # Handle response\n    print(res)"
      - lang: typescript
        label: Typescript (SDK)
        source: "import { SyllableSDK } from \"syllable-sdk\";\n\nconst syllableSDK = new SyllableSDK({\n  apiKeyHeader: process.env[\"SYLLABLESDK_API_KEY_HEADER\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await syllableSDK.channels.targets.availableTargets({\n    page: 0,\n    searchFields: [\n      \"target\",\n    ],\n    searchFieldValues: [\n      \"Some Object Name\",\n    ],\n    startDatetime: \"2023-01-01T00:00:00Z\",\n    endDatetime: \"2024-01-01T00:00:00Z\",\n  });\n\n  console.log(result);\n}\n\nrun();"
  /api/v1/channels/targets:
    get:
      tags:
      - channels.targets
      summary: Get Channel Targets
      description: 'List channel targets for the current suborg.


        Supports the standard `ListManager` filters via `search_fields`/`search_field_values`. In

        addition to `target_mode` (single value), `target_mode_list` accepts a comma-separated list of

        modes (e.g. `voice,sms`) and matches targets whose mode is any of the listed values. Whitespace

        around tokens is tolerated and empty tokens are ignored. If both `target_mode` and

        `target_mode_list` are supplied, the two filters are combined with AND. `target_mode_list` is

        filter-only and cannot be used as `order_by`.'
      operationId: channel_targets_list
      security:
      - APIKeyHeader: []
      parameters:
      - name: page
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
            minimum: 0
          - type: 'null'
          description: The page number from which to start (0-based)
          examples:
          - 0
          default: 0
          title: Page
        description: The page number from which to start (0-based)
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
          description: The maximum number of items to return
          examples:
          - 25
          default: 25
          title: Limit
        description: The maximum number of items to return
      - name: search_fields
        in: query
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/ChannelTargetProperties'
          description: String names of fields to search. Correspond by index to search field values
          examples:
          - name
          default: []
          title: Search Fields
        description: String names of fields to search. Correspond by index to search field values
      - name: search_field_values
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
          description: Values of fields to search. Correspond by index to search fields. Unless field name contains "list", an individual search field value cannot be a list
          examples:
          - Some Object Name
          default: []
          title: Search Field Values
        description: Values of fields to search. Correspond by index to search fields. Unless field name contains "list", an individual search field value cannot be a list
      - name: order_by
        in: query
        required: false
        schema:
          anyOf:
          - $ref: '#/components/schemas/ChannelTargetOrderProperties'
          - type: 'null'
          description: The field whose value should be used to order the results
          examples:
          - target
          title: Order By
        description: The field whose value should be used to order the results
      - name: order_by_direction
        in: query
        required: false
        schema:
          anyOf:
          - $ref: '#/components/schemas/OrderByDirection'
          - type: 'null'
          description: The direction in which to order the results
          title: Order By Direction
        description: The direction in which to order the results
      - name: fields
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              $ref: '#/components/schemas/ChannelTargetProperties'
          - type: 'null'
          description: The fields to include in the response
          default: []
          title: Fields
        description: The fields to include in the response
      - name: start_datetime
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: The start datetime for filtering results
          examples:
          - '2023-01-01T00:00:00Z'
          title: Start Datetime
        description: The start datetime for filtering results
      - name: end_datetime
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: The end datetime for filtering results
          examples:
          - '2024-01-01T00:00:00Z'
          title: End Datetime
        description: The end datetime for filtering results
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListResponse_ChannelTargetResponse_'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-codeSamples:
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom syllable_sdk import SyllableSDK, models\n\n\nwith SyllableSDK(\n    api_key_header=os.getenv(\"SYLLABLESDK_API_KEY_HEADER\", \"\"),\n) as ss_client:\n\n    res = ss_client.channels.targets.list(page=0, limit=25, search_fields=[\n        models.ChannelTargetProperties.AGENT_ID,\n    ], search_field_values=[\n        \"Some Object Name\",\n    ], order_by=models.ChannelTargetOrderProperties.TARGET, start_datetime=\"2023-01-01T00:00:00Z\", end_datetime=\"2024-01-01T00:00:00Z\")\n\n    # Handle response\n    print(res)"
      - lang: typescript
        label: Typescript (SDK)
        source: "import { SyllableSDK } from \"syllable-sdk\";\n\nconst syllableSDK = new SyllableSDK({\n  apiKeyHeader: process.env[\"SYLLABLESDK_API_KEY_HEADER\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await syllableSDK.channels.targets.list({\n    page: 0,\n    searchFields: [\n      \"agent_id\",\n    ],\n    searchFieldValues: [\n      \"Some Object Name\",\n    ],\n    orderBy: \"target\",\n    startDatetime: \"2023-01-01T00:00:00Z\",\n    endDatetime: \"2024-01-01T00:00:00Z\",\n  });\n\n  console.log(result);\n}\n\nrun();"
  /api/v1/channels/{channel_id}/targets:
    post:
      tags:
      - channels.targets
      summary: Assign A Channel Target
      operationId: channel_targets_create
      security:
      - APIKeyHeader: []
      parameters:
      - name: channel_id
        in: path
        required: true
        schema:
          type: integer
          title: Channel Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChannelTargetCreateRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChannelTargetResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-codeSamples:
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom syllable_sdk import SyllableSDK, models\n\n\nwith SyllableSDK(\n    api_key_header=os.getenv(\"SYLLABLESDK_API_KEY_HEADER\", \"\"),\n) as ss_client:\n\n    res = ss_client.channels.targets.create(channel_id=824809, channel_target_create_request={\n        \"agent_id\": 1,\n        \"channel_id\": 1,\n        \"target\": \"+19995551234\",\n        \"target_mode\": models.TargetModes.EMAIL,\n        \"fallback_target\": \"+19995551235\",\n        \"is_test\": True,\n    })\n\n    # Handle response\n    print(res)"
      - lang: typescript
        label: Typescript (SDK)
        source: "import { SyllableSDK } from \"syllable-sdk\";\n\nconst syllableSDK = new SyllableSDK({\n  apiKeyHeader: process.env[\"SYLLABLESDK_API_KEY_HEADER\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await syllableSDK.channels.targets.create({\n    channelId: 824809,\n    channelTargetCreateRequest: {\n      agentId: 1,\n      channelId: 1,\n      target: \"+19995551234\",\n      targetMode: \"email\",\n      fallbackTarget: \"+19995551235\",\n      isTest: true,\n    },\n  });\n\n  console.log(result);\n}\n\nrun();"
  /api/v1/channels/{channel_id}/targets/{target_id}:
    get:
      tags:
      - channels.targets
      summary: Get A Channel Target
      operationId: channel_targets_get_by_id
      security:
      - APIKeyHeader: []
      parameters:
      - name: channel_id
        in: path
        required: true
        schema:
          type: integer
          title: Channel Id
      - name: target_id
        in: path
        required: true
        schema:
          type: integer
          title: Target Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChannelTargetResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-codeSamples:
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom syllable_sdk import SyllableSDK\n\n\nwith SyllableSDK(\n    api_key_header=os.getenv(\"SYLLABLESDK_API_KEY_HEADER\", \"\"),\n) as ss_client:\n\n    res = ss_client.channels.targets.get_by_id(channel_id=184507, target_id=235358)\n\n    # Handle response\n    print(res)"
      - lang: typescript
        label: Typescript (SDK)
        source: "import { SyllableSDK } from \"syllable-sdk\";\n\nconst syllableSDK = new SyllableSDK({\n  apiKeyHeader: process.env[\"SYLLABLESDK_API_KEY_HEADER\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await syllableSDK.channels.targets.getById({\n    channelId: 184507,\n    targetId: 235358,\n  });\n\n  console.log(result);\n}\n\nrun();"
    put:
      tags:
      - channels.targets
      summary: Edit Channel Target
      description: Update channel target by ID
      operationId: channel_targets_update
      security:
      - APIKeyHeader: []
      parameters:
      - name: channel_id
        in: path
        required: true
        schema:
          type: integer
          title: Channel Id
      - name: target_id
        in: path
        required: true
        schema:
          type: integer
          title: Target Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChannelTargetUpdateRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChannelTargetResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-codeSamples:
      - lang: python
        label: Python (SDK)
        source: "import os\nfrom syllable_sdk import SyllableSDK, models\n\n\nwith SyllableSDK(\n    api_key_header=os.getenv(\"SYLLABLESDK_API_KEY_HEADER\", \"\"),\n) as ss_client:\n\n    res = ss_client.channels.targets.update(channel_id=508167, target_id=880236, channel_target_update_request={\n        \"agent_id\": 1,\n        \"channel_id\": 1,\n        \"target\": \"+19995551234\",\n        \"target_mode\": models.TargetModes.EMAIL,\n        \"fallback_target\": \"+19995551235\",\n        \"is_test\": True,\n        \"id\": 1,\n    })\n\n    # Handle response\n    print(res)"
      - lang: typescript
        label: Typescript (SDK)
        source: "import { SyllableSDK } from \"syllable-sdk\";\n\nconst syllableSDK = new SyllableSDK({\n  apiKeyHeader: process.env[\"SYLLABLESDK_API_KEY_HEADER\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await syllableSDK.channels.targets.update({\n    channelId: 508167,\n    targetId: 880236,\n    channelTargetUpdateRequest: {\n      agentId: 1,\n      channelId: 1,\n      target: \"+19995551234\",\n      targetMode: \"email\",\n      fallbackTarget: \"+19995551235\",\n      isTest: true,\n      id: 1,\n    },\n  });\n\n  console.log(result);\n}\n\nrun();"
components:
  schemas:
    ToolHttpEndpoint:
      properties:
        url:
          type: string
          title: Url
          description: The endpoint URL of the external service to call.
          examples:
          - https://api.example.com
        method:
          $ref: '#/components/schemas/ToolHttpMethod'
          description: The HTTP method to use for the service call.
          examples:
          - get
        argument_location:
          $ref: '#/components/schemas/ToolArgumentLocation'
          description: How to pass the arguments to the request.
          examples:
          - query
        timeout:
          anyOf:
          - type: number
            maximum: 120
            minimum: 1
          - type: 'null'
          title: Timeout
          description: Timeout in seconds for the HTTP request. Default 20 seconds when not set.
          examples:
          - 45.0
      type: object
      required:
      - url
      - method
      - argument_location
      title: ToolHttpEndpoint
      description: The configuration for an HTTP API call by a tool.
    LoadToolFromFileTask:
      properties:
        id:
          anyOf:
          - type: string
          - type: 'null'
          title: Id
          description: A unique identifier for the task.
        config:
          anyOf:
          - additionalProperties:
              $ref: '#/components/schemas/JsonValue'
            type: object
          - type: 'null'
          title: Config
        variables:
          anyOf:
          - items:
              $ref: '#/components/schemas/Variable'
            type: array
          - type: 'null'
          title: Variables
        metadata:
          anyOf:
          - $ref: '#/components/schemas/ContextTaskMetadata'
          - type: 'null'
        tool:
          anyOf:
          - $ref: '#/components/schemas/ContextToolInfo'
          - type: 'null'
        type:
          type: string
          const: import
          title: Type
          default: import
        version:
          type: string
          const: v1alpha
          title: Version
          default: v1alpha
        file:
          anyOf:
          - type: string
          - items:
              type: string
            type: array
          title: File
          description: The local path of the tool definition JSON file.
      type: object
      required:
      - file
      title: LoadToolFromFileTask
      description: Bootstraps a tool from a file (for internal developer use only if ENV.local=True).
    JMESPathExpression:
      properties:
        expression:
          type: string
          title: Expression
          description: JMESPath expression string.
          examples:
          - inputs.can_sign_consent == `true`
        type:
          type: string
          enum:
          - jp
          - jmespath
          title: Type
          description: JMESPath expression language selector. Use with object form {"type":"jp"|"jmespath","expression":"..."}.
          default: jp
      type: object
      required:
      - expression
      title: JMESPathExpression
      description: 'JMESPath expression object.


        Use this object form to explicitly mark JMESPath syntax:

        {"type": "jp", "expression": "inputs.can_sign_consent == `true`"}

        See https://jmespath.org/specification.html#grammar'
    SayAction:
      properties:
        if:
          anyOf:
          - oneOf:
            - $ref: '#/components/schemas/CelExpression'
            - $ref: '#/components/schemas/JMESPathExpression'
            discriminator:
              propertyName: type
              mapping:
                cel: '#/components/schemas/CelExpression'
                jmespath: '#/components/schemas/JMESPathExpression'
                jp: '#/components/schemas/JMESPathExpression'
          - $ref: '#/components/schemas/CaseExpression'
          - type: string
          - type: 'null'
          title: If
          description: 'Condition to decide whether this item executes. Supported expression forms: (1) JMESPath string (default for plain strings), (2) typed JMESPath object {"type":"jp"|"jmespath","expression":"..."}, or (3) typed CEL object {"type":"cel","expression":"..."}. Example JMESPath string: "inputs.can_sign_consent == `true`".'
          examples:
          - inputs.can_sign_consent == `true`
          - expression: inputs.can_sign_consent == `true`
            type: jp
          - expression: inputs.can_sign_consent == true
            type: cel
        text:
          type: string
          title: Text
          description: Text to apply if the condition is true.
        action:
          type: string
          const: say
          title: Action
          default: say
        role:
          type: string
          enum:
          - user
          - assistant
          title: Role
          description: The role of the message.
          default: assistant
      type: object
      required:
      - text
      title: SayAction
    ContextToolInfo:
      properties:
        name:
          anyOf:
          - type: string
          - type: 'null'
          title: Name
          description: The name of the generated tool.
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
          description: The description of the tool.
      type: object
      title: ContextToolInfo
    InputParameter:
      properties:
        name:
          type: string
          title: Name
          description: The name of the property.
        type:
          anyOf:
          - type: string
            enum:
            - string
            - number
            - integer
            - boolean
            - object
            - array
            - 'null'
          - type: 'null'
          title: Type
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
        title:
          anyOf:
          - type: string
          - type: 'null'
          title: Title
        format:
          anyOf:
          - type: string
          - type: 'null'
          title: Format
        pattern:
          anyOf:
          - type: string
          - type: 'null'
          title: Pattern
        enum:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Enum
        examples:
          anyOf:
          - items:
              $ref: '#/components/schemas/JsonValue'
            type: array
          - type: 'null'
          title: Examples
        required:
          type: boolean
          title: Required
          default: true
      type: object
      required:
      - name
      title: InputParameter
    NextStep:
      properties:
        if:
          anyOf:
          - oneOf:
            - $ref: '#/components/schemas/CelExpression'
            - $ref: '#/components/schemas/JMESPathExpression'
            discriminator:
              propertyName: type
              mapping:
                cel: '#/components/schemas/CelExpression'
                jmespath: '#/components/schemas/JMESPathExpression'
                jp: '#/components/schemas/JMESPathExpression'
          - $ref: '#/components/schemas/CaseExpression'
          - type: string
          - type: 'null'
          title: If
          description: 'Condition to decide whether this item executes. Supported expression forms: (1) JMESPath string (default for plain strings), (2) typed JMESPath object {"type":"jp"|"jmespath","expression":"..."}, or (3) typed CEL object {"type":"cel","expression":"..."}. Example JMESPath string: "inputs.can_sign_consent == `true`".'
          examples:
          - inputs.can_sign_consent == `true`
          - expression: inputs.can_sign_consent == `true`
            type: jp
          - expression: inputs.can_sign_consent == true
            type: cel
        id:
          type: string
          title: Id
          description: The identifier of the next step.
        requires:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Requires
          description: List of input field names required for this transition. Validates that specified inputs are collected before allowing transition.
      type: object
      required:
      - id
      title: NextStep
      description: Represents a conditional transition to the next step.
    AgentToolDefaults:
      properties:
        tool_name:
          type: string
          title: Tool Name
          description: The name of the tool
          examples:
          - get_weather
        default_values:
          items:
            $ref: '#/components/schemas/AgentToolFieldDefault'
          type: array
          title: Default Values
          description: The default values for fields used in the tool
          examples:
          - - default_value: fahrenheit
              field_name: temperature_unit
      type: object
      required:
      - tool_name
      - default_values
      title: AgentToolDefaults
      description: Agent-level static parameter values for a tool, overriding any tool-level defaults.
    Variable:
      properties:
        value:
          anyOf:
          - $ref: '#/components/schemas/JsonValue'
          - type: 'null'
          description: Initial value of the variable.
        valueFrom:
          anyOf:
          - oneOf:
            - $ref: '#/components/schemas/CelExpression'
            - $ref: '#/components/schemas/JMESPathExpression'
            discriminator:
              propertyName: type
              mapping:
                cel: '#/components/schemas/CelExpression'
                jmespath: '#/components/schemas/JMESPathExpression'
                jp: '#/components/schemas/JMESPathExpression'
          - $ref: '#/components/schemas/CaseExpression'
          - type: string
          - type: 'null'
          title: Valuefrom
          description: 'Expression that computes the value. Supported expression forms: (1) JMESPath string (default for plain strings), (2) typed JMESPath object {"type":"jp"|"jmespath","expression":"..."}, or (3) typed CEL object {"type":"cel","expression":"..."}. Mutually exclusive with value.'
          examples:
          - inputs.provided_dob == patient_dob
          - expression: inputs.provided_dob == patient_dob
            type: jmespath
          - expression: inputs.count + 1
            type: cel
        name:
          type: string
          title: Name
          description: The name of the property.
        type:
          anyOf:
          - type: string
            enum:
            - string
            - number
            - integer
            - boolean
            - object
            - array
            - 'null'
          - type: 'null'
          title: Type
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
        title:
          anyOf:
          - type: string
          - type: 'null'
          title: Title
        format:
          anyOf:
          - type: string
          - type: 'null'
          title: Format
        pattern:
          anyOf:
          - type: string
          - type: 'null'
          title: Pattern
        enum:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Enum
        examples:
          anyOf:
          - items:
              $ref: '#/components/schemas/JsonValue'
            type: array
          - type: 'null'
          title: Examples
      type: object
      required:
      - name
      title: Variable
    StepsTask:
      properties:
        id:
          anyOf:
          - type: string
          - type: 'null'
          title: Id
          description: A unique identifier for the task.
        config:
          anyOf:
          - additionalProperties:
              $ref: '#/components/schemas/JsonValue'
            type: object
          - type: 'null'
          title: Config
        variables:
          anyOf:
          - items:
              $ref: '#/components/schemas/Variable'
            type: array
          - type: 'null'
          title: Variables
        metadata:
          anyOf:
          - $ref: '#/components/schemas/ContextTaskMetadata'
          - type: 'null'
        tool:
          anyOf:
          - $ref: '#/components/schemas/ContextToolInfo'
          - type: 'null'
        type:
          type: string
          const: steps
        

# --- truncated at 32 KB (129 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/syllable/refs/heads/main/openapi/syllable-channels-targets-api-openapi.yml