Get assistant by ID
/assistants /{id}Retrieve a single assistant by its unique ID. Returns the full assistant configuration including prompt, voice settings, and first sentence mode. Useful for inspecting an assistant's current setup before updating it or placing a call.
Path parameters
idstringrequiredID of the assistant, as returned by
GET /assistants.
Request body
No body: send the request without one.
Response
200idstringUnique ID of the assistant (UUID). Pass it as assistant_id to place a call or create a campaign with this assistant.
Example
"3f6c2a1e-8b4d-4c7a-9e2f-5d1b7a9c0e34"promptstringSystem prompt given to the LLM for the whole call: who the agent is, its goal and how to run the conversation. May contain {{variable}} placeholders, filled from the call's prompt_variables.
post_call_promptstringnullableInstructions the agent follows once the call has ended: who to email, when to text, what to post on Slack or Teams. Plain language, no template syntax. Empty or null means no post-call agent runs.
first_sentencestringnullableThe agent's opening line, spoken word for word. Only used, and only kept, with first_sentence_mode 'static': with 'generated' or 'none' it is dropped and reads back empty. May contain {{variable}} placeholders; one without a value is left out.
first_sentence_mode"generated" | "static" | "none"How the agent opens the call. Default at creation: 'generated'.
"generated"The agent opens with a greeting it writes from the prompt. first_sentence is not used, and not kept.
"static"The agent opens with first_sentence, word for word.
"none"The agent says nothing first and waits for the other person to speak.
end_of_call_sentencestringnullableSentence the agent says, without being interruptible, when it decides to end the call. Null or empty: the agent says a short default goodbye, only if it has not said goodbye already.
voiceobjectnullableThe voice the agent speaks with: provider, voice ID and speed. Its language (see
GET /voices) is the language of the calls, unless voice_languages picks another one for a call. Always set on a saved assistant.voice_languagesarray of objectnullableExtra languages for a multilingual assistant, each with its own voice. Null for a single-language assistant.
cartesia_dictionary_pronunciation_idstringnullableOptional Cartesia pronunciation dictionary ID linked to this assistant.
llm_modelobjectThe LLM that drives the conversation. Defaults to
recommended(the model Revox currently recommends for voice agents) when omitted at creation.webhook_urlstringnullableURL that receives a POST with the call and this assistant once the call is over, when it reaches completed or errored (not when it is cancelled). See Webhooks for the payload.
max_call_duration_secsnumberLongest a call may last, in seconds: the agent then says max_duration_end_message, if set, and hangs up. Default at creation: 300. Outbound calls are capped at 600.
max_duration_end_messagestringnullableOptional message the agent will say, without being interruptible, when the call reaches its max duration. Kept short so it fits inside the farewell buffer. If null, the call ends silently.
at most 150 characters
The values to extract from each call (e.g. an email, a budget, a date). They land in structured_output of each call attempt, keyed by name.
structured_output_promptstringnullableCustom prompt for structured data extraction. If not provided, a default prompt is used. Available variables: {{transcript}}, {{call_direction}}, {{user_phone_number}}, {{agent_phone_number}}.
When and how often the assistant's calls are dialed. Null: the defaults.
timezonestringIANA timezone of this assistant's calls, e.g. 'Europe/Paris' or 'America/Phoenix'. Every call runs in exactly one timezone: its calling windows and allowed days are read in it, the agent tells the date and offers calendar slots in it, and callbacks and extracted datetimes are interpreted in it. A campaign's
timezone, thenPOST /calltimezone, override it for their calls. Default when creating: 'Europe/Paris'. Replaces the deprecatedcall_retry_config.timezone.background_sound"audio/office.ogg" | "audio/waves.m4a"nullableAmbient background sound to play during the call. null disables it.
background_sound_volumenumberVolume of the ambient background sound (0 = silent, 1 = max).
0 to 1
thinking_soundenum (7 values)nullableAudio clip played while the agent prepares an answer. Null or omitted: none.
Possible values
"city-ambience.ogg""forest-ambience.ogg""office-ambience.ogg""crowded-room.ogg""keyboard-typing.ogg""keyboard-typing2.ogg""hold_music.ogg"thinking_sound_volumenumberVolume of the thinking sound (0 = silent, 1 = max).
0 to 1
thinking_sound_probabilitynumberProbability [0..1] that the thinking sound plays on any given turn; otherwise the agent is silent while thinking.
0 to 1
transfer_destinationsarray of objectnullableWhere calls can be transferred to when users ask to speak to a human. Null or empty when transfer is not configured.
human_transfer_mode"warm" | "cold"nullableWarm or cold transfer when transfer_destinations is non-empty; null when transfer is not configured.
"warm"The agent calls the destination first, briefs the person who answers on the call so far (see warm_transfer_summary_instructions), then puts the caller through.
"cold"The call is passed on at once, without a briefing (a SIP REFER: the phone carrier must allow it).
warm_transfer_summary_instructionsstringnullableWarm transfer only: instructions for the supervisor handoff summary; null when not configured or cold transfer.
warm_transfer_voice_speednumbernullableWarm transfer only: voice speed of the briefing to the human colleague; null when it follows voice.speed, not configured, or cold transfer.
0.6 to 1.5
voicemail_messagestringnullableIf set, when voicemail is detected the agent will speak this message then hang up; if null, hang up immediately.
stt_contextobjectnullableAssistant-level speech-to-text context: structured
generalkey/value pairs plus a list of domainterms. Prompt-derived context is merged in without replacing existing entries.first_sentence_delay_msintegerDelay in milliseconds before speaking the first sentence. Default: 400.
calendarsarray of AssistantCalendarThe calendars the agent books meetings on during a call, each named by the handle the prompt mentions. Only the
readyones are offered to the agent.hubspotobjectnullableHubSpot Meetings config. When set with at least one meeting link, the agent can read a rep's real availability and book the meeting natively in HubSpot during the call. Null when HubSpot is not connected.
slackobjectnullableSlack config. When set, the post-call agent can post to the listed channels after a call; whether it posts, and what it says, is decided by
post_call_prompt. Null when Slack is not connected.teamsobjectnullableMicrosoft Teams config. When set with at least one channel, the post-call agent can post to those channels when the post-call instructions ask for it. Null when Teams is not connected.
zohoobjectnullableZoho CRM config. When set, the post-call agent can upsert the prospect (keyed on phone) into the chosen module and attach a Note with the call summary. Null when Zoho is not connected.
custom_toolsarray of objectnullableCustom API tools the assistant can call during conversations. Each tool defines an HTTP endpoint with variable substitution. Null or empty when the assistant has none.
from_phone_numberstringnullableCaller ID of the calls placed with this assistant: a number of your organization (
GET /phone-numbers), in E.164 format. A French mobile number (06, 07) cannot be the caller ID of an automated call. Null: a Revox number chosen for each destination.demo_page_urlstringnullablePublic demo page of the assistant: anyone with this link can call the assistant and see the calls it placed, their transcripts and recordings. Null when the page is off. Turn it on, regenerate it or turn it off with
POST /.assistants/ {id}/ demo-page precall_lookup_urlstringnullableURL fetched before an inbound call is answered to resolve the assistant's prompt variables. Null when no lookup is configured.
precall_lookup_headersarray of objectnullableHTTP headers sent with the pre-call lookup request. Null when none are configured.
organization_idstringID of the organization that owns the assistant.
namestringDisplay name of the assistant, shown in the dashboard and in call lists.
Example
"Appointment reminders"is_inbound_receptionistbooleanoptionalTrue when at least one of the organization's phone numbers sends its inbound calls to this assistant (see
PATCH /, inbound_assistant_id). Not computed by every endpoint: absent or false does not prove that no number routes to it.phone-numbers/ {id} created_byobjectoptionalnullableThe user who created the assistant. Null for assistants created by Revox itself, for assistants created before this was tracked, and when that user was deleted.
created_atstring (date-time)When the assistant was created (ISO 8601).
updated_atstring (date-time)When the assistant was last modified (ISO 8601).