Description
https://speedsms.in/ docs
Messaging API
Voice API
Verify API
SIP Trunking
Phone Numbers
More
Support
Login
Getting Started
Voice Concepts
Use Case Guides
API Reference
XML Reference
Client SDKs
Call Insights
Troubleshooting
LATEST LEGACY
Python
Ruby
Node
PHP
Java
.NET
Go
cURL
Overview
The https://speedsms.in/ Voice API uses HTTP verbs and standard HTTP status codes to make it easier for you to integrate communications into your code. To secure your requests to our servers, we serve our API calls over HTTPS.
Note: The current version of the API is v1, and the server SDKs are versioned as latest and legacy.
API Endpoint
POST
https://speedsms.in//{version}/
API requests
https://speedsms.in/ exposes a list of REST APIs to perform various actions. You can use these APIs in combination with XML documents to create voice and SMS applications.
POST
https://speedsms.in//v1/
Authentication
All requests to https://speedsms.in/ API are authenticated with BasicAuth using the values of AUTH ID and AUTH TOKEN that appear on the Overview page of the console.
Content-Type
https://speedsms.in/ only accepts input of the type application/json.
All POST request arguments must be passed as text in JSON format with the Content-Type set as application/json.
All GET and DELETE request arguments must be passed in the query string.
Timeouts and proxies
https://speedsms.in/’s server SDKs let you specify timeouts and proxy settings to be used when making API requests. Select the programming language of your choice and view the latest version to see how to specify these settings.
Pagination
https://speedsms.in/ uses offset-based pagination to list resources.
For instance, if your search request has a result of 100 objects with limit = 10 and offset = 5, then objects with indices 51 through 60 are returned.
Parameters used for pagination
limit
integer
A limit on the number of results to be returned. limit can range between 1 and 20, and the default is 20.
offset
integer
A pagination cursor to denote the number of objects by which the results should be offset.
Asynchronous requests
All requests to https://speedsms.in/ APIs can be made asynchronous by adding the parameters listed below. When you make an asynchronous API call, https://speedsms.in/ returns a generic response with the api_id, and sends the API responses to the specified callback URL.
Arguments
callback_url
The URL notified by the API response is available and to which the response is sent.
callback_method
The method used to notify the callback_url.
Defaults to POST.
API responses
https://speedsms.in/ API endpoints return responses in JSON format. https://speedsms.in/ sets an api_id in each response to uniquely identify your request. Each API call returns one of these HTTP status codes depending on whether the call succeeds or fails.
200
Request has been executed
201
Resource created
202
Resource changed
204
Resource deleted
400
A parameter is missing or is invalid
401
Authentication failed
404
Resource cannot be found
405
HTTP method not allowed
429
Too many requests, rate limited
500
Server error
Note: Casing convention of the responses:
Python: Snake case
Node.js: Camel case
Go: Camel case
Java: Camel case
.NET: Pascal case
Ruby: Snake case
PHP: Camel case
Response examples
Response attributes
api_id
string
Identifies the request.
error
string
Indicates an error and provides information regarding the error.
message
string
Provides information regarding the request.
Call
A Call object is created when an outbound call is initiated or when an inbound call is received. You can use a Call object to interact with ongoing calls, retrieve details about completed calls, and transfer ongoing calls, thereby building custom call flows.
API Endpoint
BaseURI
https://speedsms.in//v1/Account/{auth_id}/Call/
The Call object
A Call object is created when an outbound call is initiated or when an inbound call is received. You can use the Call object to interact with ongoing calls, retrieve details about completed calls, and transfer ongoing calls, thereby building custom call flows.
Attributes
answer_time
string
The timestamp when the call was answered.
Timezone: Local timezone as updated in the https://speedsms.in/ console
Format: yyyy-MM-dd HH:mm:ss
bill_duration
integer
The duration of the call in seconds.
billed_duration
integer
The duration for which the call was billed in seconds. This might be different from the bill_duration based on the billing interval of the prefix called.
call_direction
string
Indicates whether the call was outbound or inbound.
call_duration
integer
The duration of the call in seconds.
call_uuid
string
The unique identifier used to identify the call.
end_time
string
The timestamp when the call ended.
Timezone: Local timezone as updated in the https://speedsms.in/ console
Format: yyyy-MM-dd HH:mm:ss
from_number
string
The caller ID using which the call was initiated.
initiation_time
string
The timestamp when the call was initiated.
Timezone: Local timezone as updated in the https://speedsms.in/ console
Format: yyyy-MM-dd HH:mm:ss
parent_call_uuid
string
The call UUID of the A leg of the call.
resource_uri
string
The URI of the resource requested.
stir_verification
string
For outbound calls: Gives details about the attestation assigned to the call by https://speedsms.in/
For inbound calls: Gives details about the attestation received on the inbound call to your https://speedsms.in/ phone number.
Possible values:
Verified means the call is from a verified caller who has authorized access to the customer’s caller ID, and hence should be treated with confidence. Verified is equivalent to attestation level A.
Not Verified means that, for this call, either the caller is not verified, or it’s uncertain whether they have access to the caller ID used, or both. Not Verified means the call received attestation level B or C.
Not Applicable means STIR/SHAKEN doesn’t apply to this call, as would be the case if a call is not addressed to a US number or if it’s a cloud call (WebRTC or SIP).
Read more about STIR/SHAKEN.
to_number
string
The number to which the call was initiated.
total_amount
string
The total amount charged for the call.
total_rate
string
The per-minute rate charged based on the destination number.
hangup_cause_name
The reason for the call hangup. Refer to our list of hangup causes and sources.
hangup_cause_code
The integer code for the hangup cause. Refer to our list of hangup causes and sources.
hangup_source
The entity that triggered the call hangup. Possible hangup sources are: Caller, Callee, https://speedsms.in/, API Request, Answer XML, Error, and Unknown.
Refer to our list of hangup causes and sources.
source_ip
string
The source_ip field returns the IP address from which the call request originated. We recommend you monitor this field as a method to identify any potential account misuse and unauthorized access attempts.
Make an outbound call
This method lets you initiate an outbound call to a PSTN number or a SIP endpoint, and make simultaneous bulk calls.
API Endpoint
POST
https://speedsms.in//v1/Account/{auth_id}/Call/
Arguments
from
Required
The phone number to be used as the caller ID for the call. The format should be the country code followed by the number. Example: 14157654321 (for the United States)
to
Required
The destination to be called. The destination can be either a regular number or a SIP endpoint.
A regular number should be specified with the country code followed by the number. Example: 14157654321
If you’re calling a SIP endpoint, the to field should be a valid SIP URI. Example: sip:john1234@phone.https://speedsms.in/.com
You can initiate calls to multiple numbers and endpoints at once (bulk calls) by using the delimiter <. For example, if you want to call two numbers and one SIP endpoint, specify in the to field: 14157654321<14153464321
hangup_on_ring
Sets a limit on the maximum duration of the call in seconds, similar to time_limit, but instead of calculating the limit from the time call is answered, this parameter calculates the limit from the time call starts ringing. The hangup_on_ring value must be a positive integer.
machine_detection
Detects whether the call has been answered by a machine.
Allows values: true, hangup
If set to true, then if a machine is detected at the beginning of the call, any URL that is invoked by the call (answer_url, hangup_url, etc.) will be POSTed with the machine parameter set to true.
If you want to hang up the call if a machine is detected, set this parameter to hangup. This will hang up the call and POST to the hangup_url with the machine parameter set to machine_detection.
machine_detection_time
Defines the time allotted, in milliseconds, to decide whether a machine is detected.
Allowed values: 2000 through 10000
Defaults to 5000.
machine_detection_url
Callback-retry configurable
The URL invoked with machine detection parameters. The list of parameters sent with the request are described in asynchronous machine detection section below. These parameters should be used to make machine detection asynchronous.
machine_detection_method
The HTTP verb that should be used to invoke the machine_detection_url.
Defaults to POST.
sip_headers
List of SIP headers in the form of key=value pairs, separated by commas — for example, head1=val1,head2=val2,head3=val3,…,headN=valN.
The SIP headers specified are automatically prefixed with “X-PH-” and these headers will be present for all the HTTP requests that are being made
Valid values for SIP header keys and values are integers and uppercase and lowercase letters.
ring_timeout
Defines how long in seconds an unanswered call should ring before hanging up.
Defaults to 120.
parent_call_uuid
The call_uuid of the first leg in an ongoing conference. This parameter is helpful in minimizing the delay of adding a new member to a conference.
Note: This parameter is honored only for single calls and not for bulk calls. See this post for more information.
error_if_parent_not_found
Defines the behavior of how to use parent_call_uuid. If set to true, then if parent_call_uuid is not found, the call is not initiated and it returns an error. If set to false, then the call is initiated ignoring any errors with the parent_call_uuid.
Defaults to false.
Callbacks
For every single voice call you make and receive, https://speedsms.in/ sends a status update to your URL configured as a callback. You can read and store the information on your server for analysis, and you can change the flow of ongoing calls based on the values received in the callback events.
Callbacks involve URLs such as answer_url, fallback_url, hangup_url, and ring_url.
List of parameters sent to ring_url
From
string
The from number used as the caller ID to initiate the call.
To
string
The destination that’s called.
RequestUUID
string
An identifier that can uniquely identify a request.
ALegRequestUUID
string
Identifies the first leg of the call in case there are multiple legs.
CallUUID
string
The identifier of the call.
Direction
string
The direction of the call. This will have the value “outbound” since this is an outbound API call.
Event
string
The event that triggered this notification. This will have the value “Ring”.
CallStatus
string
The status of the call. This will have the value “ringing”.
SessionStart
string
A timestamp that indicates when early media started. Format: YYYY-MM-DD HH:mm:ss.sssss Timezone: UTC
STIRAttestation
string
Gives details about the attestation assigned to the call by https://speedsms.in/.
List of parameters sent to answer_url and fallback_url
From
string
The from number used as the caller ID to initiate the call.
To
string
The destination that’s called.
RequestUUID
string
An identifier that can uniquely identify a call.
ALegRequestUUID
string
Identifies the first leg of the call in case there are multiple legs.
CallUUID
string
The identifier of the call.
Direction
string
The direction of the call. This will have the value “outbound” since this is an outbound API call.
ALegUUID
string
An unique identifier for the A leg of the call.
Event
string
The event that triggered this notification. This will have the value “StartApp”.
stir_verification
string
For outbound calls: Gives details about the attestation assigned to the call by https://speedsms.in/
For inbound calls: Gives details about the attestation received on the inbound call to your https://speedsms.in/ phone number.
Possible values:
Verified means the call is from a verified caller who has authorized access to the customer’s caller ID, and hence should be treated with confidence. Verified is equivalent to attestation level A.
Not Verified means that, for this call, either the caller is not verified, or it’s uncertain whether they have access to the caller ID used, or both. Not Verified means the call received attestation level B or C.
Not Applicable means STIR/SHAKEN doesn’t apply to this call, as would be the case if a call is not addressed to a US number or if it’s a cloud call (WebRTC or SIP).
Read more about STIR/SHAKEN.
CallStatus
string
The status of the call. This will have the value “in-progress”.
SessionStart
string
A timestamp that indicates when early media started. Format: YYYY-MM-DD HH:mm:ss.sssss Timezone: UTC
STIRAttestation
string
Gives details about the attestation assigned to the call by https://speedsms.in/.
List of parameters sent to hangup_url
From
string
The from number used as the caller ID to initiate the call.
To
string
The destination that’s called.
RequestUUID
string
An identifier that can uniquely identify a call.
ALegRequestUUID
string
Identifies the first leg of the call in case there are multiple legs
CallUUID
string
The identifier of the call.
Direction
string
The direction of the call. This will be “outbound” since this is an outbound API call.
ALegUUID
string
An unique identifier for the A leg of the call.
Event
string
The event that triggered this notification. This will have the value “Hangup”.
stir_verification
string
For outbound calls: Gives details about the attestation assigned to the call by https://speedsms.in/
For inbound calls: Gives details about the attestation received on the inbound call to your https://speedsms.in/ phone number.
Possible values:
Verified means the call is from a verified caller who has authorized access to the customer’s caller ID, and hence should be treated with confidence. Verified is equivalent to attestation level A.
Not Verified means that, for this call, either the caller is not verified, or it’s uncertain whether they have access to the caller ID used, or both. Not Verified means the call received attestation level B or C.
Not Applicable means STIR/SHAKEN doesn’t apply to this call, as would be the case if a call is not addressed to a US number or if it’s a cloud call (WebRTC or SIP).
Read more about STIR/SHAKEN.
CallStatus
string
The status of the call. This will have the value “completed”.
StartTime
string
A timestamp that indicates when the call was initiated. Timezone: Local timezone as updated in your https://speedsms.in/ Console Format: yyyy-MM-dd HH:mm:ss.
AnswerTime
string
A timestamp that indicates when the call was answered. Timezone: Local timezone as updated in your https://speedsms.in/ Console Format: yyyy-MM-dd HH:mm:ss.
SessionStart
string
A timestamp that indicates when early media started. Format: YYYY-MM-DD HH:mm:ss.sssss Timezone: UTC
EndTime
string
A timestamp that indicates when the call ended. Timezone: Local timezone as updated in your https://speedsms.in/ Console Format: yyyy-MM-dd HH:mm:ss.
STIRAttestation
string
Gives details about the attestation assigned to the call by https://speedsms.in/.
Asynchronous machine detection
You can take action on detecting an answering machine during a call by setting the machine_detection_url parameter when firing an outbound call API. https://speedsms.in/ will detect an answering machine in the background and invoke the machine_detection_url with these parameters.
Parameters sent to machine_detection_url
From
string
The from number used to initiate the call.
Machine
boolean
Set to true if a machine is detected.
To
string
The destination of the call.
RequestUUID
string
An identifier that can uniquely identify a call.
ALegRequestUUID
string
Identifies the first leg of the call in case there are multiple legs.
CallUUID
string
The identifier used to identify the call.
IfMachine
string
This parameter can be either continue or hangup depending on the machine_detection parameter set while initiating the call.
Direction
string
The direction of the call. This will be “outbound” since we support machine detection only on outbound calls.
ALegUUID
string
An unique identifier for the A leg of the call
Event
string
The event that triggered this notification. This will have the value “MachineDetection”.
CallStatus
string
The status of the call. This will have the value “in-progress”.
Returns
If successful, this endpoint returns a unique identifier that can be used to identify the call.
Get call detail record (CDR) of a call
This method lets you retrieve the call detail record (CDR) of a call.
API Endpoint
GET
https://speedsms.in//v1/Account/{auth_id}/Call/{call_uuid}/
Arguments
No arguments need to be passed.
Returns
Returns the call detail record of the call identified using the given call UUID as the Call object.
Transfer a call
This API enables an in-progress or ongoing call to fetch and execute XML from a different URL. If the call (the A leg) is in a Dial, you can also transfer the other party (the B leg) at the same time, or only transfer the B leg to a URL. This is useful for applications where you want to asynchronously change the behavior of a live call. For example, you can play music while a call is on hold, queue calls, or transfer calls.
API Endpoint
POST
https://speedsms.in//v1/Account/{auth_id}/Call/{call_uuid}/
Arguments
legs
Valid values are aleg, bleg, or both. aleg transfers call_uuid. bleg transfers the bridged leg of call_uuid. both transfers both legs.
aleg_url
Callback-retry configurable
The URL to fetch XML from for the A leg. This argument needs to be specified if the legs parameter is either aleg or both.
aleg_method
The HTTP verb to invoke the aleg_url.
Defaults to POST.
bleg_url
Callback-retry configurable
The URL to fetch XML from for the B leg. This need to be specified if the legs parameter is either bleg or both.
bleg_method
The HTTP verb to invoke the bleg_url.
Defaults to POST.
Returns
Returns an acknowledgement that the call is transferred.
Hang up a specific call
This method lets you hang up an ongoing call or cancel a queued outbound call. If you want to hang up an incoming call without answering it, see the documentation on the Hangup XML element.
API Endpoint
DELETE
https://speedsms.in//v1/Account/{auth_id}/Call/{call_uuid}/
Note: If CallUUID is not specified, all ongoing calls in that account will get disconnected.
Arguments
No arguments need to be passed.
Posting call quality feedback using the API
This method lets you post feedback for calls. You can access call quality feedback information received through this API on the Call Debug UI, and view aggregated reports on the Call Insights Reporting dashboard.
API Endpoint
POST
https://stats.https://speedsms.in/.com/v1/Call/{call_uuid}/Feedback/
Arguments
call_uuid
Required
The call UUID of the call for which feedback is being posted.
rating
Required
Quality rating for the call.
Allowed values: float between [1,5]. PS: for integer values both ‘x’ or ‘x.`0’ are accepted.
issues
Required only if rating is <5
List of issues observed on the call. One or more of the following:
AUDIO_LAG, BROKEN_AUDIO, CALL_DROPPED, CALLERID_ISSUE, DIGITS_NOT_CAPTURED, ECHO, HIGH_CONNECT_TIME, LOW_AUDIO_LEVEL, ONE_WAY_AUDIO, OTHERS, ROBOTIC_AUDIO
Notes Optional free text field that can be used to send descriptive feedback for the call.
HTTP responses we send
HTTP Status Code Message
201 Feedback has been posted
401 Authentication failed
404 Resource cannot be found*
404 Please check the Call UUID**
405 HTTP method not allowed
422 Rating has to be a float between 1 -5
422 Issues have to be an array of one or more than one of the following: AUDIO_LAG, BROKEN_AUDIO, CALL_DROPPPED, CALLERID_ISSUES, DIGITS_NOT_CAPTURED, ECHO, HIGH_CONNECT_TIME, LOW_AUDIO_LEVEL, ONE_WAY_AUDIO, OTHERS, ROBOTIC_AUDIO
500 Server error
* Generic response indicating error in resource used in the Post API call
** Specific response indicating the error in call UUID used in Post API call
Response attributes
HTTP status code HTTP status code from the list above
api_id Identifies the request
error Indicates there’s an error and provides information regarding the error
message Provides information regarding the feedback post
Retrieve details of all calls
This method lets you retrieve details of all completed calls. The maximum number of results that you can fetch with a single API call is 20.
API Endpoint
GET
https://speedsms.in//v1/Account/{auth_id}/Call/
Arguments
subaccount
optional
The ID of a subaccount, if you want to retrieve only calls made from a specific subaccount.
call_direction
optional
The direction of the call, if you want to filter results by call direction.
Allowed values: inbound, outbound
from_number
optional
The number from which the calls were made, if you want to filter results by source number. You can filter the details by using the exact number or the prefix.
to_number
optional
The destination number to which the calls were made, if you want to filter results by destination. You can filter the details by using the exact number or the prefix.
parent_call_uuid
optional
Set this request parameter to the call UUID of an A leg to fetch all the B legs associated with it.
bill_duration
optional
Filters calls by billed duration in seconds. The filter can be used in these five forms:
bill_duration: Input the exact value. For example, to retrieve calls that were exactly three minutes long, use bill_duration=180
bill_duration__gt: gt stands for greater than. To retrieve calls that were more than two hours long, use bill_duration__gt=7200
bill_duration__gte: gte stands for greater than or equal to. To retrieve calls that were two hours or more in duration, use bill_duration__gte=7200
bill_duration__lt: lt stands for less than. To retrieve calls that were less than seven minutes long, use bill_duration__lt=420
bill_duration__lte: lte stands for lesser than or equal to. To retrieve calls that were two hours or less in duration, use bill_duration__lte=7200
end_time
optional
Filters calls by their completion time. The time format expected is YYYY-MM-DD HH:MM[:ss[.uuuuuu]]. The filter can be used in these five forms:
end_time: To get all calls that ended at 2021-03-21 11:47[:30], use end_time=2021-03-21 11:47[:30]
end_time__gt: gt stands for greater than. To get all calls that ended after 2021-03-21 11:47, use end_time__gt=2021-03-21 11:47
end_time__gte: gte stands for greater than or equal to. To get all calls that ended after or exactly at 2021-03-21 11:47[:30], use end_time__gte=2021-03-21 11:47[:30]
end_time__lt: lt stands for less than. To get all calls that ended before 2021-03-21 11:47, use end_time__lt=2021-03-21 11:47
end_time__lte: lte stands for less than or equal to. To get all calls that ended before or exactly at 2021-03-21 11:47[:30], use end_time__lte=2021-03-21 11:47[:30]
Note: Calls made only in the last 90-days can be retrieved via APIs.
You can combine these filters to get call detail records that were added during a particular time range.
If you don’t use the end_time filter when you search, https://speedsms.in/ uses a search window of the last seven days from the current date. Alternatively, you can use end_time__[lt|lte] and end_time__[gt|gte] to search a range of times for CDRs of up to 30 days of search boundary. If the provided range exceeds the 30-day boundary, the API will return a 400 response code, signaling an error.
Timestamp values need to be specified as UTC.
hangup_cause_code
optional
Retrieves calls that were hung up with a specific hangup cause. Refer to our list of hangup causes and sources.
hangup_source
optional
Retrieves calls that were hung up by a specific hangup source. Refer to our list of hangup causes and sources.
limit
optional
Limits the number of results retrieved. The maximum it can be set to is 20.
Defaults to 20.
offset
optional
Denotes the number of value items by which the results should be offset. For example, if the results contains 1,000 values and limit is set to 10 and offset is set to 705, then values 706 through 715 are displayed in the results. This parameter is also used for pagination of the results.
stir_verification
optional
For outbound calls: Gives details about the attestation assigned to the call by https://speedsms.in/
For inbound calls: Gives details about the attestation received on the inbound call to your https://speedsms.in/ phone number.
Allowed values:
Verified means the call is from a verified caller who has authorized access to the customer’s caller ID, and hence should be treated with confidence. Verified is equivalent to attestation level A.
Not Verified means that, for this call, either the caller is not verified, or it’s uncertain whether they have access to the caller ID used, or both. Not Verified means the call received attestation level B or C.
Not Applicable means STIR/SHAKEN doesn’t apply to this call, as would be the case if a call is not addressed to a US number or if it’s a cloud call (WebRTC or SIP).
Read more about STIR/SHAKEN.
Returns
Returns the call objects that match the filters specified in the request.
Get details of a specific ongoing call
This method lets you retrieve details of a specific ongoing call.
API Endpoint
GET
https://speedsms.in//v1/Account/{auth_id}/Call/{call_uuid}/?status=live
Arguments
No arguments need to be passed.
Returns
Returns the details of the specific call as a Call object.
Get details of all ongoing calls
This method lets you retrieve details of all ongoing calls made from an account.
API Endpoint
GET
https://speedsms.in//v1/Account/{auth_id}/Call/?status=live
Arguments
call_direction
optional
The direction of the call, if you want to filter results by call direction.
Allowed values: inbound, outbound
from_number
optional
The number from which the calls were made, if you want to filter results by source number. You can filter the details by using the exact number or the prefix.
to_number
optional
The number to which the calls were made, if you want to filter results by destination called. You can filter the details by using the exact number or the prefix.
Returns
Returns the call UUIDs of all ongoing calls.
Retrieve All Live Calls v2
The method outlined below allows you to retrieve the details of all ongoing calls from an account.
API Endpoint
GET
https://speedsms.in//v2/Account/{auth_id}/Call/?status=live
Arguments
call_direction
optional
The direction of the call, if you want to filter results by call direction.
Allowed values: inbound, outbound
number
optional
The number from/to which the calls were made. You can filter results by source & destination number using the exact number or the prefix.
Returns
Returns the call UUIDs along with the call details of all ongoing calls.
Retrieve a queued call
This method lets you retrieve details of a specific queued call. The maximum number of results that you can fetch with a single API call is 20.
API Endpoint
GET
https://speedsms.in//v1/Account/{auth_id}/Call/{call_uuid}/?status=queued
Arguments
No arguments need to be passed.
Returns
Returns the call objects that match the filters specified in the request.
Retrieve all queued calls
This method lets you retrieve details of all queued calls. The maximum number of results that can be fetched with a single API call is 20.
API Endpoint
GET
https://speedsms.in//v1/Account/{auth_id}/Call/?status=queued
Arguments
No extra arguments need to be passed.
Returns
Returns the call objects that match the filters specified in the request.
Record calls
The Record endpoint lets you start and stop recording specific portions of an active call. You can use this API to create multiple recordings on the same call.
API Endpoint
BaseURI
https://speedsms.in//v1/Account/{auth_id}/Call/{call_uuid}/Record/
Start recording a call
This endpoint lets you start recording a call.
API Endpoint
POST
https://speedsms.in//v1/Account/{auth_id}/Call/{call_uuid}/Record/
Arguments
time_limit
integer
Sets the maximum duration, in seconds, of the recording.
Defaults to 60.
file_format
string
The file format for the recording.
Allowed values: mp3 and wav
Default is mp3.
transcription_type
string
auto: Transcription is automated; the turnaround time is under 5 minutes which linearly increases with call duration.
Transcription charges and details are available on our pricing page.
Note: Transcription service is available only in English, and limited to calls with a duration greater than 500 milliseconds and less than 4 hours, with a recording file size smaller than 2GB.
transcription_url
string
Callback-retry configurable
The URL to which the transcription should be posted.
Note: The transcription information is sent to this URL via an HTTP POST callback.
callback_url
string
Callback-retry configurable
The URL to be invoked when the recording ends. The details to be posted to the URL are documented in the Callback URL section below.
callback_method
string
The HTTP verb used to invoke the callback_url.
Allowed values: GET, POST
Defaults to POST.
Callback URL
These details are posted when the callback URL is invoked after the recording ends.
List of parameters sent to the callback URL
api_id
The API ID that was returned by the Record API.
record_url
The URL where the recorded file can be accessed.
call_uuid
The call_uuid of the call on which this recording was made.
recording_id
The recording_id returned by the Record API.
recording_duration
The recording duration in seconds.
recording_duration_ms
The recording duration in milliseconds.
recording_start_ms
The start time of the recording since epoch in milliseconds.
recording_end_ms
The end time of the recording since epoch in milliseconds.
List of parameters sent to the transcription URL
transcription_charge
The credit deducted for the transcription.
transcription
The transcribed text of the recording.
duration
The duration in seconds of the recording.
call_uuid
The call UUID of the call that was transcribed.
transcription_rate
The rate of the transcription per minute.
recording_id
The recording ID of the transcribed recording.
error May be Recording duration too long for transcription or Recording file size too large for transcription. Empty if transcription is successful.
Note: .mp3 files are smaller in size than .wav files. Consider changing the recording file format to .mp3 if you see this error.
Returns
If successful, this endpoint returns an acknowledgement that the recording has started along with a URL to access the recording.
Stop currently active recording
This endpoint lets you stop active recordings on a call. Since a call can have multiple ongoing recordings, this endpoint lets you choose a specific recording to stop, or you can stop all ongoing recordings.
API Endpoint
DELETE
https://speedsms.in//v1/Account/{auth_id}/Call/{call_uuid}/Record/
Arguments
URL
string
You can specify a record URL to stop only one record. By default, all recordings are stopped.
Play audio on calls
The Play endpoint lets you play an audio file to users in an ongoing call. The common use case for this object is to play automated notifications or music while someone is waiting on a call.
API Endpoint
BaseURI
https://speedsms.in//v1/Account/{auth_id}/Call/{call_uuid}/Play/
Play audio on a call
This endpoint allows you to play an audio file during an active call. https://speedsms.in/ supports .mp3 and .wav audio files.
API Endpoint
POST
https://speedsms.in//v1/Account/{auth_id}/Call/{call_uuid}/Play/
Arguments
urls
Required
A URL or a list of comma-separated URLs linking to an .mp3 or .wav file.
length
integer
The maximum length, in seconds, to play this audio file.
legs
string
The call leg in which the audio is to be played.
Allowed values: aleg (first leg of the call), bleg (second leg of the call), or both.
Defaults to aleg.
loop
boolean
When set to true, audio file plays indefinitely.
Defaults to false.
mix
boolean
Used to determine the behavior of current call audio when the file is being played. If set to false, then participants cannot hear anyone speaking in the call until the play audio stops. If set to true, call audio and play audio are mixed and played.
Defaults to true.
Returns
Returns the acknowledgement that the audio file has started playing.
Stop playing audio on a call
This endpoint lets you stop an already playing audio file during an active call.
API Endpoint
DELETE
https://speedsms.in//v1/Account/{auth_id}/Call/{call_uuid}/Play/
Arguments
No arguments need to be passed.
Speak text on calls
The Speak API lets you play spoken versions of text during ongoing calls. It uses https://speedsms.in/’s text-to-speech engine to convert written text and speak it. You can use it to play notifications to customer while they’re waiting on hold.
API Endpoint
BaseURI
https://speedsms.in//v1/Account/{auth_id}/Call/{call_uuid}/Speak/
Play text during a call
This endpoint lets you speak text in an active call.
API Endpoint
POST
https://speedsms.in//v1/Account/{auth_id}/Call/{call_uuid}/Speak/
Arguments
text
Required
The text that needs to be spoken.
voice
string
The voice in which the text should be spoken.
Allowed values: MAN, WOMAN.
Defaults to WOMAN.
language
string
The language used to speak the text. The default language is US English (en-US). You can see the list of supported languages below.
legs
string
The call leg in which the text is to be spoken.
Allowed values: aleg (first leg of the call), bleg (second leg of the call), or both
Defaults to aleg.
loop
boolean
If set to true, the text will be spoken repeatedly unless stopped.
Defaults to false.
mix
boolean
This flag determines the behavior of current call audio when the file is being played. If set to false, then call participants cannot hear anyone speaking in the call until play is stopped. If set to true, both call audio and played audio are mixed and played.
Defaults to true.
List of languages supported
Arabic
arb
Only WOMAN voice
Chinese Mandarin
cmn-CN
Only WOMAN voice
Danish (Denmark)
da-DK
Both WOMAN and MAN voices
Dutch (Netherlands)
nl-NL
Both WOMAN and MAN voices
English (Australia)
en-AU
Both WOMAN and MAN voices
English (India)
en-IN
Only WOMAN voice
English (UK)
en-GB
Both WOMAN and MAN voices
English (US)
en-US
Both WOMAN and MAN voices
English (Welsh)
en-GB-WLS
only MAN voice
French (Canada)
fr-CA
Only WOMAN voice
French (France)
fr-FR
Both WOMAN and MAN voices
German (Germany)
de-DE
Both WOMAN and MAN voices
Hindi (India)
hi-IN
Only WOMAN voice
Icelandic (Iceland)
is-IS
Both WOMAN and MAN voices
Italian (Italy)
it-IT
Both WOMAN and MAN voices
Japanese (Japan)
ja-JP
Both WOMAN and MAN voices
Korean (South Korea)
ko-KR
Only WOMAN voice
Norwegian (Norway)
nb-NO
Only WOMAN voice
Polish (Poland)
pl-PL
Both WOMAN and MAN voices
Portuguese (Brazil)
pt-BR
Both WOMAN and MAN voices
Portuguese (Portugal)
pt-PT
Both WOMAN and MAN voices
Romanian (Romania)
ro-RO
Only WOMAN voice
Russian (Russia)
ru-RU
Both WOMAN and MAN voices
Spanish (Mexico)
es-MX
Only WOMAN voice
Spanish (Spain)
es-ES
Both WOMAN and MAN voices
Spanish (US)
es-US
Both WOMAN and MAN voices
Swedish (Sweden)
sv-SE
Only WOMAN voice
Turkish (Turkey)
tr-TR
Only WOMAN voice
Welsh (Wales)
cy-GB
Only WOMAN voice
Returns
If successful, this endpoint returns an acknowledgement that the written text is being spoken in the call
Stop speaking text during a call
This endpoint lets you stop active text being spoken during a call.
API Endpoint
DELETE
https://speedsms.in//v1/Account/{auth_id}/Call/{call_uuid}/Speak/
Arguments
No arguments need to be passed.
DTMF
DTMF is the tone that’s generated whenever a key is pressed in an active call. This resource allows you to send DTMF digits in an active call. The common use case for using this object is to automate sending of specific digits to a receiver in an outbound call.
API Endpoint
BaseURI
https://speedsms.in//v1/Account/{auth_id}/Call/{call_uuid}/DTMF/
Send digits on an active call
This endpoint lets you send DTMF digits on an active call.
API Endpoint
POST
https://speedsms.in//v1/Account/{auth_id}/Call/{call_uuid}/DTMF/
Arguments
digits
Required
Set of digits that need to be sent over the call.
leg
string
This is the leg of the call in which the DTMF should be sent. This can take the values aleg (the current call) or bleg (the other party in a call).
Defaults to aleg.
Returns
Returns the acknowledgement that the DTMF is sent.
Multiparty call Beta
A multiparty call (MPC) allows multiple users with specific roles to dial into a single call. While conferences also allow multiple users to join a single call, multiparty calls are better suited for call centers or sales dialer use cases such as:
Assigning a specific role to each call participant — agent, customer, or supervisor.
Discreetly allowing supervisors to coach agents without being heard by customers. Check our Supervisor coaching guide for more information.
Dialing members out of the MPC using API requests.
Transferring calls into an MPC with a single API request.
For traditional “meeting” use cases where more participants may need to be connected, please checkout our conference offering.
An MPC can be initiated using either Add a Participant API or MPC XML with one or more participants. Also, participants can be added to an existing/ongoing MPC using the Add a Participant API or MPC XML.
Note: To initiate an MPC, at least 1 participant should be added to the call.
API Endpoint
BaseURI
https://speedsms.in//v1/Account/{auth_id}/MultiPartyCall/name_{mpc_name}/
Note: In all APIs related to MPC, you can use mpc_uuid instead of mpc_name — for example, https://speedsms.in//v1/Account/{auth_id}/MultiPartyCall/uuid_{mpc_uuid}/
The Multiparty Call Object
Arguments
UUID
string
UUID of this MPC object.
Account Id
string
Account/subaccount associated with the MPC.
Subaccount Id
string
Subaccount associated with the MPC.
Creation Time
timestamp
Date and time at which the MPC was created in the account.
Format: YYYY-MM-DD HH:mm:ss+|-hh:mm
Start Time
timestamp
Timestamp of when this MPC was started.
Format: YYYY-MM-DD HH:mm:ss+|-hh:mm
End Time
timestamp
Timestamp of when this MPC ended. YYYY-MM-DD HH:mm:ss+|-hh:mm This value is null if the MPC has not ended.
Friendly Name
string
Name given to this MPC by the user.This name must be unique for the account across all live MPCs.
Status
string
Current status of the MPC. Possible values are:
- Initialized: The MPC has been initialized.
- Active: Participants have joined the MPC and the MPC has started.
- Ended: The MPC has ended.
Max Participants
string
Maximum number of participants that can be part of an MPC at any given time.
Max Duration
string
Maximum period (in seconds) for which this MPC can run. Max Duration is counted from the call initiation time.
Stay Alone
boolean
Whether any participant can remain alone in the MPC.
Duration
string
Total duration of the MPC.This value is null if the MPC has not ended.
Wait Music URL
string
Music that should be played for waiting participants if the MPC has not yet started.
Wait Music Method
string
HTTP verb that should be used to invoke the URL configured as wait_music_url.
Agent Hold Music URL
string
Hold music that should be played to participants that have the role Agent when they’re on hold.
Agent Hold Music Method
string
HTTP verb that should be used to invoke the URL configured as agent_hold_music_url.
Customer Hold Music URL
string
Hold music that should be played to participants that have the role Customer when they’re on hold.
Customer Hold Music Method
string
HTTP verb that should be used to invoke the URL configured as customer_hold_music_url.
Duration
string
Total duration in seconds of the MPC from start to end. This value is null if the MPC has not ended.billed duration
Billed Duration
string
Duration in seconds for which all participants in the MPC were billed. This value is null if the MPC has not ended.
Billed Amount
string
Amount charged for this call for all participants, in USD. This value is null if the MPC has not ended.
Termination Cause
string
The reason for the MPC termination. Refer to this page for a comprehensive list of termination causes and sources.
Termination Cause Code
string
A unique integer code for the termination cause. Refer to this page for a comprehensive list of hangup causes and sources.
Participants
string
URL pointing to the list of participants associated with this MPC.
Activate a Multiparty Call
You can trigger this request to activate an MPC initialized with at least one participant.
Note: This API is only used to activate an MPC that is created in initialized state with one or more participants (participants with start_mpc_on_enter set to false). To start a new MPC, use Add a Participant API or MPC XML.
API Endpoint
POST
https://speedsms.in//v1/Account/{auth_id}/MultiPartyCall/name_{mpc_name}/
Arguments
status Current status of the MPC. Allowed value: Active.
Returns
Returns 404 Not Found if the MPC is not found for the given name or UUID in the initiated state. Else, returns 204 without content.
Retrieve a multiparty call
Allows you to retrieve details of a specific multiparty call.
API Endpoint
GET
https://speedsms.in//v1/Account/{auth_id}/MultiPartyCall/name_{mpc_name}/
Arguments
No arguments need to be passed.
Returns
Returns the details of the specific multiparty call.
Note: You can fetch the details of an MPC using its name only for an ongoing multiparty call. For details of a call that has ended, specify the UUID instead of the name.
Retrieve all multiparty calls
Lets you retrieve details of a list of multiparty calls made from an account.
API Endpoint
GET
https://speedsms.in//v1/Account/{auth_id}/MultiPartyCall/
Arguments
friendly_name
MPC name provided during the creation of the MPC.
status
The current status of the MPC.
Allowed values: initialized, active, ended
termination_cause_code
A unique integer code for the termination cause.
Possible cause codes are:
1000: No Active Participants
1010: Stay Alone Not Permitted
2000: Max Duration Reached
3000: Hangup API Triggered
end_time
optional
Filters MPC by their completion time. The time format expected is YYYY-MM-DD HH:MM[:ss[.uuuuuu]]. The filter can be used in these four forms:
end_time__gt: gt stands for greater than. To get all calls that ended after 2021-03-21 11:47, use end_time__gt=2021-03-21 11:47
end_time__gte: gte stands for greater than or equal to. To get all calls that ended after or exactly at 2021-03-21 11:47[:30], use end_time__gte=2021-03-21 11:47[:30]
end_time__lt: lt stands for less than. To get all calls that ended before 2021-03-21 11:47, use end_time__lt=2021-03-21 11:47
end_time__lte: lte stands for less than or equal to. To get all calls that ended before or exactly at 2021-03-21 11:47[:30], use end_time__lte=2021-03-21 11:47[:30]
Note: You can combine these filters to get calls that ended in a particular time range.
When no end_time filter is specified, https://speedsms.in/ uses a default search window of the last seven days.
When only end_time__[gt|gte] or end_time__[lt|lte] is specified, https://speedsms.in/ uses a search window of 30 days from/to the specified end_time__[gt|gte] / end_time__[lt|lte].
Timestamps need to be UTC timestamps.
creation_time
Filters MPC by creation time. The time format expected is YYYY-MM-DD HH:MM[:ss[.uuuuuu]]. The filter can be used in these four forms:
creation_time__gt: gt stands for greater than. To get all calls that created after 2021-03-21 11:47, use creation_time__gt=2021-03-21 11:47
creation_time__gte: gte stands for greater than or equal to. To get all calls that created after or exactly at 2021-03-21 11:47[:30], use creation_time__gte=2021-03-21 11:47[:30]
creation_time__lt: lt stands for less than. To get all calls that created before 2021-03-21 11:47, use creation_time__lt=2021-03-21 11:47
creation_time__lte: lte stands for less than or equal to. To get all calls that created before or exactly at 2021-03-21 11:47[:30], use creation_time__lte=2021-03-21 11:47[:30]
limit
Limits the number of results retrieved. The maximum it can be set to is 20.
Defaults to 20.
offset
Denotes the number of value items by which the results should be offset. For example, if the results contains 1,000 values and limit is set to 10 and offset is set to 705, then values 706 through 715 are displayed in the results. This parameter is also used for pagination of the results.
Returns
Returns the details of a list of multiparty calls.
End a multiparty call
You can trigger this request to end an ongoing MPC.
API Endpoint
DELETE
https://speedsms.in//v1/Account/{Auth Id}/MultiPartyCall/name_{mpc_name}/
For participant call legs that were added to the MPC using the
If onExitActionUrl is not specified: the participants will be disconnected and the call will proceed to the next element in the XML document.
If onExitActionUrl is specified: the participants will be disconnected and the call will proceed to the XML document returned by the onExitActionUrl.
For participant call legs that were added to the MPC using the Add Participant API:
If on_exit_action_url is not specified: MPC will be terminated with the hangup cause “Multiparty Call Ended” (hangup cause code 4020) and hangup cause will be API Request.
If on_exit_action_url is specified: the participants will be disconnected and the call will proceed to the XML document returned by the on_exit_action_url.
Arguments
No arguments need to be passed.
Returns
Returns an acknowledgement that the MPC has ended.
Multiparty call participants
This resource lets you perform actions on the participants of a multiparty call (MPC), such as managing call transfers and member states.
API Endpoint
BaseURI
https://speedsms.in//v1/Account/{auth_id}/MultiPartyCall/name_{mpc_name}/Participant/
The Participants object
Arguments
Member Id
string
ID for this participant.
Multiparty Call UUID
string
UUID of the parent multiparty call.
Call UUID
string
UUID of the call resource. Note that there can be more than one participant entry for the same call UUID if that caller entered/exited the MPC more than once.
Role
string
The participant’s role. Once a participant’s role is set, it cannot be updated.
Allowed values: Agent, Customer, Supervisor
Coach Mode
boolean
Only applies to participants with the role Supervisor. Always false for other member roles. Controls whether the supervisor is audible to customers.
Join Time
timestamp
Timestamp at which the member joined the MPC.
Format: YYYY-MM-DD HH:mm:ss+|-hh:mm
Exit Time
timestamp
Timestamp at which the member left the MPC.
Format: YYYY-MM-DD HH:mm:ss+|-hh:mm.
Status
string
Current status of the MPC. Possible values are:
Initialized: The MPC has been initialized.
Active: Participants have joined the MPC and the MPC has started.
Ended: The MPC has ended.
Duration
integer
Duration in seconds for which the participant was part of the MPC.
Billed Duration
integer
Duration in seconds for which the MPC was billed.
Billed Amount
string
Total amount charged to the customer’s account for the MPC participant.
Mute
string
Indicates whether audio from the participant is muted.
Allowed values: true, false, null
If set to true, audio from this participant will be muted.
Returns null for ended/exited participants.
Hold
string
Indicates whether hold music is played to participants on hold.
Allowed values: true, false, null
If set to true, the participant will be muted and will hear the hold music.
null indicates participant has left the call.
Start MPC On Enter
boolean
Indicates whether the MPC should begin when the participant enters the call.
End MPC On Exit
boolean
Indicates whether the MPC should end when the participant leaves the call.
Participant Exit Cause
string
The reason for this participant’s exit from the MPC.
Possible values are:
Participant Call Hangup
Kicked Out of Multiparty Call
Multiparty Call Ended
Participant Call Transferred
This parameter should be null for participants that are still active in an ongoing MPC.
Add a participant to a multiparty call using API
Use the Participant API to add a participant to an ongoing multiparty call (MPC) or to start a new multiparty call and add the participant to it.
API Endpoint
POST
https://speedsms.in//v1/Account/{auth_id}/MultiPartyCall/name_{mpc_name}/Participant/
You can add a participant to a multiparty call in two ways:
Using the
Using MultiPartyCall REST API
Note: https://speedsms.in/ initiates a new multiparty call if no ongoing MPC is found in the account (or subaccount) with the given friendly name.
Arguments
from Required — Conditional The “from” number to use as the caller ID for this outbound call.
to Required — Conditional A single destination or a list of destinations (numbers or endpoints) to call. The first destination to answer (and accept) the call should be added to the MPC. Other destinations should be automatically hung up with the hangup cause LOST RACE.
Note that parallel dialing is supported only when dialing out to Agent role users. The API will return an error if multiple destination numbers are specified and the role is not Agent.
Note that these outbound calls are queued and dequeued as per the calls per second (CPS) configured for your account. You can find more details in the account limits guide.
Multiple “to” numbers must be delimited by “<” — for example, 14156667777<14156667778
If onExitActionUrl is not specified the participants will be disconnected and the call will proceed to the next element in the XML document.
If onExitActionUrl is specified the participants will be disconnected and the call will proceed to the XML document returned by the onExitActionUrl.
For participant call legs that were added to the multiparty call using the Add Participant API:
If on_exit_action_url is not specified the multiparty call will be terminated with the hangup cause “Multiparty Call Ended” (hangup cause code 4020) and hangup cause will be API Request.
If on_exit_action_url is specified the participants will be disconnected and the call will proceed to the XML document returned by the on_exit_action_url.
Arguments
No arguments need to be passed.
Returns
Returns an acknowledgement that the participant was disconnected from the multiparty call.
Participant-level recording
Participant call recording endpoints allow users to manage participant-level call recordings. Using this endpoint, users can start, stop, pause, and resume recordings at a participant level.
API Endpoint
BaseURI
https://speedsms.in//v1/Account/{auth_id}/MultiPartyCall/{mpc_name/UUID}/Participant/{Member_Id}/Record/
Start participant-level recording
This endpoint lets you start recording for a particular participant.
API Endpoint
POST
https://speedsms.in//v1/Account/{auth_id}/MultiPartyCall/{mpc_name/UUID}/Participant/{Member_Id}/Record/
Arguments
file_format
Format of the recording.
Allowed values: mp3, wav.
Defaults to mp3.
recording_callback_url URL to which status update events for this recording should be posted.
recording_callback_method
HTTP verb used to invoke the URL configured as recording_callback_url.
Allowed values: GET, POST.
Defaults to POST.
List of events and parameters sent to the recording_callback_url
These events are generated:
ParticipantRecordingInitiated
ParticipantRecordingPaused
ParticipantRecordingResumed
ParticipantRecordingCompleted
ParticipantRecordingFailed
This information is sent to the URL when an event is triggered:
EventName
string
Event that triggered this notification. This parameter will have one of the values from the list of events above.
EventTimestamp
string
Timestamp at which the event occurred.
Format: YYYY-MM-DD HH:mm:ss+|-hh:mm
MemberID
string
The ID of the participant in the MPC. This ID is unique for each participant.
RecordingDuration
string
Duration of recording in seconds.
RecordingEndTime
string
Timestamp at which the recording ended.
Format: YYYY-MM-DD HH:mm:ss+|-hh:mm
RecordingFormat
string
Format of the recording.
RecordingResourceURL
string
Resource URL of the recording file. You can use this URL to fetch the recording details later.
RecordingStartTime
string
Timestamp at which the recording started.
Format: YYYY-MM-DD HH:mm:ss+|-hh:mm
RecordingURL
string
Complete path to the recorded file URL.
RecordingUUID
string
Unique identifier to identify the file.
SequenceNumber
string
Indicates the sequence of the callback. Helpful to sort the callback events posted to the recording_callback_url.
Returns
If successful, this endpoint returns an acknowledgement that the recording has started, along with a URL to access the recording.
Stop participant-level recording
This endpoint lets you stop an ongoing participant recording.
API Endpoint
DELETE
https://speedsms.in//v1/Account/{auth_id}/MultiPartyCall/{mpc_name/UUID}/Participant/{Member_Id}/Record/
Arguments
No arguments need to be passed.
Returns
Returns an acknowledgement that the recording has been stopped.
Pause participant-level recording
This endpoint lets you pause on ongoing participant recording. A paused recording can be resumed at a later time.
API Endpoint
POST
https://speedsms.in//v1/Account/{auth_id}/MultiPartyCall/{mpc_name/UUID}/Participant/{Member_Id}/Record/Pause/
Arguments
No arguments need to be passed.
Returns
If successful, this endpoint returns an acknowledgement that the recording was successfully paused.
Resume participant-level recording
This endpoint lets you resume a paused participant recording.
API Endpoint
POST
https://speedsms.in//v1/Account/{auth_id}/MultiPartyCall/{mpc_name/UUID}/Participant/{Member_Id}/Record/Resume/
Arguments
No arguments need to be passed.
Returns
If successful, this endpoint returns an acknowledgement that the recording was successfully resumed.
Play audio on calls
The Play endpoint lets you play an audio file to users in an ongoing call. The common use case for this object is to play automated notifications or music while someone is waiting on a call.
API Endpoint
BaseURI
https://speedsms.in//v1/Account/{auth_Id}/MultiPartyCall/{[name|uuid]_[
Play audio on a MPC call
This endpoint allows you to play an audio file during an active call. https://speedsms.in/ supports .mp3 and .wav audio files.
API Endpoint
POST
https://speedsms.in//v1/Account/{auth_id}/Call/{call_uuid}/Play/
The member_id attribute that’s passed in the URL can be a member_id, a comma-separated list of member IDs on which this operation will be performed, or the string all. In the latter case, the play audio action is performed on all members of the MPC.
Arguments
urls
Required
URL of the sound file to be played in .mp3 or .wav file.
Returns
Returns an acknowledgement that the audio is played to the MPC.
Stop playing audio on a MPC call
This endpoint lets you stop an already playing audio file during an active call.
API Endpoint
DELETE
https://speedsms.in//v1/DELETE/Account/{auth_id}/MultiPartyCall/{[name|uuid]_[
The member_id attribute that’s passed in the URL can be a member_id, a comma-separated list of member IDs on which this operation will be performed, or the string all. In the latter case, the audio stops playing for all members of the conference.
Note: Use either member_id or all the same way you did to start playing audio to a member. If you initiated the play using member_id, calling the stop API with all will not stop the audio.
Arguments
No arguments need to be passed.
Multiparty Call Recording
The Multiparty Call Record endpoint allows you to start, pause, resume, and stop recording specific portions of an active Multiparty call.
API Endpoint
BaseURI
https://speedsms.in//v1/Account/{auth_id}/MultiPartyCall/name_{mpc_name}/Record/
Start Recording a Multiparty Call
This endpoint starts recording a Multiparty Call.
API Endpoint
POST
https://speedsms.in//v1/Account/{auth_id}/MultiPartyCall/name_{mpc_name}/Record/
Arguments
file_format
Format of the recording.
Allowed values: mp3, wav.
Defaults to mp3.
recording_callback_url URL to which status update events for this recording should be posted.
recording_callback_method
HTTP verb used to invoke the URL configured as status_callback_url.
Allowed values: GET, POST.
Defaults to POST.
Note: A Supervisor’s voice will be recorded regardless of the coach_mode setting.
List of events and parameters sent to the recording_callback_url
These events are generated:
MPCRecordingInitiated
MPCRecordingPaused
MPCRecordingResumed
MPCRecordingCompleted
MPCRecordingFailed
This information is sent to the URL when an event is triggered:
EventName
string
Event that triggered this notification. This parameter will have one of the values from the list of events above.
EventTimestamp
string
Timestamp at which the event occurred.
Format: YYYY-MM-DD HH:mm:ss+|-hh:mm
MPCName
string
Friendly name provided during the creation of the MPC.
MPCUUID
string
Unique ID of the Multiparty call.
RecordingDuration
string
Duration of recording in seconds.
RecordingEndTime
string
Timestamp at which the recording ended.
Format: YYYY-MM-DD HH:mm:ss+|-hh:mm
RecordingFormat
string
Format of the recording.
RecordingResourceURL
string
Resource URL of the recording file. You can use this URL to fetch the recording details later.
RecordingStartTime
string
Timestamp at which the recording started.
Format: YYYY-MM-DD HH:mm:ss+|-hh:mm
RecordingURL
string
Complete path to the recorded file URL.
RecordingUUID
string
Unique identifier to identify the file.
SequenceNumber
string
Indicates the sequence of the callback. Helpful to sort the callback events posted to the recording_callback_url.
Returns
If successful, this endpoint returns an acknowledgement that the recording has started, along with a URL to access the recording.
Stop Recording a Multiparty Call
This endpoint stops recording a Multiparty Call.
API Endpoint
DELETE
https://speedsms.in//v1/Account/{auth_id}/MultiPartyCall/name_{mpc_name}/Record/
Arguments
No arguments need to be passed.
Returns
Returns an acknowledgement that the recording has been stopped.
Pause Recording a Multiparty Call
This endpoint pauses ongoing recording of a Multiparty Call.
API Endpoint
POST
https://speedsms.in//v1/Account/{auth_id}/MultiPartyCall/name_{mpc_name}/Record/Pause/
Arguments
No arguments need to be passed.
Returns
If successful, this endpoint returns an acknowledgement that the recording was successfully paused.
Resume Recording a Multiparty Call
This endpoint resumes recording an ongoing Multiparty Call.
API Endpoint
POST
https://speedsms.in//v1/Account/{auth_id}/MultiPartyCall/name_{mpc_name}/Record/Resume/
Arguments
No arguments need to be passed.
Returns
If successful, this endpoint returns an acknowledgement that the recording was successfully resumed.
Conference
Conferences let you involve multiple participants in a single call. Using https://speedsms.in/’s Conference API, you can manage ongoing and completed conferences in your account, terminate ongoing conferences, and retrieve details of an ongoing or completed conference.
Conferences are suited for traditional “meeting” use cases. If you need more control over a call, for example for advanced contact center or sales dialer use cases, consider multiparty calls.
API Endpoint
BaseURI
https://speedsms.in//v1/Account/{auth_id}/Conference/
The Conference object
Attributes
conference_name
string
The name used to identify the conference.
conference_run_time
string
Time in seconds since the conference was initiated.
conference_member_count
string
Number of members currently active in the conference.
Note: Along with the above attributes, the response includes the following attributes for each member active in the conference.
member_id
string
The ID of the member in the conference. This ID is unique for each conference.
muted
boolean
Set to true if the member is currently muted.
deaf
boolean
Set to true if the member cannot hear the conversations taking place in the conference.
from
string
The source from which the call was made to the conference. This can either be a PSTN number or a SIP endpoint.
to
string
The conference bridge number. This can either be a https://speedsms.in/ number or an application URL.
caller_name
string
The name of the caller, if the call was made from a SIP endpoint. This field is empty if no caller name is specified while making the call.
direction
string
The direction of the call. This can either be inbound or outbound.
call_uuid
string
The call_uuid that uniquely identifies the call.
join_time
string
The time in seconds since the call joined the conference.
Retrieve a conference
Retrieves the details of a particular conference.
API Endpoint
GET
https://speedsms.in//v1/Account/{auth_id}/Conference/{conference_name}/
Arguments
No arguments need to be passed.
Returns
Returns the details of the conference associated with the name specified.
Hang up a specific conference
This method lets you hang up a conference using the conference name.
API Endpoint
DELETE
https://speedsms.in//v1/Account/{auth_id}/Conference/{conference_name}/
Arguments
No arguments need to be passed.
List all conferences
Retrieves a list of all ongoing conferences for your account and returns their names.
API Endpoint
GET
https://speedsms.in//v1/Account/{auth_id}/Conference/
Arguments
No arguments need to be passed.
Returns
Returns the names of all ongoing conferences associated with the account.
Hang up all conferences
This API lets you hang up all ongoing conferences running on your account.
API Endpoint
DELETE
https://speedsms.in//v1/Account/{auth_id}/Conference/
Arguments
No arguments need to be passed.
Conference member
This resource lets you perform actions on members of a conference.
API Endpoint
BaseURI
https://speedsms.in//v1/Account/{auth_id}/Conference/{conference_name}/Member
Hang up a member
This method lets you hang up a particular member of a conference. The member to be disconnected needs to be identified using the member_id.
API Endpoint
DELETE
https://speedsms.in//v1/Account/{auth_id}/Conference/{conference_name}/Member/{member_id}/
The member_id attribute that’s passed in the URL can be either a member_id or the string all. In the latter case, the hangup action is performed on all members of the conference.
Arguments
No arguments need to be passed.
Disconnect a member from a conference
This method lets you disconnect a member in a conference. When the member is disconnected, the next action to be performed depends on the next element in the XML.
API Endpoint
POST
https://speedsms.in//v1/Account/{auth_id}/Conference/{conference_name}/Member/{member_id}/Kick/
Here’s an example. If the XML code below starts the conference, https://speedsms.in/ will play the text in the
The member_id attribute that’s passed in the URL can be either a member_id or the string all. In the latter case, the disconnect action is performed on all members of the conference.
Attributes
No arguments need to be passed.
Returns
Returns an acknowledgement that the member has been disconnected from the conference.
Mute Member
This API lets you mute members of a conference. Audio from their device will be muted, and other members in the conference will not be able to hear the caller.
API Endpoint
POST
https://speedsms.in//v1/Account/{auth_id}/Conference/{conference_name}/Member/{member_id}/Mute/
The member_id attribute that’s passed in the URL can be a member_id, a comma-separated list of member IDs on which this operation will be performed, or the string all. In the latter case, the mute action is performed on all members of the conference.
No arguments need to be passed.
Returns
Returns an acknowledgement that the member is muted.
Unmute Member
This API lets you unmute members that have been muted by the Mute Member API.
API Endpoint
DELETE
https://speedsms.in//v1/Account/{auth_id}/Conference/{conference_name}/Member/{member_id}/Mute/
The member_id attribute that’s passed in the URL can be a member_id, a comma-separated list of member IDs on which this operation will be performed, or the string all. In the latter case, the unmute action is performed on all members of the conference.
Attributes
No arguments need to be passed.
Deaf a conference member
This method allows you to deaf a particular member in the conference. When this operation is made on a conference member, the member will not be able to hear any audio from the conference.
API Endpoint
POST
https://speedsms.in//v1/Account/{auth_id}/Conference/{conference_name}/Member/{member_id}/Deaf/
The member_id attribute which is passed in the URL can be one of the following three forms:
Member ID: The member specified by the member_id.
Comma separated list of member IDs: List of member IDs on which this operation will be performed.
‘all’: The string ‘all’, this action will be performed on all members of the conference.
Attributes
No arguments need to be passed.
Returns
Returns an acknowledgement that the members specified would not be able to hear any audio from the conference
Undeaf a conference member
This method lets you un-deaf a member in a conference. When this operation is performed on a conference member it will reverse the effects of the Deaf a conference member API
API Endpoint
DELETE
https://speedsms.in//v1/Account/{auth_id}/Conference/{conference_name}/Member/{member_id}/Deaf/
The member_id attribute which is passed in the URL can be one of the following three forms:
Member ID: The member specified by the member_id.
Comma separated list of member IDs: List of member IDs on which this operation will be performed.
‘all’: The string ‘all’, this action will be performed on all members of the conference.
Attributes
No arguments need to be passed.
Play audio to a member
This API lets you play a .mp3 or .wav file to a member in the conference.
API Endpoint
POST
https://speedsms.in//v1/Account/{auth_id}/Conference/{conference_name}/Member/{member_id}/Play/
The member_id attribute that’s passed in the URL can be a member_id, a comma-separated list of member IDs on which this operation will be performed, or the string all. In the latter case, the play audio action is performed on all members of the conference.
Attributes
url
Required
URL of the sound file to be played.
Returns
Returns an acknowledgement that the audio is played to the conference.
Stop playing audio to a member
This API stops the file that’s being played to a member after it was initiated by the Play API.
API Endpoint
DELETE
https://speedsms.in//v1/Account/{auth_id}/Conference/{conference_name}/Member/{member_id}/Play/
The member_id attribute that’s passed in the URL can be a member_id, a comma-separated list of member IDs on which this operation will be performed, or the string all. In the latter case, the audio stops playing for all members of the conference.
Note: Use either member_id or all the same way you did to start playing audio to a member. If you initiated the play using member_id, calling the stop API with all will not stop the audio.
Attributes
No arguments need to be passed.
Speak text to a member
This API plays spoken text to a member in a conference.
API Endpoint
POST
https://speedsms.in//v1/Account/{auth_id}/Conference/{conference_name}/Member/{member_id}/Speak/
The member_id attribute that’s passed in the URL can be a member_id, a comma-separated list of member IDs on which this operation will be performed, or the string all. In the latter case, the speak text action is performed for all members of the conference.
Arguments
text
Required
The text that should be spoken to the members in the conference.
voice
string
The voice to be used.
Allowed values: MAN, WOMAN
Defaults to WOMAN.
language
string
The language that needs to be used to speak the text. The default language is US English (en-US). See the list of supported languages below.
List of supported languages
Danish
da-DK
Only WOMAN voice
Dutch
nl-NL
Both WOMAN and MAN voices
English — Australian
en-AU
Both WOMAN and MAN voices
English — British
en-GB
Both WOMAN and MAN voices
English — USA
en-US
Both WOMAN and MAN voices
French
fr-FR
Both WOMAN and MAN voices
French — Canadian
fr-CA
Only WOMAN voice
German
de-DE
Both WOMAN and MAN voices
Italian
it-IT
Both WOMAN and MAN voices
Polish
pl-PL
Both WOMAN and MAN voices
Portuguese
pt-PT
Only MAN voice
Portuguese — Brazilian
pt-BR
Both WOMAN and MAN voices
Russian
ru-RU
Only WOMAN voice
Spanish
es-ES
Both WOMAN and MAN voices
Spanish — USA
es-US
Both WOMAN and MAN voices
Swedish
sv-SE
Only WOMAN voice
Returns
Returns an acknowledgement that the text will be played to the members specified in the conference.
Stop speaking text to a member
This API stops spoken text from being spoken to a member after it was initiated by the Speak API.
API Endpoint
DELETE
https://speedsms.in//v1/Account/{auth_id}/Conference/{conference_name}/Member/{member_id}/Speak/
The member_id attribute that’s passed in the URL can be a member_id, a comma-separated list of member IDs on which this operation will be performed, or the string all. In the latter case, the text will no longer be spoken for all members of the conference.
Note: Use either member_id or all the same way you did to start speaking text. If you initiated the play using member_id, calling the stop API with all will not stop the text from being spoken.
Attributes
No arguments need to be passed.
Returns
Returns an acknowledgement that speaking the text file is stopped for the members specified.
Record a conference
The conference record method lets you start and stop recording a conference.
API Endpoint
BaseURI
https://speedsms.in//v1/Account/{auth_id}/Conference/{conference_name}/Record/
Start recording a conference
This API lets you start recording an ongoing conference after the conference is initiated. Alternatively, you can record a conference by using the recording capabilities of the Conference XML element.
API Endpoint
POST
https://speedsms.in//v1/Account/{auth_id}/Conference/{conference_name}/Record/
Attributes
file_format
The file format for the recording.
Allowed values: mp3, wav.
Defaults to mp3.
transcription_type
auto: Transcription is automated; the turnaround time is under 5 minutes which linearly increases with call duration.
Transcription charges and details are available on our pricing page.
Note:
Transcription service is available only in English, and limited to calls with a duration greater than 500 milliseconds and less than 4 hours, with a recording file size smaller than 2GB.
transcription_url
Callback-retry configurable
The URL to which the transcription should be posted.
Note:
The transcription information will be sent to this URL via an HTTP POST callback.
callback_url
Callback-retry configurable
The URL invoked when the recording ends. The parameters to be posted to the URL are documented in the table below.
callback_method
The HTTP verb used to invoke the callback_url.
Defaults to POST.
List of parameters sent to the callback URL
These details are posted when the callback URL is invoked after the recording ends.
api_id
The API ID that was returned by the conference record API.
record_url
The URL where the recorded file can be accessed.
recording_id
The recording ID associated with the recording file.
conference_name
The name of the conference recorded.
recording_duration
The recording duration in seconds.
recording_duration_ms
The recording duration in milliseconds.
recording_start_ms
The start time of the recording since epoch in milliseconds.
recording_end_ms
The end time of the recording since epoch in milliseconds.
List of parameters sent to the transcription URL
transcription_charge
The credit deducted for the transcription.
transcription
The transcribed text of the recording.
duration
The duration in seconds of the recording.
call_uuid
The call UUID of the call that was transcribed.
transcription_rate
The rate of the transcription per minute.
recording_id
Recording ID of the transcribed recording.
error May be Recording duration too long for transcription or Recording file size too large for transcription. Empty if transcription is successful.
Note: .mp3 files are smaller in size than .wav files. Consider changing the recording file format to .mp3 if you see this error.
Returns
If successful, returns an acknowledgement that conference recording has started along with a URL to access the recording.
Stop recording a conference
If the recording was initiated by the Record API method, you can use this method to stop recording the conference. This can be useful when, for example, you don’t want to record parts of a conference during which critical details are being discussed.
API Endpoint
DELETE
https://speedsms.in//v1/Account/{auth_id}/Conference/{conference_name}/Record/
Attributes
No arguments need to be passed.
Audio Stream Beta
https://speedsms.in/’s audio streaming resource lets you receive raw audio input over WebSocket (wss or ws) URLs from live phone calls in near real time.
API Endpoint
POST
https://speedsms.in//v1/Account/{auth_id}/Call/{call_uuid}/Stream/
The audio Stream object
The audio Steam object lets you receive the raw audio of a live phone call over a configured WebSocket in near real time.
Attributes
Service_url
string
required
WebSocket URL to which the audio stream is to be initiated.
Example: wss://mystream.ngrok.io/audiostream
If a qualified URL is not present, or an active stream is already supplied to the URL, a 400 error is returned.
bidirectional
boolean
Specifies whether the audio being streamed over the WebSocket is bidirectional (the service can both read and write audio over the WebSocket) or one-way (read-only).
If the bidirectional attribute is set to true, then https://speedsms.in/ accepts the below parameters to accept the audio stream from your application over the WebSockets.
Allowed values:
event: Takes playAudio as the value
media: Takes a JSON input of the key values below
contentType: raw, wav
sampleRate: 8000 and 16000
payload: Base64-encoded raw audio
audio_track
string
The audio track (inbound or outbound) of the underlying call that https://speedsms.in/ will fork and stream to the WebSocket service.
Allowed values: inbound (only audio received by https://speedsms.in/ from call participants is streamed over WebSocket), outbound (only audio transmitted by https://speedsms.in/ to call participants is streamed over WebSocket), both(both the audio streams received and transmitted by https://speedsms.in/ are streamed over WebSocket) Default is inbound
Note: When the bidirectional value is set to true, the audio_track value should not be set to outbound or both.
stream_timeout
integer
The maximum duration, in seconds, for which audio will be streamed once streaming starts. At the end of the specified duration, streaming will stop. The stream timeout has no impact on the rest of the call flow. Must be a positive integer if provided. Defaults to 86,400 (24 hours).
status_callback_url
string
URL notified by https://speedsms.in/ when one of the following events occurs:
audio stream is connected and audio begins streaming (first packet is sent)
audio stream is stopped intentionally
audio stream timeout is reached
audio stream failed to connect or got disconnected for any reason during an ongoing call
status_callback_method
string
The HTTP verb used to invoke the status_callback_url.
Allowed values: GET, POST Defaults to POST.
content_type
string
Preferred audio codec and sampling rate.
Allowed values: audio/x-l16;rate=8000, audio/x-l16;rate=16000, audio/x-mulaw;rate=8000 Defaults to audio/x-l16;rate=8000.
extra_headers
string
Key-value pairs passed to the WebSocket service along with the audio stream. These extra headers will be passed with every HTTP request made by the call.
Takes a string of key-value pairs as input. Example: “test1=12,test2=123”. Total length of the string being passed should be no more than 512 bytes.
Only [A-Z], [a-z], and [0-9] characters are allowed in both key and value.
Initiate an audio Stream
This method lets you initiate an audio stream for an active call and send that stream to a secure WebSocket URL.
API Endpoint
POST
https://speedsms.in//v1/Account/{auth_id}/Call/{call_uuid}/Stream/
Attributes
Service_url
string
required
WebSocket URL to which the audio stream is to be initiated.
Example: wss://mystream.ngrok.io/audiostream
If a qualified URL is not present, or an active stream is already supplied to the URL, a 400 error is returned.
bidirectional
boolean
Specifies whether the audio being streamed over the WebSocket is bidirectional (the service can both read and write audio over the WebSocket) or one-way (read-only).
If the bidirectional attribute is set to true, then https://speedsms.in/ accepts the below parameters to accept the audio stream from your application over the WebSockets.
Allowed values:
event: Takes playAudio as the value
media: Takes a JSON input of the key values below
contentType: audio/x-l16, audio/x-l16, audio/x-mulaw
sampleRate: 8000 and 16000
payload: Base64-encoded raw audio
audio_track
string
The audio track (inbound or outbound) of the underlying call that https://speedsms.in/ will fork and stream to the WebSocket service.
Allowed values: inbound (only audio received by https://speedsms.in/ from call participants is streamed over WebSocket), outbound (only audio transmitted by https://speedsms.in/ to call participants is streamed over WebSocket), both (both inbound and outbound audio is streamed over the WebSocket). Default is inbound.
Note: When the bidirectional value is set to true, the audio_track value should not be set to outbound or both.
stream_timeout
integer
The maximum duration, in seconds, for which audio will be streamed once streaming starts. At the end of the specified duration, streaming will stop. This will have no impact on the rest of the call flow.
Needs to be a positive integer if provided. Defaults to 86,400 (24 hours).
status_callback_url
string
URL notified by https://speedsms.in/ when one of the following events occurs:
audio stream is connected and audio begins streaming (first packet is sent)
audio stream is stopped intentionally or when audio stream timeout is reached
audio stream failed to connect or got disconnected for any reason during an ongoing call
status_callback_method
string
The HTTP verb used to invoke the status_callback_url.
Allowed values: GET, POST
Defaults to POST.
content_type
string
Preferred audio codec and sampling rate.
Allowed values: audio/x-l16;rate=8000, audio/x-l16;rate=16000, audio/x-mulaw;rate=8000 Defaults to audio/x-l16;rate=8000
extra_headers
string
Key-value pairs passed to the WebSocket service along with the audio stream. These extra headers will be passed with every HTTP request made by the call.
Takes string of key-value pairs as input. Example: “test1=12,test2=123”. Total length of the string being passed should be no more than 512 bytes.
Only [A-Z], [a-z], and [0-9] characters are allowed in both key and value.
Retrieve all audio Streams
This method lets you retrieve all active and inactive audio streams for a given call UUID.
API Endpoint
GET
https://speedsms.in//v1/Account/{auth_id}/Call/{call_uuid}/Stream/
Arguments
No arguments need to be passed.
Retrieve an audio Stream
This method lets you retrieve the details of an audio stream.
API Endpoint
GET
https://speedsms.in//v1/Account/{auth_id}/Call/{call_uuid}/Stream/{Stream_uuid}/
Arguments
No arguments need to be passed.
Stop all audio Streams
This method stops all the audio streaming of the given call.
API Endpoint
DELETE
https://speedsms.in//v1/Account/{auth_id}/Call/{call_uuid}/Stream/
Arguments
No arguments need to be passed.
Stop a specific audio Stream
This method stops streaming of a specific audio stream.
API Endpoint
DELETE
https://speedsms.in//v1/Account/{auth_id}/Call/{call_uuid}/Stream/{Stream_uuid}/
Arguments
No arguments need to be passed.
Verified Caller ID
The Verify Caller ID feature allows you to authenticate numbers with https://speedsms.in/ before using them as a Calling Line Identification (CLI) for outbound calls made through the https://speedsms.in/ API or XML.
API Endpoint
POST
https://speedsms.in//v1/Account/{auth_id}/VerifiedCallerId
The verified caller ID object
The verified caller ID object is used to authenticate numbers with https://speedsms.in/ before using them to make API and Dial XML calls. It enables you to verify and manage caller IDs with https://speedsms.in/.
Attributes
verification_uuid
string
The unique identifier generated when a VerifiedCallerId object is created
alias
string
The alias name associated with the verified caller ID
phone_number
string
The phone number (in E.164 format) for verification. Once verified, this phone number can be used as Calling Line Identification (CLI)
country
string
The two-digit ISO country code of the phone number.
channel
string
The approach for obtaining the four-digit One-Time Password (OTP) for phone number verification.
Possible options:
sms: An SMS containing the OTP will be dispatched to the phone number.
call: A phone call will be placed to the phone number, delivering the OTP message.
Default: sms
created_at
string
The time (in UTC) when the verification request is first created for a verified number
Format: “YYYY-MM-DD HH:MM:SS”
modified_at
string
The time (in UTC) when the phone number verification object was last modified.
Format: “YYYY-MM-DD HH:MM:SS”
otp
string
The four-digit code sent to the phone number for verification.
Once created, an OTP is valid for 15 mins.
subaccount
string
The sub-account Auth ID for which the number is being verified.
Only main-account credentials can be used to update this parameter.
If sub-account credentials are used, this defaults to the same sub-account.
Initiate number verification
This method lets you initiate the number verification.
API Endpoint
POST
https://speedsms.in//v1/Account/{auth_id}/VerifiedCallerId
Attributes
phone_number
(Mandatory)
The phone number for verification must be provided in E.164 format. This is mandatory for creating the VerifiedCallerID object.
alias
(optional)
The unique name associated with the verified caller ID
channel
(optional)
The method channel used to receive the OTP.
Possible values: sms, call
Default: sms
subaccount
(optional)
A valid sub-account Auth ID.
Default: None
Verify Caller ID
This method allows you to verify the OTP for a number that has been initiated for verification.
Endpoint
POST
https://speedsms.in//v1/Account/{auth_id}/VerifiedCallerId/Verification/{verification_uuid}/
Attributes
otp
(Mandatory)
The otp generated for the corresponding verification_uuid
Retrieve details of a verified caller ID
The method lets you retrieve details of a verified caller ID.
API Endpoint
GET
https://speedsms.in//v1/Account/{auth_id}/VerifiedCallerId/{phone_number}
Attributes
No arguments need to be passed.
Retrieve details of all verified caller IDs
The method lets you retrieve details of all verified caller IDs on your account.
API Endpoint
GET
https://speedsms.in//v1/Account/{auth_id}/VerifiedCallerId/{phone_number}
Attributes
alias
(optional)
The friendly name associated with the verified caller ID
subaccount
(optional)
A valid sub-account Auth ID.
Default: None
country
(optional)
The 2-digit ISO country code of the verified caller ID
Update a verified caller ID
This method lets you update a verified caller ID.
API Endpoint
POST
https://speedsms.in//v1/Account/{auth_id}/VerifiedCallerId/{phone_number}
Attributes
alias
(optional)
The friendly name associated with the phone number.
subaccount
(optional)
A valid sub-account Auth ID.
Delete a verified caller ID
The method lets you delete the verified caller ID.
API Endpoint
Delete
https://speedsms.in//v1/Account/{auth_id}/VerifiedCallerId/{phone_number}
Endpoint
A https://speedsms.in/ endpoint, also known as a SIP endpoint, can be any IP phone, mobile phone, wireless device, or PC that uses the Session Initiation Protocol (SIP) to perform communications operations.
Endpoints are used to receive and make calls from SIP phones and https://speedsms.in/ client SDKs. They support use cases such as agents taking calls in call centers.
API Endpoint
BaseURI
https://speedsms.in//v1/Account/{auth_id}/Endpoint/
The Endpoint object
Attributes
alias
string
Alias for the endpoint.
application
string
URI of the application attached to the end point.
endpoint_id
string
Unique ID for the endpoint. All endpoint API operations are performed using this identifier.
password
string
Password for the endpoint username. It should be at least five characters long.
resource_uri
string
URI of the endpoint object.
sip_registered
string
Set to true if the SIP endpoint is registered on a SIP client.
Defaults to false.
sip_uri
string
SIP URI of the endpoint. External users will be able to call this endpoint on this SIP URI.
sub_account
string
Subaccount to which the endpoint is linked. null if it’s not linked to any subaccount.
username
string
Username for the endpoint. Only alphanumeric characters are accepted.
Create an endpoint
Creates a new endpoint.
API Endpoint
POST
https://speedsms.in//v1/Account/{auth_id}/Endpoint/
Arguments
username
required
string
Username for the endpoint. Only alphanumeric characters are accepted, and the username must start with an alphabetic character.
password
required
string
Password for the endpoint username. It should be at least five characters long.
alias
required
string
Alias for the endpoint.
Allowed Values:
Alphabets (upper case and lower case)
Numbers (0-9).
Only 2 special characters, i.e. “-” (hyphen) and “_” (underscore)
app_id
string
ID of the application attached to the endpoint.
Returns
If successful, returns “created” in the “message” field along with an updated username of the endpoint, which has a 12-digit number appended to the username provided in the request. It also returns endpoint_id, which is a unique ID for the endpoint that’s used with other endpoint APIs.
Retrieve an endpoint
Retrieves the details of an existing endpoint.
API Endpoint
GET
https://speedsms.in//v1/Account/{auth_id}/Endpoint/{endpoint_id}/
Arguments
No arguments need to be passed.
Returns
Returns an Endpoint object if valid parameters were provided. Returns an error otherwise.
Note: The password returned is an MD5 hash value of the actual password.
List all endpoints
Retrieves the details of all endpoints.
API Endpoint
GET
https://speedsms.in//v1/Account/{auth_id}/Endpoint/
Arguments
No arguments need to be passed.
Returns
A dictionary with an objects property that contains an array of subaccount objects.
Update an endpoint
Updates an endpoint’s password or alias, or the application attached to it.
API Endpoint
POST
https://speedsms.in//v1/Account/{auth_id}/Endpoint/{endpoint_id}/
Arguments
password
string
Password for your endpoint username. It should be at least five characters long.
alias
string
Alias for the endpoint.
Allowed Values:
Alphabets (upper case and lower case)
Numbers (0-9).
Only 2 special characters, i.e. “-” (hyphen) and “_” (underscore)
app_id
string
ID of the application attached to the endpoint.
Returns
Returns a confirmation that the object is updated.
Delete an endpoint
Permanently deletes an endpoint.
API Endpoint
DELETE
https://speedsms.in//v1/Account/{auth_id}/Endpoint/{endpoint_id}/
Arguments
No arguments need to be passed.
Recording
This endpoint helps you manage the recordings available in your account. You can retrieve or delete recordings using this endpoint.
API Endpoint
BaseURI
https://speedsms.in//v1/Account/{auth_id}/Recording/
The Recording object
Attributes
add_time
string
The datetime string on which the recording was created on the account.
call_uuid
string
The identifier of the call that was recorded.
conference_name
string
The name of the conference that was recorded. If it was not a conference, then the value will be null.
recording_duration_ms
string
The duration of the recording in milliseconds.
recording_format
string
The format of the recording file.
Allowed values: wav, mp3
recording_id
string
The ID of the recording.
recording_type
string
The type of call on which the recording was made.
Allowed values: conference (a conference call), normal (a regular call)
recording_url
string
The URL where the recording can be accessed
recording_storage_duration
integer
The time in days for which the recording is stored.
Increments by one after 24 hours from the recording add time.
Minimum value: 1
rounded_recording_duration
integer
The rounded duration of recording in seconds.
https://speedsms.in/ rounds the recording duration to the nearest 60-second interval. Recordings of less than 60 seconds duration are rounded up to 60 seconds.
recording_storage_rate
string
The unit cost of storing the recording per month.
monthly_recording_storage_amount
string
The monthly amount incurred in the latest billing cycyle to store a recording.
Retrieve a recording
This API retrieves a specific recording based on the recording ID.
API Endpoint
GET
https://speedsms.in//v1/Account/{auth_id}/Recording/{recording_id}/
Arguments
No arguments need to be passed.
Returns
Returns a Recording object
List all recordings
This method lists the recordings that are available in your account.
API Endpoint
GET
https://speedsms.in//v1/Account/{auth_id}/Recording/
Arguments
from_number
string
Provide a source phone number (E.164 format) or SIP endpoint to retrieve recordings that match the number.
to_number
string
Provide a destination phone number (E.164 format) or SIP endpoint to retrieve recordings that match the number.
subaccount
string
Provide the auth_id of a subaccount if you want to filter only recordings for a given subaccount.
call_uuid
string
Use the call_uuid of the call to filter only recordings associated with a specific call.
add_time
string
Filter recordings based on the time they were added. The time format expected is YYYY-MM-DD HH:MM[:ss[.uuuuuu]].
add_time__gt: gt stands for greater than. For example, to get all recordings that started after 2021-03-21 11:47, use add_time__gt=2021-03-21 11:47
add_time__gte: gte stands for greater than or equal. To get all recordings that started after or exactly at 2021-03-21 11:47[:30], use add_time__gte=2021-03-21 11:47[:30]
add_time__lt: lt stands for less than. To get all recordings that started before 2021-03-21 11:47, use add_time__lt=2021-03-21 11:47
add_time__lte: lte stands for less than or equal to. To get all recordings that started before or exactly at 2021-03-21 11:47[:30], use add_time__lte=2021-03-21 11:47[:30]
Note: You can combine these filters to get recordings that were added during a particular time range.
If you don’t use the add_time filter when you search, https://speedsms.in/ uses a search window of the last seven days from the current date. The add_time parameter permits https://speedsms.in/ users to obtain recordings within a 30-day search boundary limit, while still providing unrestricted access to older recordings. Alternatively, you can use add_time__[lt|lte] and add_time__[gt|gte] to search within a specific time range. If the provided time range exceeds the 30-day search boundary, the API will return a 400 response code, signaling an error.
Timestamp values need to be specified as UTC.
mpc_name
string
Filtering based on Name of the MPC in case the recording file belongs to an MPC.
mpc_uuid
string
Provide a multiparty call UUID to retrieve recordings that match that UUID.
conference_name
string
Provide a conference name to retrieve recordings that match that name.
conference_uuid
string
Provide a conference UUID to retrieve recordings that match that UUID.
Note: You can combine these filters to get recordings that started within a particular time range.
limit
string
Denotes the number of results per page. The maximum number of results that can be fetched is 20.
offset
string
Denotes the number of value items by which the results should be offset. For example, if the result contains 1,000 values,limit is set to 10, and offset is set to 705, then values 706 through 715 will be displayed in the results. This parameter is also used for pagination of the results.
recording_storage_duration
Cannot be used with add_time
integer
Filter recordings based on the storage duration. The time format expected is integer (number of days)
recording_storage_duration: To get all recordings which are exactly equal to the provided recording_storage_duration.
recording_storage_duration__gt: gt stands for greater than. For example, to get all recordings that are greater than 80-day, use recording_storage_duration__gt=80]
recording_storage_duration__gte: : gte stands for greater than or equal. To get all recordings that is greater than or equal to 90 days, use recording_storage_duration__gte=90
recording_storage_duration__lt: lt stands for less than. To get all recordings that is less than or equal to 90 days, use recording_storage_duration__lt=90
recording_storage_duration__lte: lte stands for less than or equal to. To get all recordings that is less than or equal to 90 days, use recording_storage_duration__lte=90
Default search window is 7 days.
Maximum search window is 30 days.
Returns
Returns the details of the recordings based on the filters specified in the API.
Delete a specific recording
This API lets you delete a recording from your account using the recording ID.
You can retrieve the value of recording_id from List all recordings and Retrieve a recording API and pass them in the API endpoint.
API Endpoint
DELETE
https://speedsms.in//v1/Account/{auth_id}/Recording/{recording_id}/
Arguments
No arguments need to be passed.
Returns
Returns 404 Not Found if the recording is not found for the given recording_id. Else, returns 204 without content.
Rate this page
🥳 Thank you! It means a lot to us!