Telnyx · Schema
inference-embedding_Assistant
CommunicationsCPaaSVoiceSMSIoTTelecommunicationsMessagingArtificial IntelligenceMCPVoice AIPhone NumbersInference
Properties
| Name | Type | Description |
|---|---|---|
| created_at | string | |
| description | string | |
| dynamic_variables | object | Map of dynamic variables and their values |
| dynamic_variables_webhook_timeout_ms | integer | Timeout in milliseconds for the dynamic variables webhook. Must be between 1 and 10000 ms. If the webhook does not respond within this timeout, the call proceeds with default values. See the [dynamic |
| dynamic_variables_webhook_url | string | If `dynamic_variables_webhook_url` is set, Telnyx sends a POST request to this URL at the start of the conversation to resolve dynamic variables. **Gotcha:** the webhook response must wrap variables u |
| enabled_features | array | |
| external_llm | object | |
| fallback_config | object | |
| greeting | string | Text that the assistant will use to start the conversation. This may be templated with [dynamic variables](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables). Use an empty s |
| id | string | |
| import_metadata | object | |
| insight_settings | object | |
| instructions | string | System instructions for the assistant. These may be templated with [dynamic variables](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables) |
| integrations | array | Connected integrations attached to the assistant. The catalog of available integrations is at `/ai/integrations`; the user's connected integrations are at `/ai/integrations/connections`. Each item ref |
| interruption_settings | object | |
| llm_api_key_ref | string | This is only needed when using third-party inference providers selected by `model`. The `identifier` for an integration secret [/v2/integration_secrets](https://developers.telnyx.com/api-reference/int |
| mcp_servers | array | MCP servers attached to the assistant. Create MCP servers with `/ai/mcp_servers`, then reference them by `id` here. |
| messaging_settings | object | |
| model | string | ID of the model to use when `external_llm` is not set. You can use the [Get models API](https://developers.telnyx.com/api-reference/chat/get-available-models) to see available models. If `external_llm |
| name | string | |
| observability_settings | object | |
| post_conversation_settings | object | |
| privacy_settings | object | |
| related_mission_ids | array | IDs of missions related to this assistant. |
| tags | array | Tags associated with the assistant. Tags can also be managed with the assistant tag endpoints. |
| telephony_settings | object | |
| tools | object | Deprecated for new integrations. Inline tool definitions available to the assistant. Prefer `tool_ids` to attach shared tools created with the AI Tools endpoints. |
| transcription | object | |
| version_created_at | string | Timestamp when this assistant version was created. |
| version_id | string | Identifier for the assistant version returned by version-aware assistant endpoints. |
| version_name | string | Human-readable name for the assistant version. |
| voice_settings | object | |
| widget_settings | object |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/telnyx/main/json-schema/telnyx-inference-embedding-assistant-schema.json",
"title": "inference-embedding_Assistant",
"x-generated": "2026-10-08",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/telnyx-assistants-api-openapi.yml#/components/schemas/inference-embedding_Assistant",
"properties": {
"created_at": {
"format": "date-time",
"type": "string"
},
"description": {
"type": "string"
},
"dynamic_variables": {
"additionalProperties": true,
"description": "Map of dynamic variables and their values",
"type": "object"
},
"dynamic_variables_webhook_timeout_ms": {
"default": 1500,
"description": "Timeout in milliseconds for the dynamic variables webhook. Must be between 1 and 10000 ms. If the webhook does not respond within this timeout, the call proceeds with default values. See the [dynamic variables guide](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables).",
"maximum": 10000,
"minimum": 1,
"type": "integer"
},
"dynamic_variables_webhook_url": {
"description": "If `dynamic_variables_webhook_url` is set, Telnyx sends a POST request to this URL at the start of the conversation to resolve dynamic variables. **Gotcha:** the webhook response must wrap variables under a top-level `dynamic_variables` object, e.g. `{\"dynamic_variables\": {\"customer_name\": \"Jane\"}}`. Returning a flat object will be ignored and variables will fall back to their defaults. See the [dynamic variables guide](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables) for the full request/response format and timeout behavior.",
"type": "string"
},
"enabled_features": {
"items": {
"$ref": "#/$defs/EnabledFeatures"
},
"title": "Enabled Features",
"type": "array",
"uniqueItems": true
},
"external_llm": {
"$ref": "#/$defs/ExternalLLM"
},
"fallback_config": {
"$ref": "#/$defs/FallbackConfig"
},
"greeting": {
"description": "Text that the assistant will use to start the conversation. This may be templated with [dynamic variables](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables). Use an empty string to have the assistant wait for the user to speak first. Use the special value `<assistant-speaks-first-with-model-generated-message>` to have the assistant generate the greeting based on the system instructions.",
"type": "string"
},
"id": {
"type": "string"
},
"import_metadata": {
"$ref": "#/$defs/ImportMetadata"
},
"insight_settings": {
"$ref": "#/$defs/InsightSettings"
},
"instructions": {
"description": "System instructions for the assistant. These may be templated with [dynamic variables](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables)",
"type": "string"
},
"integrations": {
"default": [],
"description": "Connected integrations attached to the assistant. The catalog of available integrations is at `/ai/integrations`; the user's connected integrations are at `/ai/integrations/connections`. Each item references a catalog integration by `integration_id`.",
"items": {
"$ref": "#/$defs/AssistantIntegration"
},
"type": "array"
},
"interruption_settings": {
"$ref": "#/$defs/inference-embedding_InterruptionSettings"
},
"llm_api_key_ref": {
"description": "This is only needed when using third-party inference providers selected by `model`. The `identifier` for an integration secret [/v2/integration_secrets](https://developers.telnyx.com/api-reference/integration-secrets/create-a-secret) that refers to your LLM provider's API key. For bring-your-own endpoint authentication, use `external_llm.llm_api_key_ref` instead. Warning: Free plans are unlikely to work with this integration.",
"type": "string"
},
"mcp_servers": {
"default": [],
"description": "MCP servers attached to the assistant. Create MCP servers with `/ai/mcp_servers`, then reference them by `id` here.",
"items": {
"$ref": "#/$defs/AssistantMCPServer"
},
"type": "array"
},
"messaging_settings": {
"$ref": "#/$defs/MessagingSettings"
},
"model": {
"description": "ID of the model to use when `external_llm` is not set. You can use the [Get models API](https://developers.telnyx.com/api-reference/chat/get-available-models) to see available models. If `external_llm` is provided, the assistant uses `external_llm` instead of this field. If neither `model` nor `external_llm` is provided, Telnyx applies the default model.",
"type": "string"
},
"name": {
"type": "string"
},
"observability_settings": {
"$ref": "#/$defs/Observability"
},
"post_conversation_settings": {
"$ref": "#/$defs/PostConversationSettings"
},
"privacy_settings": {
"$ref": "#/$defs/PrivacySettings"
},
"related_mission_ids": {
"default": [],
"description": "IDs of missions related to this assistant.",
"items": {
"type": "string"
},
"type": "array"
},
"tags": {
"default": [],
"description": "Tags associated with the assistant. Tags can also be managed with the assistant tag endpoints.",
"items": {
"type": "string"
},
"type": "array"
},
"telephony_settings": {
"$ref": "#/$defs/TelephonySettings"
},
"tools": {
"$ref": "#/$defs/AssistantTools",
"description": "Deprecated for new integrations. Inline tool definitions available to the assistant. Prefer `tool_ids` to attach shared tools created with the AI Tools endpoints."
},
"transcription": {
"$ref": "#/$defs/TranscriptionSettings"
},
"version_created_at": {
"description": "Timestamp when this assistant version was created.",
"format": "date-time",
"type": "string"
},
"version_id": {
"description": "Identifier for the assistant version returned by version-aware assistant endpoints.",
"type": "string"
},
"version_name": {
"default": "New assistant",
"description": "Human-readable name for the assistant version.",
"maxLength": 50,
"type": "string"
},
"voice_settings": {
"$ref": "#/$defs/VoiceSettings"
},
"widget_settings": {
"$ref": "#/$defs/WidgetSettings"
}
},
"required": [
"id",
"name",
"created_at",
"model",
"instructions"
],
"type": "object",
"$defs": {
"AssistantIntegration": {
"description": "Reference to a connected integration attached to an assistant. Discover available integrations with `/ai/integrations` and connected integrations with `/ai/integrations/connections`.",
"properties": {
"allowed_list": {
"description": "Optional per-assistant allowlist of integration tool names. When omitted or empty, all tools allowed by the connected integration are available to the assistant.",
"items": {
"type": "string"
},
"type": "array"
},
"integration_id": {
"description": "Catalog integration ID to attach. This is the `id` from the integrations catalog at `/ai/integrations` (the same value also appears as `integration_id` on entries returned by `/ai/integrations/connections`). It is **not** the connection-level `id` from `/ai/integrations/connections`.",
"type": "string"
}
},
"required": [
"integration_id"
],
"title": "AssistantIntegration",
"type": "object"
},
"AssistantMCPServer": {
"description": "Reference to an MCP server attached to an assistant. Create and manage MCP servers with the `/ai/mcp_servers` endpoints, then attach them to assistants by ID.",
"properties": {
"allowed_tools": {
"description": "Optional per-assistant allowlist of MCP tool names. When omitted, the assistant uses the MCP server's configured `allowed_tools`.",
"items": {
"type": "string"
},
"type": "array"
},
"id": {
"description": "ID of the MCP server to attach. This must be the `id` of an MCP server returned by the `/ai/mcp_servers` endpoints.",
"type": "string"
}
},
"required": [
"id"
],
"title": "AssistantMCPServer",
"type": "object"
},
"AssistantTools": {
"description": "Deprecated for new integrations. Inline tool definitions available to the assistant. Prefer `tool_ids` to attach shared tools created with the AI Tools endpoints.",
"items": {
"oneOf": [
{
"$ref": "#/$defs/inference-embedding_WebhookTool"
},
{
"$ref": "#/$defs/RetrievalTool"
},
{
"$ref": "#/$defs/HandoffTool"
},
{
"$ref": "#/$defs/HangupTool"
},
{
"$ref": "#/$defs/inference-embedding_TransferTool"
},
{
"$ref": "#/$defs/InviteTool"
},
{
"$ref": "#/$defs/SIPReferTool"
},
{
"$ref": "#/$defs/DTMFTool"
},
{
"$ref": "#/$defs/SendMessageTool"
},
{
"$ref": "#/$defs/SkipTurnTool"
}
]
},
"type": "array"
},
"AudioVisualizerConfig": {
"properties": {
"color": {
"description": "The color theme for the audio visualizer.",
"enum": [
"verdant",
"twilight",
"bloom",
"mystic",
"flare",
"glacier"
],
"type": "string"
},
"preset": {
"description": "The preset style for the audio visualizer.",
"type": "string"
}
},
"title": "AudioVisualizerConfig",
"type": "object"
},
"AuthenticationMethod": {
"default": "token",
"description": "Authentication method used when connecting to the external LLM endpoint.",
"enum": [
"token",
"certificate"
],
"title": "AuthenticationMethod",
"type": "string"
},
"BucketIds": {
"properties": {
"bucket_ids": {
"description": "List of [embedded storage buckets](https://developers.telnyx.com/api-reference/embeddings/embed-documents) to use for retrieval-augmented generation.",
"items": {
"type": "string"
},
"type": "array"
},
"max_num_results": {
"description": "The maximum number of results to retrieve as context for the language model.",
"type": "integer"
}
},
"required": [
"bucket_ids"
],
"title": "BucketIds",
"type": "object"
},
"DTMFTool": {
"properties": {
"send_dtmf": {
"additionalProperties": true,
"type": "object"
},
"type": {
"enum": [
"send_dtmf"
],
"type": "string"
}
},
"required": [
"type",
"send_dtmf"
],
"title": "DTMFTool",
"type": "object"
},
"EnabledFeatures": {
"description": "If `telephony` is enabled, the assistant will be able to make and receive calls. If `messaging` is enabled, the assistant will be able to send and receive messages.",
"enum": [
"telephony",
"messaging"
],
"type": "string"
},
"ExternalLLM": {
"properties": {
"authentication_method": {
"$ref": "#/$defs/AuthenticationMethod"
},
"base_url": {
"description": "Base URL for the external LLM endpoint.",
"type": "string"
},
"certificate_ref": {
"description": "Integration secret identifier for the client certificate used with certificate authentication.",
"type": "string"
},
"forward_metadata": {
"default": false,
"description": "When `true`, Telnyx forwards the assistant's dynamic variables to the external LLM endpoint as a top-level `extra_metadata` object on the chat completion request body. Defaults to `false`. Example payload sent to the external endpoint: `{\"extra_metadata\": {\"customer_name\": \"Jane\", \"account_id\": \"acct_789\", \"telnyx_agent_target\": \"+13125550100\", \"telnyx_end_user_target\": \"+13125550123\"}}`. Distinct from OpenAI's native `metadata` field, which has its own size and type limits.",
"type": "boolean"
},
"llm_api_key_ref": {
"description": "Integration secret identifier for the external LLM API key.",
"type": "string"
},
"model": {
"description": "Model identifier to use with the external LLM endpoint.",
"type": "string"
},
"token_retrieval_url": {
"description": "URL used to retrieve an access token when certificate authentication is enabled.",
"type": "string"
}
},
"required": [
"model",
"base_url"
],
"title": "ExternalLLM",
"type": "object"
},
"FallbackConfig": {
"properties": {
"external_llm": {
"$ref": "#/$defs/ExternalLLM"
},
"llm_api_key_ref": {
"description": "Integration secret identifier for the fallback model API key.",
"type": "string"
},
"model": {
"description": "Fallback Telnyx-hosted model to use when the primary LLM provider is unavailable.",
"type": "string"
}
},
"title": "FallbackConfig",
"type": "object"
},
"HandoffTool": {
"description": "The handoff tool allows the assistant to hand off control of the conversation to another AI assistant. By default, this will happen transparently to the end user.",
"properties": {
"handoff": {
"$ref": "#/$defs/HandoffToolParams"
},
"type": {
"enum": [
"handoff"
],
"type": "string"
}
},
"required": [
"type",
"handoff"
],
"title": "HandoffTool",
"type": "object"
},
"HandoffToolParams": {
"properties": {
"ai_assistants": {
"description": "List of possible assistants that can receive a handoff.",
"items": {
"properties": {
"id": {
"description": "The ID of the assistant to hand off to.",
"type": "string"
},
"name": {
"description": "Helpful name for giving context on when to handoff to the assistant.",
"type": "string"
}
},
"required": [
"name",
"id"
],
"type": "object"
},
"type": "array"
},
"voice_mode": {
"description": "With the unified voice mode all assistants share the same voice, making the handoff transparent to the user. With the distinct voice mode all assistants retain their voice configuration, providing the experience of a conference call with a team of assistants.",
"enum": [
"unified",
"distinct"
],
"type": "string"
}
},
"required": [
"ai_assistants"
],
"title": "HandoffToolParams",
"type": "object"
},
"HangupTool": {
"properties": {
"hangup": {
"$ref": "#/$defs/HangupToolParams"
},
"type": {
"enum": [
"hangup"
],
"type": "string"
}
},
"required": [
"type",
"hangup"
],
"title": "HangupTool",
"type": "object"
},
"HangupToolParams": {
"properties": {
"description": {
"default": "This tool is used to hang up the call.",
"description": "The description of the function that will be passed to the assistant.",
"type": "string"
}
},
"title": "HangupToolParams",
"type": "object"
},
"ImportMetadata": {
"properties": {
"import_id": {
"description": "ID of the assistant in the provider's system.",
"type": "string"
},
"import_provider": {
"description": "Provider the assistant was imported from.",
"enum": [
"elevenlabs",
"vapi",
"retell"
],
"type": "string"
}
},
"type": "object"
},
"InferenceEmbeddingTransferToolParams": {
"properties": {
"custom_headers": {
"description": "Custom headers to be added to the SIP INVITE for the transfer command.",
"items": {
"properties": {
"name": {
"type": "string"
},
"value": {
"description": "The value of the header. Note that we support mustache templating for the value. For example you can use `{{#integration_secret}}test-secret{{/integration_secret}}` to pass the value of the integration secret.",
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"from": {
"description": "Number or SIP URI placing the call.",
"type": "string"
},
"targets": {
"description": "The different possible targets of the transfer. The assistant will be able to choose one of the targets to transfer the call to. This can also be a dynamic variable string like `{{ targets }}` where `targets` is returned by the dynamic variables webhook and resolves to an array of target objects at runtime.",
"oneOf": [
{
"items": {
"properties": {
"name": {
"description": "The name of the target.",
"type": "string"
},
"to": {
"description": "The destination number or SIP URI of the call.",
"type": "string"
}
},
"required": [
"to"
],
"type": "object"
},
"type": "array"
},
{
"description": "A dynamic variable string like `{{ targets }}` where `targets` is returned by the dynamic variables webhook and resolves to an array of target objects at runtime.",
"type": "string"
}
]
},
"voicemail_detection": {
"description": "Configuration for voicemail detection (AMD - Answering Machine Detection) on the transferred call. Allows the assistant to detect when a voicemail system answers the transferred call and take appropriate action.",
"properties": {
"detection_config": {
"description": "Advanced AMD detection configuration parameters. All values are optional - Telnyx will use defaults if not specified.",
"properties": {
"after_greeting_silence_millis": {
"description": "Duration of silence after greeting detection before finalizing the result.",
"maximum": 5000,
"minimum": 100,
"type": "integer"
},
"between_words_silence_millis": {
"description": "Maximum silence duration between words during greeting.",
"maximum": 5000,
"minimum": 10,
"type": "integer"
},
"greeting_duration_millis": {
"description": "Expected duration of greeting speech.",
"maximum": 10000,
"minimum": 100,
"type": "integer"
},
"greeting_silence_duration_millis": {
"description": "Duration of silence after the greeting to wait before considering the greeting complete.",
"maximum": 50000,
"minimum": 500,
"type": "integer"
},
"greeting_total_analysis_time_millis": {
"description": "Maximum time to spend analyzing the greeting.",
"maximum": 300000,
"minimum": 500,
"type": "integer"
},
"initial_silence_millis": {
"description": "Maximum silence duration at the start of the call before speech.",
"maximum": 500000,
"minimum": 100,
"type": "integer"
},
"maximum_number_of_words": {
"description": "Maximum number of words expected in a human greeting.",
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"maximum_word_length_millis": {
"description": "Maximum duration of a single word.",
"maximum": 5000,
"minimum": 50,
"type": "integer"
},
"min_word_length_millis": {
"description": "Minimum duration for audio to be considered a word.",
"maximum": 1000,
"minimum": 1,
"type": "integer"
},
"silence_threshold": {
"description": "Audio level threshold for silence detection.",
"maximum": 1000,
"minimum": 1,
"type": "integer"
},
"total_analysis_time_millis": {
"description": "Total time allowed for AMD analysis.",
"maximum": 60000,
"minimum": 500,
"type": "integer"
}
},
"type": "object"
},
"detection_mode": {
"description": "The AMD detection mode to use. 'premium' enables premium answering machine detection. 'disabled' turns off AMD detection.",
"enum": [
"disabled",
"premium"
],
"type": "string"
},
"on_voicemail_detected": {
"description": "Action to take when voicemail is detected on the transferred call.",
"properties": {
"action": {
"description": "The action to take when voicemail is detected. 'stop_transfer' hangs up immediately. 'leave_message_and_stop_transfer' leaves a message then hangs up.",
"enum": [
"stop_transfer",
"leave_message_and_stop_transfer"
],
"type": "string"
},
"voicemail_message": {
"description": "Configuration for the voicemail message to leave. Only applicable when action is 'leave_message_and_stop_transfer'.",
"properties": {
"message": {
"description": "The specific message to leave as voicemail (converted to speech). Only applicable when type is 'message'.",
"type": "string"
},
"type": {
"description": "The type of voicemail message. Use 'message' to leave a specific TTS message, or 'warm_transfer_instructions' to play the warm transfer audio.",
"enum": [
"message",
"warm_transfer_instructions"
],
"type": "string"
}
},
"type": "object"
}
},
"type": "object"
}
},
"type": "object"
},
"warm_message_delay_ms": {
"description": "Optional delay in milliseconds before playing the warm message audio when the transferred call is answered. When set, the audio_url is not included in the dial command; instead, playback starts after the specified delay. When not set, existing behavior (audio_url in dial) is preserved.",
"type": [
"integer",
"null"
]
},
"warm_transfer_instructions": {
"description": "Natural language instructions for your agent for how to provide context for the transfer recipient.",
"type": "string"
}
},
"required": [
"targets",
"from"
],
"title": "TransferToolParams",
"type": "object"
},
"InsightSettings": {
"properties": {
"insight_group_id": {
"description": "Reference to an Insight Group. Insights in this group will be run automatically for all the assistant's conversations.",
"type": "string"
}
},
"type": "object"
},
"InviteTool": {
"properties": {
"invite": {
"$ref": "#/$defs/InviteToolConfig",
"title": "InviteToolConfig"
},
"type": {
"enum": [
"invite"
],
"type": "string"
}
},
"required": [
"type",
"invite"
],
"title": "InviteTool",
"type": "object"
},
"InviteToolConfig": {
"properties": {
"custom_headers": {
"description": "Custom headers to be added to the SIP INVITE for the invite command.",
"items": {
"properties": {
"name": {
"type": "string"
},
"value": {
"description": "The value of the header. Note that we support mustache templating for the value. For example you can use `{{#integration_secret}}test-secret{{/integration_secret}}` to pass the value of the integration secret.",
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"from": {
"description": "Number or SIP URI placing the call.",
"type": "string"
},
"targets": {
"description": "The different possible targets of the invite. The assistant will be able to choose one of the targets to invite to the call. This can also be a dynamic variable string like `{{ targets }}` where `targets` is returned by the dynamic variables webhook and resolves to an array of target objects at runtime. If omitted or null, the invite tool can still be configured and targets may be supplied dynamically at runtime.",
"oneOf": [
{
"items": {
"properties": {
"name": {
"description": "The name of the target.",
"type": "string"
},
"to": {
"description": "The destination number or SIP URI of the call.",
"type": "string"
}
},
"required": [
"to"
],
"type": "object"
},
"type": "array"
},
{
"description": "A dynamic variable string like `{{ targets }}` where `targets` is returned by the dynamic variables webhook and resolves to an array of target objects at runtime.",
"type": "string"
},
{
"type": "null"
}
]
},
"voicemail_detection": {
"description": "Configuration for voicemail detection (AMD - Answering Machine Detection) on the invited call.",
"properties": {
"detection_mode": {
"description": "The AMD detection mode to use. 'premium' enables premium answering machine detection. 'disabled' turns off AMD detection.",
"enum": [
"disabled",
"premium"
],
"type": "string"
},
"on_voicemail_detected": {
"description": "Action to take when voicemail is detected on the invited call.",
"properties": {
"action": {
"description": "The action to take when voicemail is detected.",
"enum": [
"stop_invite"
],
"type": "string"
}
},
"type": "object"
}
},
"type": "object"
}
},
"required": [
"from"
],
"title": "InviteToolConfig",
"type": "object"
},
"MessagingSettings": {
"properties": {
"conversation_inactivity_minutes": {
"description": "If more than this many minutes have passed since the last message, the assistant will start a new conversation instead of continuing the existing one.",
"maximum": 10000000,
"minimum": 1,
"type": "integer"
},
"default_messaging_profile_id": {
"description": "Default Messaging Profile used for messaging exchanges with your assistant. This will be created automatically on assistant creation.",
"type": "string"
},
"delivery_status_webhook_url": {
"description": "The URL where webhooks related to delivery statused for assistant messages will be sent.",
"type": "string"
}
},
"type": "object"
},
"Observability": {
"properties": {
"host": {
"title": "Host",
"type": "string"
},
"prompt_label": {
"title": "Prompt Label",
"type": "string"
},
"prompt_name": {
"title": "Prompt Name",
"type": "string"
},
"prompt_sync": {
"$ref": "#/$defs/PromptSyncStatus",
"default": "disabled"
},
"prompt_version": {
"minimum": 1.0,
"title": "Prompt Version",
"type": "integer"
},
"public_key_ref": {
"title": "Public Key Ref",
"type": "string"
},
"secret_key_ref": {
"title": "Secret Key Ref",
"type": "string"
},
"status": {
"$ref": "#/$defs/ObservabilityStatus",
"default": "disabled"
}
},
"title": "Observability",
"type": "object"
},
"ObservabilityStatus": {
"enum": [
"enabled",
"disabled"
],
"title": "ObservabilityStatus",
"type": "string"
},
"PostConversationSettings": {
"description": "Configuration for post-conversation processing. When enabled, the assistant receives one additional LLM turn after the conversation ends, allowing it to execute tool calls such as logging to a CRM or sending a summary. The assistant can execute multiple parallel or sequential tools during this phase. Telephony-control tools (e.g. hangup, transfer) are unavailable post-conversation. Beta feature.",
"properties": {
"enabled": {
"default": false,
"description": "Whether post-conversation processing is enabled. When true, the assistant will be invoked after the conversation ends to perform any final tool calls. Defaults to false.",
"type": "boolean"
}
},
"type": "object"
},
"PrivacySettings": {
"properties": {
"data_retention": {
"description": "If true, conversation history and insights will be stored. If false, they will not be stored. This in‑tool toggle governs solely the retention of conversation history and insights via the AI assistant. It has no effect on any separate recording, transcription, or storage configuration that you have set at the account, number, or application level. All such external settings remain in force regardless of your selection here.",
"type": "boolean"
# --- truncated at 32 KB (67 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/telnyx/refs/heads/main/json-schema/telnyx-inference-embedding-assistant-schema.json
Work with this as data
Every JSON Schema 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 schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.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.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/telnyx-inference-embedding-assistant"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.