×

Introduction

Exotel's RESTful APIs make it easy to integrate Voice & SMS in your web or mobile application. Think,

The possibilities are endless! Exotel's APIs allow you to programmatically control a call by playing personalised greetings, diverting users to a unique call flow, pushing call information, getting call recordings, etc. The APIs are designed according to REST principles. Exotel's REST APIs are served over HTTPS and HTTP. However, we highly recommend communicating over HTTPS.

Images provided below are a schematic representation of how Exotel works when an outgoing or incoming call occurs.


Authentication

Each API request will have to contain request headers that include your access token to authenticate the request. Don't have an access token? You will find your access token in the API settings page of your Exotel Dashboard.

HTTP requests to the REST API are protected with HTTP Basic authentication. You will use your Exotel API key as the username and your API token as the password for HTTP Basic authentication. You can find your API key and API token on your Exotel Dashboard.

Base URL: https://api.exotel.com/v1/Accounts/


Rate Limits

To keep you in compliance, Exotel maintains the appropriate rate limits:

API

Value

Voice

All Voice APIs are rate limited to 200 calls per minute. Once this limit has been crossed, your requests will be rejected with an HTTP 429 'Too Many Requests' code

SMS

In the rare instance that SMS API platform limits are breached, you will receive an HTTP 503 'Service Unavailable' code


HTTP Status Codes

Exotel uses standard HTTP status codes to communicate errors:

Status Code

Value

200

OK - Everything went as planned.

202

Accepted - Request accepted.

400

Bad Request - Something in your header or request body was malformed.

401

Unauthorised - Necessary credentials were either missing or invalid.

402

Payment Required - The action is not available on your plan, or you have exceeded usage limits for your current plan.

403

Your credentials are valid, but you don’t have access to the requested resource.

404

Not Found - The object you’re requesting doesn’t exist.

409

Conflict - You might be trying to update the same resource concurrently.

429

Too Many Requests - You are calling our APIs more frequently than we allow.

5xx

Server Errors - Something went wrong on our end. Please try again.