What changes with the new system in the sipgate REST API and with sipgate.io?
An overview of all changes to the sipgate REST API and sipgate.io after the switch to the new sipgate Neo system.
Since September 2025, new sipgate accounts are created with sipgate Neo. Existing Classic accounts are being migrated gradually.
With sipgate Neo, the telephony model changes: Channels replace groups and personal phone lines (phonelines). This affects in particular integrations that retrieve call events, start calls, process voicemails, or configure sipgate.io.
SMS and fax functions generally remain available via the REST API.
All REST API endpoints mentioned in this article refer to the base URL https://api.sipgate.com/v2. A complete overview of the endpoints can be found in the Swagger documentation.
Determine account type
The account type is visible in the web interface. To do so, open the profile menu in the top right by clicking your user avatar.
With OAuth2, the account type can also be determined from the claim featureScope in the JWT of the bearer token:
featureScope
Account type
CLASSIC
Classic PBX
NEO_PBX
Neo PBX
Personal Access Tokens are not JWTs and do not contain this claim.
Which endpoints need to be adjusted?
Retrieve and edit groups
/groups
/channels
Personal phone lines
/{userId}/phonelines
/channels
Retrieve calls from history
/history
/channels/{channelId}/events
Retrieve voicemails
/voicemails
Recordings in channel events
Start call
/sessions/calls
/calls
Group faxes
/groupfaxlines
/{userId}/faxlines
The endpoints for groups, phonelines, group faxes, and classic voicemails are not available in Neo accounts.
History and channel events
In Neo, calls are no longer provided via the classic history endpoints. Use instead:
The endpoint returns the call events of a channel. Voicemails as well as manual and automatic call recordings are provided through the field recordings of the respective event.
For pagination, the parameters limit and position are available. The positionposition value from a response can be used as a cursor in the next request.
SMS and fax events remain available via the history endpoints in Neo as well. Unlike Classic, however, the history endpoints in Neo only return events that belong to the user whose credentials were used to authenticate the API request. This restriction applies to all event types available via History. An account-wide event view like in Classic is no longer available.
For accounts migrated from Classic to Neo, call events may temporarily continue to appear in the classic history. New integrations should not rely on this transitional behavior.
Additionally, for channel inbox events: GET /channels/{channelId}/events returns events only if the authenticated API user is a member of the queried channel. An admin role alone does not grant access.
In particular, check integrations that evaluate events account-wide, archive them, or synchronize them with third-party systems.
Channels
Channels replace the previous groups and phonelines in Neo. The REST API provides, among other things, the following functions:
GET /channels
Retrieve channels of the account
GET /channels/{channelId}/events
Retrieve call events and recordings
PUT /channels/{channelId}/name
Rename channel
PUT /channels/{channelId}/users
Set members
PUT /channels/{channelId}/users/{userId}/devices
Set devices of a member
DELETE /channels/{channelId}
Delete channel
Additional settings such as ring order, queue, greeting, as well as ring and after-call time are GET /channels provided, but are currently only readable via the REST API.
Start and control calls
For click-to-dial, Classic and Neo use different endpoints:
Classic:
POST /sessions/callsNeo:
POST /calls
In Neo, a channelId can be specified. If omitted, the API uses the device's default channel. With additionalDevices additional devices can ring in parallel.
The following functions are supported for active Neo calls:
List calls
GET /calls
Supported
Hold/Resume
PUT /calls/{callId}/hold
Supported
Send DTMF
POST /calls/{callId}/dtmf
Supported
Start/stop recording
PUT /calls/{callId}/recording
Supported
Transfer
POST /calls/{callId}/transfer
Supported
End call
DELETE /calls/{callId}
Supported
Mute
PUT /calls/{callId}/muted
Not supported
Play audio file
POST /calls/{callId}/announcements
Not supported
Devices
The endpoint
supports the optional query parameter type. It accepts a comma-separated list of the following values:
The response also includes app extensions.
Fax
Group fax lines are no longer used in Neo. During a migration, existing group fax lines are converted to global fax lines.
Use in Neo:
The endpoints under /groupfaxlines and the fax functions under /groups are available only with Classic PBX. Fax events remain retrievable in Neo via the history endpoints.
sipgate.io Push API
The Push API is compatible with Classic and Neo.
In Classic, webhooks can be configured for extensions.
In Neo, configuration is done for channels.
Webhook URLs must use HTTPS.
Self-signed certificates are not accepted.
The global configuration can be read and changed via the following endpoints:
In the field whitelist Classic extension IDs are passed in Classic, and channel IDs in Neo.
Push API versions
1
Stable
Original Push API contract
2
Beta
Adds channelId in the webhook requests
Version 1 remains unchanged. Version 2 is in beta and adds channelId. It is not generally recommended and should only be used if this information is needed. From version 2 onward, new optional request parameters can be added. Integrations should therefore ignore unknown parameters.
When writing the sipgate.io settings, the version can be selected via pushApiVersion . Each webhook also contains the headers X-Sipgate-Version and X-Sipgate-Lifecycle.
Callflows: differences between Classic and Neo
With the Push API, your server responds to webhook events with XML responses (callflows). In Neo, different rules apply for some actions. An integration must be adjusted if it in particular:
Generates announcements with
<Say>creates,Starts recordings with
<Record>starts,<Device>-targets in<Dial>-responses uses,maxDigitsortimeoutwith0, negative or invalid values,delivers webhook or audio file URLs via HTTP redirect.
Unsupported Classic actions
<Say>
Not supported
Play audio file with <Play> play
<Record>
Not supported
Control recording via REST API
<Device> as <Dial>-target
Response is invalid and will not be executed
Specify target as <Number> specify
Provide voice prompts with <Play> provide
Generate spoken content as an audio file and play it with <Play> . The file must be provided as a mono WAV with 16-bit PCM and 8 kHz at a publicly reachable HTTPS URL:
Control recordings via the REST API
The action <Record> is replaced under Neo by the recording function of the REST API. Start and stop recordings of active calls via PUT /calls/{callId}/recording (see the Start and control calls section). Retrieve completed recordings via the channel events (GET /channels/{channelId}/events, see the History and channel events section).
Channel events are available only in Neo. If your integration processes both Classic and Neo accounts during the transition period, you need both paths: in Classic, continue to use <Record> along with the associated events, and in Neo use the REST API and the channel events.
Forwarding with <Dial>
In Neo, address forwarding destinations via the phone number:
Pay attention to the attributes of <Dial>:
callerIdin E.164 format without a leading+, for example4921112345678.anonymousexclusively withtrueorfalse. Withanonymous="true"a simultaneously setcallerIdis suppressed.If the action contains
<Voicemail />, forwarding occurs exclusively to voicemail. Other call destinations are not dialed,callerIdandanonymousare not evaluated. Therefore use<Voicemail />as the sole target.
DTMF queries with <Gather>
Use exclusively positive integers for maxDigits and timeout Values such as 0, negative values, or invalid numbers make the response invalid. If you omit an attribute, the default value applies: one digit for maxDigits, 2000 milliseconds for timeout.
Timeouts are rounded up to full seconds: 1 to 1000 milliseconds result in one second, 1001 to 2000 milliseconds in two seconds. Whenever possible, use multiples of 1000 milliseconds.
Terminate calls: <Reject> and <Hangup>
<Reject> is valid only in the direct response to a newCall-event. To end a call in a later step, for example in a response to a DTMF-onData-event, use <Hangup />:
Use direct URLs
The Push API follows no HTTP redirects in Neo. Responses with status 301, 302, 303 or 307 are not followed. Use URLs for webhooks and audio files that directly deliver the desired result.
Behavior for unplayable audio files
If an audio file cannot be retrieved due to an HTTP, network, or TLS error, Neo continues with the next action. If a <Gather> used within <Play> cannot be played, the Gather continues without the announcement, keeps collecting DTMF input, and can then invoke the onData-webhook.
Stored callback URLs
Once set, onAnswer- and onHangup-URLs do not have to be repeated in every further response. If you omit the respective attribute, the stored URL remains active for the rest of the call flow.
Stored URLs can be replaced: a onAnswer- or onHangup-URL in a successful onData-response by setting the attribute again, a onHangup-URL additionally in a valid onAnswer-response.
Check before a migration
An integration must be adjusted if it in particular:
retrieves groups or phonelines,
centrally retrieves events of multiple or all account users,
processes calls or voicemails via History,
is supposed to retrieve channel inbox events without the API user's membership,
calls via
/sessions/callsstarts,uses classic voicemail endpoints,
uses Push API callflows with
<Say>,<Record>,<Device>-targets, invalid Gather values, or HTTP redirects,processes group faxes or
configures sipgate.io based on extension IDs.
After the adjustment, the integration should take the account type into account and use the appropriate Classic or Neo endpoints depending on featureScope that.
Last updated

