For AI agents: markdown of this page — /docs-content-en/voximplant-sip/create.md documentation index — /llms.txt

Create connection

POST /v1/voximplant-sip

Scope: telephony | Authentication: X-Api-Key | URL: https://vibecode.bitrix24.com/v1

POST /v1/voximplant-sip calls voximplant.sip.add. server and login are required; type: office|cloud defaults to cloud; title and password are optional. The 201 response contains the connection without its password. SIP connector licensing and MAX_CLOUD_PBX: 422 BITRIX_ERROR with the upstream message.

Errors: 400 invalid parameters; 401 key or token; 403 scope, Bitrix24 permissions or READONLY writes; 422 upstream refusal; 429 limits; 502 unavailable Bitrix24 account; 503 timeout or freeze.

Request parameters

Field Type Required Meaning
type string no office or cloud, default cloud.
server string yes SIP server hostname.
login string yes SIP account login.
password string no Write only SIP password.
title string no Connection display name.

Response fields

Field Meaning
success Boolean result
data Result described above; credentials are omitted

Examples

cURL Personal key

Terminal
curl -X POST 'https://vibecode.bitrix24.com/v1/voximplant-sip' \
  -H 'X-Api-Key: FAKE_VIBE_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"type":"office","title":"VIBE-PROBE","server":"sip.example.com","login":"test","password":"FAKE_EXAMPLE_SIP_PASSWORD"}'

cURL OAuth

Terminal
curl -X POST 'https://vibecode.bitrix24.com/v1/voximplant-sip' \
  -H 'X-Api-Key: FAKE_VIBE_API_KEY' \
  -H 'Authorization: Bearer FAKE_APP_SESSION_TOKEN' \
  -H 'Content-Type: application/json' \
  --data '{"type":"office","title":"VIBE-PROBE","server":"sip.example.com","login":"test","password":"FAKE_EXAMPLE_SIP_PASSWORD"}'

JavaScript Personal key

javascript
const response = await fetch('https://vibecode.bitrix24.com/v1/voximplant-sip', {
  method: 'POST',
  headers: {"X-Api-Key": "FAKE_VIBE_API_KEY", "Content-Type": "application/json"},
  body: JSON.stringify({"type": "office", "title": "VIBE-PROBE", "server": "sip.example.com", "login": "test", "password": "FAKE_EXAMPLE_SIP_PASSWORD"}),
});
console.log(await response.json());

JavaScript OAuth

javascript
const response = await fetch('https://vibecode.bitrix24.com/v1/voximplant-sip', {
  method: 'POST',
  headers: {"X-Api-Key": "FAKE_VIBE_API_KEY", "Authorization": "Bearer FAKE_APP_SESSION_TOKEN", "Content-Type": "application/json"},
  body: JSON.stringify({"type": "office", "title": "VIBE-PROBE", "server": "sip.example.com", "login": "test", "password": "FAKE_EXAMPLE_SIP_PASSWORD"}),
});
console.log(await response.json());

Observed on the test account 2026-10-02; the example shows nonsecret response fields.

JSON
{
  "success": true,
  "data": {
    "type": "office",
    "configId": "15",
    "title": "VIBE-PROBE MR5038",
    "hasPassword": true,
    "hasIncomingPassword": true
  }
}

Errors

HTTP Code
400 INVALID_PARAMS / MISSING_REQUIRED_FIELDS / READONLY_FIELD
401 MISSING_API_KEY / INVALID_API_KEY / TOKEN_MISSING
403 SCOPE_DENIED / WRITE_BLOCKED_READONLY_KEY / BITRIX_ACCESS_DENIED
422 BITRIX_ERROR
429 RATE_LIMITED
502 BITRIX_UNAVAILABLE
503 BITRIX_TIMEOUT

Error reference

403 when the key has no telephony scope:

JSON
{
  "success": false,
  "error": {
    "code": "SCOPE_DENIED",
    "message": "This endpoint requires 'telephony' scope"
  }
}

See also

Calls

SIP