Voxbi Cockpit APIs
All endpoints

Add a favorite user (user)

Mark another user as a favorite for the given user. The favorited user must belong to the same PBX as the owning user, and the same favorite cannot be added twice. The owning user is taken from the {user} path segment and the PBX is derived server-side; neither user_id nor pbx_id may be sent in the body.

HTTP: bearerAuth

User bearer token. Default authentication for customer-facing endpoints. Obtain a token by calling POST /login with your credentials, then send it on every subsequent request as Authorization: Bearer <token>. The token inherits the permissions and PBX scope of the authenticated user.

HTTP Authorization Scheme
bearer
Bearer format
Bearer <token>
user path · string · uuid *
Identifier of the user who owns the favorites list
accept header · string
example: application/json

Request body · required

Request schema
favorite_user_id*string · uuid
Identifier of the user to mark as a favorite. Must reference an existing user in the same PBX and must not already be a favorite of the owning user.

Responses

Response schema
idstring · uuid
user_idstring · uuid
favorite_user_idstring · uuid
created_atstring · date-time
updated_atstring · date-time
Authorization Token Missing. This error is returned when the authorization token is missing.
Response schema
errorstring
Error message
example: Authorization Token is missing
Data Not Found. This error is returned when the requested data is not found.
Response schema
messagearray<string>
[]string
Unprocessable Parameters. This error is returned when a parameter is not valid.
Response schema
messagestring
example: The given data was invalid.
errorsobject
filterarray<string>
[]string
sortarray<string>
[]string
pagearray<string>
[]string
per_pagearray<string>
[]string
post https://cockpit.voxbi.com/api/v1/users/{user}/favorite-users
Base URL
Request sample
curl -X POST 'https://cockpit.voxbi.com/api/v1/users/{user}/favorite-users' \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -H 'Content-Type: application/json' \
  --data '{"favorite_user_id":"550e8400-e29b-41d4-a716-446655440001"}'
const response = await fetch('https://cockpit.voxbi.com/api/v1/users/{user}/favorite-users', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': `Bearer ${YOUR_TOKEN}`,
  },
  body: JSON.stringify({
    "favorite_user_id": "550e8400-e29b-41d4-a716-446655440001"
}),
});

const data = await response.json();
console.log(data);
import requests

response = requests.post('https://cockpit.voxbi.com/api/v1/users/{user}/favorite-users',
    headers={'Authorization': f'Bearer {YOUR_TOKEN}'},
    json={
    "favorite_user_id": "550e8400-e29b-41d4-a716-446655440001"
}
)
response.raise_for_status()
data = response.json()
print(data)
<?php
$context = stream_context_create([
    'http' => [
        'method'  => 'POST',
        'header'  => "Content-Type: application/json\r\nAuthorization: Bearer YOUR_TOKEN",
        'content' => '{
    \"favorite_user_id\": \"550e8400-e29b-41d4-a716-446655440001\"
}',
    ],
]);

$response = file_get_contents('https://cockpit.voxbi.com/api/v1/users/{user}/favorite-users', false, $context);
$data = json_decode($response, true);
print_r($data);
Sample request
{}
"favorite_user_id": "550e8400-e29b-41d4-a716-446655440001"
}
{}
"id": "550e8400-e29b-41d4-a716-446655440040",
"user_id": "550e8400-e29b-41d4-a716-446655440000",
"favorite_user_id": "550e8400-e29b-41d4-a716-446655440001",
"created_at": "2024-03-01T08:29:07Z",
"updated_at": "2024-03-01T08:29:07Z"
}
{}
"error": "Authorization Token is missing"
}
Cache-Control string
example: private, must-revalidate
Connection string
example: keep-alive
Content-Type string
example: application/json
Vary string
example: Origin
X-RateLimit-Limit integer
Max requests allowed in the current rate-limit window.
example: 60
X-RateLimit-Remaining integer
Requests remaining in the current rate-limit window.
example: 57
{}
"message": []
"Data not found"
]
}
Cache-Control string
example: private, must-revalidate
Connection string
example: keep-alive
Content-Type string
example: application/json
Vary string
example: Origin
X-RateLimit-Limit integer
Max requests allowed in the current rate-limit window.
example: 60
X-RateLimit-Remaining integer
Requests remaining in the current rate-limit window.
example: 57
{}
"errors": {}
"filter": [],
"The filter field must be an array."
],
"sort": [],
"The sort field must be a string."
],
"page": [],
"The page field must be an integer."
],
"per_page": []
"The per page field must be an integer."
]
}
}
Cache-Control string
example: private, must-revalidate
Connection string
example: keep-alive
Content-Type string
example: application/json
Vary string
example: Origin
X-RateLimit-Limit integer
Max requests allowed in the current rate-limit window.
example: 60
X-RateLimit-Remaining integer
Requests remaining in the current rate-limit window.
example: 57