AgentPhone
App · 20 actions
Give AI agents their own phone numbers: create agents, route numbers to them, and read back their calls, transcripts, texts and contacts.
Actions
| Action | What it does |
|---|---|
| Attach number to agent | Route a phone number's calls and texts to an agent. |
| Create agent | Create an AI agent that answers calls and texts on the numbers you attach to it. |
| Create contact | Add a contact. |
| Delete agent | Delete an agent. |
| Delete contact | Delete a contact. |
| Detach number from agent | Stop routing a phone number to an agent. |
| Get agent | One agent's full configuration and the numbers attached to it. |
| Get call | One call with its full transcript, turn by turn. |
| Get conversation | One conversation with its most recent messages and what can be sent in it. |
| Get usage | Your phone-number allowance, message and call counts for the last day, week and month, and webhook delivery statistics. |
| List agents | The agents on your AgentPhone account, with the numbers attached to each. |
| List calls | Calls on your account, newest first, with a snippet of each transcript. |
| List contacts | Your AgentPhone contacts, optionally narrowed by a search. |
| List conversation messages | A conversation's messages, newest first. |
| List conversations | Text conversations across your numbers, most recent first, with a preview of the last message. |
| List phone numbers | The active phone numbers on your account, with the agent each is attached to and whether it can send texts yet. |
| List voices | Every voice an agent can speak with, with its id for the Voice field. |
| Provision phone number | Buy a US or Canadian phone number. |
| Update agent | Change an agent. |
| Update contact | Change a contact. |
Attach number to agent
Route a phone number's calls and texts to an agent. A number belongs to one agent at a time.
Inputs
- Agent
agent_idtextRequired - The agent to act on. Pick one, or paste its id (it starts with agt_).
- Phone number
number_idtextRequired - The phone number. Pick one, or paste its id (it starts with num_) as returned by 'List phone numbers'.
Outputs
agentIdtextnumberobject
Example output
{
"agentId": "agt_8f3a2c1d",
"number": {
"id": "num_7b2e9c41",
"phoneNumber": "+14155550123",
"status": "active",
"type": "sms"
}
}Create agent
Create an AI agent that answers calls and texts on the numbers you attach to it. Only the name is required.
Inputs
- Name
nametextRequired - The agent's name.
- Description
descriptiontext - A note for your own reference.
- Mode
voice_modetext - Hosted: AgentPhone answers from the system prompt below. Webhook: every call and text goes to your own server, which decides the reply. AgentPhone's default is Webhook.One of:
hosted(Hosted - AgentPhone runs the conversation from a system prompt),webhook(Webhook - your server decides every reply). - System prompt
system_prompttext - What the agent is and how it behaves, used in Hosted mode. At most 20000 characters.
- First message
begin_messagetext - What the agent says when it answers a call.
- Model tier
model_tiertext - Trades speed for capability. AgentPhone's default is Balanced.One of:
turbo(Turbo - fastest),balanced,max(Max - most capable),realtime. - Voice
voicetext - The voice the agent speaks with. Pick one, or paste a voice id from 'List voices'.
- Language
languagetext - The language the agent speaks and listens in.One of:
af-ZA(Afrikaans (South Africa)),ar-SA(Arabic (Saudi Arabia)),az-AZ(Azerbaijani),bg-BG(Bulgarian),bs-BA(Bosnian),ca-ES(Catalan),cs-CZ(Czech),cy-GB(Welsh),da-DK(Danish),de-DE(German), and 53 more. - Transfer number
transfer_numbertext - A phone number the agent can hand a call over to, such as +14155550123. A ten-digit number is read as US or Canadian.
- Voicemail message
voicemail_messagetext - What the agent leaves when a call reaches voicemail.
- Call screening identity
call_screening_identitytext - Who the agent says it is when a call-screening service asks.
- Call screening purpose
call_screening_purposetext - Why the agent says it is calling when a call-screening service asks.
- Speech recognition
stt_modetext - Fast or accurate transcription of the caller.One of:
fast,accurate. - Background sound
ambient_soundtext - Ambient sound played under the agent's voice.One of:
none,office,coffee-shop(Coffee shop),outdoor. - Noise filtering
denoising_modetext - How much of the caller's background is filtered out.One of:
noise-cancellation(Cancel noise),noise-and-background-speech-cancellation(Cancel noise and background speech). - Hang up after silence (seconds)
max_silence_secondsnumber - End the call after this many seconds of silence, from 10 to 3600. AgentPhone's default is 600.From 10 to 3600.
- Speaking speed
voice_speednumber - From 0.5 to 2.0; 1 is normal speed.From 0.5 to 2.0.
- Interruption sensitivity
interruption_sensitivitynumber - How readily the agent stops talking when the caller speaks, from 0 to 1. AgentPhone's default is 0.8.From 0.0 to 1.0.
- Answer texts
enable_messagingtext - Whether the agent also handles text messages, not only calls. Leave empty to keep the current setting (on for a new agent).One of:
on(Turn on),off(Turn off). - Backchannel
enable_backchanneltext - Whether the agent makes small listening sounds such as 'mm-hm'. Leave empty to keep the current setting (on for a new agent).One of:
on(Turn on),off(Turn off).
Outputs
ambientSoundtextbeginMessagetextcallScreeningIdentitytextcallScreeningPurposetextcreatedAttextcustomToolslistdenoisingModetextdescriptiontextenableBackchanneltrue/falseenableMessagingtrue/falseidtextinterruptionSensitivitynumberlanguagetextmaxSilenceMsnumbermodelTiertextnametextnumbersliststtModetextsystemPrompttexttransferNumbertextvoicetextvoiceModetextvoiceSpeednumbervoicemailMessagetext
Example output
{
"ambientSound": "none",
"beginMessage": "Hi, thanks for calling the clinic.",
"callScreeningIdentity": null,
"callScreeningPurpose": null,
"createdAt": "2026-10-01T10:15:00Z",
"customTools": null,
"denoisingMode": "noise-cancellation",
"description": "Answers the clinic line.",
"enableBackchannel": true,
"enableMessaging": true,
"id": "agt_8f3a2c1d",
"interruptionSensitivity": 0.8,
"language": "en-US",
"maxSilenceMs": 600000,
"modelTier": "balanced",
"name": "Front desk",
"numbers": [
{
"id": "num_7b2e9c41",
"phoneNumber": "+14155550123",
"status": "active",
"type": "sms"
}
],
"sttMode": "fast",
"systemPrompt": "You answer calls for a dental clinic.",
"transferNumber": null,
"voice": "voice_ava",
"voiceMode": "hosted",
"voiceSpeed": 1.0,
"voicemailMessage": null
}Create contact
Add a contact. Each phone number can belong to only one contact.
Inputs
- Phone number
phone_numbertextRequired - The contact's phone number, in any common format, such as +14155550188.
- Name
nametextRequired - The contact's name.
- Email
emailtext - The contact's email address.
- Notes
notestext - Anything worth remembering about the contact.
Outputs
createdAttextemailtextidtextnametextnotestextphoneNumbertextupdatedAttext
Example output
{
"createdAt": "2026-10-02T09:00:00Z",
"email": "ada@example.com",
"id": "ct_2d7e5a90",
"name": "Ada Lovelace",
"notes": "Prefers texts.",
"phoneNumber": "+14155550188",
"updatedAt": "2026-10-02T09:00:00Z"
}Delete agent
Delete an agent. Its numbers, conversations and calls are kept and simply no longer point at it.
Inputs
- Agent
agent_idtextRequired - The agent to act on. Pick one, or paste its id (it starts with agt_).
Outputs
idtextnametextsuccesstrue/false
Example output
{
"id": "agt_8f3a2c1d",
"name": "Front desk",
"success": true
}Delete contact
Delete a contact. Their conversations and calls are kept.
Inputs
- Contact
contact_idtextRequired - The contact's id, as returned by 'List contacts' or 'Create contact'.
Outputs
deletedtrue/falseidtext
Example output
{
"deleted": true,
"id": "ct_2d7e5a90"
}Detach number from agent
Stop routing a phone number to an agent. The number stays on your account and keeps receiving calls and texts.
Inputs
- Agent
agent_idtextRequired - The agent to act on. Pick one, or paste its id (it starts with agt_).
- Phone number
number_idtextRequired - The phone number. Pick one, or paste its id (it starts with num_) as returned by 'List phone numbers'.
Outputs
agent_idtextdetachedtrue/falsenumber_idtextresponseobject
Example output
{
"agent_id": "agt_8f3a2c1d",
"detached": true,
"number_id": "num_7b2e9c41",
"response": null
}Get agent
One agent's full configuration and the numbers attached to it.
Inputs
- Agent
agent_idtextRequired - The agent to act on. Pick one, or paste its id (it starts with agt_).
Outputs
ambientSoundtextbeginMessagetextcallScreeningIdentitytextcallScreeningPurposetextcreatedAttextcustomToolslistdenoisingModetextdescriptiontextenableBackchanneltrue/falseenableMessagingtrue/falseidtextinterruptionSensitivitynumberlanguagetextmaxSilenceMsnumbermodelTiertextnametextnumbersliststtModetextsystemPrompttexttransferNumbertextvoicetextvoiceModetextvoiceSpeednumbervoicemailMessagetext
Example output
{
"ambientSound": "none",
"beginMessage": "Hi, thanks for calling the clinic.",
"callScreeningIdentity": null,
"callScreeningPurpose": null,
"createdAt": "2026-10-01T10:15:00Z",
"customTools": null,
"denoisingMode": "noise-cancellation",
"description": "Answers the clinic line.",
"enableBackchannel": true,
"enableMessaging": true,
"id": "agt_8f3a2c1d",
"interruptionSensitivity": 0.8,
"language": "en-US",
"maxSilenceMs": 600000,
"modelTier": "balanced",
"name": "Front desk",
"numbers": [
{
"id": "num_7b2e9c41",
"phoneNumber": "+14155550123",
"status": "active",
"type": "sms"
}
],
"sttMode": "fast",
"systemPrompt": "You answer calls for a dental clinic.",
"transferNumber": null,
"voice": "voice_ava",
"voiceMode": "hosted",
"voiceSpeed": 1.0,
"voicemailMessage": null
}Get call
One call with its full transcript, turn by turn.
Inputs
- Call
call_idtextRequired - The call's id, as returned by 'List calls'.
Outputs
agentIdtextagentNametextdirectiontextdurationSecondsnumberendedAttextfromNumbertextidtextlastTranscriptSnippettextphoneNumbertextphoneNumberIdtextrecordingAvailabletrue/falserecordingUrltextstartedAttextstatustexttoNumbertexttranscriptslist
Example output
{
"agentId": "agt_8f3a2c1d",
"direction": "inbound",
"durationSeconds": 130,
"endedAt": "2026-10-02T16:02:10Z",
"fromNumber": "+14155550188",
"id": "call_9a4f6b28",
"lastTranscriptSnippet": "See you Friday.",
"phoneNumber": "+14155550123",
"phoneNumberId": "num_7b2e9c41",
"recordingAvailable": false,
"startedAt": "2026-10-02T16:00:00Z",
"status": "completed",
"toNumber": "+14155550123",
"transcripts": [
{
"createdAt": "2026-10-02T16:00:20Z",
"id": "tr_1",
"response": "Of course - Friday at 10 works. See you Friday.",
"transcript": "Can I move my appointment to Friday?"
}
]
}Get conversation
One conversation with its most recent messages and what can be sent in it.
Inputs
- Conversation
conversation_idtextRequired - The conversation's id, as returned by 'List conversations'.
- Messages to include
message_limitnumber - How many recent messages to include, from 1 to 100. Defaults to 50.From 1 to 100. Default:
50.
Outputs
agentIdtextcapabilitiesobjectchanneltextcreatedAttextgroupIconUrltextgroupIdtextgroupNametextidtextisGrouptrue/falselastMessageAttextmessageCountnumbermessageslistmetadataobjectparticipanttextparticipantslistphoneNumbertextphoneNumberIdtext
Example output
{
"agentId": "agt_8f3a2c1d",
"capabilities": {
"canSendMessages": true,
"emojiReactions": false,
"media": true,
"reactions": false
},
"channel": "native",
"createdAt": "2026-10-02T15:04:00Z",
"id": "conv_3e8d1f07",
"isGroup": false,
"lastMessageAt": "2026-10-02T15:04:00Z",
"messageCount": 1,
"messages": [
{
"body": "Can I move my appointment to Friday?",
"channel": "sms",
"direction": "inbound",
"fromNumber": "+14155550188",
"id": "msg_51c0a9e2",
"mediaUrls": [],
"receivedAt": "2026-10-02T15:04:00Z",
"status": "received",
"toNumber": "+14155550123"
}
],
"metadata": null,
"participant": "+14155550188",
"phoneNumber": "+14155550123",
"phoneNumberId": "num_7b2e9c41"
}Get usage
Your phone-number allowance, message and call counts for the last day, week and month, and webhook delivery statistics.
Inputs
None.
Outputs
numbersobjectperiodEndtextperiodStarttextreportGeneratedAttextstatsobject
Example output
{
"numbers": {
"limit": 5,
"remaining": 4,
"used": 1
},
"periodEnd": "2026-10-12T00:00:00Z",
"periodStart": "2026-09-12T00:00:00Z",
"reportGeneratedAt": "2026-10-12T08:00:00Z",
"stats": {
"callsLast24h": 1,
"callsLast30d": 3,
"callsLast7d": 3,
"failedWebhookDeliveries": 0,
"messagesLast24h": 2,
"messagesLast30d": 12,
"messagesLast7d": 9,
"smsSegmentsLast30d": 14,
"successfulWebhookDeliveries": 0,
"totalCalls": 3,
"totalMessages": 12,
"totalWebhookDeliveries": 0
}
}List agents
The agents on your AgentPhone account, with the numbers attached to each.
Inputs
- Maximum records
limitnumber - The most records to return, from 1 to 100. Defaults to 20.From 1 to 100. Default:
20. - Skip
offsetnumber - How many records to skip, for the next page. Use the previous step's next_offset. Defaults to 0.From 0 to 1000000. Default:
0.
Outputs
agentslist- The agents returned
countnumber- How many agents came back
has_moretrue/false- Whether more records are available
next_offsetnumber- The offset for the next page, empty when none
totalnumber- How many agents there are in total
Example output
{
"agents": [
{
"ambientSound": "none",
"beginMessage": "Hi, thanks for calling the clinic.",
"callScreeningIdentity": null,
"callScreeningPurpose": null,
"createdAt": "2026-10-01T10:15:00Z",
"customTools": null,
"denoisingMode": "noise-cancellation",
"description": "Answers the clinic line.",
"enableBackchannel": true,
"enableMessaging": true,
"id": "agt_8f3a2c1d",
"interruptionSensitivity": 0.8,
"language": "en-US",
"maxSilenceMs": 600000,
"modelTier": "balanced",
"name": "Front desk",
"numbers": [
{
"id": "num_7b2e9c41",
"phoneNumber": "+14155550123",
"status": "active",
"type": "sms"
}
],
"sttMode": "fast",
"systemPrompt": "You answer calls for a dental clinic.",
"transferNumber": null,
"voice": "voice_ava",
"voiceMode": "hosted",
"voiceSpeed": 1.0,
"voicemailMessage": null
}
],
"count": 1,
"has_more": false,
"next_offset": null,
"total": 1
}List calls
Calls on your account, newest first, with a snippet of each transcript.
Inputs
- Status
statustext - Only calls in this state. Leave empty for all.One of:
completed,in-progress(In progress),failed. - Direction
directiontext - Only calls in this direction. Leave empty for all.One of:
inbound,outbound,web. - Call type
call_typetext - Only phone-network or only browser calls. Leave empty for both.One of:
pstn(Phone network),web. - Phone number contains
searchtext - Only calls whose caller or called number contains these digits.
- Maximum records
limitnumber - The most records to return, from 1 to 100. Defaults to 20.From 1 to 100. Default:
20. - Skip
offsetnumber - How many records to skip, for the next page. Use the previous step's next_offset. Defaults to 0.From 0 to 1000000. Default:
0.
Outputs
callslist- The calls returned
countnumber- How many calls came back
has_moretrue/false- Whether more records are available
next_offsetnumber- The offset for the next page, empty when none
totalnumber- How many calls there are in total
Example output
{
"calls": [
{
"agentId": "agt_8f3a2c1d",
"direction": "inbound",
"durationSeconds": 130,
"endedAt": "2026-10-02T16:02:10Z",
"fromNumber": "+14155550188",
"id": "call_9a4f6b28",
"lastTranscriptSnippet": "See you Friday.",
"phoneNumber": "+14155550123",
"phoneNumberId": "num_7b2e9c41",
"recordingAvailable": false,
"startedAt": "2026-10-02T16:00:00Z",
"status": "completed",
"toNumber": "+14155550123"
}
],
"count": 1,
"has_more": false,
"next_offset": null,
"total": 1
}List contacts
Your AgentPhone contacts, optionally narrowed by a search.
Inputs
- Search
searchtext - Only contacts matching this text.
- Maximum records
limitnumber - The most contacts to return, from 1 to 200. Defaults to 50.From 1 to 200. Default:
50. - Skip
offsetnumber - How many records to skip, for the next page. Use the previous step's next_offset. Defaults to 0.From 0 to 1000000. Default:
0.
Outputs
contactslist- The contacts returned
countnumber- How many contacts came back
has_moretrue/false- Whether more records are available
next_offsetnumber- The offset for the next page, empty when none
totalnumber- How many contacts there are in total
Example output
{
"contacts": [
{
"createdAt": "2026-10-02T09:00:00Z",
"email": "ada@example.com",
"id": "ct_2d7e5a90",
"name": "Ada Lovelace",
"notes": "Prefers texts.",
"phoneNumber": "+14155550188",
"updatedAt": "2026-10-02T09:00:00Z"
}
],
"count": 1,
"has_more": false,
"next_offset": null,
"total": 1
}List conversation messages
A conversation's messages, newest first. For older ones, pass the previous step's oldest_received_at as Before.
Inputs
- Conversation
conversation_idtextRequired - The conversation's id, as returned by 'List conversations'.
- Maximum messages
limitnumber - The most messages to return, from 1 to 200. Defaults to 50.From 1 to 200. Default:
50. - Before
beforedate and time - Only messages received before this moment.
- After
afterdate and time - Only messages received after this moment.
Outputs
countnumber- How many messages came back
has_moretrue/false- Whether older messages are available
messageslist- The messages returned, newest first
oldest_received_attext- The oldest message's time. Pass it as 'Before' to fetch the next, older page.
Example output
{
"count": 1,
"has_more": false,
"messages": [
{
"body": "Can I move my appointment to Friday?",
"channel": "sms",
"direction": "inbound",
"fromNumber": "+14155550188",
"id": "msg_51c0a9e2",
"mediaUrls": [],
"receivedAt": "2026-10-02T15:04:00Z",
"status": "received",
"toNumber": "+14155550123"
}
],
"oldest_received_at": "2026-10-02T15:04:00Z"
}List conversations
Text conversations across your numbers, most recent first, with a preview of the last message.
Inputs
- Maximum records
limitnumber - The most records to return, from 1 to 100. Defaults to 20.From 1 to 100. Default:
20. - Skip
offsetnumber - How many records to skip, for the next page. Use the previous step's next_offset. Defaults to 0.From 0 to 1000000. Default:
0.
Outputs
conversationslist- The conversations returned
countnumber- How many conversations came back
has_moretrue/false- Whether more records are available
next_offsetnumber- The offset for the next page, empty when none
totalnumber- How many conversations there are in total
Example output
{
"conversations": [
{
"agentId": "agt_8f3a2c1d",
"channel": "native",
"createdAt": "2026-10-02T15:04:00Z",
"id": "conv_3e8d1f07",
"isGroup": false,
"lastMessageAt": "2026-10-02T15:04:00Z",
"lastMessagePreview": "Can I move my appointment to Friday?",
"messageCount": 1,
"metadata": null,
"participant": "+14155550188",
"phoneNumber": "+14155550123",
"phoneNumberId": "num_7b2e9c41"
}
],
"count": 1,
"has_more": false,
"next_offset": null,
"total": 1
}List phone numbers
The active phone numbers on your account, with the agent each is attached to and whether it can send texts yet.
Inputs
- External id
external_idtext - Only the number tagged with this external id when it was bought. Leave empty for all of them.
- Maximum records
limitnumber - The most records to return, from 1 to 100. Defaults to 20.From 1 to 100. Default:
20. - Skip
offsetnumber - How many records to skip, for the next page. Use the previous step's next_offset. Defaults to 0.From 0 to 1000000. Default:
0.
Outputs
countnumber- How many numbers came back
has_moretrue/false- Whether more records are available
next_offsetnumber- The offset for the next page, empty when none
numberslist- The numbers returned
totalnumber- How many numbers there are in total
Example output
{
"count": 1,
"has_more": false,
"next_offset": null,
"numbers": [
{
"agentId": "agt_8f3a2c1d",
"country": "US",
"createdAt": "2026-10-01T10:20:00Z",
"dailyNewContacts": {
"limit": 50,
"used": 0
},
"externalId": null,
"id": "num_7b2e9c41",
"inboundCallsEnabled": true,
"outboundSms": "registration_required",
"phoneNumber": "+14155550123",
"purchasedAt": "2026-10-01T10:20:00Z",
"readReceiptsEnabled": false,
"status": "active",
"type": "sms",
"whatsappEnabled": false
}
],
"total": 1
}List voices
Every voice an agent can speak with, with its id for the Voice field.
Inputs
None.
Outputs
countnumber- How many voices came back
voiceslist- Every voice an agent can use
Example output
{
"count": 1,
"voices": [
{
"accent": "american",
"gender": "female",
"preview_audio_url": null,
"provider": "elevenlabs",
"voice_id": "voice_ava",
"voice_name": "Ava"
}
]
}Provision phone number
Buy a US or Canadian phone number. It costs $3.00 a month, and the first month comes off your balance immediately - a new account's $5.00 credit covers one.
Inputs
- Country
countrytext - Where the number is from. Defaults to the US.One of:
US(United States),CA(Canada). Default:US. - Area code
area_codetext - A three-digit area code, such as 415. Leave empty for any available number.
- Agent
agent_idtext - An agent to attach the new number to straight away. Leave empty to attach it later.
- External id
external_idtext - Your own reference for the number, for finding it again with 'List phone numbers'.
Outputs
agentIdtextcountrytextcreatedAttextdailyNewContactsobjectexternalIdtextidtextinboundCallsEnabledtrue/falseoutboundSmstextphoneNumbertextpurchasedAttextreadReceiptsEnabledtrue/falsestatustexttypetextwhatsappEnabledtrue/false
Example output
{
"agentId": "agt_8f3a2c1d",
"country": "US",
"createdAt": "2026-10-01T10:20:00Z",
"dailyNewContacts": {
"limit": 50,
"used": 0
},
"externalId": null,
"id": "num_7b2e9c41",
"inboundCallsEnabled": true,
"outboundSms": "registration_required",
"phoneNumber": "+14155550123",
"purchasedAt": "2026-10-01T10:20:00Z",
"readReceiptsEnabled": false,
"status": "active",
"type": "sms",
"whatsappEnabled": false
}Update agent
Change an agent. Only the fields you fill in change; the rest stay as they are, and the change applies to the next call or text.
Inputs
- Agent
agent_idtextRequired - The agent to act on. Pick one, or paste its id (it starts with agt_).
- Name
nametext - A new name for the agent. Leave empty to keep the current one.
- Description
descriptiontext - A note for your own reference.
- Mode
voice_modetext - Hosted: AgentPhone answers from the system prompt below. Webhook: every call and text goes to your own server, which decides the reply. AgentPhone's default is Webhook.One of:
hosted(Hosted - AgentPhone runs the conversation from a system prompt),webhook(Webhook - your server decides every reply). - System prompt
system_prompttext - What the agent is and how it behaves, used in Hosted mode. At most 20000 characters.
- First message
begin_messagetext - What the agent says when it answers a call.
- Model tier
model_tiertext - Trades speed for capability. AgentPhone's default is Balanced.One of:
turbo(Turbo - fastest),balanced,max(Max - most capable),realtime. - Voice
voicetext - The voice the agent speaks with. Pick one, or paste a voice id from 'List voices'.
- Language
languagetext - The language the agent speaks and listens in.One of:
af-ZA(Afrikaans (South Africa)),ar-SA(Arabic (Saudi Arabia)),az-AZ(Azerbaijani),bg-BG(Bulgarian),bs-BA(Bosnian),ca-ES(Catalan),cs-CZ(Czech),cy-GB(Welsh),da-DK(Danish),de-DE(German), and 53 more. - Transfer number
transfer_numbertext - A phone number the agent can hand a call over to, such as +14155550123. A ten-digit number is read as US or Canadian.
- Voicemail message
voicemail_messagetext - What the agent leaves when a call reaches voicemail.
- Call screening identity
call_screening_identitytext - Who the agent says it is when a call-screening service asks.
- Call screening purpose
call_screening_purposetext - Why the agent says it is calling when a call-screening service asks.
- Speech recognition
stt_modetext - Fast or accurate transcription of the caller.One of:
fast,accurate. - Background sound
ambient_soundtext - Ambient sound played under the agent's voice.One of:
none,office,coffee-shop(Coffee shop),outdoor. - Noise filtering
denoising_modetext - How much of the caller's background is filtered out.One of:
noise-cancellation(Cancel noise),noise-and-background-speech-cancellation(Cancel noise and background speech). - Hang up after silence (seconds)
max_silence_secondsnumber - End the call after this many seconds of silence, from 10 to 3600. AgentPhone's default is 600.From 10 to 3600.
- Speaking speed
voice_speednumber - From 0.5 to 2.0; 1 is normal speed.From 0.5 to 2.0.
- Interruption sensitivity
interruption_sensitivitynumber - How readily the agent stops talking when the caller speaks, from 0 to 1. AgentPhone's default is 0.8.From 0.0 to 1.0.
- Answer texts
enable_messagingtext - Whether the agent also handles text messages, not only calls. Leave empty to keep the current setting (on for a new agent).One of:
on(Turn on),off(Turn off). - Backchannel
enable_backchanneltext - Whether the agent makes small listening sounds such as 'mm-hm'. Leave empty to keep the current setting (on for a new agent).One of:
on(Turn on),off(Turn off).
Outputs
ambientSoundtextbeginMessagetextcallScreeningIdentitytextcallScreeningPurposetextcreatedAttextcustomToolslistdenoisingModetextdescriptiontextenableBackchanneltrue/falseenableMessagingtrue/falseidtextinterruptionSensitivitynumberlanguagetextmaxSilenceMsnumbermodelTiertextnametextnumbersliststtModetextsystemPrompttexttransferNumbertextvoicetextvoiceModetextvoiceSpeednumbervoicemailMessagetext
Example output
{
"ambientSound": "none",
"beginMessage": "Hi, thanks for calling the clinic.",
"callScreeningIdentity": null,
"callScreeningPurpose": null,
"createdAt": "2026-10-01T10:15:00Z",
"customTools": null,
"denoisingMode": "noise-cancellation",
"description": "Answers the clinic line.",
"enableBackchannel": true,
"enableMessaging": true,
"id": "agt_8f3a2c1d",
"interruptionSensitivity": 0.8,
"language": "en-US",
"maxSilenceMs": 600000,
"modelTier": "balanced",
"name": "Front desk",
"numbers": [
{
"id": "num_7b2e9c41",
"phoneNumber": "+14155550123",
"status": "active",
"type": "sms"
}
],
"sttMode": "fast",
"systemPrompt": "You answer calls for a dental clinic.",
"transferNumber": null,
"voice": "voice_ava",
"voiceMode": "hosted",
"voiceSpeed": 1.0,
"voicemailMessage": null
}Update contact
Change a contact. Only the fields you fill in change.
Inputs
- Contact
contact_idtextRequired - The contact's id, as returned by 'List contacts' or 'Create contact'.
- Phone number
phone_numbertext - A new phone number. It must not belong to another contact. Leave empty to keep the current one.
- Name
nametext - A new name. Leave empty to keep the current one.
- Email
emailtext - A new email address. Leave empty to keep it.
- Notes
notestext - New notes. Leave empty to keep the current ones.
Outputs
createdAttextemailtextidtextnametextnotestextphoneNumbertextupdatedAttext
Example output
{
"createdAt": "2026-10-02T09:00:00Z",
"email": "ada@example.com",
"id": "ct_2d7e5a90",
"name": "Ada Lovelace",
"notes": "Prefers texts.",
"phoneNumber": "+14155550188",
"updatedAt": "2026-10-02T09:00:00Z"
}