Endpoints
Create an Endpoint
Provision a new SIP endpoint on Vobiz to register IP phones, softphones, or AI voice agents - assign a SIP URI, credentials, and call permissions in one call.
POST
/
api
/
v1
/
Account
/
{auth_id}
/
Endpoint
/
Create an Endpoint
curl --request POST \
--url https://api.vobiz.ai/api/v1/Account/{auth_id}/Endpoint/ \
--header 'Content-Type: application/json' \
--header 'X-Auth-ID: <api-key>' \
--header 'X-Auth-Token: <api-key>' \
--data @- <<EOF
{
"username": "john_doe",
"password": "SecurePassword123!",
"alias": "John's Desktop Phone",
"application": 12345678
}
EOFimport requests
url = "https://api.vobiz.ai/api/v1/Account/{auth_id}/Endpoint/"
payload = {
"username": "john_doe",
"password": "SecurePassword123!",
"alias": "John's Desktop Phone",
"application": 12345678
}
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: 'john_doe',
password: 'SecurePassword123!',
alias: 'John\'s Desktop Phone',
application: 12345678
})
};
fetch('https://api.vobiz.ai/api/v1/Account/{auth_id}/Endpoint/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"alias": "Acme Desktop Phone",
"endpoint_id": "193962768711692",
"username": "acme_sip_user_01"
}{
"alias": "Acme Desktop Phone",
"endpoint_id": "193962768711692",
"username": "acme_sip_user_01"
}{
"api_id": "<string>",
"error": "<string>",
"message": "<string>"
}POST https://api.vobiz.ai/api/v1/Account/{auth_id}/Endpoint/
Authentication required:
X-Auth-ID- Your account Auth ID (e.g.,{auth_id})X-Auth-Token- Your account Auth TokenContent-Type: application/json
SIP registration: Your endpoint SIP URI follows
sip:username@registrar.vobiz.ai. Configure registrar.vobiz.ai as the registrar or server in your softphone, desk phone, or custom WebRTC SIP client. Authenticate with the endpoint username and password.Your account Auth ID and Auth Token authenticate REST API requests and the hosted WebRTC Playground. They do not authenticate SIP endpoint registration. SIP endpoints do not require a separate token or JWT.Request Parameters
| Field | Type | Required | Description |
|---|---|---|---|
username | string | Yes | SIP username, unique per account and immutable after creation. Only alphanumeric characters are accepted - hyphens, underscores, spaces, and other symbols may be rejected with a 400. A duplicate username returns a 409 conflict. |
password | string | Yes | SIP password. Minimum 8 characters recommended. Write-only - never returned in any response. |
alias | string | Yes | Friendly name for the endpoint. Accepts alphabets, numbers (0-9), hyphen (-), and underscore (_) only. |
application | integer | Recommended | Numeric app_id for call routing. If omitted, the endpoint falls back to the accountโs default_endpoint_app (if one is set); otherwise it has no call-handling application. |
allow_voice | boolean | No | Allow voice calls (default: true). |
allow_message | boolean | No | Allow messaging (default: true). |
allow_video | boolean | No | Allow video calls (default: false). |
allow_same_domain | boolean | No | Allow calls to same domain (default: true). |
allow_other_domains | boolean | No | Allow calls to other domains (default: false). |
allow_phones | boolean | No | Allow calls to phone numbers (default: true). |
allow_apps | boolean | No | Allow calls to apps (default: true). |
sub_account | string | No | Sub-account auth_id (if creating for sub-account). |
Response
On success, returns"created" in the message field along with the endpoint_id, sip_uri, and resource_uri.
{
"api_id": "550e8400-e29b-41d4-a716-446655440000",
"message": "created",
"endpoint_id": "87654321",
"sip_uri": "sip:john_doe@registrar.vobiz.ai",
"resource_uri": "/v1/Account/{auth_id}/Endpoint/87654321/"
}
{
"error": "invalid request parameters",
"details": {
"username": "Only alphanumeric characters are allowed",
"password": "Password must be at least 8 characters"
}
}
{
"error": "username already exists",
"username": "john_doe"
}
400 is returned for invalid field values (non-alphanumeric username, short password, missing required field); a 409 when the username is already taken on your account.
Examples
Basic Endpoint Creation
cURL Request
curl -X POST https://api.vobiz.ai/api/v1/Account/{auth_id}/Endpoint/ \
-H "X-Auth-ID: YOUR_AUTH_ID" \
-H "X-Auth-Token: YOUR_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"username": "sales_desk",
"password": "VerySecurePass123!",
"alias": "Sales Team Desk Phone",
"allow_voice": true
}'
Create with Application and Permissions
cURL Request
curl -X POST https://api.vobiz.ai/api/v1/Account/{auth_id}/Endpoint/ \
-H "X-Auth-ID: YOUR_AUTH_ID" \
-H "X-Auth-Token: YOUR_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"username": "john_doe",
"password": "SecurePassword123!",
"alias": "John'\''s Desktop Phone",
"application": 12345678,
"allow_voice": true,
"allow_message": true,
"allow_video": false,
"allow_same_domain": true,
"allow_other_domains": false,
"allow_phones": true,
"allow_apps": true
}'
Best Practices:
- Use strong passwords (minimum 8 characters, mix of letters/numbers/symbols)
- Use descriptive aliases to easily identify endpoints
- Store the
endpoint_idandsip_urisecurely for future operations - Only enable permissions your endpoints actually need
- Attach applications for automatic call routing
Authorizations
Your Vobiz account Auth ID
Your Vobiz account Auth Token
Path Parameters
Your account Auth ID
Example:
"MA_XXXXXX"
Body
application/json
Was this page helpful?
โI
Create an Endpoint
curl --request POST \
--url https://api.vobiz.ai/api/v1/Account/{auth_id}/Endpoint/ \
--header 'Content-Type: application/json' \
--header 'X-Auth-ID: <api-key>' \
--header 'X-Auth-Token: <api-key>' \
--data @- <<EOF
{
"username": "john_doe",
"password": "SecurePassword123!",
"alias": "John's Desktop Phone",
"application": 12345678
}
EOFimport requests
url = "https://api.vobiz.ai/api/v1/Account/{auth_id}/Endpoint/"
payload = {
"username": "john_doe",
"password": "SecurePassword123!",
"alias": "John's Desktop Phone",
"application": 12345678
}
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: 'john_doe',
password: 'SecurePassword123!',
alias: 'John\'s Desktop Phone',
application: 12345678
})
};
fetch('https://api.vobiz.ai/api/v1/Account/{auth_id}/Endpoint/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"alias": "Acme Desktop Phone",
"endpoint_id": "193962768711692",
"username": "acme_sip_user_01"
}{
"alias": "Acme Desktop Phone",
"endpoint_id": "193962768711692",
"username": "acme_sip_user_01"
}{
"api_id": "<string>",
"error": "<string>",
"message": "<string>"
}