Credentials
Create Credential
Add a SIP digest credential to a Vobiz trunk to authenticate softphones, IP phones, or AI voice agents - unique username required, password is write-only.
POST
/
api
/
v1
/
Account
/
{auth_id}
/
credentials
Create a credential
curl --request POST \
--url https://api.vobiz.ai/api/v1/Account/{auth_id}/credentials \
--header 'Content-Type: application/json' \
--header 'X-Auth-ID: <api-key>' \
--header 'X-Auth-Token: <api-key>' \
--data '
{
"username": "myuser",
"password": "securepassword123"
}
'import requests
url = "https://api.vobiz.ai/api/v1/Account/{auth_id}/credentials"
payload = {
"username": "myuser",
"password": "securepassword123"
}
headers = {
"X-Auth-ID": "<api-key>",
"X-Auth-Token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Auth-ID': '<api-key>',
'X-Auth-Token': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({username: 'myuser', password: 'securepassword123'})
};
fetch('https://api.vobiz.ai/api/v1/Account/{auth_id}/credentials', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "aabbccdd-1234-5678-90ab-cdef12345678",
"account_id": "MA_XXXXXXXX",
"username": "acme_sip_user_01",
"password": "<redacted>",
"realm": "MA_XXXXXXXX.sip.vobiz.ai",
"enabled": true,
"created_at": "2026-03-25T10:00:00Z",
"updated_at": "2026-03-25T10:00:00Z"
}POST https://api.vobiz.ai/api/v1/Account/{auth_id}/credentials
Authentication required:
X-Auth-ID- Your account Auth IDX-Auth-Token- Your account Auth TokenContent-Type: application/json
Important: Save the password securely after creation. The API never returns the password in future responses - it is write-only for security purposes.Note: The username cannot be changed after creation. To use a different username, create a new credential and delete the old one.
Request Parameters
| Field | Type | Required | Description |
|---|---|---|---|
username | string | Yes | SIP username for authentication. Must be unique within the account. Cannot be changed after creation. Use alphanumeric names like office_phone_01 or user_john_mobile. |
password | string | Yes | SIP password for authentication. Minimum 8 characters. Recommended: 12+ characters with mixed case, numbers, and special characters. |
Only
username and password are accepted at creation. The credential is created enabled: true by default. To disable it later, or to add a description, use Update Credential. The response also returns a realm ({account_id}.sip.vobiz.ai) - the SIP authentication realm your softphone or PBX must present alongside the username and password.Username characters. Keep usernames alphanumeric. Dashes, underscores, and other punctuation can be rejected with a
400. The username is immutable - to change it, create a new credential and delete the old one.Response
Returns the complete credential object, including the auto-generatedid UUID. The password is not included in the response for security reasons.
Response - 201 Created
{
"id": "aabbccdd-1234-5678-90ab-cdef12345678",
"account_id": "MA_XXXXXXXX",
"username": "sipuser_demo",
"password": "<redacted>",
"realm": "MA_XXXXXXXX.sip.vobiz.ai",
"enabled": true,
"created_at": "2026-05-12T05:11:51.635106Z",
"updated_at": "2026-05-12T05:11:51.635106Z"
}
Examples
cURL - Basic Credential
cURL Request
curl -X POST https://api.vobiz.ai/api/v1/Account/{auth_id}/credentials \
-H "X-Auth-ID: YOUR_AUTH_ID" \
-H "X-Auth-Token: YOUR_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"username": "trunk_user_001",
"password": "SecurePassword123!"
}'
cURL - Credential with Strong Password
cURL Request
curl -X POST https://api.vobiz.ai/api/v1/Account/{auth_id}/credentials \
-H "X-Auth-ID: YOUR_AUTH_ID" \
-H "X-Auth-Token: YOUR_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"username": "office_phone_main",
"password": "Vbz!2025$SecureP@ss"
}'
Error Response (409 Conflict): If the username already exists on the account:
Error Response
{
"error": "Username already exists",
"code": 409
}
Next Steps:
- Save the credential
idfor future operations - Store the password securely in your password manager
- Configure your SIP client with the username and password
- Test authentication by making a test call
Authorizations
Your Vobiz account Auth ID
Your Vobiz account Auth Token
Path Parameters
Your account Auth ID
Example:
"MA_XXXXXX"
Was this page helpful?
⌘I
Create a credential
curl --request POST \
--url https://api.vobiz.ai/api/v1/Account/{auth_id}/credentials \
--header 'Content-Type: application/json' \
--header 'X-Auth-ID: <api-key>' \
--header 'X-Auth-Token: <api-key>' \
--data '
{
"username": "myuser",
"password": "securepassword123"
}
'import requests
url = "https://api.vobiz.ai/api/v1/Account/{auth_id}/credentials"
payload = {
"username": "myuser",
"password": "securepassword123"
}
headers = {
"X-Auth-ID": "<api-key>",
"X-Auth-Token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Auth-ID': '<api-key>',
'X-Auth-Token': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({username: 'myuser', password: 'securepassword123'})
};
fetch('https://api.vobiz.ai/api/v1/Account/{auth_id}/credentials', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "aabbccdd-1234-5678-90ab-cdef12345678",
"account_id": "MA_XXXXXXXX",
"username": "acme_sip_user_01",
"password": "<redacted>",
"realm": "MA_XXXXXXXX.sip.vobiz.ai",
"enabled": true,
"created_at": "2026-03-25T10:00:00Z",
"updated_at": "2026-03-25T10:00:00Z"
}