Download OpenAPI specification:
AI-powered Voice and Messaging API for Conversations and Automation
The Callr REST API enables you to build powerful, real-time communication workflows using voice calls, SMS, and AI — all through a simple, modern interface.
With Callr, you can:
Designed for flexibility, speed, and control, Callr gives you the tools to deliver high-quality conversational experiences — without managing telephony infrastructure.
Search for Callr Actions scenarios.
name | string <= 64 characters Scenario name. You can use a partial name. |
sort | string Default: "updated" Enum: "name" "created" "updated" Sort by one field |
order | string Default: "desc" Enum: "asc" "desc" Sort order (ascending or descending) |
offset | integer (SearchOffset) >= 0 Default: 0 Search offset index (zero-based) |
limit | integer [ 1 .. 100 ] Default: 10 Examples: limit=20 Number of items to return |
{- "offset": 0,
- "total": 20,
- "hasMore": false,
- "hits": [
- {
- "name": "Call Forwarding",
- "script": "defaults:\n language: en-US\n\nbranches:\n inbound-call:\n actions:\n - action: log@v1\n params:\n message: Hello inbound call\n\n inbound-sms:\n actions:\n - action: log@v1\n params:\n message: Hello inbound sms\n\n api-initiated:\n actions:\n - action: log@v1\n params:\n message: Hello from API\n",
- "format": "yaml",
- "sid": "callrsid",
- "numbers": [
- {
- "e164": "+33199001234",
- "class": "classic",
- "type": "geographic",
- "assigned": "2024-04-24T17:42:28Z",
- "country": "FR"
}
], - "version": "1.0",
- "created": "2024-04-24T17:42:28Z",
- "updated": "2024-04-24T17:42:28Z"
}
]
}
Create a new Callr Actions scenario.
name required | string [ 1 .. 64 ] characters \pL |
script required | string [ 1 .. 32768 ] characters |
format | string^yaml$ |
{- "name": "Call Forwarding",
- "script": "defaults:\n language: en-US\n\nbranches:\n inbound-call:\n actions:\n - action: log@v1\n params:\n message: Hello inbound call\n\n inbound-sms:\n actions:\n - action: log@v1\n params:\n message: Hello inbound sms\n\n api-initiated:\n actions:\n - action: log@v1\n params:\n message: Hello from API\n",
- "format": "yaml"
}
{- "name": "Call Forwarding",
- "script": "defaults:\n language: en-US\n\nbranches:\n inbound-call:\n actions:\n - action: log@v1\n params:\n message: Hello inbound call\n\n inbound-sms:\n actions:\n - action: log@v1\n params:\n message: Hello inbound sms\n\n api-initiated:\n actions:\n - action: log@v1\n params:\n message: Hello from API\n",
- "format": "yaml",
- "sid": "callrsid",
- "numbers": [
- {
- "e164": "+33199001234",
- "class": "classic",
- "type": "geographic",
- "assigned": "2024-04-24T17:42:28Z",
- "country": "FR"
}
], - "version": "1.0",
- "created": "2024-04-24T17:42:28Z",
- "updated": "2024-04-24T17:42:28Z"
}
Get a Callr Actions scenario.
sid required | string (SID) = 8 characters ^[a-z0-9]{8}$ Examples: callrsid deadbeef azerty00 Action scenario SID |
{- "name": "Call Forwarding",
- "script": "defaults:\n language: en-US\n\nbranches:\n inbound-call:\n actions:\n - action: log@v1\n params:\n message: Hello inbound call\n\n inbound-sms:\n actions:\n - action: log@v1\n params:\n message: Hello inbound sms\n\n api-initiated:\n actions:\n - action: log@v1\n params:\n message: Hello from API\n",
- "format": "yaml",
- "sid": "callrsid",
- "numbers": [
- {
- "e164": "+33199001234",
- "class": "classic",
- "type": "geographic",
- "assigned": "2024-04-24T17:42:28Z",
- "country": "FR"
}
], - "version": "1.0",
- "created": "2024-04-24T17:42:28Z",
- "updated": "2024-04-24T17:42:28Z"
}
Update a Callr Actions scenario. You may send a partial object.
sid required | string (SID) = 8 characters ^[a-z0-9]{8}$ Examples: callrsid deadbeef azerty00 Action scenario SID |
name | string [ 1 .. 64 ] characters \pL |
script | string [ 1 .. 32768 ] characters |
format | string^yaml$ |
{- "name": "Call Forwarding",
- "script": "defaults:\n language: en-US\n\nbranches:\n inbound-call:\n actions:\n - action: log@v1\n params:\n message: Hello inbound call\n\n inbound-sms:\n actions:\n - action: log@v1\n params:\n message: Hello inbound sms\n\n api-initiated:\n actions:\n - action: log@v1\n params:\n message: Hello from API\n",
- "format": "yaml"
}
{- "name": "Call Forwarding",
- "script": "defaults:\n language: en-US\n\nbranches:\n inbound-call:\n actions:\n - action: log@v1\n params:\n message: Hello inbound call\n\n inbound-sms:\n actions:\n - action: log@v1\n params:\n message: Hello inbound sms\n\n api-initiated:\n actions:\n - action: log@v1\n params:\n message: Hello from API\n",
- "format": "yaml",
- "sid": "callrsid",
- "numbers": [
- {
- "e164": "+33199001234",
- "class": "classic",
- "type": "geographic",
- "assigned": "2024-04-24T17:42:28Z",
- "country": "FR"
}
], - "version": "1.0",
- "created": "2024-04-24T17:42:28Z",
- "updated": "2024-04-24T17:42:28Z"
}
Delete a Callr Actions scenario.
sid required | string (SID) = 8 characters ^[a-z0-9]{8}$ Examples: callrsid deadbeef azerty00 Action scenario SID |
{- "code": "string",
- "message": "string"
}
Run a Callr Actions scenario offline. This will execute the api-initiated
branch of the scenario.
sid required | string (SID) = 8 characters ^[a-z0-9]{8}$ Examples: callrsid deadbeef azerty00 Action scenario SID |
object (ActionsVariables) <= 64 properties Key/value object defining variables. Keys must start with a |
{- "variables": {
- "$customID": 42,
- "$target": "+15559820800",
- "$mylist": [
- "listItem1",
- "listItem2"
], - "$myobject": {
- "key1": "value1",
- "key2": "value2"
}
}
}
{- "runid": "api:9MNAB2H6"
}
Get the status of an offline run. This will return the variables and their values.
sid required | string (SID) = 8 characters ^[a-z0-9]{8}$ Examples: callrsid deadbeef azerty00 Action scenario SID |
runid required | string (ActionRunID) [ 1 .. 64 ] characters Examples: api:9MNAB2H6 inbound-call:240419830042 inbound-sms:240419830042 Run ID |
{- "variables": {
- "$customID": 42,
- "$target": "+15559820800",
- "$mylist": [
- "listItem1",
- "listItem2"
], - "$myobject": {
- "key1": "value1",
- "key2": "value2"
}
}
}
Cancel an offline run. This will stop the execution of the scenario.
sid required | string (SID) = 8 characters ^[a-z0-9]{8}$ Examples: callrsid deadbeef azerty00 Action scenario SID |
runid required | string (ActionRunID) [ 1 .. 64 ] characters Examples: api:9MNAB2H6 inbound-call:240419830042 inbound-sms:240419830042 Run ID |
{- "code": "string",
- "message": "string"
}
Attach a phone number to a Callr Actions scenario. Calls to this number will execute the inbound-call
branch of the scenario. SMS received on this number will execute the inbound-sms
branch of the scenario.
sid required | string (SID) = 8 characters ^[a-z0-9]{8}$ Examples: callrsid deadbeef azerty00 Actions scenario SID |
number required | string (PhoneNumber) ^\+[1-9][0-9]{5,32}$ Examples: +33199001234 +33639984242 +15551230000 Phone number to attach |
{- "code": "string",
- "message": "string"
}
Detach a phone number from a Callr Actions scenario.
sid required | string (SID) = 8 characters ^[a-z0-9]{8}$ Examples: callrsid deadbeef azerty00 Actions scenario SID |
number required | string (PhoneNumber) ^\+[1-9][0-9]{5,32}$ Examples: +33199001234 +33639984242 +15551230000 Phone number to detach |
{- "code": "string",
- "message": "string"
}
Search for audio files.
name | string [ 1 .. 64 ] characters Audio file name. You can use a partial name. |
status | string (AudioFileStatus) Enum: "ready" "processing" "pending-content" "pending-conversion" "error" Examples: status=ready status=error Audio file status |
source | string (AudioFileSource) Enum: "phone-record" "system" "file-upload" Examples: source=system source=file-upload Audio file source |
sort | string Default: "updated" Enum: "name" "created" "updated" Sort by one field |
order | string Default: "desc" Enum: "asc" "desc" Sort order (ascending or descending) |
offset | integer (SearchOffset) >= 0 Default: 0 Search offset index (zero-based) |
limit | integer [ 1 .. 100 ] Default: 10 Examples: limit=20 Number of items to return |
{- "offset": 0,
- "total": 20,
- "hasMore": false,
- "hits": [
- {
- "sid": "callrsid",
- "name": "My Audio File",
- "duration": 42,
- "source": "system",
- "readonly": true,
- "status": "ready",
- "created": "2024-04-24T17:42:28Z",
- "updated": "2024-04-24T17:42:28Z"
}
]
}
Upload a new audio file. To upload an audio file, the body should be a
multipart/form-data
. If you're sending an application/json
body, you can only
specify the name of the new audio file. The content will be empty (the status
property will be set to pending-content
). In this scenario, you should use the
POST /audio-files/{sid}/file
method to upload the file content.
When sending a multipart/form-data
body, the content will be processed
asynchronously. The status
property of the resulting audio file will transition
through the following stages:
pending-conversion
processing
ready
or error
The supported formats are audio/flac
, audio/mpeg
, audio/mp4
, audio/ogg
,
audio/wav
.
You can use webhooks to receive updates on the status.
file | string <binary> The audio file to upload |
name required | string (AudioFileName) [ 1 .. 64 ] characters Audio file name |
{- "sid": "callrsid",
- "name": "My Audio File",
- "duration": 42,
- "source": "system",
- "readonly": true,
- "status": "ready",
- "created": "2024-04-24T17:42:28Z",
- "updated": "2024-04-24T17:42:28Z"
}
Get audio file by SID.
sid required | string (SID) = 8 characters ^[a-z0-9]{8}$ Examples: callrsid deadbeef azerty00 Short ID |
{- "sid": "callrsid",
- "name": "My Audio File",
- "duration": 42,
- "source": "system",
- "readonly": true,
- "status": "ready",
- "created": "2024-04-24T17:42:28Z",
- "updated": "2024-04-24T17:42:28Z"
}
Update the properties of an audio file. You can only update the name.
sid required | string (SID) = 8 characters ^[a-z0-9]{8}$ Examples: callrsid deadbeef azerty00 Short ID |
name | string (AudioFileName) [ 1 .. 64 ] characters Audio file name |
{- "name": "My Audio File"
}
{- "sid": "callrsid",
- "name": "My Audio File",
- "duration": 42,
- "source": "system",
- "readonly": true,
- "status": "ready",
- "created": "2024-04-24T17:42:28Z",
- "updated": "2024-04-24T17:42:28Z"
}
Update the content of an existing audio file. The content will be processed
asynchronously. The status
property of the updated audio file will transition
through the following stages:
pending-conversion
processing
ready
or error
The supported formats are audio/flac
, audio/mpeg
, audio/mp4
, audio/ogg
,
audio/wav
.
You can use webhooks to receive updates on the status.
sid required | string (SID) = 8 characters ^[a-z0-9]{8}$ Examples: callrsid deadbeef azerty00 Short ID |
file required | string <binary> |
{- "sid": "callrsid",
- "name": "My Audio File",
- "duration": 42,
- "source": "system",
- "readonly": true,
- "status": "ready",
- "created": "2024-04-24T17:42:28Z",
- "updated": "2024-04-24T17:42:28Z"
}
Update the content of an existing audio file by recording yourself over the phone.
For a given audio file sid
, this method will return a phone number and a code to
enter as DTMF to record yourself.
Once you have confirmed the changes over the phone, the content will be processed
asynchronously. The status
property of the updated audio file will transition
through the following stages:
pending-conversion
processing
ready
or error
You can use webhooks to receive updates on the status.
sid required | string (SID) = 8 characters ^[a-z0-9]{8}$ Examples: callrsid deadbeef azerty00 Short ID |
country required | string (CountryCode) ^[A-Z]{2}$ Examples: country=FR country=US The country code of the desired country for the recording phone number. If not available, we will provide the closest possible. |
{- "code": 123456,
- "number": "+33199001234"
}
Export calls to a CSV file. The CSV file will be available for download for 24 hours.
The export will be performed asynchronously. The task status can be checked with
the Tasks
endpoints.
You cannot export more than 31 days of calls at once. If you need to export more than 31 days,you will need to split the export in multiple requests.
Exporting calls is a heavy operation. It can take a long time to complete, depending on the amount of calls to export. That is why you are limited to a maximum of 5 exports per day.
If you need to process calls in real-time, you should use webhooks, or the fetch
action with Callr Actions.
direction required | string (Direction) Enum: "inbound" "outbound" Examples: direction=inbound direction=outbound The direction. Inbound is a call or an SMS received by the Callr platform. Outbound is a call or an SMS initiated by the Callr platform. |
from required | string <date-time> (Datetime) Examples: from=2024-04-24T17:42:28Z from=2024-04-24T17:42:28.000Z from=2024-04-24T17:42:28.12345678+00:00 RFC 3339, section 5.6 |
to required | string <date-time> (Datetime) Examples: to=2024-04-24T17:42:28Z to=2024-04-24T17:42:28.000Z to=2024-04-24T17:42:28.12345678+00:00 RFC 3339, section 5.6 |
scenario | string (SID) = 8 characters ^[a-z0-9]{8}$ Examples: scenario=callrsid scenario=deadbeef scenario=azerty00 The SID of the scenario that was used to process the calls. If you want to export all calls, regardless of the scenario, you can omit this parameter. |
number | string (PhoneNumber) ^\+[1-9][0-9]{5,32}$ Examples: number=+33199001234 number=+33639984242 number=+15551230000 A Callr phone number you own that received the calls. With direction |
"sampleTaskID1234567890abcdef0000"
Search for end users.
name | string <= 32 characters End user name. You can use a partial name. |
sort | string Default: "updated" Enum: "name" "created" "updated" Sort by one field |
order | string Default: "desc" Enum: "asc" "desc" Sort order (ascending or descending) |
offset | integer (SearchOffset) >= 0 Default: 0 Search offset index (zero-based) |
limit | integer [ 1 .. 100 ] Default: 10 Examples: limit=20 Number of items to return |
{- "offset": 0,
- "total": 20,
- "hasMore": false,
- "hits": [
- {
- "name": "French Corp",
- "address": {
- "country": "FR",
- "city": "Paris"
}, - "comment": "French Subsidiary",
- "sid": "callrsid",
- "type": "third-party",
- "created": "2024-04-24T17:42:28Z",
- "updated": "2024-04-24T17:42:28Z",
- "deletable": true
}
]
}
Create an end user.
name required | string [ 1 .. 32 ] characters |
required | object |
comment | string <= 255 characters |
{- "name": "French Corp",
- "address": {
- "country": "FR",
- "city": "Paris"
}, - "comment": "French Subsidiary"
}
{- "name": "French Corp",
- "address": {
- "country": "FR",
- "city": "Paris"
}, - "comment": "French Subsidiary",
- "sid": "callrsid",
- "type": "third-party",
- "created": "2024-04-24T17:42:28Z",
- "updated": "2024-04-24T17:42:28Z",
- "deletable": true
}
Get an end user.
sid required | string (SID) = 8 characters ^[a-z0-9]{8}$ Examples: callrsid deadbeef azerty00 End user SID |
{- "name": "French Corp",
- "address": {
- "country": "FR",
- "city": "Paris"
}, - "comment": "French Subsidiary",
- "sid": "callrsid",
- "type": "third-party",
- "created": "2024-04-24T17:42:28Z",
- "updated": "2024-04-24T17:42:28Z",
- "deletable": true
}
Update an end user. You may send a partial object.
sid required | string (SID) = 8 characters ^[a-z0-9]{8}$ Examples: callrsid deadbeef azerty00 End user SID |
name | string [ 1 .. 32 ] characters |
object | |
comment | string <= 255 characters |
{- "name": "French Corp",
- "address": {
- "country": "FR",
- "city": "Paris"
}, - "comment": "French Subsidiary"
}
{- "name": "French Corp",
- "address": {
- "country": "FR",
- "city": "Paris"
}, - "comment": "French Subsidiary",
- "sid": "callrsid",
- "type": "third-party",
- "created": "2024-04-24T17:42:28Z",
- "updated": "2024-04-24T17:42:28Z",
- "deletable": true
}
Delete an end user. You cannot delete an end user that is associated with a Caller ID, or a Phone Number.
sid required | string (SID) = 8 characters ^[a-z0-9]{8}$ Examples: callrsid deadbeef azerty00 End user SID |
{- "code": "string",
- "message": "string"
}
Search for your phone numbers.
sid | string (SID) = 8 characters ^[a-z0-9]{8}$ Examples: sid=callrsid sid=deadbeef sid=azerty00 Phone number SID |
class | string (NumberClass) Enum: "gold" "classic" Examples: class=classic Number class |
type | string (NumberType) Enum: "geographic" "mobile" "non-geographic" "personal" "platform" "sharedrevenue" "sms-only" "special" "tollfree" "verified" Examples: type=geographic type=non-geographic Number type |
contains | string^(\+[1-9])?[0-9]{1,32}$ Examples:
Search by number. You can use a partial number. |
detached | boolean Search for detached numbers only. You can only pass Value: true |
sort | string Default: "assigned" Enum: "assigned" "e164" Sort by one field |
order | string Default: "desc" Enum: "asc" "desc" Sort order (ascending or descending) |
offset | integer (SearchOffset) >= 0 Default: 0 Search offset index (zero-based) |
limit | integer [ 1 .. 100 ] Default: 10 Examples: limit=20 Number of items to return |
{- "offset": 0,
- "total": 20,
- "hasMore": false,
- "hits": [
- {
- "e164": "+33199001234",
- "class": "classic",
- "type": "geographic",
- "assigned": "2024-04-24T17:42:28Z",
- "country": "FR",
- "scenario": {
- "sid": "callrsid",
- "name": "My Call Flow",
- "type": {
- "name": "Actions",
- "version": "1.0"
}
}, - "compliance": {
- "state": "invalid",
- "blockedAfter": "2024-04-24T17:42:28Z"
}, - "contract": {
- "ends": "2024-04-24T17:42:28Z",
- "renew": true
}, - "pricing": {
- "increment": 0,
- "minduration": 0,
- "minute": "5.50",
- "mrc": "5.50",
- "nrc": "5.50",
- "setup": "5.50"
}, - "enduser": {
- "name": "French Corp",
- "address": {
- "country": "FR",
- "city": "Paris"
}, - "comment": "French Subsidiary",
- "sid": "callrsid",
- "type": "third-party",
- "created": "2024-04-24T17:42:28Z",
- "updated": "2024-04-24T17:42:28Z",
- "deletable": true,
- "freeze": {
- "unfreeze": "2024-04-24T17:42:28Z",
- "frozen": true
}, - "compliance": {
- "status": "no-rules-required",
- "compliant": true
}
}
}
]
}
Get a phone number.
number required | string (PhoneNumber) ^\+[1-9][0-9]{5,32}$ Examples: +33199001234 +33639984242 +15551230000 A phone number in ITU-T E.164 format https://en.wikipedia.org/wiki/E.164, prefixed by "+" |
{- "e164": "+33199001234",
- "class": "classic",
- "type": "geographic",
- "assigned": "2024-04-24T17:42:28Z",
- "country": "FR",
- "scenario": {
- "sid": "callrsid",
- "name": "My Call Flow",
- "type": {
- "name": "Actions",
- "version": "1.0"
}
}, - "compliance": {
- "state": "invalid",
- "blockedAfter": "2024-04-24T17:42:28Z"
}, - "contract": {
- "ends": "2024-04-24T17:42:28Z",
- "renew": true
}, - "pricing": {
- "increment": 0,
- "minduration": 0,
- "minute": "5.50",
- "mrc": "5.50",
- "nrc": "5.50",
- "setup": "5.50"
}, - "enduser": {
- "name": "French Corp",
- "address": {
- "country": "FR",
- "city": "Paris"
}, - "comment": "French Subsidiary",
- "sid": "callrsid",
- "type": "third-party",
- "created": "2024-04-24T17:42:28Z",
- "updated": "2024-04-24T17:42:28Z",
- "deletable": true,
- "freeze": {
- "unfreeze": "2024-04-24T17:42:28Z",
- "frozen": true
}, - "compliance": {
- "status": "no-rules-required",
- "compliant": true
}
}
}
Terminate the number subscription and immediately free up the number. If the number is currently attached to an actions scenario, it will be detached. Should there be a contract associated with the number, your account will be billed for the remaining contractual days.
number required | string (PhoneNumber) ^\+[1-9][0-9]{5,32}$ Examples: +33199001234 +33639984242 +15551230000 A phone number in ITU-T E.164 format https://en.wikipedia.org/wiki/E.164, prefixed by "+" |
{- "code": "string",
- "message": "string"
}
Update a phone number. Attach the number to a Callr Actions scenario, or change the end user.
number required | string (PhoneNumber) ^\+[1-9][0-9]{5,32}$ Examples: +33199001234 +33639984242 +15551230000 A phone number in ITU-T E.164 format https://en.wikipedia.org/wiki/E.164, prefixed by "+" |
scenario | string (SID) = 8 characters ^[a-z0-9]{8}$ The scenario to attach to |
enduser | string (SID) = 8 characters ^[a-z0-9]{8}$ The end user to assign to |
{- "scenario": "callrsid",
- "enduser": "callrsid"
}
{- "code": "string",
- "message": "string"
}
Detach a phone number from its scenario.
While the number remains allocated to your account, it is not engaged in any scenario. Any calls made to this number will be declined with an "unallocated number" message.
number required | string (PhoneNumber) ^\+[1-9][0-9]{5,32}$ Examples: +33199001234 +33639984242 +15551230000 A phone number in ITU-T E.164 format https://en.wikipedia.org/wiki/E.164, prefixed by "+" |
{- "code": "string",
- "message": "string"
}
Attach a phone number to a Callr Actions scenario.
number required | string (PhoneNumber) ^\+[1-9][0-9]{5,32}$ Examples: +33199001234 +33639984242 +15551230000 The phone number to attach |
sid required | string (SID) = 8 characters ^[a-z0-9]{8}$ Examples: callrsid deadbeef azerty00 The scenario SID |
{- "code": "string",
- "message": "string"
}
Assign a phone number to an end user.
number required | string (PhoneNumber) ^\+[1-9][0-9]{5,32}$ Examples: +33199001234 +33639984242 +15551230000 The phone number to assign |
sid required | string (SID) = 8 characters ^[a-z0-9]{8}$ Examples: callrsid deadbeef azerty00 The end user SID |
{- "code": "string",
- "message": "string"
}
Reserve numbers before ordering. This method gives you a token to use with the POST /numbers/store/{token}
method. Your booking is held for a maximum of 5 minutes. You can have only one reservation at a time.
country required | string (CountryCode) ^[A-Z]{2}$ Examples:
Country code |
type required | string (NumberType) Enum: "geographic" "mobile" "non-geographic" "personal" "platform" "sharedrevenue" "sms-only" "special" "tollfree" "verified" Examples:
Type of number |
quantity | integer [ 1 .. 100 ] Default: 1 Quantity to reserve |
class | string (NumberClass) Default: "classic" Enum: "gold" "classic" Examples: class=classic Class of number |
prefix | string^\+[1-9][0-9]{0,8}$ Examples:
The prefix of the number |
area | string <= 32 characters Examples:
The area/city of the number |
{- "token": "stringstringstringstringstringstringstri",
- "expires": "2024-04-24T17:42:28Z",
- "contract": {
- "paymentType": "prepaid",
- "durationInMonths": 1,
- "ends": "2024-04-24T17:42:28Z"
}, - "items": [
- {
- "number": "+33199001234",
- "pricing": {
- "increment": 0,
- "minduration": 0,
- "minute": "5.50",
- "mrc": "5.50",
- "nrc": "5.50",
- "setup": "5.50"
}
}
]
}
Buy phone numbers previously reserved, with the token returned by the /numbers/store
endpoint.
token required | string >= 40 characters Reservation token |
{- "contract": {
- "paymentType": "prepaid",
- "durationInMonths": 1,
- "ends": "2024-04-24T17:42:28Z"
}, - "errors": [
- {
- "message": "string",
- "number": "+33199001234"
}
], - "items": [
- {
- "number": "+33199001234",
- "pricing": {
- "increment": 0,
- "minduration": 0,
- "minute": "5.50",
- "mrc": "5.50",
- "nrc": "5.50",
- "setup": "5.50"
}
}
]
}
Get the status of a phone number reservation.
token required | string Reservation token |
{- "token": "stringstringstringstringstringstringstri",
- "expires": "2024-04-24T17:42:28Z",
- "contract": {
- "paymentType": "prepaid",
- "durationInMonths": 1,
- "ends": "2024-04-24T17:42:28Z"
}, - "items": [
- {
- "number": "+33199001234",
- "pricing": {
- "increment": 0,
- "minduration": 0,
- "minute": "5.50",
- "mrc": "5.50",
- "nrc": "5.50",
- "setup": "5.50"
}
}
]
}
Get the list of number types available in the number store.
country required | string (CountryCode) ^[A-Z]{2}$ Examples:
ISO 3166-1 alpha-2 country code |
[- {
- "available": {
- "classic": 100,
- "gold": 10
}, - "type": "geographic",
- "label": "Geographic"
}
]
Get the list of prefixes available in the number store.
country required | string (CountryCode) ^[A-Z]{2}$ Examples:
ISO 3166-1 alpha-2 country code |
type required | string (NumberType) Enum: "geographic" "mobile" "non-geographic" "personal" "platform" "sharedrevenue" "sms-only" "special" "tollfree" "verified" Examples:
Type of number |
[- {
- "available": {
- "classic": 100,
- "gold": 10
}, - "country": "FR",
- "prefix": "+331",
- "localPrefix": "01",
- "area": "Paris",
- "type": "geographic"
}
]
Search for your recordings.
sid | string (SID) = 8 characters ^[a-z0-9]{8}$ Examples: sid=callrsid sid=deadbeef sid=azerty00 Recording SID |
type | string (RecordingType) Examples: type=call type=recording type=voicemail Recording type |
caller | string (PhoneNumber) ^\+[1-9][0-9]{5,32}$ Examples: caller=+33199001234 caller=+33639984242 caller=+15551230000 Caller number |
callee | string (PhoneNumber) ^\+[1-9][0-9]{5,32}$ Examples: callee=+33199001234 callee=+33639984242 callee=+15551230000 Callee number |
callid | integer <int64> (CallID) >= 1 Examples: callid=240711945874 callid=210548952067 Call ID |
read | boolean Examples: read=true Read status |
readAfter | string <date-time> (Datetime) Examples: readAfter=2024-04-24T17:42:28Z readAfter=2024-04-24T17:42:28.000Z readAfter=2024-04-24T17:42:28.12345678+00:00 RFC 3339, section 5.6 |
readBefore | string <date-time> (Datetime) Examples: readBefore=2024-04-24T17:42:28Z readBefore=2024-04-24T17:42:28.000Z readBefore=2024-04-24T17:42:28.12345678+00:00 RFC 3339, section 5.6 |
createdAfter | string <date-time> (Datetime) Examples: createdAfter=2024-04-24T17:42:28Z createdAfter=2024-04-24T17:42:28.000Z createdAfter=2024-04-24T17:42:28.12345678+00:00 RFC 3339, section 5.6 |
createdBefore | string <date-time> (Datetime) Examples: createdBefore=2024-04-24T17:42:28Z createdBefore=2024-04-24T17:42:28.000Z createdBefore=2024-04-24T17:42:28.12345678+00:00 RFC 3339, section 5.6 |
minDuration | integer >= 0 Examples: minDuration=5 Minimum call duration |
sort | string Default: "created" Sort by one field Value: "created" |
order | string Default: "desc" Enum: "asc" "desc" Sort order (ascending or descending) |
offset | integer (SearchOffset) >= 0 Default: 0 Search offset index (zero-based) |
limit | integer [ 1 .. 100 ] Default: 10 Examples: limit=20 Number of items to return |
{- "offset": 0,
- "total": 20,
- "hasMore": false,
- "hits": [
- {
- "sid": "callrsid",
- "type": "call",
- "callee": "+33199001234",
- "scenario": {
- "sid": "callrsid",
- "name": "My Call Flow"
}, - "callid": 240711945874,
- "created": "2024-04-24T17:42:28Z",
- "readAt": "2024-04-24T17:42:28Z",
- "duration": 5,
- "caller": {
- "name": "string",
- "number": "+33199001234",
- "restricted": true
}, - "read": true,
- "status": "ready",
- "size": 123456,
- "options": {
- "ner": true,
- "pii": true,
- "feeds": "all",
- "language": "en-US",
- "sentiment": true,
- "transcription": true
}, - "transcription": {
- "feeds": [
- {
- "ner": [
- {
- "text": "string",
- "offset": 0,
- "category": "string",
- "confidence": 0.1
}
], - "pii": [
- {
- "text": "string",
- "offset": 0,
- "category": "string",
- "confidence": 0.1
}
], - "data": {
- "display": "Hello, world!",
- "language": "en-US",
- "lexical": "hello world",
- "phrases": [
- {
- "offset": 0,
- "display": "Hello, world!",
- "confidence": 0.98,
- "words": [
- null
]
}
]
}, - "feed": "leg_a",
- "sentiment": {
- "sentiment": "neutral",
- "confidenceScores": {
- "neutral": 0.98,
- "negative": 0.98,
- "positive": 0.98
}
}
}
], - "version": "2.0"
}
}
]
}
Update recordings in bulk. You may update the read
status of your recordings by specifying the sid
of the recording(s) you want to update. To update all of your recordings, do not specify any sid
.
sid | Array of strings (SID) <= 100 items [ items = 8 characters ^[a-z0-9]{8}$ ] |
read | boolean Read status |
{- "read": true
}
"sampleTaskID1234567890abcdef0000"
Delete recordings in bulk. You may delete your recordings by specifying the sid
of the recording(s) you want to delete. To delete all of your recordings, do not specify any sid
.
sid | Array of strings (SID) <= 100 items [ items = 8 characters ^[a-z0-9]{8}$ ] |
"sampleTaskID1234567890abcdef0000"
Retrieve a recording.
sid required | string (SID) = 8 characters ^[a-z0-9]{8}$ Examples: callrsid deadbeef azerty00 Recording SID |
{- "sid": "callrsid",
- "type": "call",
- "callee": "+33199001234",
- "scenario": {
- "sid": "callrsid",
- "name": "My Call Flow"
}, - "callid": 240711945874,
- "created": "2024-04-24T17:42:28Z",
- "readAt": "2024-04-24T17:42:28Z",
- "duration": 5,
- "caller": {
- "name": "string",
- "number": "+33199001234",
- "restricted": true
}, - "read": true,
- "status": "ready",
- "size": 123456,
- "options": {
- "ner": true,
- "pii": true,
- "feeds": "all",
- "language": "en-US",
- "sentiment": true,
- "transcription": true
}, - "transcription": {
- "feeds": [
- {
- "ner": [
- {
- "text": "string",
- "offset": 0,
- "category": "string",
- "confidence": 0.1
}
], - "pii": [
- {
- "text": "string",
- "offset": 0,
- "category": "string",
- "confidence": 0.1
}
], - "data": {
- "display": "Hello, world!",
- "language": "en-US",
- "lexical": "hello world",
- "phrases": [
- {
- "offset": 0,
- "display": "Hello, world!",
- "confidence": 0.98,
- "words": [
- {
- "word": "hello",
- "offset": 0,
- "duration": 0
}
]
}
]
}, - "feed": "leg_a",
- "sentiment": {
- "sentiment": "neutral",
- "confidenceScores": {
- "neutral": 0.98,
- "negative": 0.98,
- "positive": 0.98
}
}
}
], - "version": "2.0"
}
}
Update a recording. You may send a partial object.
sid required | string (SID) = 8 characters ^[a-z0-9]{8}$ Examples: callrsid deadbeef azerty00 Recording SID |
read | boolean Read status |
{- "read": true
}
{- "sid": "callrsid",
- "type": "call",
- "callee": "+33199001234",
- "scenario": {
- "sid": "callrsid",
- "name": "My Call Flow"
}, - "callid": 240711945874,
- "created": "2024-04-24T17:42:28Z",
- "readAt": "2024-04-24T17:42:28Z",
- "duration": 5,
- "caller": {
- "name": "string",
- "number": "+33199001234",
- "restricted": true
}, - "read": true,
- "status": "ready",
- "size": 123456,
- "options": {
- "ner": true,
- "pii": true,
- "feeds": "all",
- "language": "en-US",
- "sentiment": true,
- "transcription": true
}, - "transcription": {
- "feeds": [
- {
- "ner": [
- {
- "text": "string",
- "offset": 0,
- "category": "string",
- "confidence": 0.1
}
], - "pii": [
- {
- "text": "string",
- "offset": 0,
- "category": "string",
- "confidence": 0.1
}
], - "data": {
- "display": "Hello, world!",
- "language": "en-US",
- "lexical": "hello world",
- "phrases": [
- {
- "offset": 0,
- "display": "Hello, world!",
- "confidence": 0.98,
- "words": [
- {
- "word": "hello",
- "offset": 0,
- "duration": 0
}
]
}
]
}, - "feed": "leg_a",
- "sentiment": {
- "sentiment": "neutral",
- "confidenceScores": {
- "neutral": 0.98,
- "negative": 0.98,
- "positive": 0.98
}
}
}
], - "version": "2.0"
}
}
Delete a recording.
sid required | string (SID) = 8 characters ^[a-z0-9]{8}$ Examples: callrsid deadbeef azerty00 Recording SID |
{- "code": "string",
- "message": "string"
}
Search for your SMS messages.
direction | string (Direction) Enum: "inbound" "outbound" Examples: direction=inbound direction=outbound The direction. Inbound is a call or an SMS received by the Callr platform. Outbound is a call or an SMS initiated by the Callr platform. |
sid | string (SID) = 8 characters ^[a-z0-9]{8}$ Examples: sid=callrsid sid=deadbeef sid=azerty00 SMS SID |
string or PhoneNumber (string) (SMSSender) Examples: from=SMS from=MyCompany from=+15551230000 from=+33639984242 SMS sender | |
to | string (PhoneNumber) ^\+[1-9][0-9]{5,32}$ Examples: to=+33199001234 to=+33639984242 to=+15551230000 SMS to |
contains | string <= 64 characters SMS text body contains |
trafficType | string (SMSTrafficType) Enum: "marketing" "alerting" Examples: trafficType=marketing SMS traffic type |
status | string (SMSStatus) Enum: "created" "error" "expired" "failed" "pending" "delivered" "remote-queued" "sent" Examples: status=sent status=delivered The status of the SMS.
|
createdAfter | string <date-time> (Datetime) Examples: createdAfter=2024-04-24T17:42:28Z createdAfter=2024-04-24T17:42:28.000Z createdAfter=2024-04-24T17:42:28.12345678+00:00 RFC 3339, section 5.6 |
createdBefore | string <date-time> (Datetime) Examples: createdBefore=2024-04-24T17:42:28Z createdBefore=2024-04-24T17:42:28.000Z createdBefore=2024-04-24T17:42:28.12345678+00:00 RFC 3339, section 5.6 |
sort | string Default: "created" Enum: "created" "updated" Sort by one field |
order | string Default: "desc" Enum: "asc" "desc" Sort order (ascending or descending) |
offset | integer (SearchOffset) >= 0 Default: 0 Search offset index (zero-based) |
limit | integer [ 1 .. 100 ] Default: 10 Examples: limit=20 Number of items to return |
{- "offset": 0,
- "total": 20,
- "hasMore": false,
- "hits": [
- {
- "direction": "inbound",
- "sid": "callrsid",
- "from": "SMS",
- "to": "+33199001234",
- "body": {
- "text": "Hello world!"
}, - "trafficType": "marketing",
- "status": "sent",
- "error": "string",
- "created": "2024-04-24T17:42:28Z",
- "delivered": "2024-04-24T17:42:28Z",
- "updated": "2024-04-24T17:42:28Z",
- "sent": "2024-04-24T17:42:28Z",
- "parts": 10,
- "network": "20801",
- "encoding": "gsm",
- "cost": "5.50",
- "paymentType": "prepaid",
- "statusHistory": [
- {
- "after": "sent",
- "before": "sent",
- "at": "2024-04-24T17:42:28Z"
}
]
}
]
}
Send an SMS. If accepted, the SMS will cycle through the following statuses:
created
pending
sent
remote-queued
delivered
At any time, the SMS can be in the following statuses:
error
: was not acceptedfailed
: rejected by the carrierexpired
: was not delivered to the recipientto required | string (PhoneNumber) ^\+[1-9][0-9]{5,32}$ Examples: to=+33199001234 to=+33639984242 to=+15551230000 SMS recipient |
string or PhoneNumber (string) (SMSSender) Examples:
The SMS sender. If empty, a value will be automatically set depending on the destination. Otherwise, the sender must be either a phone number, or an alphanumeric sender (with at least one character - 11 chars maximum). Custom SMS senders must be approved by our team and downstream carriers. You can request a custom sender on https://app.callr.com. | |
encoding | string (SMSEncoding) Enum: "gsm" "unicode" Examples: encoding=gsm By default, we automatically detect the encoding based on the characters used in the body. If you want to force the encoding, you can use this field. The SMS body will be processed according to the encoding specified. Depending on the encoding, messages may be split into parts of 153 (GSM 03.38) or 67 (UNICODE) characters. Please note that some countries only support GSM encoding. |
trafficType | string (SMSTrafficType) Default: "marketing" Enum: "marketing" "alerting" Examples: trafficType=marketing Traffic type of an SMS message. Carriers require this to be set to either |
text required | string [ 1 .. 3200 ] characters |
{- "text": "Hello world!"
}
{- "direction": "inbound",
- "sid": "callrsid",
- "from": "SMS",
- "to": "+33199001234",
- "body": {
- "text": "Hello world!"
}, - "trafficType": "marketing",
- "status": "sent",
- "error": "string",
- "created": "2024-04-24T17:42:28Z",
- "delivered": "2024-04-24T17:42:28Z",
- "updated": "2024-04-24T17:42:28Z",
- "sent": "2024-04-24T17:42:28Z",
- "parts": 10,
- "network": "20801",
- "encoding": "gsm",
- "cost": "5.50",
- "paymentType": "prepaid",
- "statusHistory": [
- {
- "after": "sent",
- "before": "sent",
- "at": "2024-04-24T17:42:28Z"
}
]
}
Get an SMS.
sid required | string (SID) = 8 characters ^[a-z0-9]{8}$ Examples: callrsid deadbeef azerty00 Short ID |
{- "direction": "inbound",
- "sid": "callrsid",
- "from": "SMS",
- "to": "+33199001234",
- "body": {
- "text": "Hello world!"
}, - "trafficType": "marketing",
- "status": "sent",
- "error": "string",
- "created": "2024-04-24T17:42:28Z",
- "delivered": "2024-04-24T17:42:28Z",
- "updated": "2024-04-24T17:42:28Z",
- "sent": "2024-04-24T17:42:28Z",
- "parts": 10,
- "network": "20801",
- "encoding": "gsm",
- "cost": "5.50",
- "paymentType": "prepaid",
- "statusHistory": [
- {
- "after": "sent",
- "before": "sent",
- "at": "2024-04-24T17:42:28Z"
}
]
}
Return the status of a task.
taskid required | string (TaskID) [ 32 .. 256 ] characters ^[a-zA-Z0-9]{32,256}$ Examples: sampleTaskID1234567890abcdef0000 Task ID |
{- "id": "sampleTaskID1234567890abcdef0000",
- "status": "pending",
- "percent": 42,
- "ended": "2024-04-24T17:42:28Z",
- "result": null,
- "error": "string"
}
Cancel a task. The task must be in a PENDING
or RUNNING
state. If the task is RUNNING
, the result is undefined.
taskid required | string (TaskID) [ 32 .. 256 ] characters ^[a-zA-Z0-9]{32,256}$ Examples: sampleTaskID1234567890abcdef0000 Task ID |
{- "code": "string",
- "message": "string"
}
Search for your webhooks.
sid | string (SID) = 8 characters ^[a-z0-9]{8}$ Examples: sid=callrsid sid=deadbeef sid=azerty00 Short ID |
type | string (WebhookType) Enum: "v2.billing.credit.topup" "v2.billing.credit.warning" "v2.billing.credit.shutdown" "v2.call.inbound.started" "v2.call.inbound.ended" "v2.call.outbound.started" "v2.call.outbound.ended" "v2.number.assigned" "v2.number.unassigned" "v2.task.updated" "v2.audio-file.updated" "v2.recording.updated" "v2.sms.inbound.received" "v2.sms.outbound.updated"
|
status | string (WebhookStatus) Enum: "disabled" "disabled-admin" "disabled-system" "enabled" Examples: status=enabled status=disabled Webhook status |
sort | string Default: "created" Sort by one field Value: "created" |
order | string Default: "desc" Enum: "asc" "desc" Sort order (ascending or descending) |
offset | integer (SearchOffset) >= 0 Default: 0 Search offset index (zero-based) |
limit | integer [ 1 .. 100 ] Default: 10 Examples: limit=20 Number of items to return |
{- "offset": 0,
- "total": 20,
- "hasMore": false,
- "hits": [
- {
- "sid": "callrsid",
- "type": "v2.billing.credit.topup",
- "status": "enabled",
- "options": {
- "hmac": {
- "secret": "stringst",
- "algorithm": "sha512"
}
}, - "failed": 0,
- "lastfailed": "2024-04-24T17:42:28Z",
- "created": "2024-04-24T17:42:28Z",
- "updated": "2024-04-24T17:42:28Z"
}
]
}
Create a new webhook.
type required | string (WebhookType) Enum: "v2.billing.credit.topup" "v2.billing.credit.warning" "v2.billing.credit.shutdown" "v2.call.inbound.started" "v2.call.inbound.ended" "v2.call.outbound.started" "v2.call.outbound.ended" "v2.number.assigned" "v2.number.unassigned" "v2.task.updated" "v2.audio-file.updated" "v2.recording.updated" "v2.sms.inbound.received" "v2.sms.outbound.updated"
|
endpoint required | string <uri> (URI) ^https?:\/\/(?:[a-zA-Z0-9-]+\.)+[a-zA-Z]{2,}(... |
object (WebhookOptions) Webhook options |
{- "options": {
- "hmac": {
- "secret": "stringst",
- "algorithm": "sha512"
}
}
}
{- "sid": "callrsid",
- "type": "v2.billing.credit.topup",
- "status": "enabled",
- "options": {
- "hmac": {
- "secret": "stringst",
- "algorithm": "sha512"
}
}, - "failed": 0,
- "lastfailed": "2024-04-24T17:42:28Z",
- "created": "2024-04-24T17:42:28Z",
- "updated": "2024-04-24T17:42:28Z"
}
Get a webhook.
sid required | string (SID) = 8 characters ^[a-z0-9]{8}$ Examples: callrsid deadbeef azerty00 Short ID |
{- "sid": "callrsid",
- "type": "v2.billing.credit.topup",
- "status": "enabled",
- "options": {
- "hmac": {
- "secret": "stringst",
- "algorithm": "sha512"
}
}, - "failed": 0,
- "lastfailed": "2024-04-24T17:42:28Z",
- "created": "2024-04-24T17:42:28Z",
- "updated": "2024-04-24T17:42:28Z"
}
Update a webhook. You cannot change the endoint URL. To change the URL, create a new webhook.
sid required | string (SID) = 8 characters ^[a-z0-9]{8}$ Examples: callrsid deadbeef azerty00 Short ID |
status required | string (WebhookStatusUpdate) Enum: "disabled" "enabled" Webhook status (set by user) |
{- "status": "disabled"
}
{- "sid": "callrsid",
- "type": "v2.billing.credit.topup",
- "status": "enabled",
- "options": {
- "hmac": {
- "secret": "stringst",
- "algorithm": "sha512"
}
}, - "failed": 0,
- "lastfailed": "2024-04-24T17:42:28Z",
- "created": "2024-04-24T17:42:28Z",
- "updated": "2024-04-24T17:42:28Z"
}
Search for your webhook logs.
endpoint | string <uri> (URI) ^https?:\/\/(?:[a-zA-Z0-9-]+\.)+[a-zA-Z]{2,}(... Examples: endpoint=https://example.com endpoint=https://www.example.com/path |
at | string <date-time> (Datetime) Examples: at=2024-04-24T17:42:28Z at=2024-04-24T17:42:28.000Z at=2024-04-24T17:42:28.12345678+00:00 RFC 3339, section 5.6 |
id | string [ 0 .. 50 ] characters Event ID |
sid | string (SID) = 8 characters ^[a-z0-9]{8}$ Examples: sid=callrsid sid=deadbeef sid=azerty00 Webhook SID |
httpcode | integer >= 100 |
try | integer >= 0 |
type | string (WebhookType) Enum: "v2.billing.credit.topup" "v2.billing.credit.warning" "v2.billing.credit.shutdown" "v2.call.inbound.started" "v2.call.inbound.ended" "v2.call.outbound.started" "v2.call.outbound.ended" "v2.number.assigned" "v2.number.unassigned" "v2.task.updated" "v2.audio-file.updated" "v2.recording.updated" "v2.sms.inbound.received" "v2.sms.outbound.updated"
|
sort | string Default: "at" Sort by one field Value: "at" |
order | string Default: "desc" Enum: "asc" "desc" Sort order (ascending or descending) |
offset | integer (SearchOffset) >= 0 Default: 0 Search offset index (zero-based) |
limit | integer [ 1 .. 100 ] Default: 10 Examples: limit=20 Number of items to return |
{- "offset": 0,
- "total": 20,
- "hasMore": false,
- "hits": [
- {
- "id": "a03317440280451052hUD7yPiwWrzgGB",
- "at": "2024-04-24T17:42:28Z",
- "sid": "callrsid",
- "type": "v2.billing.credit.topup",
- "try": 0,
- "status": "pending",
- "httpCode": 0,
- "duration": 0.1,
- "error": "string",
- "payload": null
}
]
}
Your prepaid account has been credited
id required | string Unique identifier for the event. Use this for idempotency checks. |
at required | string <date-time> (Datetime) Timestamp of the event |
sid required | string (SID) = 8 characters ^[a-z0-9]{8}$ Unique identifier for the webhook |
type required | string Enum: "v2.billing.credit.topup" "v2.billing.credit.warning" "v2.billing.credit.shutdown" "v2.call.inbound.started" "v2.call.inbound.ended" "v2.call.outbound.started" "v2.call.outbound.ended" "v2.number.assigned" "v2.number.unassigned" "v2.task.updated" "v2.audio-file.updated" "v2.recording.updated" "v2.sms.inbound.received" "v2.sms.outbound.updated"
Value: "v2.billing.credit.topup" |
try required | integer [ 0 .. 10 ] Number of attempts made to deliver the webhook |
required | object Payload of the webhook |
{- "id": "a03317440280451052hUD7yPiwWrzgGB",
- "at": "2024-04-24T17:42:28Z",
- "sid": "callrsid",
- "type": "v2.billing.credit.topup",
- "try": 0,
- "payload": {
- "balance": "5.50",
- "currency": "EUR",
- "amount": "5.50",
- "shutdown": "5.50",
- "warning": "5.50"
}
}
Your prepaid account has reached the warning threshold. Please top up your account to avoid service interruption.
id required | string Unique identifier for the event. Use this for idempotency checks. |
at required | string <date-time> (Datetime) Timestamp of the event |
sid required | string (SID) = 8 characters ^[a-z0-9]{8}$ Unique identifier for the webhook |
type required | string Enum: "v2.billing.credit.topup" "v2.billing.credit.warning" "v2.billing.credit.shutdown" "v2.call.inbound.started" "v2.call.inbound.ended" "v2.call.outbound.started" "v2.call.outbound.ended" "v2.number.assigned" "v2.number.unassigned" "v2.task.updated" "v2.audio-file.updated" "v2.recording.updated" "v2.sms.inbound.received" "v2.sms.outbound.updated"
Value: "v2.billing.credit.warning" |
try required | integer [ 0 .. 10 ] Number of attempts made to deliver the webhook |
required | object Payload of the webhook |
{- "id": "a03317440280451052hUD7yPiwWrzgGB",
- "at": "2024-04-24T17:42:28Z",
- "sid": "callrsid",
- "type": "v2.billing.credit.warning",
- "try": 0,
- "payload": {
- "balance": "5.50",
- "currency": "EUR",
- "amount": "5.50",
- "shutdown": "5.50",
- "warning": "5.50"
}
}
Your prepaid account has reached the shutdown threshold. Your account is currently disabled. Please top up your account to re-enable it.
id required | string Unique identifier for the event. Use this for idempotency checks. |
at required | string <date-time> (Datetime) Timestamp of the event |
sid required | string (SID) = 8 characters ^[a-z0-9]{8}$ Unique identifier for the webhook |
type required | string Enum: "v2.billing.credit.topup" "v2.billing.credit.warning" "v2.billing.credit.shutdown" "v2.call.inbound.started" "v2.call.inbound.ended" "v2.call.outbound.started" "v2.call.outbound.ended" "v2.number.assigned" "v2.number.unassigned" "v2.task.updated" "v2.audio-file.updated" "v2.recording.updated" "v2.sms.inbound.received" "v2.sms.outbound.updated"
Value: "v2.billing.credit.shutdown" |
try required | integer [ 0 .. 10 ] Number of attempts made to deliver the webhook |
required | object Payload of the webhook |
{- "id": "a03317440280451052hUD7yPiwWrzgGB",
- "at": "2024-04-24T17:42:28Z",
- "sid": "callrsid",
- "type": "v2.billing.credit.shutdown",
- "try": 0,
- "payload": {
- "balance": "5.50",
- "currency": "EUR",
- "amount": "5.50",
- "shutdown": "5.50",
- "warning": "5.50"
}
}
An inbound call has started. An inbound call is a call to a Callr hosted phone number.
id required | string Unique identifier for the event. Use this for idempotency checks. |
at required | string <date-time> (Datetime) Timestamp of the event |
sid required | string (SID) = 8 characters ^[a-z0-9]{8}$ Unique identifier for the webhook |
type required | string Enum: "v2.billing.credit.topup" "v2.billing.credit.warning" "v2.billing.credit.shutdown" "v2.call.inbound.started" "v2.call.inbound.ended" "v2.call.outbound.started" "v2.call.outbound.ended" "v2.number.assigned" "v2.number.unassigned" "v2.task.updated" "v2.audio-file.updated" "v2.recording.updated" "v2.sms.inbound.received" "v2.sms.outbound.updated"
Value: "v2.call.inbound.started" |
try required | integer [ 0 .. 10 ] Number of attempts made to deliver the webhook |
required | object (CDR) |
{- "id": "a03317440280451052hUD7yPiwWrzgGB",
- "at": "2024-04-24T17:42:28Z",
- "sid": "callrsid",
- "type": "v2.call.inbound.started",
- "try": 0,
- "payload": {
- "direction": "inbound",
- "callid": 240711945874,
- "bridged": 240711945874,
- "callerName": "John Doe",
- "callerNumber": "+33199001234",
- "callerRestricted": false,
- "callee": "+33199001234",
- "started": "2024-04-24T17:42:28Z",
- "answered": "2024-04-24T17:42:28Z",
- "ended": "2024-04-24T17:42:28Z",
- "status": "answered",
- "hangupSource": "caller",
- "hangupCause": 16,
- "hangupTech": "sip:200",
- "durationTotal": 42,
- "durationAnswered": 40,
- "durationBilled": 60,
- "billingDestinationLabel": "France - Geographic",
- "billingDestinationID": 0,
- "billingDebit": "5.50",
- "billingCredit": "5.50",
- "billingPaymentType": "prepaid",
- "scenarioSid": "callrsid",
- "scenarioName": "My Call Flow",
- "scenarioTypeName": "Actions",
- "scenarioTypeVersion": "1.0"
}
}
An inbound call has hung up
id required | string Unique identifier for the event. Use this for idempotency checks. |
at required | string <date-time> (Datetime) Timestamp of the event |
sid required | string (SID) = 8 characters ^[a-z0-9]{8}$ Unique identifier for the webhook |
type required | string Enum: "v2.billing.credit.topup" "v2.billing.credit.warning" "v2.billing.credit.shutdown" "v2.call.inbound.started" "v2.call.inbound.ended" "v2.call.outbound.started" "v2.call.outbound.ended" "v2.number.assigned" "v2.number.unassigned" "v2.task.updated" "v2.audio-file.updated" "v2.recording.updated" "v2.sms.inbound.received" "v2.sms.outbound.updated"
Value: "v2.call.inbound.ended" |
try required | integer [ 0 .. 10 ] Number of attempts made to deliver the webhook |
required | object (CDR) |
{- "id": "a03317440280451052hUD7yPiwWrzgGB",
- "at": "2024-04-24T17:42:28Z",
- "sid": "callrsid",
- "type": "v2.call.inbound.ended",
- "try": 0,
- "payload": {
- "direction": "inbound",
- "callid": 240711945874,
- "bridged": 240711945874,
- "callerName": "John Doe",
- "callerNumber": "+33199001234",
- "callerRestricted": false,
- "callee": "+33199001234",
- "started": "2024-04-24T17:42:28Z",
- "answered": "2024-04-24T17:42:28Z",
- "ended": "2024-04-24T17:42:28Z",
- "status": "answered",
- "hangupSource": "caller",
- "hangupCause": 16,
- "hangupTech": "sip:200",
- "durationTotal": 42,
- "durationAnswered": 40,
- "durationBilled": 60,
- "billingDestinationLabel": "France - Geographic",
- "billingDestinationID": 0,
- "billingDebit": "5.50",
- "billingCredit": "5.50",
- "billingPaymentType": "prepaid",
- "scenarioSid": "callrsid",
- "scenarioName": "My Call Flow",
- "scenarioTypeName": "Actions",
- "scenarioTypeVersion": "1.0"
}
}
An outbound call has started. An outbound call is a call initiated from the Callr platform to an external phone number.
id required | string Unique identifier for the event. Use this for idempotency checks. |
at required | string <date-time> (Datetime) Timestamp of the event |
sid required | string (SID) = 8 characters ^[a-z0-9]{8}$ Unique identifier for the webhook |
type required | string Enum: "v2.billing.credit.topup" "v2.billing.credit.warning" "v2.billing.credit.shutdown" "v2.call.inbound.started" "v2.call.inbound.ended" "v2.call.outbound.started" "v2.call.outbound.ended" "v2.number.assigned" "v2.number.unassigned" "v2.task.updated" "v2.audio-file.updated" "v2.recording.updated" "v2.sms.inbound.received" "v2.sms.outbound.updated"
Value: "v2.call.outbound.started" |
try required | integer [ 0 .. 10 ] Number of attempts made to deliver the webhook |
required | object (CDR) |
{- "id": "a03317440280451052hUD7yPiwWrzgGB",
- "at": "2024-04-24T17:42:28Z",
- "sid": "callrsid",
- "type": "v2.call.outbound.started",
- "try": 0,
- "payload": {
- "direction": "inbound",
- "callid": 240711945874,
- "bridged": 240711945874,
- "callerName": "John Doe",
- "callerNumber": "+33199001234",
- "callerRestricted": false,
- "callee": "+33199001234",
- "started": "2024-04-24T17:42:28Z",
- "answered": "2024-04-24T17:42:28Z",
- "ended": "2024-04-24T17:42:28Z",
- "status": "answered",
- "hangupSource": "caller",
- "hangupCause": 16,
- "hangupTech": "sip:200",
- "durationTotal": 42,
- "durationAnswered": 40,
- "durationBilled": 60,
- "billingDestinationLabel": "France - Geographic",
- "billingDestinationID": 0,
- "billingDebit": "5.50",
- "billingCredit": "5.50",
- "billingPaymentType": "prepaid",
- "scenarioSid": "callrsid",
- "scenarioName": "My Call Flow",
- "scenarioTypeName": "Actions",
- "scenarioTypeVersion": "1.0"
}
}
An outbound call has hung up
id required | string Unique identifier for the event. Use this for idempotency checks. |
at required | string <date-time> (Datetime) Timestamp of the event |
sid required | string (SID) = 8 characters ^[a-z0-9]{8}$ Unique identifier for the webhook |
type required | string Enum: "v2.billing.credit.topup" "v2.billing.credit.warning" "v2.billing.credit.shutdown" "v2.call.inbound.started" "v2.call.inbound.ended" "v2.call.outbound.started" "v2.call.outbound.ended" "v2.number.assigned" "v2.number.unassigned" "v2.task.updated" "v2.audio-file.updated" "v2.recording.updated" "v2.sms.inbound.received" "v2.sms.outbound.updated"
Value: "v2.call.outbound.ended" |
try required | integer [ 0 .. 10 ] Number of attempts made to deliver the webhook |
required | object (CDR) |
{- "id": "a03317440280451052hUD7yPiwWrzgGB",
- "at": "2024-04-24T17:42:28Z",
- "sid": "callrsid",
- "type": "v2.call.outbound.ended",
- "try": 0,
- "payload": {
- "direction": "inbound",
- "callid": 240711945874,
- "bridged": 240711945874,
- "callerName": "John Doe",
- "callerNumber": "+33199001234",
- "callerRestricted": false,
- "callee": "+33199001234",
- "started": "2024-04-24T17:42:28Z",
- "answered": "2024-04-24T17:42:28Z",
- "ended": "2024-04-24T17:42:28Z",
- "status": "answered",
- "hangupSource": "caller",
- "hangupCause": 16,
- "hangupTech": "sip:200",
- "durationTotal": 42,
- "durationAnswered": 40,
- "durationBilled": 60,
- "billingDestinationLabel": "France - Geographic",
- "billingDestinationID": 0,
- "billingDebit": "5.50",
- "billingCredit": "5.50",
- "billingPaymentType": "prepaid",
- "scenarioSid": "callrsid",
- "scenarioName": "My Call Flow",
- "scenarioTypeName": "Actions",
- "scenarioTypeVersion": "1.0"
}
}
A phone number was assigned to your account
id required | string Unique identifier for the event. Use this for idempotency checks. |
at required | string <date-time> (Datetime) Timestamp of the event |
sid required | string (SID) = 8 characters ^[a-z0-9]{8}$ Unique identifier for the webhook |
type required | string Enum: "v2.billing.credit.topup" "v2.billing.credit.warning" "v2.billing.credit.shutdown" "v2.call.inbound.started" "v2.call.inbound.ended" "v2.call.outbound.started" "v2.call.outbound.ended" "v2.number.assigned" "v2.number.unassigned" "v2.task.updated" "v2.audio-file.updated" "v2.recording.updated" "v2.sms.inbound.received" "v2.sms.outbound.updated"
Value: "v2.number.assigned" |
try required | integer [ 0 .. 10 ] Number of attempts made to deliver the webhook |
required | object (NumberAssigned) |
{- "id": "a03317440280451052hUD7yPiwWrzgGB",
- "at": "2024-04-24T17:42:28Z",
- "sid": "callrsid",
- "type": "v2.number.assigned",
- "try": 0,
- "payload": {
- "e164": "+33199001234",
- "class": "classic",
- "type": "geographic",
- "assigned": "2024-04-24T17:42:28Z",
- "country": "FR"
}
}
A phone number was unassigned from your account
id required | string Unique identifier for the event. Use this for idempotency checks. |
at required | string <date-time> (Datetime) Timestamp of the event |
sid required | string (SID) = 8 characters ^[a-z0-9]{8}$ Unique identifier for the webhook |
type required | string Enum: "v2.billing.credit.topup" "v2.billing.credit.warning" "v2.billing.credit.shutdown" "v2.call.inbound.started" "v2.call.inbound.ended" "v2.call.outbound.started" "v2.call.outbound.ended" "v2.number.assigned" "v2.number.unassigned" "v2.task.updated" "v2.audio-file.updated" "v2.recording.updated" "v2.sms.inbound.received" "v2.sms.outbound.updated"
Value: "v2.number.unassigned" |
try required | integer [ 0 .. 10 ] Number of attempts made to deliver the webhook |
required | object (NumberAssigned) |
{- "id": "a03317440280451052hUD7yPiwWrzgGB",
- "at": "2024-04-24T17:42:28Z",
- "sid": "callrsid",
- "type": "v2.number.unassigned",
- "try": 0,
- "payload": {
- "e164": "+33199001234",
- "class": "classic",
- "type": "geographic",
- "assigned": "2024-04-24T17:42:28Z",
- "country": "FR"
}
}
id required | string Unique identifier for the event. Use this for idempotency checks. |
at required | string <date-time> (Datetime) Timestamp of the event |
sid required | string (SID) = 8 characters ^[a-z0-9]{8}$ Unique identifier for the webhook |
type required | string Enum: "v2.billing.credit.topup" "v2.billing.credit.warning" "v2.billing.credit.shutdown" "v2.call.inbound.started" "v2.call.inbound.ended" "v2.call.outbound.started" "v2.call.outbound.ended" "v2.number.assigned" "v2.number.unassigned" "v2.task.updated" "v2.audio-file.updated" "v2.recording.updated" "v2.sms.inbound.received" "v2.sms.outbound.updated"
Value: "v2.task.updated" |
try required | integer [ 0 .. 10 ] Number of attempts made to deliver the webhook |
required | object (Task) Task |
{- "id": "a03317440280451052hUD7yPiwWrzgGB",
- "at": "2024-04-24T17:42:28Z",
- "sid": "callrsid",
- "type": "v2.task.updated",
- "try": 0,
- "payload": {
- "id": "sampleTaskID1234567890abcdef0000",
- "status": "pending",
- "percent": 42,
- "ended": "2024-04-24T17:42:28Z",
- "result": null,
- "error": "string"
}
}
id required | string Unique identifier for the event. Use this for idempotency checks. |
at required | string <date-time> (Datetime) Timestamp of the event |
sid required | string (SID) = 8 characters ^[a-z0-9]{8}$ Unique identifier for the webhook |
type required | string Enum: "v2.billing.credit.topup" "v2.billing.credit.warning" "v2.billing.credit.shutdown" "v2.call.inbound.started" "v2.call.inbound.ended" "v2.call.outbound.started" "v2.call.outbound.ended" "v2.number.assigned" "v2.number.unassigned" "v2.task.updated" "v2.audio-file.updated" "v2.recording.updated" "v2.sms.inbound.received" "v2.sms.outbound.updated"
Value: "v2.audio-file.updated" |
try required | integer [ 0 .. 10 ] Number of attempts made to deliver the webhook |
required | object (AudioFile) Audio file |
{- "id": "a03317440280451052hUD7yPiwWrzgGB",
- "at": "2024-04-24T17:42:28Z",
- "sid": "callrsid",
- "type": "v2.audio-file.updated",
- "try": 0,
- "payload": {
- "sid": "callrsid",
- "name": "My Audio File",
- "duration": 42,
- "source": "system",
- "readonly": true,
- "status": "ready",
- "created": "2024-04-24T17:42:28Z",
- "updated": "2024-04-24T17:42:28Z"
}
}
id required | string Unique identifier for the event. Use this for idempotency checks. |
at required | string <date-time> (Datetime) Timestamp of the event |
sid required | string (SID) = 8 characters ^[a-z0-9]{8}$ Unique identifier for the webhook |
type required | string Enum: "v2.billing.credit.topup" "v2.billing.credit.warning" "v2.billing.credit.shutdown" "v2.call.inbound.started" "v2.call.inbound.ended" "v2.call.outbound.started" "v2.call.outbound.ended" "v2.number.assigned" "v2.number.unassigned" "v2.task.updated" "v2.audio-file.updated" "v2.recording.updated" "v2.sms.inbound.received" "v2.sms.outbound.updated"
Value: "v2.recording.updated" |
try required | integer [ 0 .. 10 ] Number of attempts made to deliver the webhook |
required | object (Recording) Recording |
{- "id": "a03317440280451052hUD7yPiwWrzgGB",
- "at": "2024-04-24T17:42:28Z",
- "sid": "callrsid",
- "type": "v2.recording.updated",
- "try": 0,
- "payload": {
- "sid": "callrsid",
- "type": "call",
- "callee": "+33199001234",
- "scenario": {
- "sid": "callrsid",
- "name": "My Call Flow"
}, - "callid": 240711945874,
- "created": "2024-04-24T17:42:28Z",
- "readAt": "2024-04-24T17:42:28Z",
- "duration": 5,
- "caller": {
- "name": "string",
- "number": "+33199001234",
- "restricted": true
}, - "read": true,
- "status": "ready",
- "size": 123456,
- "options": {
- "ner": true,
- "pii": true,
- "feeds": "all",
- "language": "en-US",
- "sentiment": true,
- "transcription": true
}, - "transcription": {
- "feeds": [
- {
- "ner": [
- {
- "text": "string",
- "offset": 0,
- "category": "string",
- "confidence": 0.1
}
], - "pii": [
- {
- "text": "string",
- "offset": 0,
- "category": "string",
- "confidence": 0.1
}
], - "data": {
- "display": "Hello, world!",
- "language": "en-US",
- "lexical": "hello world",
- "phrases": [
- {
- "offset": 0,
- "display": "Hello, world!",
- "confidence": 0.98,
- "words": [
- {
- "word": null,
- "offset": null,
- "duration": null
}
]
}
]
}, - "feed": "leg_a",
- "sentiment": {
- "sentiment": "neutral",
- "confidenceScores": {
- "neutral": 0.98,
- "negative": 0.98,
- "positive": 0.98
}
}
}
], - "version": "2.0"
}
}
}
id required | string Unique identifier for the event. Use this for idempotency checks. |
at required | string <date-time> (Datetime) Timestamp of the event |
sid required | string (SID) = 8 characters ^[a-z0-9]{8}$ Unique identifier for the webhook |
type required | string Enum: "v2.billing.credit.topup" "v2.billing.credit.warning" "v2.billing.credit.shutdown" "v2.call.inbound.started" "v2.call.inbound.ended" "v2.call.outbound.started" "v2.call.outbound.ended" "v2.number.assigned" "v2.number.unassigned" "v2.task.updated" "v2.audio-file.updated" "v2.recording.updated" "v2.sms.inbound.received" "v2.sms.outbound.updated"
Value: "v2.sms.inbound.received" |
try required | integer [ 0 .. 10 ] Number of attempts made to deliver the webhook |
required | object (SMS) SMS |
{- "id": "a03317440280451052hUD7yPiwWrzgGB",
- "at": "2024-04-24T17:42:28Z",
- "sid": "callrsid",
- "type": "v2.sms.inbound.received",
- "try": 0,
- "payload": {
- "direction": "inbound",
- "sid": "callrsid",
- "from": "SMS",
- "to": "+33199001234",
- "body": {
- "text": "Hello world!"
}, - "trafficType": "marketing",
- "status": "sent",
- "error": "string",
- "created": "2024-04-24T17:42:28Z",
- "delivered": "2024-04-24T17:42:28Z",
- "updated": "2024-04-24T17:42:28Z",
- "sent": "2024-04-24T17:42:28Z",
- "parts": 10,
- "network": "20801",
- "encoding": "gsm",
- "cost": "5.50",
- "paymentType": "prepaid",
- "statusHistory": [
- {
- "after": "sent",
- "before": "sent",
- "at": "2024-04-24T17:42:28Z"
}
]
}
}
id required | string Unique identifier for the event. Use this for idempotency checks. |
at required | string <date-time> (Datetime) Timestamp of the event |
sid required | string (SID) = 8 characters ^[a-z0-9]{8}$ Unique identifier for the webhook |
type required | string Enum: "v2.billing.credit.topup" "v2.billing.credit.warning" "v2.billing.credit.shutdown" "v2.call.inbound.started" "v2.call.inbound.ended" "v2.call.outbound.started" "v2.call.outbound.ended" "v2.number.assigned" "v2.number.unassigned" "v2.task.updated" "v2.audio-file.updated" "v2.recording.updated" "v2.sms.inbound.received" "v2.sms.outbound.updated"
Value: "v2.sms.outbound.updated" |
try required | integer [ 0 .. 10 ] Number of attempts made to deliver the webhook |
required | object (SMS) SMS |
{- "id": "a03317440280451052hUD7yPiwWrzgGB",
- "at": "2024-04-24T17:42:28Z",
- "sid": "callrsid",
- "type": "v2.sms.outbound.updated",
- "try": 0,
- "payload": {
- "direction": "inbound",
- "sid": "callrsid",
- "from": "SMS",
- "to": "+33199001234",
- "body": {
- "text": "Hello world!"
}, - "trafficType": "marketing",
- "status": "sent",
- "error": "string",
- "created": "2024-04-24T17:42:28Z",
- "delivered": "2024-04-24T17:42:28Z",
- "updated": "2024-04-24T17:42:28Z",
- "sent": "2024-04-24T17:42:28Z",
- "parts": 10,
- "network": "20801",
- "encoding": "gsm",
- "cost": "5.50",
- "paymentType": "prepaid",
- "statusHistory": [
- {
- "after": "sent",
- "before": "sent",
- "at": "2024-04-24T17:42:28Z"
}
]
}
}