Callr REST API v2.0 (2.0.0-preview.26)

Download OpenAPI specification:

Callr Support: support@callr.com

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:

  • Launch and control phone calls and SMS with standard HTTP requests
  • Automate call flows using Callr Actions (YAML-based logic engine)
  • Record and transcribe calls
  • Use AI to summarize conversations, extract data, and respond to users
  • Route, forward, or analyze calls programmatically
  • Integrate easily with CRMs, calendars, and external APIs

Designed for flexibility, speed, and control, Callr gives you the tools to deliver high-quality conversational experiences — without managing telephony infrastructure.

System

Health check endpoint

Ping the API

You can use this endpoint to check if the API is up and running.

Authorizations:
ApiKeyAuthBasicAuth

Responses

Response samples

Content type
application/json
{
  • "pong": "pong",
  • "time": "2024-04-24T12:00:42.000Z"
}

Actions

Create, Manage and Run Callr Actions scenarios

Search scenarios

Search for Callr Actions scenarios.

Authorizations:
ApiKeyAuthBasicAuth
query Parameters
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

Responses

Response samples

Content type
application/json
{
  • "offset": 0,
  • "total": 20,
  • "hasMore": false,
  • "hits": [
    ]
}

Create scenario

Create a new Callr Actions scenario.

Authorizations:
ApiKeyAuthBasicAuth
Request Body schema: application/json
required
name
required
string [ 1 .. 64 ] characters \pL
script
required
string [ 1 .. 32768 ] characters
format
string^yaml$

Responses

Request samples

Content type
application/json
{
  • "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"
}

Response samples

Content type
application/json
{
  • "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": [
    ],
  • "version": "1.0",
  • "created": "2024-04-24T17:42:28Z",
  • "updated": "2024-04-24T17:42:28Z"
}

Get scenario

Get a Callr Actions scenario.

Authorizations:
ApiKeyAuthBasicAuth
path Parameters
sid
required
string (SID) = 8 characters ^[a-z0-9]{8}$
Examples: callrsid deadbeef azerty00

Action scenario SID

Responses

Response samples

Content type
application/json
{
  • "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": [
    ],
  • "version": "1.0",
  • "created": "2024-04-24T17:42:28Z",
  • "updated": "2024-04-24T17:42:28Z"
}

Update scenario

Update a Callr Actions scenario. You may send a partial object.

Authorizations:
ApiKeyAuthBasicAuth
path Parameters
sid
required
string (SID) = 8 characters ^[a-z0-9]{8}$
Examples: callrsid deadbeef azerty00

Action scenario SID

Request Body schema: application/json
required
name
string [ 1 .. 64 ] characters \pL
script
string [ 1 .. 32768 ] characters
format
string^yaml$

Responses

Request samples

Content type
application/json
{
  • "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"
}

Response samples

Content type
application/json
{
  • "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": [
    ],
  • "version": "1.0",
  • "created": "2024-04-24T17:42:28Z",
  • "updated": "2024-04-24T17:42:28Z"
}

Delete scenario

Delete a Callr Actions scenario.

Authorizations:
ApiKeyAuthBasicAuth
path Parameters
sid
required
string (SID) = 8 characters ^[a-z0-9]{8}$
Examples: callrsid deadbeef azerty00

Action scenario SID

Responses

Response samples

Content type
application/json
{
  • "code": "string",
  • "message": "string"
}

Start scenario

Run a Callr Actions scenario offline. This will execute the api-initiated branch of the scenario.

Authorizations:
ApiKeyAuthBasicAuth
path Parameters
sid
required
string (SID) = 8 characters ^[a-z0-9]{8}$
Examples: callrsid deadbeef azerty00

Action scenario SID

Request Body schema: application/json
object (ActionsVariables) <= 64 properties

Key/value object defining variables. Keys must start with a $ followed by a letter. Keys not matching the regex ^\$[a-zA-Z][a-zA-Z0-9_]{0,254}$ will be silently ignored. Values can be of any type.

Responses

Request samples

Content type
application/json
{
  • "variables": {
    }
}

Response samples

Content type
application/json
{
  • "runid": "api:9MNAB2H6"
}

Get an offline run

Get the status of an offline run. This will return the variables and their values.

Authorizations:
ApiKeyAuthBasicAuth
path Parameters
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

Responses

Response samples

Content type
application/json
{
  • "variables": {
    }
}

Cancel an offline run

Cancel an offline run. This will stop the execution of the scenario.

Authorizations:
ApiKeyAuthBasicAuth
path Parameters
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

Responses

Response samples

Content type
application/json
{
  • "code": "string",
  • "message": "string"
}

Attach number to scenario

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.

Authorizations:
ApiKeyAuthBasicAuth
path Parameters
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

Responses

Response samples

Content type
application/json
{
  • "code": "string",
  • "message": "string"
}

Detach number from scenario

Detach a phone number from a Callr Actions scenario.

Authorizations:
ApiKeyAuthBasicAuth
path Parameters
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

Responses

Response samples

Content type
application/json
{
  • "code": "string",
  • "message": "string"
}

Audio Files

Manage your audio files

Search audio files

Search for audio files.

Authorizations:
ApiKeyAuthBasicAuth
query Parameters
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

Responses

Response samples

Content type
application/json
{
  • "offset": 0,
  • "total": 20,
  • "hasMore": false,
  • "hits": [
    ]
}

Upload audio file

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
  • Finally, it will be either 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.

Authorizations:
ApiKeyAuthBasicAuth
Request Body schema:
required
file
string <binary>

The audio file to upload

name
required
string (AudioFileName) [ 1 .. 64 ] characters

Audio file name

Responses

Request samples

Content type
No sample

Response samples

Content type
application/json
{
  • "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

Get audio file by SID.

Authorizations:
ApiKeyAuthBasicAuth
path Parameters
sid
required
string (SID) = 8 characters ^[a-z0-9]{8}$
Examples: callrsid deadbeef azerty00

Short ID

Responses

Response samples

Content type
application/json
{
  • "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"
}

Delete audio file

Delete an audio file.

Authorizations:
ApiKeyAuthBasicAuth
path Parameters
sid
required
string (SID) = 8 characters ^[a-z0-9]{8}$
Examples: callrsid deadbeef azerty00

Short ID

Responses

Response samples

Content type
application/json
{
  • "code": "string",
  • "message": "string"
}

Update audio file properties

Update the properties of an audio file. You can only update the name.

Authorizations:
ApiKeyAuthBasicAuth
path Parameters
sid
required
string (SID) = 8 characters ^[a-z0-9]{8}$
Examples: callrsid deadbeef azerty00

Short ID

Request Body schema: application/json
required
name
string (AudioFileName) [ 1 .. 64 ] characters

Audio file name

Responses

Request samples

Content type
application/json
{
  • "name": "My Audio File"
}

Response samples

Content type
application/json
{
  • "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 audio file with upload

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
  • Finally, it will be either 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.

Authorizations:
ApiKeyAuthBasicAuth
path Parameters
sid
required
string (SID) = 8 characters ^[a-z0-9]{8}$
Examples: callrsid deadbeef azerty00

Short ID

Request Body schema: multipart/form-data
required
file
required
string <binary>

Responses

Response samples

Content type
application/json
{
  • "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 audio file on the phone

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
  • Finally, it will be either ready or error

You can use webhooks to receive updates on the status.

Authorizations:
ApiKeyAuthBasicAuth
path Parameters
sid
required
string (SID) = 8 characters ^[a-z0-9]{8}$
Examples: callrsid deadbeef azerty00

Short ID

query Parameters
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.

Responses

Response samples

Content type
application/json
{
  • "code": 123456,
  • "number": "+33199001234"
}

Billing

Manage billing

Get credit balance

Get your credit balance (for prepaid accounts only). The value is in cents.

Authorizations:
ApiKeyAuthBasicAuth

Responses

Response samples

Content type
application/json
Example
"500.00"

Get billing destinations

Get the list of billing destinations.

Authorizations:
ApiKeyAuthBasicAuth

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Calls

Manage calls

Hangup a live call

Hang up a live call.

Authorizations:
ApiKeyAuthBasicAuth
path Parameters
callid
required
integer <int64> (CallID) >= 1
Examples: 240711945874 210548952067

Call ID

Responses

Response samples

Content type
application/json
{
  • "code": "string",
  • "message": "string"
}

Export calls

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.

Authorizations:
ApiKeyAuthBasicAuth
query Parameters
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 inbound, this will export the inbound calls received on this number. With direction outbound, this will export the outbound calls forwarded by this number.

Responses

Response samples

Content type
application/json
"sampleTaskID1234567890abcdef0000"

End Users

Manage end users

Search end users

Search for end users.

Authorizations:
ApiKeyAuthBasicAuth
query Parameters
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

Responses

Response samples

Content type
application/json
{
  • "offset": 0,
  • "total": 20,
  • "hasMore": false,
  • "hits": [
    ]
}

Create end user

Create an end user.

Authorizations:
ApiKeyAuthBasicAuth
Request Body schema: application/json
required
name
required
string [ 1 .. 32 ] characters
required
object
comment
string <= 255 characters

Responses

Request samples

Content type
application/json
{
  • "name": "French Corp",
  • "address": {
    },
  • "comment": "French Subsidiary"
}

Response samples

Content type
application/json
{
  • "name": "French Corp",
  • "address": {
    },
  • "comment": "French Subsidiary",
  • "sid": "callrsid",
  • "type": "third-party",
  • "created": "2024-04-24T17:42:28Z",
  • "updated": "2024-04-24T17:42:28Z",
  • "deletable": true
}

Get end user

Get an end user.

Authorizations:
ApiKeyAuthBasicAuth
path Parameters
sid
required
string (SID) = 8 characters ^[a-z0-9]{8}$
Examples: callrsid deadbeef azerty00

End user SID

Responses

Response samples

Content type
application/json
{
  • "name": "French Corp",
  • "address": {
    },
  • "comment": "French Subsidiary",
  • "sid": "callrsid",
  • "type": "third-party",
  • "created": "2024-04-24T17:42:28Z",
  • "updated": "2024-04-24T17:42:28Z",
  • "deletable": true
}

Update end user

Update an end user. You may send a partial object.

Authorizations:
ApiKeyAuthBasicAuth
path Parameters
sid
required
string (SID) = 8 characters ^[a-z0-9]{8}$
Examples: callrsid deadbeef azerty00

End user SID

Request Body schema: application/json
required
name
string [ 1 .. 32 ] characters
object
comment
string <= 255 characters

Responses

Request samples

Content type
application/json
{
  • "name": "French Corp",
  • "address": {
    },
  • "comment": "French Subsidiary"
}

Response samples

Content type
application/json
{
  • "name": "French Corp",
  • "address": {
    },
  • "comment": "French Subsidiary",
  • "sid": "callrsid",
  • "type": "third-party",
  • "created": "2024-04-24T17:42:28Z",
  • "updated": "2024-04-24T17:42:28Z",
  • "deletable": true
}

Delete end user

Delete an end user. You cannot delete an end user that is associated with a Caller ID, or a Phone Number.

Authorizations:
ApiKeyAuthBasicAuth
path Parameters
sid
required
string (SID) = 8 characters ^[a-z0-9]{8}$
Examples: callrsid deadbeef azerty00

End user SID

Responses

Response samples

Content type
application/json
{
  • "code": "string",
  • "message": "string"
}

Phone Numbers

Manage your phone numbers

Search phone numbers

Search for your phone numbers.

Authorizations:
ApiKeyAuthBasicAuth
query Parameters
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:
  • contains=+33184 - French number with +33184 prefix
  • contains=42 - Numbers containing "42"
  • contains=0000 - Numbers containing "0000"

Search by number. You can use a partial number.

detached
boolean

Search for detached numbers only. You can only pass true to this parameter. Detached numbers are phone numbers that are currently not attached to any scenario.

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

Responses

Response samples

Content type
application/json
{
  • "offset": 0,
  • "total": 20,
  • "hasMore": false,
  • "hits": [
    ]
}

Get phone number

Get a phone number.

Authorizations:
ApiKeyAuthBasicAuth
path Parameters
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 "+"

Responses

Response samples

Content type
application/json
{
  • "e164": "+33199001234",
  • "class": "classic",
  • "type": "geographic",
  • "assigned": "2024-04-24T17:42:28Z",
  • "country": "FR",
  • "scenario": {
    },
  • "compliance": {
    },
  • "contract": {
    },
  • "pricing": {
    },
  • "enduser": {
    }
}

Remove phone number from your account

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.

Authorizations:
ApiKeyAuthBasicAuth
path Parameters
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 "+"

Responses

Response samples

Content type
application/json
{
  • "code": "string",
  • "message": "string"
}

Update a phone number

Update a phone number. Attach the number to a Callr Actions scenario, or change the end user.

Authorizations:
ApiKeyAuthBasicAuth
path Parameters
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 "+"

Request Body schema: application/json
required
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

Responses

Request samples

Content type
application/json
{
  • "scenario": "callrsid",
  • "enduser": "callrsid"
}

Response samples

Content type
application/json
{
  • "code": "string",
  • "message": "string"
}

Detach phone number from scenario

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.

Authorizations:
ApiKeyAuthBasicAuth
path Parameters
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 "+"

Responses

Response samples

Content type
application/json
{
  • "code": "string",
  • "message": "string"
}

Attach phone number to scenario

Attach a phone number to a Callr Actions scenario.

Authorizations:
ApiKeyAuthBasicAuth
path Parameters
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

Responses

Response samples

Content type
application/json
{
  • "code": "string",
  • "message": "string"
}

Assign phone number to end user

Assign a phone number to an end user.

Authorizations:
ApiKeyAuthBasicAuth
path Parameters
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

Responses

Response samples

Content type
application/json
{
  • "code": "string",
  • "message": "string"
}

Phone Numbers Store

Order phone numbers

Reserve numbers

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.

Authorizations:
ApiKeyAuthBasicAuth
query Parameters
country
required
string (CountryCode) ^[A-Z]{2}$
Examples:
  • country=FR - France
  • country=US - United States

Country code

type
required
string (NumberType)
Enum: "geographic" "mobile" "non-geographic" "personal" "platform" "sharedrevenue" "sms-only" "special" "tollfree" "verified"
Examples:
  • type=geographic - Geographic
  • type=mobile - Mobile

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:
  • prefix=+331 - France (01)
  • prefix=+1415 - United States (415)

The prefix of the number

area
string <= 32 characters
Examples:
  • area=Paris - Paris
  • area=NYC - New York City
  • area=Nice - Nice

The area/city of the number

Responses

Response samples

Content type
application/json
{
  • "token": "stringstringstringstringstringstringstri",
  • "expires": "2024-04-24T17:42:28Z",
  • "contract": {
    },
  • "items": [
    ]
}

Buy phone numbers

Buy phone numbers previously reserved, with the token returned by the /numbers/store endpoint.

Authorizations:
ApiKeyAuthBasicAuth
path Parameters
token
required
string >= 40 characters

Reservation token

Responses

Response samples

Content type
application/json
{
  • "contract": {
    },
  • "errors": [
    ],
  • "items": [
    ]
}

Get reservation status

Get the status of a phone number reservation.

Authorizations:
ApiKeyAuthBasicAuth
path Parameters
token
required
string

Reservation token

Responses

Response samples

Content type
application/json
{
  • "token": "stringstringstringstringstringstringstri",
  • "expires": "2024-04-24T17:42:28Z",
  • "contract": {
    },
  • "items": [
    ]
}

Cancel reservation

Cancel a phone number reservation.

Authorizations:
ApiKeyAuthBasicAuth
path Parameters
token
required
string

Order token

Responses

Response samples

Content type
application/json
{
  • "code": "string",
  • "message": "string"
}

List available countries

Get the list of countries available in the number store.

Authorizations:
ApiKeyAuthBasicAuth

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List available number types

Get the list of number types available in the number store.

Authorizations:
ApiKeyAuthBasicAuth
query Parameters
country
required
string (CountryCode) ^[A-Z]{2}$
Examples:
  • country=FR - France
  • country=US - United States

ISO 3166-1 alpha-2 country code

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List available prefixes

Get the list of prefixes available in the number store.

Authorizations:
ApiKeyAuthBasicAuth
query Parameters
country
required
string (CountryCode) ^[A-Z]{2}$
Examples:
  • country=FR - France
  • country=US - United States

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=geographic -

Type of number

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Recordings

Manage call recordings

Search recordings

Search for your recordings.

Authorizations:
ApiKeyAuthBasicAuth
query Parameters
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

Responses

Response samples

Content type
application/json
{
  • "offset": 0,
  • "total": 20,
  • "hasMore": false,
  • "hits": [
    ]
}

Update recordings

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.

Authorizations:
ApiKeyAuthBasicAuth
query Parameters
sid
Array of strings (SID) <= 100 items [ items = 8 characters ^[a-z0-9]{8}$ ]
Request Body schema: application/json
required
read
boolean

Read status

Responses

Request samples

Content type
application/json
{
  • "read": true
}

Response samples

Content type
application/json
"sampleTaskID1234567890abcdef0000"

Delete recordings

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.

Authorizations:
ApiKeyAuthBasicAuth
query Parameters
sid
Array of strings (SID) <= 100 items [ items = 8 characters ^[a-z0-9]{8}$ ]

Responses

Response samples

Content type
application/json
"sampleTaskID1234567890abcdef0000"

Get recording

Retrieve a recording.

Authorizations:
ApiKeyAuthBasicAuth
path Parameters
sid
required
string (SID) = 8 characters ^[a-z0-9]{8}$
Examples: callrsid deadbeef azerty00

Recording SID

Responses

Response samples

Content type
application/json
{
  • "sid": "callrsid",
  • "type": "call",
  • "callee": "+33199001234",
  • "scenario": {
    },
  • "callid": 240711945874,
  • "created": "2024-04-24T17:42:28Z",
  • "readAt": "2024-04-24T17:42:28Z",
  • "duration": 5,
  • "caller": {
    },
  • "read": true,
  • "status": "ready",
  • "size": 123456,
  • "options": {
    },
  • "transcription": {
    }
}

Update recording

Update a recording. You may send a partial object.

Authorizations:
ApiKeyAuthBasicAuth
path Parameters
sid
required
string (SID) = 8 characters ^[a-z0-9]{8}$
Examples: callrsid deadbeef azerty00

Recording SID

Request Body schema: application/json
required
read
boolean

Read status

Responses

Request samples

Content type
application/json
{
  • "read": true
}

Response samples

Content type
application/json
{
  • "sid": "callrsid",
  • "type": "call",
  • "callee": "+33199001234",
  • "scenario": {
    },
  • "callid": 240711945874,
  • "created": "2024-04-24T17:42:28Z",
  • "readAt": "2024-04-24T17:42:28Z",
  • "duration": 5,
  • "caller": {
    },
  • "read": true,
  • "status": "ready",
  • "size": 123456,
  • "options": {
    },
  • "transcription": {
    }
}

Delete recording

Delete a recording.

Authorizations:
ApiKeyAuthBasicAuth
path Parameters
sid
required
string (SID) = 8 characters ^[a-z0-9]{8}$
Examples: callrsid deadbeef azerty00

Recording SID

Responses

Response samples

Content type
application/json
{
  • "code": "string",
  • "message": "string"
}

SMS

Send and receive SMS messages

Search SMS

Search for your SMS messages.

Authorizations:
ApiKeyAuthBasicAuth
query Parameters
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.

created = The SMS has been created. error = The SMS has an error. expired = The SMS has expired. failed = The SMS has failed. pending = The SMS is waiting to be sent on our side. delivered = The SMS has been delivered to the recipient. remote-queued = The SMS is queued on the remote side. sent = The SMS has been sent.

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

Responses

Response samples

Content type
application/json
{
  • "offset": 0,
  • "total": 20,
  • "hasMore": false,
  • "hits": [
    ]
}

Send SMS

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 accepted
  • failed: rejected by the carrier
  • expired: was not delivered to the recipient
Authorizations:
ApiKeyAuthBasicAuth
query Parameters
to
required
string (PhoneNumber) ^\+[1-9][0-9]{5,32}$
Examples: to=+33199001234 to=+33639984242 to=+15551230000

SMS recipient

string or PhoneNumber (string) (SMSSender)
Examples:
  • from=MyCompany - Alphanumeric sender
  • from=+15551230000 - Phone number sender

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 marketing or alerting.

Request Body schema: application/json
required
text
required
string [ 1 .. 3200 ] characters

Responses

Request samples

Content type
application/json
{
  • "text": "Hello world!"
}

Response samples

Content type
application/json
{
  • "direction": "inbound",
  • "sid": "callrsid",
  • "from": "SMS",
  • "to": "+33199001234",
  • "body": {
    },
  • "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": [
    ]
}

Get SMS

Get an SMS.

Authorizations:
ApiKeyAuthBasicAuth
path Parameters
sid
required
string (SID) = 8 characters ^[a-z0-9]{8}$
Examples: callrsid deadbeef azerty00

Short ID

Responses

Response samples

Content type
application/json
{
  • "direction": "inbound",
  • "sid": "callrsid",
  • "from": "SMS",
  • "to": "+33199001234",
  • "body": {
    },
  • "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": [
    ]
}

Tasks

Check the status of tasks

Get task

Return the status of a task.

Authorizations:
ApiKeyAuthBasicAuth
path Parameters
taskid
required
string (TaskID) [ 32 .. 256 ] characters ^[a-zA-Z0-9]{32,256}$
Examples: sampleTaskID1234567890abcdef0000

Task ID

Responses

Response samples

Content type
application/json
{
  • "id": "sampleTaskID1234567890abcdef0000",
  • "status": "pending",
  • "percent": 42,
  • "ended": "2024-04-24T17:42:28Z",
  • "result": null,
  • "error": "string"
}

Cancel task

Cancel a task. The task must be in a PENDING or RUNNING state. If the task is RUNNING, the result is undefined.

Authorizations:
ApiKeyAuthBasicAuth
path Parameters
taskid
required
string (TaskID) [ 32 .. 256 ] characters ^[a-zA-Z0-9]{32,256}$
Examples: sampleTaskID1234567890abcdef0000

Task ID

Responses

Response samples

Content type
application/json
{
  • "code": "string",
  • "message": "string"
}

Webhooks

Manage webhooks

Search webhooks

Search for your webhooks.

Authorizations:
ApiKeyAuthBasicAuth
query Parameters
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"
  • v2.billing.credit.topup = Your account has been credited with a new amount.
  • v2.billing.credit.warning = Your prepaid balance has reached its warning level.
  • v2.billing.credit.shutdown = Your prepaid balance has reached its shutdown level. Your account is suspended.
  • v2.call.inbound.started = An inbound call just started.
  • v2.call.inbound.ended = An inbound call just hung up.
  • v2.call.outbound.started = An outbound call just started.
  • v2.call.outbound.ended = An outbound call just hung up.
  • v2.number.assigned = A phone number was assigned to your account.
  • v2.number.unassigned = A phone number was unassigned from your account.
  • v2.task.updated = A task has been updated.
  • v2.audio-file.updated = An audio file has been updated.
  • v2.recording.updated = A recording has been updated.
  • v2.sms.inbound.received = An inbound SMS has been received.
  • v2.sms.outbound.updated = An outbound SMS has an updated status.
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

Responses

Response samples

Content type
application/json
{
  • "offset": 0,
  • "total": 20,
  • "hasMore": false,
  • "hits": [
    ]
}

Create webhook

Create a new webhook.

Authorizations:
ApiKeyAuthBasicAuth
query Parameters
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"
  • v2.billing.credit.topup = Your account has been credited with a new amount.
  • v2.billing.credit.warning = Your prepaid balance has reached its warning level.
  • v2.billing.credit.shutdown = Your prepaid balance has reached its shutdown level. Your account is suspended.
  • v2.call.inbound.started = An inbound call just started.
  • v2.call.inbound.ended = An inbound call just hung up.
  • v2.call.outbound.started = An outbound call just started.
  • v2.call.outbound.ended = An outbound call just hung up.
  • v2.number.assigned = A phone number was assigned to your account.
  • v2.number.unassigned = A phone number was unassigned from your account.
  • v2.task.updated = A task has been updated.
  • v2.audio-file.updated = An audio file has been updated.
  • v2.recording.updated = A recording has been updated.
  • v2.sms.inbound.received = An inbound SMS has been received.
  • v2.sms.outbound.updated = An outbound SMS has an updated status.
Request Body schema: application/json
required
endpoint
required
string <uri> (URI) ^https?:\/\/(?:[a-zA-Z0-9-]+\.)+[a-zA-Z]{2,}(...
object (WebhookOptions)

Webhook options

Responses

Request samples

Content type
application/json
{
  • "endpoint": "https://example.com",
  • "options": {
    }
}

Response samples

Content type
application/json
{
  • "sid": "callrsid",
  • "type": "v2.billing.credit.topup",
  • "endpoint": "https://example.com",
  • "status": "enabled",
  • "options": {
    },
  • "failed": 0,
  • "lastfailed": "2024-04-24T17:42:28Z",
  • "created": "2024-04-24T17:42:28Z",
  • "updated": "2024-04-24T17:42:28Z"
}

Get webhook

Get a webhook.

Authorizations:
ApiKeyAuthBasicAuth
path Parameters
sid
required
string (SID) = 8 characters ^[a-z0-9]{8}$
Examples: callrsid deadbeef azerty00

Short ID

Responses

Response samples

Content type
application/json
{
  • "sid": "callrsid",
  • "type": "v2.billing.credit.topup",
  • "endpoint": "https://example.com",
  • "status": "enabled",
  • "options": {
    },
  • "failed": 0,
  • "lastfailed": "2024-04-24T17:42:28Z",
  • "created": "2024-04-24T17:42:28Z",
  • "updated": "2024-04-24T17:42:28Z"
}

Update webhook

Update a webhook. You cannot change the endoint URL. To change the URL, create a new webhook.

Authorizations:
ApiKeyAuthBasicAuth
path Parameters
sid
required
string (SID) = 8 characters ^[a-z0-9]{8}$
Examples: callrsid deadbeef azerty00

Short ID

Request Body schema: application/json
required
status
required
string (WebhookStatusUpdate)
Enum: "disabled" "enabled"

Webhook status (set by user)

Responses

Request samples

Content type
application/json
{
  • "status": "disabled"
}

Response samples

Content type
application/json
{
  • "sid": "callrsid",
  • "type": "v2.billing.credit.topup",
  • "endpoint": "https://example.com",
  • "status": "enabled",
  • "options": {
    },
  • "failed": 0,
  • "lastfailed": "2024-04-24T17:42:28Z",
  • "created": "2024-04-24T17:42:28Z",
  • "updated": "2024-04-24T17:42:28Z"
}

Delete webhook

Delete a webhook.

Authorizations:
ApiKeyAuthBasicAuth
path Parameters
sid
required
string (SID) = 8 characters ^[a-z0-9]{8}$
Examples: callrsid deadbeef azerty00

Short ID

Responses

Response samples

Content type
application/json
{
  • "code": "string",
  • "message": "string"
}

Search webhook logs

Search for your webhook logs.

Authorizations:
ApiKeyAuthBasicAuth
query Parameters
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"
  • v2.billing.credit.topup = Your account has been credited with a new amount.
  • v2.billing.credit.warning = Your prepaid balance has reached its warning level.
  • v2.billing.credit.shutdown = Your prepaid balance has reached its shutdown level. Your account is suspended.
  • v2.call.inbound.started = An inbound call just started.
  • v2.call.inbound.ended = An inbound call just hung up.
  • v2.call.outbound.started = An outbound call just started.
  • v2.call.outbound.ended = An outbound call just hung up.
  • v2.number.assigned = A phone number was assigned to your account.
  • v2.number.unassigned = A phone number was unassigned from your account.
  • v2.task.updated = A task has been updated.
  • v2.audio-file.updated = An audio file has been updated.
  • v2.recording.updated = A recording has been updated.
  • v2.sms.inbound.received = An inbound SMS has been received.
  • v2.sms.outbound.updated = An outbound SMS has an updated status.
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

Responses

Response samples

Content type
application/json
{
  • "offset": 0,
  • "total": 20,
  • "hasMore": false,
  • "hits": [
    ]
}

Prepaid account credited Webhook

Your prepaid account has been credited

Authorizations:
ApiKeyAuthBasicAuth
Request Body schema: application/json
required
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"
  • v2.billing.credit.topup = Your account has been credited with a new amount.
  • v2.billing.credit.warning = Your prepaid balance has reached its warning level.
  • v2.billing.credit.shutdown = Your prepaid balance has reached its shutdown level. Your account is suspended.
  • v2.call.inbound.started = An inbound call just started.
  • v2.call.inbound.ended = An inbound call just hung up.
  • v2.call.outbound.started = An outbound call just started.
  • v2.call.outbound.ended = An outbound call just hung up.
  • v2.number.assigned = A phone number was assigned to your account.
  • v2.number.unassigned = A phone number was unassigned from your account.
  • v2.task.updated = A task has been updated.
  • v2.audio-file.updated = An audio file has been updated.
  • v2.recording.updated = A recording has been updated.
  • v2.sms.inbound.received = An inbound SMS has been received.
  • v2.sms.outbound.updated = An outbound SMS has an updated status.
Value: "v2.billing.credit.topup"
try
required
integer [ 0 .. 10 ]

Number of attempts made to deliver the webhook

required
object

Payload of the webhook

Responses

Request samples

Content type
application/json
{
  • "id": "a03317440280451052hUD7yPiwWrzgGB",
  • "at": "2024-04-24T17:42:28Z",
  • "sid": "callrsid",
  • "type": "v2.billing.credit.topup",
  • "try": 0,
  • "payload": {
    }
}

Prepaid credit warning reached Webhook

Your prepaid account has reached the warning threshold. Please top up your account to avoid service interruption.

Authorizations:
ApiKeyAuthBasicAuth
Request Body schema: application/json
required
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"
  • v2.billing.credit.topup = Your account has been credited with a new amount.
  • v2.billing.credit.warning = Your prepaid balance has reached its warning level.
  • v2.billing.credit.shutdown = Your prepaid balance has reached its shutdown level. Your account is suspended.
  • v2.call.inbound.started = An inbound call just started.
  • v2.call.inbound.ended = An inbound call just hung up.
  • v2.call.outbound.started = An outbound call just started.
  • v2.call.outbound.ended = An outbound call just hung up.
  • v2.number.assigned = A phone number was assigned to your account.
  • v2.number.unassigned = A phone number was unassigned from your account.
  • v2.task.updated = A task has been updated.
  • v2.audio-file.updated = An audio file has been updated.
  • v2.recording.updated = A recording has been updated.
  • v2.sms.inbound.received = An inbound SMS has been received.
  • v2.sms.outbound.updated = An outbound SMS has an updated status.
Value: "v2.billing.credit.warning"
try
required
integer [ 0 .. 10 ]

Number of attempts made to deliver the webhook

required
object

Payload of the webhook

Responses

Request samples

Content type
application/json
{
  • "id": "a03317440280451052hUD7yPiwWrzgGB",
  • "at": "2024-04-24T17:42:28Z",
  • "sid": "callrsid",
  • "type": "v2.billing.credit.warning",
  • "try": 0,
  • "payload": {
    }
}

Prepaid credit shutdown reached Webhook

Your prepaid account has reached the shutdown threshold. Your account is currently disabled. Please top up your account to re-enable it.

Authorizations:
ApiKeyAuthBasicAuth
Request Body schema: application/json
required
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"
  • v2.billing.credit.topup = Your account has been credited with a new amount.
  • v2.billing.credit.warning = Your prepaid balance has reached its warning level.
  • v2.billing.credit.shutdown = Your prepaid balance has reached its shutdown level. Your account is suspended.
  • v2.call.inbound.started = An inbound call just started.
  • v2.call.inbound.ended = An inbound call just hung up.
  • v2.call.outbound.started = An outbound call just started.
  • v2.call.outbound.ended = An outbound call just hung up.
  • v2.number.assigned = A phone number was assigned to your account.
  • v2.number.unassigned = A phone number was unassigned from your account.
  • v2.task.updated = A task has been updated.
  • v2.audio-file.updated = An audio file has been updated.
  • v2.recording.updated = A recording has been updated.
  • v2.sms.inbound.received = An inbound SMS has been received.
  • v2.sms.outbound.updated = An outbound SMS has an updated status.
Value: "v2.billing.credit.shutdown"
try
required
integer [ 0 .. 10 ]

Number of attempts made to deliver the webhook

required
object

Payload of the webhook

Responses

Request samples

Content type
application/json
{
  • "id": "a03317440280451052hUD7yPiwWrzgGB",
  • "at": "2024-04-24T17:42:28Z",
  • "sid": "callrsid",
  • "type": "v2.billing.credit.shutdown",
  • "try": 0,
  • "payload": {
    }
}

Inbound call started Webhook

An inbound call has started. An inbound call is a call to a Callr hosted phone number.

Authorizations:
ApiKeyAuthBasicAuth
Request Body schema: application/json
required
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"
  • v2.billing.credit.topup = Your account has been credited with a new amount.
  • v2.billing.credit.warning = Your prepaid balance has reached its warning level.
  • v2.billing.credit.shutdown = Your prepaid balance has reached its shutdown level. Your account is suspended.
  • v2.call.inbound.started = An inbound call just started.
  • v2.call.inbound.ended = An inbound call just hung up.
  • v2.call.outbound.started = An outbound call just started.
  • v2.call.outbound.ended = An outbound call just hung up.
  • v2.number.assigned = A phone number was assigned to your account.
  • v2.number.unassigned = A phone number was unassigned from your account.
  • v2.task.updated = A task has been updated.
  • v2.audio-file.updated = An audio file has been updated.
  • v2.recording.updated = A recording has been updated.
  • v2.sms.inbound.received = An inbound SMS has been received.
  • v2.sms.outbound.updated = An outbound SMS has an updated status.
Value: "v2.call.inbound.started"
try
required
integer [ 0 .. 10 ]

Number of attempts made to deliver the webhook

required
object (CDR)

Responses

Request samples

Content type
application/json
{
  • "id": "a03317440280451052hUD7yPiwWrzgGB",
  • "at": "2024-04-24T17:42:28Z",
  • "sid": "callrsid",
  • "type": "v2.call.inbound.started",
  • "try": 0,
  • "payload": {
    }
}

Inbound call ended Webhook

An inbound call has hung up

Authorizations:
ApiKeyAuthBasicAuth
Request Body schema: application/json
required
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"
  • v2.billing.credit.topup = Your account has been credited with a new amount.
  • v2.billing.credit.warning = Your prepaid balance has reached its warning level.
  • v2.billing.credit.shutdown = Your prepaid balance has reached its shutdown level. Your account is suspended.
  • v2.call.inbound.started = An inbound call just started.
  • v2.call.inbound.ended = An inbound call just hung up.
  • v2.call.outbound.started = An outbound call just started.
  • v2.call.outbound.ended = An outbound call just hung up.
  • v2.number.assigned = A phone number was assigned to your account.
  • v2.number.unassigned = A phone number was unassigned from your account.
  • v2.task.updated = A task has been updated.
  • v2.audio-file.updated = An audio file has been updated.
  • v2.recording.updated = A recording has been updated.
  • v2.sms.inbound.received = An inbound SMS has been received.
  • v2.sms.outbound.updated = An outbound SMS has an updated status.
Value: "v2.call.inbound.ended"
try
required
integer [ 0 .. 10 ]

Number of attempts made to deliver the webhook

required
object (CDR)

Responses

Request samples

Content type
application/json
{
  • "id": "a03317440280451052hUD7yPiwWrzgGB",
  • "at": "2024-04-24T17:42:28Z",
  • "sid": "callrsid",
  • "type": "v2.call.inbound.ended",
  • "try": 0,
  • "payload": {
    }
}

Outbound call started Webhook

An outbound call has started. An outbound call is a call initiated from the Callr platform to an external phone number.

Authorizations:
ApiKeyAuthBasicAuth
Request Body schema: application/json
required
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"
  • v2.billing.credit.topup = Your account has been credited with a new amount.
  • v2.billing.credit.warning = Your prepaid balance has reached its warning level.
  • v2.billing.credit.shutdown = Your prepaid balance has reached its shutdown level. Your account is suspended.
  • v2.call.inbound.started = An inbound call just started.
  • v2.call.inbound.ended = An inbound call just hung up.
  • v2.call.outbound.started = An outbound call just started.
  • v2.call.outbound.ended = An outbound call just hung up.
  • v2.number.assigned = A phone number was assigned to your account.
  • v2.number.unassigned = A phone number was unassigned from your account.
  • v2.task.updated = A task has been updated.
  • v2.audio-file.updated = An audio file has been updated.
  • v2.recording.updated = A recording has been updated.
  • v2.sms.inbound.received = An inbound SMS has been received.
  • v2.sms.outbound.updated = An outbound SMS has an updated status.
Value: "v2.call.outbound.started"
try
required
integer [ 0 .. 10 ]

Number of attempts made to deliver the webhook

required
object (CDR)

Responses

Request samples

Content type
application/json
{
  • "id": "a03317440280451052hUD7yPiwWrzgGB",
  • "at": "2024-04-24T17:42:28Z",
  • "sid": "callrsid",
  • "type": "v2.call.outbound.started",
  • "try": 0,
  • "payload": {
    }
}

Outbound call ended Webhook

An outbound call has hung up

Authorizations:
ApiKeyAuthBasicAuth
Request Body schema: application/json
required
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"
  • v2.billing.credit.topup = Your account has been credited with a new amount.
  • v2.billing.credit.warning = Your prepaid balance has reached its warning level.
  • v2.billing.credit.shutdown = Your prepaid balance has reached its shutdown level. Your account is suspended.
  • v2.call.inbound.started = An inbound call just started.
  • v2.call.inbound.ended = An inbound call just hung up.
  • v2.call.outbound.started = An outbound call just started.
  • v2.call.outbound.ended = An outbound call just hung up.
  • v2.number.assigned = A phone number was assigned to your account.
  • v2.number.unassigned = A phone number was unassigned from your account.
  • v2.task.updated = A task has been updated.
  • v2.audio-file.updated = An audio file has been updated.
  • v2.recording.updated = A recording has been updated.
  • v2.sms.inbound.received = An inbound SMS has been received.
  • v2.sms.outbound.updated = An outbound SMS has an updated status.
Value: "v2.call.outbound.ended"
try
required
integer [ 0 .. 10 ]

Number of attempts made to deliver the webhook

required
object (CDR)

Responses

Request samples

Content type
application/json
{
  • "id": "a03317440280451052hUD7yPiwWrzgGB",
  • "at": "2024-04-24T17:42:28Z",
  • "sid": "callrsid",
  • "type": "v2.call.outbound.ended",
  • "try": 0,
  • "payload": {
    }
}

Phone number assigned Webhook

A phone number was assigned to your account

Authorizations:
ApiKeyAuthBasicAuth
Request Body schema: application/json
required
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"
  • v2.billing.credit.topup = Your account has been credited with a new amount.
  • v2.billing.credit.warning = Your prepaid balance has reached its warning level.
  • v2.billing.credit.shutdown = Your prepaid balance has reached its shutdown level. Your account is suspended.
  • v2.call.inbound.started = An inbound call just started.
  • v2.call.inbound.ended = An inbound call just hung up.
  • v2.call.outbound.started = An outbound call just started.
  • v2.call.outbound.ended = An outbound call just hung up.
  • v2.number.assigned = A phone number was assigned to your account.
  • v2.number.unassigned = A phone number was unassigned from your account.
  • v2.task.updated = A task has been updated.
  • v2.audio-file.updated = An audio file has been updated.
  • v2.recording.updated = A recording has been updated.
  • v2.sms.inbound.received = An inbound SMS has been received.
  • v2.sms.outbound.updated = An outbound SMS has an updated status.
Value: "v2.number.assigned"
try
required
integer [ 0 .. 10 ]

Number of attempts made to deliver the webhook

required
object (NumberAssigned)

Responses

Request samples

Content type
application/json
{
  • "id": "a03317440280451052hUD7yPiwWrzgGB",
  • "at": "2024-04-24T17:42:28Z",
  • "sid": "callrsid",
  • "type": "v2.number.assigned",
  • "try": 0,
  • "payload": {
    }
}

Phone number unassigned Webhook

A phone number was unassigned from your account

Authorizations:
ApiKeyAuthBasicAuth
Request Body schema: application/json
required
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"
  • v2.billing.credit.topup = Your account has been credited with a new amount.
  • v2.billing.credit.warning = Your prepaid balance has reached its warning level.
  • v2.billing.credit.shutdown = Your prepaid balance has reached its shutdown level. Your account is suspended.
  • v2.call.inbound.started = An inbound call just started.
  • v2.call.inbound.ended = An inbound call just hung up.
  • v2.call.outbound.started = An outbound call just started.
  • v2.call.outbound.ended = An outbound call just hung up.
  • v2.number.assigned = A phone number was assigned to your account.
  • v2.number.unassigned = A phone number was unassigned from your account.
  • v2.task.updated = A task has been updated.
  • v2.audio-file.updated = An audio file has been updated.
  • v2.recording.updated = A recording has been updated.
  • v2.sms.inbound.received = An inbound SMS has been received.
  • v2.sms.outbound.updated = An outbound SMS has an updated status.
Value: "v2.number.unassigned"
try
required
integer [ 0 .. 10 ]

Number of attempts made to deliver the webhook

required
object (NumberAssigned)

Responses

Request samples

Content type
application/json
{
  • "id": "a03317440280451052hUD7yPiwWrzgGB",
  • "at": "2024-04-24T17:42:28Z",
  • "sid": "callrsid",
  • "type": "v2.number.unassigned",
  • "try": 0,
  • "payload": {
    }
}

Task status updated Webhook

Authorizations:
ApiKeyAuthBasicAuth
Request Body schema: application/json
required
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"
  • v2.billing.credit.topup = Your account has been credited with a new amount.
  • v2.billing.credit.warning = Your prepaid balance has reached its warning level.
  • v2.billing.credit.shutdown = Your prepaid balance has reached its shutdown level. Your account is suspended.
  • v2.call.inbound.started = An inbound call just started.
  • v2.call.inbound.ended = An inbound call just hung up.
  • v2.call.outbound.started = An outbound call just started.
  • v2.call.outbound.ended = An outbound call just hung up.
  • v2.number.assigned = A phone number was assigned to your account.
  • v2.number.unassigned = A phone number was unassigned from your account.
  • v2.task.updated = A task has been updated.
  • v2.audio-file.updated = An audio file has been updated.
  • v2.recording.updated = A recording has been updated.
  • v2.sms.inbound.received = An inbound SMS has been received.
  • v2.sms.outbound.updated = An outbound SMS has an updated status.
Value: "v2.task.updated"
try
required
integer [ 0 .. 10 ]

Number of attempts made to deliver the webhook

required
object (Task)

Task

Responses

Request samples

Content type
application/json
{
  • "id": "a03317440280451052hUD7yPiwWrzgGB",
  • "at": "2024-04-24T17:42:28Z",
  • "sid": "callrsid",
  • "type": "v2.task.updated",
  • "try": 0,
  • "payload": {
    }
}

Audio File status updated Webhook

Authorizations:
ApiKeyAuthBasicAuth
Request Body schema: application/json
required
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"
  • v2.billing.credit.topup = Your account has been credited with a new amount.
  • v2.billing.credit.warning = Your prepaid balance has reached its warning level.
  • v2.billing.credit.shutdown = Your prepaid balance has reached its shutdown level. Your account is suspended.
  • v2.call.inbound.started = An inbound call just started.
  • v2.call.inbound.ended = An inbound call just hung up.
  • v2.call.outbound.started = An outbound call just started.
  • v2.call.outbound.ended = An outbound call just hung up.
  • v2.number.assigned = A phone number was assigned to your account.
  • v2.number.unassigned = A phone number was unassigned from your account.
  • v2.task.updated = A task has been updated.
  • v2.audio-file.updated = An audio file has been updated.
  • v2.recording.updated = A recording has been updated.
  • v2.sms.inbound.received = An inbound SMS has been received.
  • v2.sms.outbound.updated = An outbound SMS has an updated status.
Value: "v2.audio-file.updated"
try
required
integer [ 0 .. 10 ]

Number of attempts made to deliver the webhook

required
object (AudioFile)

Audio file

Responses

Request samples

Content type
application/json
{
  • "id": "a03317440280451052hUD7yPiwWrzgGB",
  • "at": "2024-04-24T17:42:28Z",
  • "sid": "callrsid",
  • "type": "v2.audio-file.updated",
  • "try": 0,
  • "payload": {
    }
}

Recording status updated Webhook

Authorizations:
ApiKeyAuthBasicAuth
Request Body schema: application/json
required
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"
  • v2.billing.credit.topup = Your account has been credited with a new amount.
  • v2.billing.credit.warning = Your prepaid balance has reached its warning level.
  • v2.billing.credit.shutdown = Your prepaid balance has reached its shutdown level. Your account is suspended.
  • v2.call.inbound.started = An inbound call just started.
  • v2.call.inbound.ended = An inbound call just hung up.
  • v2.call.outbound.started = An outbound call just started.
  • v2.call.outbound.ended = An outbound call just hung up.
  • v2.number.assigned = A phone number was assigned to your account.
  • v2.number.unassigned = A phone number was unassigned from your account.
  • v2.task.updated = A task has been updated.
  • v2.audio-file.updated = An audio file has been updated.
  • v2.recording.updated = A recording has been updated.
  • v2.sms.inbound.received = An inbound SMS has been received.
  • v2.sms.outbound.updated = An outbound SMS has an updated status.
Value: "v2.recording.updated"
try
required
integer [ 0 .. 10 ]

Number of attempts made to deliver the webhook

required
object (Recording)

Recording

Responses

Request samples

Content type
application/json
{
  • "id": "a03317440280451052hUD7yPiwWrzgGB",
  • "at": "2024-04-24T17:42:28Z",
  • "sid": "callrsid",
  • "type": "v2.recording.updated",
  • "try": 0,
  • "payload": {
    }
}

Inbound SMS received Webhook

Authorizations:
ApiKeyAuthBasicAuth
Request Body schema: application/json
required
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"
  • v2.billing.credit.topup = Your account has been credited with a new amount.
  • v2.billing.credit.warning = Your prepaid balance has reached its warning level.
  • v2.billing.credit.shutdown = Your prepaid balance has reached its shutdown level. Your account is suspended.
  • v2.call.inbound.started = An inbound call just started.
  • v2.call.inbound.ended = An inbound call just hung up.
  • v2.call.outbound.started = An outbound call just started.
  • v2.call.outbound.ended = An outbound call just hung up.
  • v2.number.assigned = A phone number was assigned to your account.
  • v2.number.unassigned = A phone number was unassigned from your account.
  • v2.task.updated = A task has been updated.
  • v2.audio-file.updated = An audio file has been updated.
  • v2.recording.updated = A recording has been updated.
  • v2.sms.inbound.received = An inbound SMS has been received.
  • v2.sms.outbound.updated = An outbound SMS has an updated status.
Value: "v2.sms.inbound.received"
try
required
integer [ 0 .. 10 ]

Number of attempts made to deliver the webhook

required
object (SMS)

SMS

Responses

Request samples

Content type
application/json
{
  • "id": "a03317440280451052hUD7yPiwWrzgGB",
  • "at": "2024-04-24T17:42:28Z",
  • "sid": "callrsid",
  • "type": "v2.sms.inbound.received",
  • "try": 0,
  • "payload": {
    }
}

Outbound SMS status updated Webhook

Authorizations:
ApiKeyAuthBasicAuth
Request Body schema: application/json
required
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"
  • v2.billing.credit.topup = Your account has been credited with a new amount.
  • v2.billing.credit.warning = Your prepaid balance has reached its warning level.
  • v2.billing.credit.shutdown = Your prepaid balance has reached its shutdown level. Your account is suspended.
  • v2.call.inbound.started = An inbound call just started.
  • v2.call.inbound.ended = An inbound call just hung up.
  • v2.call.outbound.started = An outbound call just started.
  • v2.call.outbound.ended = An outbound call just hung up.
  • v2.number.assigned = A phone number was assigned to your account.
  • v2.number.unassigned = A phone number was unassigned from your account.
  • v2.task.updated = A task has been updated.
  • v2.audio-file.updated = An audio file has been updated.
  • v2.recording.updated = A recording has been updated.
  • v2.sms.inbound.received = An inbound SMS has been received.
  • v2.sms.outbound.updated = An outbound SMS has an updated status.
Value: "v2.sms.outbound.updated"
try
required
integer [ 0 .. 10 ]

Number of attempts made to deliver the webhook

required
object (SMS)

SMS

Responses

Request samples

Content type
application/json
{
  • "id": "a03317440280451052hUD7yPiwWrzgGB",
  • "at": "2024-04-24T17:42:28Z",
  • "sid": "callrsid",
  • "type": "v2.sms.outbound.updated",
  • "try": 0,
  • "payload": {
    }
}