Get one of the partner's customers (partner-api)
Returns one customer of the partner the key belongs to. An id that belongs to another partner, does not exist, or is not a UUID answers 404.
Required scopes: partner-api and partner-customers.
HTTP:
PartnerApiKey
Partner API key. A bearer token that a Reseller Admin generates in the partner
portal under Settings, API keys. It belongs to the reseller partner, not to a
person, and carries the scopes ticked at creation time. Send it on every request as
Authorization: Bearer <partner_api_key>.
Every response is confined to the partner the key belongs to. Keep the key secret and call the API from your server only, never from a browser app.
- HTTP Authorization Scheme
bearer- Bearer format
Bearer <partner_api_key>
customer
path · string · uuid
*
Customer id (UUID). It must belong to your partner, otherwise the answer is `404`.
accept
header · string
example:
application/jsonResponses
Response schema
dataobject
A customer of the reseller partner that owns the API key. Block reason, who blocked the
customer and CRM synchronization internals are not exposed.
idstring · uuid
Unique identifier of the customer.
example:
550e8400-e29b-41d4-a716-446655440001namestring
Customer name.
example:
Sales Team Incis_companyboolean
True when the customer is a company, false for a private person.
example:
1emailstring | null · email
Customer contact email.
example:
user@example.comphone_numberstring | null
Customer contact phone number.
example:
+12125550101addressobject
Postal address of a customer.
streetstring | null
Street name.
example:
Main Streetnumberstring | null
Street number.
example:
12postal_codestring | null
Postal code.
example:
10001citystring | null
City.
example:
New Yorkcountry_codestring | null
ISO 3166-1 alpha-2 country code.
example:
USexternal_idstring | null
Identifier of the customer in your own system, if one was recorded.
example:
crm-42is_blockedboolean
True when the customer is currently blocked.
example:
blocked_atstring | null · date-time
When the customer was blocked, or null when not blocked.
planobject | null
The plan the customer is on, or null when none is assigned.
idstring · uuid
Plan identifier.
example:
550e8400-e29b-41d4-a716-446655440020namestring
Plan name.
example:
Businesspbxes_countinteger
Number of PBXes linked to this customer.
example:
2created_atstring · date-time
When the customer was created.
example:
2025-03-10T10:15:00+00:00updated_atstring · date-time
When the customer was last updated.
example:
2026-09-02T16:45:00+00:00Unauthenticated. The `Authorization: Bearer <token>` header was missing,
malformed, or names a token that has been revoked or deleted.
Response schema
messagestring
Forbidden. Three different situations share this status, told apart by `message`:
* the token is not a partner API key (a user token, a PBX API key, or any other token);
* the partner is not an active reseller;
* the key lacks a scope the endpoint needs. The body then also lists `required_scopes`.
Response schema
messagestring
Human-readable reason.
example:
This API key is missing a required scope.required_scopesarray<string>
Present on the missing-scope 403 only. Scopes the endpoint needs that the key lacks.
[]string
Not Found. No customer with this id belongs to your partner. A customer of another
partner and a nonexistent id answer the same way, and so does an id that is not a UUID.
Response schema
messagestring
Human-readable reason.
example:
This API key is missing a required scope.required_scopesarray<string>
Present on the missing-scope 403 only. Scopes the endpoint needs that the key lacks.
[]string
Too Many Requests. Two budgets apply: 120 requests per minute per API key, and 600 per
minute across all of a partner's keys together. Wait for the number of seconds in the `Retry-After` header before retrying.
Response schema
messagestring
get
https://cockpit.voxbi.com/api/v1/api/v1/customers/{customer}
Base URL
Request sample
curl -X GET 'https://cockpit.voxbi.com/api/v1/api/v1/customers/{customer}' \
-H 'Authorization: Bearer YOUR_TOKEN'
const response = await fetch('https://cockpit.voxbi.com/api/v1/api/v1/customers/{customer}', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${YOUR_TOKEN}`,
},
});
const data = await response.json();
console.log(data);
import requests
response = requests.get('https://cockpit.voxbi.com/api/v1/api/v1/customers/{customer}',
headers={'Authorization': f'Bearer {YOUR_TOKEN}'}
)
response.raise_for_status()
data = response.json()
print(data)
<?php
$context = stream_context_create([
'http' => [
'method' => 'GET',
'header' => "Content-Type: application/json\r\nAuthorization: Bearer YOUR_TOKEN",
],
]);
$response = file_get_contents('https://cockpit.voxbi.com/api/v1/api/v1/customers/{customer}', false, $context);
$data = json_decode($response, true);
print_r($data);
{ … }
"data": { … }
"id": "550e8400-e29b-41d4-a716-446655440001",
"name": "Sales Team Inc",
"is_company": true,
"email": "user@example.com",
"phone_number": "+12125550101",
"address": { … },
"street": "Main Street",
"number": "12",
"postal_code": "10001",
"city": "New York",
"country_code": "US"
},
"external_id": "crm-41",
"is_blocked": false,
"blocked_at": null,
"plan": { … },
"id": "550e8400-e29b-41d4-a716-446655440020",
"name": "Business"
},
"pbxes_count": 2,
"created_at": "2025-03-10T10:15:00+00:00",
"updated_at": "2026-09-02T16:45:00+00:00"
}
}
{ … }
"message": "Unauthenticated."
}
Content-Type
string
example:
application/json{ … }
"message": "This endpoint requires a partner API key."
}
Content-Type
string
example:
application/json{ … }
"message": "Customer not found."
}
Content-Type
string
example:
application/json{ … }
"message": "Too Many Attempts."
}
Retry-After
integer
Seconds to wait before retrying.
example:
30
Content-Type
string
example:
application/json