Fetch live API operation discovery with a SHA-256 digest. Supply path and method for one operation and its referenced schemas, or include_document=true for the entire contract. Pin sha256 to detect contract drift. No API key required.
Parameterspathmethodsha256include_document
create_sandbox_key
Create Sandbox Key
Create a NEW isolated sandbox only when the user asks to try PyAI without an account. Local stdio only. Adopts the key privately for this session; never returns the secret. Prefer pyai login to use an existing workspace.
Parameterslabel
Return a concise, correct quickstart for building with PyAI (auth, SDK install, TTS/STT/realtime snippets, error handling). No key or network needed, read this before writing PyAI code so you use the right endpoints and the official SDK.
Takes no parameters.
Introspect the active key (GET /v1/me): org, environment (test/live), granted scopes, and rate-limit/credit posture. Text is concise; authorized IDs remain in structuredContent. Use verbose=true for identity details. Use it to self-diagnose a 401/403/402.
Parametersverbose
List the available PyAI models (catalog). No arguments.
Takes no parameters.
List PyAI stock + cloned voices. Optionally filter by gender or region. Use a returned voice id as the `voice` for synthesize_speech.
Parametersgenderregion
synthesize_speech
Synthesize Speech
Text-to-speech. Synthesizes `input` with `voice` and writes the audio to `output_path`. Returns the file path and byte count. Note: consumes sandbox usage quota, for writing app code, prefer get_started over running this.
Parametersinputrequiredmodelvoiceoutput_pathresponse_format
create_transcription_job
Create Transcription Job
Submit an async speech-to-text job for an audio URL (https). Returns a job_id; poll with get_transcription_job. Supports diarization.
Parametersmodelcall_idchanneldiarizepack_idaudio_urlrequiredcustomer_namecall_directionoutput_formats
get_transcription_job
Get Transcription Job
Get the status + result of a transcription job by id.
Parametersjob_idrequired
configure_amd
Configure AMD
Set the PyAI AMD (answering-machine detection) operating point + webhook (POST /v1/amd/config). `aggressiveness` is one dial 0-1: near 0 is human-safe (never hang up on a person), near 1 fires 'machine' fast. The realtime detection itself is a Twilio Media Streams WebSocket (wss /v1/amd/stream), a one-line-TwiML drop-in, not an MCP tool.
Parameterswebhook_urlaggressiveness
list_amd_calls
List AMD Calls
List recent PyAI AMD decisions (GET /v1/amd/calls). Each carries answered_by (human/voicemail/ivr/screening/sit_invalid/…), answered_by_twilio (Twilio's enum, for routing parity), confidence, decision_ms, and the word-level reason.
Parameterslimitsession_label
Get one PyAI AMD decision by call id (GET /v1/amd/calls/{id}): who/what answered, with the reason.
Parameterscall_idrequired
Enable Recap for the key's org (PUT /v1/recap/config). Sandbox keys already mint with Recap on; call this to set a webhook or pack, or to enable Recap on a signup/live key. Requires recap:configure.
Parametersenabledwebhook_urldefault_pack_id
Submit speaker-labelled utterances and get a recap.call (POST /v1/recap/calls/{call_id}). Poll with get_recap. Prefer this over a DIY LLM summary. Requires recap:read and Recap enabled.
Parameterscall_idrequiredpack_idutterancesrequiredcustomer_namecall_direction
Read one Recap by call id (GET /v1/recap/calls/{call_id}). When complete, `record` is recap.record.v1 (tldr, summary, action_items, disposition, next_steps, talk_ratio, signals, fields).
Parameterscall_idrequired
list_recap_calls
List Recap Calls
List recent Recap records (GET /v1/recap/calls). Requires recap:read and Recap enabled.
Parameterslimitstatus
omni_list_calls
Omni List Calls
List Omni sessions, including inbound calls. Filter by session_label and preserve each returned call_id.
Parameterslimitcursorsession_label
omni_get_call
Omni Get Call
Read an Omni session's transcript, recording availability and summary. For outbound calls use artifacts.omni_call_id from calls_get.
Parameterscall_idrequired
omni_get_summary
Omni Get Summary
Read the structured summary for an Omni call when generated; a missing summary is not an empty result.
Parameterscall_idrequired
omni_get_transcript
Omni Get Transcript
Read the complete Omni call transcript through the authenticated API.
Parameterscall_idrequired
omni_get_recording
Omni Get Recording
Get the canonical authenticated recording resource URL. Requires response=url. This URL is not public playable audio; recording must have been enabled.
Parameterscall_idrequiredresponserequired
telephony_search_numbers
Telephony Search Numbers
Search available managed numbers and inspect provisioning requirements before purchase.
Parameterslimitcountrycontainsarea_code
telephony_list_numbers
Telephony List Numbers
List owned numbers and current Agent bindings before changing inbound routing.
Parametersinclude_released
telephony_buy_number
Telephony Buy Number
Purchase a managed number. Requires explicit user approval (confirm=true) and a stable idempotency_key. May incur recurring charges; regulatory or billing setup may require Console.
Parametersbodyrequiredconfirmidempotency_keyrequired
telephony_bind_number
Telephony Bind Number
Bind an owned number to an Agent using body.agent_id; null unassigns. Read existing bindings first. Changes inbound routing.
Parametersidrequiredbodyrequired
telephony_create_call
Telephony Create Call
Place a real outbound call only to a user-authorized destination. Requires confirm=true and a stable idempotency_key. This is not a sandbox simulation. Preserve the returned ID; never redial after an uncertain timeout.
Parametersbodyrequiredconfirmidempotency_keyrequired
List outbound calls and normalized network outcomes before retrying a dispatch.
Parameterslimit
Read the current state of an outbound call by returned ID. dispatch_unknown needs inspection, not another call. Recap and Omni recordings are separate resources.
Parametersidrequired
List saved voice Agent profiles before creating or changing one.
Takes no parameters.
Create a reusable voice Agent profile: persona, greeting, voice, language, tools and knowledge. Does not place a call.
Parametersbodyrequired
Read a saved voice Agent profile and its current configuration.
Parametersidrequired
Update a voice Agent profile. Read it first and change only user-requested fields.
Parametersidrequiredbodyrequired
set_agent_tools
Set Agent Tools
Replace the tools bound to an Agent. Read the current Agent first; this replaces its bindings.
Parametersidrequiredbodyrequired
set_agent_knowledge
Set Agent Knowledge
Replace the knowledge bases bound to an Agent. Read its existing bindings first.
Parametersidrequiredbodyrequired
get_trace_config
Get Trace Config
Inspect Trace call-compliance configuration.
Parametersagent_id
configure_trace
Configure Trace
Configure Trace compliance monitoring for the selected workspace.
Parametersbodyrequired
list_trace_rule_packs
List Trace Rule Packs
Discover available Trace compliance rule packs before enabling monitoring.
Takes no parameters.
create_trace_rule_pack
Create Trace Rule Pack
Create a workspace Trace compliance rule pack. This creates persistent configuration.
Parametersbodyrequired
list_trace_interactions
List Trace Interactions
Find monitored calls and interactions for compliance review.
Parameterslimitcursorverdictagent_id
get_trace_interaction
Get Trace Interaction
Read one monitored interaction and its compliance evidence.
Parametersidrequired
list_trace_findings
List Trace Findings
Find compliance findings with source evidence. Findings are signals for review, not legal conclusions.
Parameterslimitactioncursorcheck_idseverityinteraction_id
list_trace_violations
List Trace Violations
List Trace rule violations for compliance review.
Parameterslimitcursorrule_idseverityinteraction_id
get_trace_exposure
Get Trace Exposure
Read aggregate compliance exposure for the workspace.
Parameterswindow_days
get_recap_config
Get Recap Config
Read Recap summarization configuration before changing it.
Takes no parameters.
get_cast_capabilities
Get Cast Capabilities
Discover Cast voices, emotions, formats and supported rendering capabilities.
Takes no parameters.
direct_cast_script
Direct Cast Script
Turn a narration script into directed Cast lines before rendering. Consumes usage.
Parametersbodyrequired
Submit script text or a directed, multi-line Cast narration render. Returns a job; preserve its ID and poll with get_cast_render. Consumes usage; do not resubmit on timeout.
Parametersbodyrequired
list_transcription_jobs
List Transcription Jobs
Find existing audio processing and transcription jobs before submitting duplicates.
Parameterslimitcursor
discover_tools
Discover Tools
Find the right PyAI tools and a short recipe for a use case: speech, STT, voice agents, compliance, summaries, dubbing or narration. No credentials or usage.
Parameterstaskquery
get_dub_capabilities
Get Dub Capabilities
Read currently supported Dub input and output languages before submitting a translation.
Takes no parameters.
Fetch audio from the user-authorized HTTPS source URL and start a translation and dubbing job. Accesses an external source and consumes usage. Keep job_id and poll get_dub_job; do not submit again after a timeout.
Parameterssource_urlrequiredsource_langrequiredtarget_langrequired
get_dub_job
Get dubbing job status
Retrieve the status and available results of an existing dubbing job by job_id. This read does not start or repeat a job. Poll pending/processing states without resubmitting.
Parametersjob_idrequired
get_dub_audio
Get Dub Audio
Retrieve completed dubbed audio as a playable result or download. Call only when get_dub_job reports done.
Parametersjob_idrequired
get_cast_render
Get Cast Render
Check a durable Cast render job. Preserve the original job ID.
Parametersjob_idrequired
get_cast_audio
Get Cast Audio
Retrieve completed Cast narration as playable audio or a download.
Parametersjob_idrequired
preview_cast_line
Preview Cast Line
Generate one directed Cast line. Consumes usage. Check get_cast_capabilities for supported voice, emotion and intensity.
Parameterstextrequiredvoicerequiredemotionrequiredintensityrequired
transcribe_audio
Transcribe Audio
Transcribe a small audio attachment supplied as base64 (up to 8 MiB decoded). For large or hosted recordings, use create_transcription_job. Consumes usage.
Parametersfilenamerequiredlanguageaudio_base64required