openapi: 3.2.0
info:
title: SyllableSDK Tools 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: tools
description: Operations related to tool configuration. A tool is a function that an agent can call to perform actions like accessing databases, making API calls, or processing data. For an agent to have access to a tool, the prompt associated with that agent should be linked to the tool and include instructions to use it. For more information, see [Console docs](https://docs.syllable.ai/Resources/Tools).
paths:
/api/v1/tools/:
get:
tags:
- tools
summary: Tool List
description: List the existing tools
operationId: tool_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/ToolProperties'
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/ToolProperties'
- 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/ToolProperties'
- 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_ToolResponse_'
'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.tools.list(page=0, limit=25, search_fields=[\n models.ToolProperties.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.tools.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:
- tools
summary: Create Tool
description: Create a new tool
operationId: tool_create
security:
- APIKeyHeader: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ToolCreateRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ToolResponse'
'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.tools.create(request=models.ToolCreateRequest(\n name=\"Weather Fetcher\",\n definition=models.ToolDefinition(\n type=models.ToolDefinitionType.ENDPOINT,\n tool=models.InternalTool(\n function=models.ToolFunction(\n name=\"get_weather\",\n description=\"Get the weather for a city\",\n parameters={\n\n },\n ),\n ),\n endpoint=models.ToolHTTPEndpoint(\n url=\"https://api.example.com\",\n method=models.ToolHTTPMethod.POST,\n argument_location=models.ToolArgumentLocation.QUERY,\n timeout=45,\n ),\n context=models.Context(\n task=[],\n ),\n defaults={\n \"key\": {\n \"transform\": {\n \"action\": \"default\",\n \"when\": {\n \"key\": \"key\",\n \"value\": \"value\",\n \"operator\": \"eq\",\n },\n },\n },\n },\n static_parameters=[\n models.StaticToolParameter(\n name=\"temperature_unit\",\n description=\"Whether the temperature information should be fetched in Celsius or Fahrenheit\",\n required=False,\n type=models.StaticToolParameterType.STRING,\n default=\"fahrenheit\",\n ),\n ],\n ),\n service_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.tools.create({\n name: \"Weather Fetcher\",\n definition: {\n type: \"endpoint\",\n tool: {\n function: {\n name: \"get_weather\",\n description: \"Get the weather for a city\",\n parameters: {\n\n },\n },\n },\n endpoint: {\n url: \"https://api.example.com\",\n method: \"post\",\n argumentLocation: \"path\",\n timeout: 45,\n },\n context: {\n task: [],\n },\n defaults: \"<value>\",\n staticParameters: [\n {\n name: \"temperature_unit\",\n description: \"Whether the temperature information should be fetched in Celsius or Fahrenheit\",\n required: false,\n type: \"string\",\n default: \"fahrenheit\",\n },\n ],\n },\n serviceId: 1,\n });\n\n console.log(result);\n}\n\nrun();"
put:
tags:
- tools
summary: Update Tool
description: Update an existing tool
operationId: tool_update
security:
- APIKeyHeader: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ToolUpdateRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ToolResponse'
'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.tools.update(request=models.ToolUpdateRequest(\n name=\"Weather Fetcher\",\n definition=models.ToolDefinition(\n type=models.ToolDefinitionType.ENDPOINT,\n tool=models.InternalTool(\n function=models.ToolFunction(\n name=\"get_weather\",\n description=\"Get the weather for a city\",\n parameters={\n\n },\n ),\n ),\n endpoint=models.ToolHTTPEndpoint(\n url=\"https://api.example.com\",\n method=models.ToolHTTPMethod.GET,\n argument_location=models.ToolArgumentLocation.FORM,\n timeout=45,\n ),\n context=models.Context(\n task=models.LoadToolFromFileTask(\n file=\"<value>\",\n ),\n ),\n defaults=\"<value>\",\n static_parameters=[\n models.StaticToolParameter(\n name=\"temperature_unit\",\n description=\"Whether the temperature information should be fetched in Celsius or Fahrenheit\",\n required=False,\n type=models.StaticToolParameterType.STRING,\n default=\"fahrenheit\",\n ),\n ],\n ),\n service_id=1,\n id=1,\n last_updated_comments=\"Updated to use new API endpoint\",\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.tools.update({\n name: \"Weather Fetcher\",\n definition: {\n type: \"endpoint\",\n tool: {\n function: {\n name: \"get_weather\",\n description: \"Get the weather for a city\",\n parameters: {\n\n },\n },\n },\n endpoint: {\n url: \"https://api.example.com\",\n method: \"get\",\n argumentLocation: \"form\",\n timeout: 45,\n },\n context: {\n task: {\n type: \"import\",\n version: \"v1alpha\",\n file: \"<value>\",\n },\n },\n defaults: \"<value>\",\n staticParameters: [\n {\n name: \"temperature_unit\",\n description: \"Whether the temperature information should be fetched in Celsius or Fahrenheit\",\n required: false,\n type: \"string\",\n default: \"fahrenheit\",\n },\n ],\n },\n serviceId: 1,\n id: 1,\n lastUpdatedComments: \"Updated to use new API endpoint\",\n });\n\n console.log(result);\n}\n\nrun();"
/api/v1/tools/{tool_id}/history:
get:
tags:
- tools
summary: Tool History
description: Get version history for a tool.
operationId: tool_history
security:
- APIKeyHeader: []
parameters:
- name: tool_id
in: path
required: true
schema:
type: integer
title: Tool Id
- name: page
in: query
required: false
schema:
type: integer
minimum: 0
description: Page number (0-based)
default: 0
title: Page
description: Page number (0-based)
- name: limit
in: query
required: false
schema:
type: integer
maximum: 100
minimum: 1
description: Items per page
default: 25
title: Limit
description: Items per page
- name: order_by_direction
in: query
required: false
schema:
$ref: '#/components/schemas/OrderByDirection'
description: Sort by oldest first (asc) or newest first (desc). Version 1 is always the oldest.
default: asc
description: Sort by oldest first (asc) or newest first (desc). Version 1 is always the oldest.
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ListResponse_ToolHistoryResponse_'
'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.tools.tool_history(tool_id=217978, page=0, limit=25)\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.tools.toolHistory({\n toolId: 217978,\n });\n\n console.log(result);\n}\n\nrun();"
/api/v1/tools/{tool_name}:
get:
tags:
- tools
summary: Tool Info
description: Get the details of a specific tool
operationId: tool_get_by_name
security:
- APIKeyHeader: []
parameters:
- name: tool_name
in: path
required: true
schema:
type: string
title: Tool Name
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ToolDetailResponse'
'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.tools.get_by_name(tool_name=\"<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.tools.getByName({\n toolName: \"<value>\",\n });\n\n console.log(result);\n}\n\nrun();"
delete:
tags:
- tools
summary: Delete Tool
description: Delete a tool.
operationId: tool_delete
security:
- APIKeyHeader: []
parameters:
- name: tool_name
in: path
required: true
schema:
type: string
title: Tool Name
- 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.tools.delete(tool_name=\"<value>\", 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.tools.delete({\n toolName: \"<value>\",\n reason: \"<value>\",\n });\n\n console.log(result);\n}\n\nrun();"
components:
schemas:
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
CallAction:
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
action:
type: string
const: call
title: Action
default: call
name:
type: string
title: Name
description: The name of the tool to call.
arguments:
anyOf:
- additionalProperties:
$ref: '#/components/schemas/JsonValue'
type: object
- type: 'null'
title: Arguments
description: Optional arguments to pass to the tool (supports template strings)
result:
anyOf:
- $ref: '#/components/schemas/CallResult'
- type: 'null'
description: Optional deterministic result-capture configuration. When present, selected fields from the tool response are saved into workflow state, so later transitions/conditions/validations can branch on them without the model re-deriving them from tool call history. Currently applied only when the call is routed in inject mode (arguments already complete); hinted/routed calls are not yet supported.
type: object
required:
- name
title: CallAction
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
StepTools:
properties:
call:
anyOf:
- type: boolean
- type: 'null'
title: Call
description: Whether to force immediate tool call without user interaction.
allow:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Allow
description: List of allowed tool names for this step.
allowGoToStep:
anyOf:
- type: boolean
- type: 'null'
title: Allowgotostep
description: Whether to expose the go_to_step escape hatch to the LLM. Defaults to disabled.
type: object
title: StepTools
description: Configuration for tools available in a step.
ToolArgumentLocation:
type: string
enum:
- body
- form
- path
- query
title: ToolArgumentLocation
description: 'The location of the argument in a tool HTTP request.
''body'' is used for JSON data in the POST request body.
''form'' is used for form data in the POST request body.
''path'' is used for URL path parameters.
''query'' is used for query parameters in the URL.'
ToolProperties:
type: string
enum:
- id
- name
- service_name
- definition
- service_id
- last_updated
- last_updated_by
title: ToolProperties
description: Names of tool fields supported for filtering/sorting on list endpoint.
GetValueAction:
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
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
action:
type: string
enum:
- get
- load
title: Action
description: Populate default input values.
default: get
inputs:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Inputs
description: Input field names to populate; None populates all step inputs.
overwrite:
type: boolean
title: Overwrite
description: If False (default), only populate empty inputs. If True, always overwrite.
default: false
type: object
title: GetValueAction
ToolOptions:
properties:
propagate_tool_result:
type: boolean
title: Propagate Tool Result
description: Whether the tool call result should be propagated to the caller.
default: false
type: object
title: ToolOptions
description: The options for a tool call.
CallResult:
properties:
save:
items:
$ref: '#/components/schemas/CallResultSaveMapping'
type: array
title: Save
description: Field mappings extracted from the tool response into workflow state.
type: object
title: CallResult
description: Deterministic result-capture configuration for a call action's tool response.
ListResponse_ToolHistoryResponse_:
properties:
items:
items:
$ref: '#/components/schemas/ToolHistoryResponse'
type: array
title: Items
description: List of items returned from the query
examples: []
page:
type: integer
title: Page
description: The page number of the results (0-based)
examples:
- 0
page_size:
type: integer
title: Page Size
description: The number of items returned per page
examples:
- 25
total_pages:
anyOf:
- type: integer
- type: 'null'
title: Total Pages
description: The total number of pages of results given the indicated page size
examples:
- 4
total_count:
anyOf:
- type: integer
- type: 'null'
title: Total Count
description: The total number of items returned from the query
examples:
# --- truncated at 32 KB (97 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/syllable/refs/heads/main/openapi/syllable-tools-api-openapi.yml