Voicemails
When a caller leaves a voicemail, Phone.inc records the audio and ties it to the main number that was dialed. The Voicemails API lists every voicemail on your account, gives you a signed URL for the recording, and lets you flip the listened flag from your own UI.
The voicemail model
A voicemail is a small object: who called, when, where the recording is, and whether someone has listened to it yet.
Properties
- Name
id- Type
- string
- Description
Unique identifier for the voicemail.
- Name
from- Type
- string
- Description
The caller's phone number in E.164 format.
- Name
listened_at- Type
- timestamp
- Description
ISO 8601 timestamp of when the voicemail was first marked as listened.
nullif it hasn't been listened to yet.
- Name
transcription- Type
- string
- Description
Plain-text transcription of the voicemail recording.
nulluntil the recording has been transcribed.
- Name
created_at- Type
- timestamp
- Description
ISO 8601 timestamp of when the voicemail was recorded.
- Name
recording_url- Type
- string
- Description
URL where the audio file can be downloaded. May be
nullif the recording is still being processed. The URL is generated per request — don't cache it long-term.
- Name
main_number_id- Type
- string
- Description
The ID of the main number the voicemail was left on.
- Name
main_number_name- Type
- string
- Description
The label of the main number.
- Name
main_number- Type
- string
- Description
The main number in E.164 format.
- Name
main_number_formatted- Type
- string
- Description
The main number formatted for display.
List voicemails
Returns every voicemail on the authenticated employee's company, newest first. There are no query parameters or pagination — voicemail volume is low enough that the full list is returned in one response.
The response also includes unlistened_count at the top — the number of voicemails on the company that haven't been marked as listened yet. It counts every unlistened voicemail, not just the ones in this response, so you can drive an inbox badge straight from it.
Request
curl https://app.phone.inc/api/v1/voicemails \
-H "X-Api-Key: $PHONE_INC_API_KEY"
Response
{
"unlistened_count": 3,
"voicemails": [
{
"id": "0193f4cb-7777-7c00-9e3d-2b2b8a7f1c33",
"from": "+14085550199",
"listened_at": null,
"transcription": "Hi, this is Dana from Acme. Give me a call back about the invoice when you get a chance. Thanks!",
"created_at": "2026-05-11T13:48:02Z",
"recording_url": "https://app.phone.inc/rails/active_storage/blobs/redirect/.../voicemail.mp3",
"main_number_id": "0193f4a9-7c34-7c00-9e3d-2b2b8a7f1c01",
"main_number_name": "Sales",
"main_number": "+14155551234",
"main_number_formatted": "+1 415-555-1234"
}
]
}
Retrieve a voicemail
Returns a single voicemail by its ID. The response includes the recording URL and all metadata.
Request
curl https://app.phone.inc/api/v1/voicemails/0193f4cb-7777-7c00-9e3d-2b2b8a7f1c33 \
-H "X-Api-Key: $PHONE_INC_API_KEY"
Response
{
"id": "0193f4cb-7777-7c00-9e3d-2b2b8a7f1c33",
"from": "+14085550199",
"listened_at": null,
"transcription": "Hi, this is Dana from Acme. Give me a call back about the invoice when you get a chance. Thanks!",
"created_at": "2026-05-11T13:48:02Z",
"recording_url": "https://app.phone.inc/rails/active_storage/blobs/redirect/.../voicemail.mp3",
"main_number_id": "0193f4a9-7c34-7c00-9e3d-2b2b8a7f1c01",
"main_number_name": "Sales",
"main_number_number": "+14155551234",
"main_number_number_formatted": "+1 415-555-1234"
}
Update a voicemail
Mark a voicemail as listened or unlistened. This is the only field you can update on a voicemail today.
Pass listened=true to set listened_at to the current time (no-op if it's already listened). Pass listened=false to clear it.
Returns the full voicemail object.
Optional attributes
- Name
listened- Type
- boolean
- Description
Whether the voicemail should be marked as listened. Accepts the usual truthy/falsy values (
true,false,"1","0").
Request
curl -X PATCH https://app.phone.inc/api/v1/voicemails/0193f4cb-7777-7c00-9e3d-2b2b8a7f1c33 \
-H "X-Api-Key: $PHONE_INC_API_KEY" \
-d listened=true
Response
{
"id": "0193f4cb-7777-7c00-9e3d-2b2b8a7f1c33",
"from": "+14085550199",
"listened_at": "2026-05-11T16:42:18Z",
"transcription": "Hi, this is Dana from Acme. Give me a call back about the invoice when you get a chance. Thanks!",
"created_at": "2026-05-11T13:48:02Z",
"recording_url": "https://app.phone.inc/rails/active_storage/blobs/redirect/.../voicemail.mp3",
"main_number_id": "0193f4a9-7c34-7c00-9e3d-2b2b8a7f1c01",
"main_number_name": "Sales",
"main_number_number": "+14155551234",
"main_number_number_formatted": "+1 415-555-1234"
}
Delete a voicemail
Permanently deletes a voicemail and its recording. This cannot be undone.
Returns an empty response with a 204 No Content status.
Request
curl -X DELETE https://app.phone.inc/api/v1/voicemails/0193f4cb-7777-7c00-9e3d-2b2b8a7f1c33 \
-H "X-Api-Key: $PHONE_INC_API_KEY"