GET / voice/list
Base URL: https://backend.easify.app/api/v2
This endpoint is used to retrieve a paginated list of voice files uploaded to your account.
The returned voice file IDs can be used with the Voice Broadcast and Ringless Voicemail APIs through the voice_id parameter.
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 >>
Query Parameters
| limit integer | Number of records to return per page (Min: 1, Max: 100, Default: 10) | Optional |
| page integer | The page number to retrieve (Min: 1, Default: 1) | Optional |
Sample Params and Success Response:
Params:
{
"limit": 10,
"page": 1
}
Success Response:
{
"status": true,
"message": "Voices retrieved successfully",
"data": [
{
"id": 123,
"name": "Campaign Recording",
"voice_full_url": "https://s3.amazonaws.com/bucket/voices/file.mp3",
"created_at": "2026-07-28T00:00:00.000000Z"
}
]
}
Api Response Status
| Case | Status Code | Response |
|---|---|---|
| If the user does not provide a token in the header or provides an invalid token | 401 |
{
"status":false,
"message":"Unauthenticated",
"errors":[]
}
|
| Invalid limit or page | 422 |
{
"message": "The limit field must be between 1 and 100.",
"errors": {
"limit": ["The limit field must be between 1 and 100."]
}
}
|
| 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":[]
}
|
| When the user account is inactive | 403 |
{
"status": false,
"message": "Your account is currently inactive.",
"errors": []
}
|
Response Explanation
- id: Unique identifier of the voice file (use this as voice_id when sending a broadcast or ringless voicemail).
- name: The name of the voice file.
- voice_full_url: The publicly accessible URL of the uploaded audio file.
- created_at: The timestamp of when the voice file was uploaded.
PHP-cURL
php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://backend.easify.app/api/v2/voice/list?limit=10&page=1',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => [
'Accept: application/json',
'Authorization: Bearer 1955|43da5bb5-5c2b-4059-a4de-d44bf5****'
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;