Syllable Prompts API

Operations related to prompts. A prompt defines the behavior of an agent by delivering instructions to the LLM about how the agent should behave. A prompt can be linked to one or more agents. A prompt can also be linked to tools to allow an agent using the prompt to use them. For more information, see [Console docs](https://docs.syllable.ai/Resources/Prompts).

Operations 7

GET /api/v1/prompts/ Prompt List #
POST /api/v1/prompts/ Create Prompt #
PUT /api/v1/prompts/ Update Prompt #
GET /api/v1/prompts/{prompt_id} Get Prompt By Id #
DELETE /api/v1/prompts/{prompt_id} Delete Prompt #
GET /api/v1/prompts/{prompt_id}/history Get Prompt History #
GET /api/v1/prompts/llms/supported Get Supported Llm Configs #

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-prompts-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-prompts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: SyllableSDK Prompts 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: prompts
  description: Operations related to prompts. A prompt defines the behavior of an           agent by delivering instructions to the LLM about how the agent should behave.           A prompt can be linked to one or more agents. A prompt can also be linked to tools to           allow an agent using the prompt to use them. For more information, see           [Console docs](https://docs.syllable.ai/Resources/Prompts).
paths:
  /api/v1/prompts/:
    get:
      tags:
      - prompts
      summary: Prompt List
      description: List the existing prompts
      operationId: prompts_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/PromptProperties'
          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/PromptProperties'
          - 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/PromptProperties'
          - 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_PromptResponse_'
        '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.prompts.list(page=0, limit=25, search_fields=[\n        models.PromptProperties.NAME,\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.prompts.list({\n    page: 0,\n    searchFields: [\n      \"name\",\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();"
    post:
      tags:
      - prompts
      summary: Create Prompt
      description: Create a new prompt
      operationId: prompts_create
      security:
      - APIKeyHeader: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PromptCreateRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PromptResponse'
        '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.prompts.create(request={\n        \"name\": \"Weather Agent Prompt\",\n        \"description\": \"Prompt for a weather agent.\",\n        \"type\": \"prompt_v1\",\n        \"context\": \"You are a weather agent. Answer the user's questions about weather and nothing else.\",\n        \"tools\": [],\n        \"llm_config\": {\n            \"api_version\": \"2024-06-01\",\n            \"temperature\": 1,\n            \"seed\": 123,\n        },\n        \"session_end_tool_id\": 1,\n        \"edit_comments\": \"Updated prompt text to include requirement to not answer questions that aren't about weather.\",\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.prompts.create({\n    name: \"Weather Agent Prompt\",\n    description: \"Prompt for a weather agent.\",\n    type: \"prompt_v1\",\n    context: \"You are a weather agent. Answer the user's questions about weather and nothing else.\",\n    tools: [],\n    llmConfig: {\n      apiVersion: \"2024-06-01\",\n      temperature: 1,\n      seed: 123,\n    },\n    sessionEndToolId: 1,\n    editComments: \"Updated prompt text to include requirement to not answer questions that aren't about weather.\",\n  });\n\n  console.log(result);\n}\n\nrun();"
    put:
      tags:
      - prompts
      summary: Update Prompt
      description: Update an existing prompt
      operationId: prompts_update
      security:
      - APIKeyHeader: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PromptUpdateRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PromptResponse'
        '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.prompts.update(request={\n        \"name\": \"Weather Agent Prompt\",\n        \"description\": \"Prompt for a weather agent.\",\n        \"type\": \"prompt_v1\",\n        \"context\": \"You are a weather agent. Answer the user's questions about weather and nothing else.\",\n        \"tools\": [],\n        \"llm_config\": {\n            \"api_version\": \"2024-06-01\",\n            \"temperature\": 1,\n            \"seed\": 123,\n        },\n        \"session_end_tool_id\": 1,\n        \"edit_comments\": \"Updated prompt text to include requirement to not answer questions that aren't about weather.\",\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.prompts.update({\n    name: \"Weather Agent Prompt\",\n    description: \"Prompt for a weather agent.\",\n    type: \"prompt_v1\",\n    context: \"You are a weather agent. Answer the user's questions about weather and nothing else.\",\n    tools: [],\n    llmConfig: {\n      apiVersion: \"2024-06-01\",\n      temperature: 1,\n      seed: 123,\n    },\n    sessionEndToolId: 1,\n    editComments: \"Updated prompt text to include requirement to not answer questions that aren't about weather.\",\n    id: 1,\n  });\n\n  console.log(result);\n}\n\nrun();"
  /api/v1/prompts/{prompt_id}:
    get:
      tags:
      - prompts
      summary: Get Prompt By Id
      description: Get a prompt by ID
      operationId: prompts_get_by_id
      security:
      - APIKeyHeader: []
      parameters:
      - name: prompt_id
        in: path
        required: true
        schema:
          type: integer
          title: Prompt Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PromptResponse'
        '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.prompts.get_by_id(prompt_id=417330)\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.prompts.getById({\n    promptId: 417330,\n  });\n\n  console.log(result);\n}\n\nrun();"
    delete:
      tags:
      - prompts
      summary: Delete Prompt
      description: Delete a prompt
      operationId: prompts_delete
      security:
      - APIKeyHeader: []
      parameters:
      - name: prompt_id
        in: path
        required: true
        schema:
          type: integer
          title: Prompt Id
      - name: reason
        in: query
        required: true
        schema:
          type: string
          title: Reason
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '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.prompts.delete(prompt_id=982839, reason=\"<value>\")\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.prompts.delete({\n    promptId: 982839,\n    reason: \"<value>\",\n  });\n\n  console.log(result);\n}\n\nrun();"
  /api/v1/prompts/{prompt_id}/history:
    get:
      tags:
      - prompts
      summary: Get Prompt History
      description: Get a list of historical versions of a prompt by its ID
      operationId: prompts_history
      security:
      - APIKeyHeader: []
      parameters:
      - name: prompt_id
        in: path
        required: true
        schema:
          type: integer
          title: Prompt Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PromptHistory'
                title: Response Prompts History
        '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.prompts.prompts_history(prompt_id=922849)\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.prompts.promptsHistory({\n    promptId: 922849,\n  });\n\n  console.log(result);\n}\n\nrun();"
  /api/v1/prompts/llms/supported:
    get:
      tags:
      - prompts
      summary: Get Supported Llm Configs
      description: Get supported LLM configs.
      operationId: prompt_get_supported_llms
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/SupportedLlm'
                type: array
                title: Response Prompt Get Supported Llms
      security:
      - APIKeyHeader: []
      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.prompts.prompt_get_supported_llms()\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.prompts.promptGetSupportedLlms();\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).
    PromptCreateRequest:
      properties:
        name:
          type: string
          title: Name
          description: The prompt name
          examples:
          - Weather Agent Prompt
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
          description: The description of the prompt
          examples:
          - Prompt for a weather agent.
        type:
          type: string
          title: Type
          description: The type of the prompt
          examples:
          - prompt_v1
        context:
          anyOf:
          - type: string
          - type: 'null'
          title: Context
          description: The prompt text that will be sent to the LLM at the beginning of the conversation
          examples:
          - You are a weather agent. Answer the user's questions about weather and nothing else.
        tools:
          items:
            type: string
          type: array
          title: Tools
          description: Names of tools to which the prompt has access
          default: []
          examples:
          - []
        llm_config:
          $ref: '#/components/schemas/PromptLlmConfig'
          description: The configuration for the LLM that the prompt uses
          examples:
          - model: gpt-4o
            provider: openai
            version: '2024-08-06'
        session_end_enabled:
          type: boolean
          title: Session End Enabled
          description: Whether session end functionality is enabled for this prompt
          default: false
          examples:
          - false
        session_end_tool_id:
          anyOf:
          - type: integer
          - type: 'null'
          title: Session End Tool Id
          description: ID of the optional session end tool associated with the prompt
          examples:
          - 1
        edit_comments:
          anyOf:
          - type: string
          - type: 'null'
          title: Edit Comments
          description: The comments for the most recent edit to the prompt
          examples:
          - Updated prompt text to include requirement to not answer questions that aren't about weather.
        include_default_tools:
          type: boolean
          title: Include Default Tools
          description: Whether to include the default tools (`hangup`) in the list of tools for the prompt (also includes set_current_language if any of the agents assigned to the prompt have Dynamic Language Switching enabled). If you disable this during creation, you might want to disable it during updates as well; otherwise the default tools will be added when updating the prompt.
          default: true
          examples:
          - true
      type: object
      required:
      - name
      - type
      - llm_config
      title: PromptCreateRequest
      description: Request model to create a prompt.
    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
    PromptProperties:
      type: string
      enum:
      - id
      - name
      - name_exact
      - description
      - name_description
      - context
      - tools
      - llm_config
      - last_updated
      - last_updated_by
      - agent_count
      - session_end_enabled
      title: PromptProperties
      description: Names of prompt fields supported for filtering/sorting on list endpoint.
    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.
    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
          

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