Summary
The Vapi REST API supports silenceTimeoutSeconds on the Assistant object (the duration of silence after which a call is automatically ended). The vapi-python SDK exposes this field on TransferAssistant but not on the primary assistant create/update/override types, which is where it's actually needed for everyday use.
This forces consumers to either drop down to raw HTTP requests or monkey-patch the generated Pydantic models to set it.
Verified against vapi-python==1.11.1
| Type |
Has silence_timeout_seconds? |
| TransferAssistant (warm-transfer payload) |
✅ Yes — defined at vapi/types/transfer_assistant.py:88, aliased to silenceTimeoutSeconds |
| CreateAssistantDto |
❌ No |
| UpdateAssistantDto |
❌ No |
| Assistant |
❌ No |
| AssistantOverrides (per-call override) |
❌ No |
In fact, CreateAssistantDto, Assistant, and AssistantOverrides contain no timeout field of any kind — the only matches for timeout in those files are imports of the CallHookCustomerSpeechTimeout hook type, which is unrelated.
Current Behavior
from vapi import Vapi
client = Vapi(token=...)
client.assistants.create(
name="my-assistant",
silence_timeout_seconds=30, # not accepted: not a field on CreateAssistantDto
...
)
The field is silently dropped (or raises a Pydantic validation error depending on how the DTO is constructed), so the call ends up using the platform default rather than the configured value.
Expected Behavior
silence_timeout_seconds should be a first-class field on the same types where it exists in the REST API, mirroring the existing implementation on TransferAssistant:
- Python field: silence_timeout_seconds
- Wire field: silenceTimeoutSeconds
- Type: Optional[int] (seconds)
- Server-side default applies when omitted
Specifically it should be added to:
- CreateAssistantDto
- UpdateAssistantDto
- Assistant
- AssistantOverrides
Why This Matters
Silence handling is one of the most important knobs for voice agent UX. Without SDK support on the create/update path, teams using vapi-python in production have to either:
- Bypass the typed SDK and POST raw JSON, losing all model validation, or
- Subclass / patch the generated Pydantic models, which breaks on every SDK upgrade.
The inconsistency is the kicker — the field is already generated for TransferAssistant, so this is almost certainly an upstream spec/codegen omission rather than a deliberate design choice.
Proposed Change
If the SDK is generated from an OpenAPI/Fern spec, please confirm whether silenceTimeoutSeconds is missing from the spec definitions for the create/update/override schemas and regenerate from a corrected spec. Otherwise, add the field to the four types listed above with the same FieldMetadata(alias="silenceTimeoutSeconds") pattern used in transfer_assistant.py.
References
- SDK version checked: vapi-python==1.11.1
- Existing precedent in SDK: vapi/types/transfer_assistant.py:88
- Vapi API docs: Assistant object → silenceTimeoutSeconds
Summary
The Vapi REST API supports silenceTimeoutSeconds on the Assistant object (the duration of silence after which a call is automatically ended). The vapi-python SDK exposes this field on TransferAssistant but not on the primary assistant create/update/override types, which is where it's actually needed for everyday use.
This forces consumers to either drop down to raw HTTP requests or monkey-patch the generated Pydantic models to set it.
Verified against vapi-python==1.11.1
In fact, CreateAssistantDto, Assistant, and AssistantOverrides contain no timeout field of any kind — the only matches for timeout in those files are imports of the CallHookCustomerSpeechTimeout hook type, which is unrelated.
Current Behavior
The field is silently dropped (or raises a Pydantic validation error depending on how the DTO is constructed), so the call ends up using the platform default rather than the configured value.
Expected Behavior
silence_timeout_seconds should be a first-class field on the same types where it exists in the REST API, mirroring the existing implementation on TransferAssistant:
Specifically it should be added to:
Why This Matters
Silence handling is one of the most important knobs for voice agent UX. Without SDK support on the create/update path, teams using vapi-python in production have to either:
The inconsistency is the kicker — the field is already generated for TransferAssistant, so this is almost certainly an upstream spec/codegen omission rather than a deliberate design choice.
Proposed Change
If the SDK is generated from an OpenAPI/Fern spec, please confirm whether silenceTimeoutSeconds is missing from the spec definitions for the create/update/override schemas and regenerate from a corrected spec. Otherwise, add the field to the four types listed above with the same FieldMetadata(alias="silenceTimeoutSeconds") pattern used in transfer_assistant.py.
References