Para agentes de IA: markdown de esta página — /docs-content-en/voximplant-sip/list.md índice de la documentación — /llms.txt

Los artículos de la documentación están disponibles actualmente en inglés.

List connections

GET /v1/voximplant-sip

Returns the SIP connections of office and cloud PBXs available to the key, with filtering, sorting and pagination.

Parameters

Parameter Type Required Default Description
filter (query) object no — Filter by the connection fields from the "Response fields" table, except hasPassword and hasIncomingPassword. The operator goes before the field name: >, >=, ! — not equal, % — substring.
Filtering syntax. Pass several values of one field as an array. Conditions on different fields are combined with AND, and filter[logic]=OR combines them with OR. Example: ?filter[type]=office, ?filter[configId][]=1&filter[configId][]=17
sort (query) string no — Sort field — any field that filter works with. Pass it only together with order
order (query) string no — Sort direction: ASC or DESC, case-insensitive. Pass it only together with sort
start (query) number no 0 How many records to skip. For the next page, pass the meta.next value from the previous response

The request accepts no other parameters.

Examples

curl — personal key

Terminal
curl "https://vibecode.bitrix24.com/v1/voximplant-sip?sort=configId&order=ASC" \
  -H "X-Api-Key: YOUR_API_KEY"

curl — OAuth application

Terminal
curl "https://vibecode.bitrix24.com/v1/voximplant-sip?sort=configId&order=ASC" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN"

JavaScript — personal key

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/voximplant-sip?sort=configId&order=ASC', {
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
  },
})

const { data, meta } = await res.json()
for (const sip of data) {
  console.log(sip.configId, sip.type, sip.title, sip.server)
}
if (meta.next !== undefined) {
  console.log('Next page: start =', meta.next)
}

JavaScript — OAuth application

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/voximplant-sip?sort=configId&order=ASC', {
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
  },
})

const { data, meta } = await res.json()
for (const sip of data) {
  console.log(sip.configId, sip.type, sip.title, sip.server)
}
if (meta.next !== undefined) {
  console.log('Next page: start =', meta.next)
}

Response fields

Passwords are not included in the response — the hasPassword and hasIncomingPassword flags are returned instead.

Field Type Description
success boolean true on success
data array Connections. An empty array if nothing matches the filter
data[].configId string Connection ID
data[].type string PBX type: office — office PBX, cloud — cloud PBX
data[].title string Connection name
data[].server string SIP server address
data[].login string Login on the SIP server
data[].hasPassword boolean Whether the connection password is set
data[].authUser string | null User name for authorization on the SIP server. null if not set
data[].outboundProxy string | null Proxy server address for outgoing calls. null if not set
data[].detectLineNumber string Whether to detect the line number from the SIP headers of an incoming call: N — do not detect
data[].lineDetectHeaderOrder string SIP headers used to detect the line number, in the order they are checked, for example diversion;to
data[].registrationStatusCode string | null Result code of the registration on the SIP server, for example 502 when the server is not found
data[].registrationErrorMessage string | null Registration error text. null if there is no error
data[].regId string Cloud PBX only: registration ID on the SIP server
data[].incomingServer string Office PBX only: server address for incoming calls, issued by Bitrix24
data[].incomingLogin string Office PBX only: login for incoming calls, issued by Bitrix24
data[].hasIncomingPassword boolean Office PBX only: whether the password for incoming calls is set
meta.total number How many connections match the filter. When nothing matches the filter, meta is an empty object
meta.next number The start value for the next page. Present only when there is a next page

Response example

JSON
{
  "success": true,
  "data": [
    {
      "type": "cloud",
      "configId": "1",
      "regId": "133788",
      "server": "pbx.example.com",
      "login": "cloud-line",
      "hasPassword": true,
      "authUser": "cloud-user",
      "outboundProxy": "proxy.example.com",
      "detectLineNumber": "N",
      "lineDetectHeaderOrder": "diversion;to",
      "registrationStatusCode": "502",
      "registrationErrorMessage": "Unable to resolve hostname",
      "title": "Cloud PBX"
    },
    {
      "type": "office",
      "configId": "17",
      "server": "sip.example.com",
      "login": "office-line",
      "hasPassword": true,
      "incomingServer": "ip.b24-1234-1234567890.bitrixphone.com",
      "incomingLogin": "sip17",
      "hasIncomingPassword": true,
      "authUser": null,
      "outboundProxy": null,
      "detectLineNumber": "N",
      "lineDetectHeaderOrder": "diversion;to",
      "registrationStatusCode": "0",
      "registrationErrorMessage": null,
      "title": "Office PBX"
    }
  ],
  "meta": {
    "total": 2
  }
}

Error response example

400 — filter by a password field:

JSON
{
  "success": false,
  "error": {
    "code": "INVALID_PARAMS",
    "message": "filter may use only noncredential SIP fields and logical groups"
  }
}

Errors

HTTP Code Description
400 INVALID_PARAMS A parameter other than filter, sort, order, start is passed
400 INVALID_PARAMS filter is not an object, or it contains a password field, a dot path or a field that is not in the response
400 INVALID_PARAMS sort and order are not passed together, or order is neither ASC nor DESC
400 INVALID_PARAMS sort names a password field or a field that is not in the response
400 INVALID_PARAMS start is not a non-negative integer
401 MISSING_API_KEY The X-Api-Key header is not passed
401 INVALID_API_KEY The platform does not know this key string: a typo, a truncated value or a deleted key
401 TOKEN_MISSING The key has no access to the portal: a personal key has no portal webhook, or an application key was passed without a session token in Authorization: Bearer
403 SCOPE_DENIED The key has no telephony scope
403 BITRIX_ACCESS_DENIED Bitrix24 denied access — causes explained
422 BITRIX_ERROR Bitrix24 rejected the request. The reason is in error.message
429 RATE_LIMITED Request rate exceeded
429 QUEUE_OVERFLOW The account request queue is full, so the request is rejected without waiting. The Retry-After header suggests the delay
429 QUEUE_TIMEOUT The request did not get through the account queue in time and was not sent to Bitrix24. The Retry-After header suggests the delay
502 BITRIX_UNAVAILABLE Bitrix24 is unavailable
503 BITRIX_TIMEOUT Bitrix24 did not respond in time

Full list of common API errors — Errors.

Known specifics

  • Only your own application's connections are visible. The list contains connections created by the same Bitrix24 application as the key: an application key sees its own application's connections, a personal key sees connections created through the Bitrix24 account webhooks. Connections of other applications are not included in the list.
  • Upper-case field names. filter and sort also accept field names in upper case with underscores: filter[CONFIG_ID]=1, sort=CONFIG_ID.

See also