Phone & voice · Branded Calling
Creates a caller identity.
https://api.pozy.ai/v1/branded-calling/identitiesRequest
Send your API key as Authorization: Bearer pz_live_.... Read-only keys cannot call it. Keys with the telephony resource group disabled get 403 resource_group_disabled. Authentication
This endpoint is not available yet. Calls return 403 feature_not_available.
Headers
| Name | Type | Notes |
|---|---|---|
Idempotency-Key | string | Up to 255 charactersRetries with the same key return the original result. See Idempotency |
Request body
application/json, required
enterpriseIdstringrequireddisplayNamestringrequired1 to 35 characters.
callReasonsarray of stringrequiredAt least 1 item. Up to 10 items. Each item: up to 64 characters.
logoUrlstringauthorizerobjectrequirednamestringrequiredUp to 255 characters.
emailstring (email)required
referencesobjectrequiredbusinessarray of objectrequiredAt least 2 items. Up to 2 items.
7 child fields
fullNamestringrequiredUp to 255 characters.
jobTitlestringUp to 255 characters.
organizationstringUp to 255 characters.
relationshipToRegistrantstringUp to 255 characters.
phoneNumberstringrequiredemailstring (email)requiredtimezonestringrequired
financialobjectrequired7 child fields
fullNamestringrequiredUp to 255 characters.
jobTitlestringUp to 255 characters.
organizationstringUp to 255 characters.
relationshipToRegistrantstringUp to 255 characters.
phoneNumberstringrequiredemailstring (email)requiredtimezonestringrequired
Example
curl -X POST "https://api.pozy.ai/v1/branded-calling/identities" \
-H "Authorization: Bearer $POZY_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"enterpriseId": "66496a86752378ad82057ff6",
"displayName": "Acme",
"callReasons": [
"string"
],
"authorizer": {
"name": "Acme",
"email": "alex@example.com"
},
"references": {
"business": [
{
"fullName": "Acme",
"phoneNumber": "+14155550123",
"email": "alex@example.com",
"timezone": "America/New_York"
}
],
"financial": {
"fullName": "Acme",
"phoneNumber": "+14155550123",
"email": "alex@example.com",
"timezone": "America/New_York"
}
}
}'import { randomUUID } from "node:crypto";
const res = await fetch("https://api.pozy.ai/v1/branded-calling/identities", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.POZY_API_KEY}`,
"Idempotency-Key": randomUUID(),
"Content-Type": "application/json",
},
body: JSON.stringify({
enterpriseId: "66496a86752378ad82057ff6",
displayName: "Acme",
callReasons: [
"string"
],
authorizer: {
name: "Acme",
email: "alex@example.com"
},
references: {
business: [
{
fullName: "Acme",
phoneNumber: "+14155550123",
email: "alex@example.com",
timezone: "America/New_York"
}
],
financial: {
fullName: "Acme",
phoneNumber: "+14155550123",
email: "alex@example.com",
timezone: "America/New_York"
}
}
}),
});
const data = await res.json();
if (!res.ok) throw new Error(data?.error ?? `Request failed with status ${res.status}`);
console.log(data);import os
import requests
resp = requests.post(
"https://api.pozy.ai/v1/branded-calling/identities",
headers={"Authorization": f"Bearer {os.environ['POZY_API_KEY']}"},
json={
"enterpriseId": "66496a86752378ad82057ff6",
"displayName": "Acme",
"callReasons": [
"string",
],
"authorizer": {
"name": "Acme",
"email": "alex@example.com",
},
"references": {
"business": [
{
"fullName": "Acme",
"phoneNumber": "+14155550123",
"email": "alex@example.com",
"timezone": "America/New_York",
},
],
"financial": {
"fullName": "Acme",
"phoneNumber": "+14155550123",
"email": "alex@example.com",
"timezone": "America/New_York",
},
},
},
timeout=30,
)
resp.raise_for_status()
print(resp.json())Response
201 on success
idstringenterpriseIdstringdisplayNamestringUp to 35 characters.
callReasonsarray of stringEach item: up to 64 characters.
callReasonsPreApprovedbooleanlogoUrlstringCan be null.
authorizerobjectnamestringemailstring (email)
referencesobjectbusinessarray of objectrequiredAt least 2 items. Up to 2 items.
7 child fields
fullNamestringrequiredUp to 255 characters.
jobTitlestringUp to 255 characters.
organizationstringUp to 255 characters.
relationshipToRegistrantstringUp to 255 characters.
phoneNumberstringrequiredemailstring (email)requiredtimezonestringrequired
financialobjectrequired7 child fields
fullNamestringrequiredUp to 255 characters.
jobTitlestringUp to 255 characters.
organizationstringUp to 255 characters.
relationshipToRegistrantstringUp to 255 characters.
phoneNumberstringrequiredemailstring (email)requiredtimezonestringrequired
statusstringOne of
requested,changes_requested,rejected,pending_email_verification,in_review,verified,suspended,expired,permanently_rejected.rejectionReasonsarray of objectcodestringtitlestringdetailstringmessagestringCan be null.
reviewNotestringCan be null.
reviewRequestobjectCan be null.
idstringintrostringpointsarray of object4 child fields
idstringtitlestringdetailstringanswerstringOne of
text,link,file,link_or_file.
emailVerifiedAtstring (date-time)Can be null.
submittedAtstring (date-time)Can be null.
verifiedAtstring (date-time)Can be null.
expiringAtstring (date-time)Can be null.
numbersarray of objectphoneNumberIdstringphoneNumberstringstatusstringOne of
submitted,in_review,verified,unsuccessful,suspended,expired,permanently_rejected.rejectionReasonobjectCan be null.
4 child fields
codestringtitlestringdetailstringmessagestringCan be null.
verifiedAtstring (date-time)Can be null.
addedAtstring (date-time)Can be null.
createdAtstring (date-time)Can be null.
updatedAtstring (date-time)Can be null.
{
"id": "6bfebd43ddc270f6d2c56fc5",
"enterpriseId": "66496a86752378ad82057ff6",
"displayName": "Acme",
"callReasons": [
"string"
],
"callReasonsPreApproved": true,
"logoUrl": "https://pozy.ai/media/example-1.jpg",
"authorizer": {
"name": "Acme",
"email": "alex@example.com"
},
"references": {
"business": [
{
"fullName": "Acme",
"jobTitle": "string",
"organization": "string",
"relationshipToRegistrant": "string",
"phoneNumber": "+14155550123",
"email": "alex@example.com",
"timezone": "America/New_York"
}
],
"financial": {
"fullName": "Acme",
"jobTitle": "string",
"organization": "string",
"relationshipToRegistrant": "string",
"phoneNumber": "+14155550123",
"email": "alex@example.com",
"timezone": "America/New_York"
}
},
"status": "requested",
"rejectionReasons": [
{
"code": "string",
"title": "Launch day",
"detail": "string",
"message": "Hello from Pozy"
}
],
"reviewNote": "string",
"reviewRequest": {
"id": "6bfebd43ddc270f6d2c56fc5",
"intro": "string",
"points": [
{
"id": "6bfebd43ddc270f6d2c56fc5",
"title": "Launch day",
"detail": "string",
"answer": "text"
}
]
},
"emailVerifiedAt": "2026-10-02T09:00:00.000Z",
"submittedAt": "2026-10-02T09:00:00.000Z",
"verifiedAt": "2026-10-02T09:00:00.000Z",
"expiringAt": "2026-10-02T09:00:00.000Z",
"numbers": [
{
"phoneNumberId": "698fba0989716df44adb771f",
"phoneNumber": "+14155550123",
"status": "submitted",
"rejectionReason": {
"code": "string",
"title": "Launch day",
"detail": "string",
"message": "Hello from Pozy"
},
"verifiedAt": "2026-10-02T09:00:00.000Z",
"addedAt": "2026-10-02T09:00:00.000Z"
}
],
"createdAt": "2026-10-02T09:00:00.000Z",
"updatedAt": "2026-10-02T09:00:00.000Z"
}Errors
Errors use one shape: { error, type, code, param?, details? }. The ones you are most likely to see here:
| 400 | invalid_request_error | A parameter or body field is missing or invalid. param names it. |
| 401 | authentication_error | The API key is missing, revoked or expired. |
| 403 | permission_error | The key is read-only, scoped to other profiles, or has this resource group disabled. |
| 429 | rate_limit_error | Too many requests this minute. Wait for Retry-After seconds. |
Every code is listed in Errors.