POST / voice/ringless/send
Base URL: https://backend.easify.app/api/v2
This endpoint is used to deliver a voicemail directly to the recipient's inbox without ringing their phone.
The voicemail content can be delivered as an audio file URL or an existing voice file already uploaded to your account. Existing voice files and their IDs can be fetched using the List Voices API.
If you exceed the allowed rate limit, you will receive a 429 Too Many Requests status, along with a message indicating when you can try again.
The authenticated user must have access to the Voice Outreach (voice-outreach) module. Requests made without the proper module permissions will receive a 403 Forbidden response.Authentication
The Easify API token used for authentication is passed in the header as a Bearer token, which can be obtained from the easify app under Settings > API Settings.
Headers
Authorization string required Bearer << YOUR_EASIFY_API_TOKEN_HERE >>
Content-Type application/json
Request Body
| to_number string | The recipient's phone number | Required |
| callback_number string | A callback number for the recipient to reach back out to | Required |
| country_code string |
The international calling code (dialing prefix) for the destination number, prefixed with + (e.g., +1) *Not an ISO 3166-1 alpha-2 code such as US |
Optional |
| from_number string |
The caller ID displayed for the voicemail *Ensure that you are using a phone number associated with the api token, please use the Phone Numbers API to retrieve the associated phone numbers. |
Optional |
| voice_url string | URL of an audio file (.wav or .mp3) | Required without voice_id |
| voice_id integer |
The ID of an existing voice file (Must already exist in the system) *Use the List Voices API to retrieve the available voice files and obtain their IDs. |
Required without voice_url |
Sample Request and Success Response:
Request:
{
"to_number": "+1555987****",
"country_code": "+1",
"from_number": "+1555123****",
"voice_url": "https://cdn.example.com/audio/vm-greeting.mp3",
"callback_number": "+1555000****"
}
Success Response:
{
"status": true,
"message": "Ringless voicemail has been queued and will be sent shortly!",
"data": {
"ringless_voicemail_id": "60d5ec498b...f12"
}
}
Api Response Status
| Case | Status Code | Response |
|---|---|---|
| If the user provides an invalid Easify API token or does not pass the Easify API token in the header. | 401 |
{
"status":false,
"message":"Unauthenticated",
"errors":[]
}
|
| If the user provides a voice_url that is not a valid WAV or MP3 file URL | 422 |
{
"message": "The voice URL must be a valid WAV or MP3 file URL.",
"errors": {
"voice_url": ["The voice URL must be a valid WAV or MP3 file URL."]
}
}
|
| If the user does not provide to_number | 422 |
{
"message": "The to number field is required.",
"errors": {
"to_number": ["The to number field is required."]
}
}
|
| If the user does not provide callback_number | 422 |
{
"message": "The callback number field is required.",
"errors": {
"callback_number": ["The callback number field is required."]
}
}
|
| If the user exceeds the allowed rate limit for requests | 429 |
{
"status":false,
"message":"Too many requests. Try again in 59 seconds",
"errors":[]
}
|
| If the user's subscription has ended | 402 |
{
"status":false,"message":"You need to recharge your account to proceed","errors":[]
}
|
| If the user does not have enough credits to send the voicemail | 400 |
{
"status": false,
"message": "Sorry you do not have enough credits to send this voicemail.",
"errors": []
}
|
| When the user account is inactive | 403 |
{
"status": false,
"message": "Your account is currently inactive.",
"errors": []
}
|
Response Explanation
- success: Indicates whether the request was processed successfully.
- message: A human-readable description of the result.
- ringless_voicemail_id: The unique identifier of the ringless voicemail created by the request.
PHP-cURL
php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://backend.easify.app/api/v2/voice/ringless/send',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => json_encode([
'to_number' => '+1555987****',
'country_code' => '+1',
'from_number' => '+1555123****',
'voice_url' => 'https://cdn.example.com/audio/vm-greeting.mp3',
'callback_number' => '+1555000****'
]),
CURLOPT_HTTPHEADER => [
'Accept: application/json',
'Authorization: Bearer 1955|43da5bb5-5c2b-4059-a4de-d44bf5****',
'Content-Type: application/json'
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;