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/jsonRequest 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 missingData 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