Skip to contentSkip to navigationSkip to topbar
Rate this page:
On this page

Serverless API


The new Serverless API empowers you to deploy Twilio Functions and Assets programmatically.


Getting started

getting-started page anchor

To deploy Functions and Assets right away, we suggest you look into the Serverless Toolkit, which gives you an installable development environment from which to build and deploy everything you need.

To play with the API itself, head over to our Quickstart.


The API comprises the following resources:

The animation below shows the relationship and purpose for each resource:

Serverless API resource overview animation.

The new API gives you more control over the domains you serve your Functions and Assets from once deployed. Your domain structure looks like this:


_10
https://[service unique name]-[random characters]-[optional domain suffix].twil.io/

So that means a Service with the unique name thanos can create the following domains by specifying a domain suffix (or leaving it blank) when creating an Environment:


_10
https://thanos-3432.twil.io/ // Environment domain suffix left blank
_10
https://thanos-3432-dev.twil.io/ // Environment domain suffix = dev
_10
https://thanos-3432-test.twil.io/ // Environment domain suffix = test
_10
https://thanos-3432-stage.twil.io/ // Environment domain suffix = stage


The following entities will be retained for up to 7 days and then deleted:

The following entities will be retained for up to 30 days and then deleted:

  • Logs, including those generated by the console.log() , console.info() , console.warn() , and console.error() methods
(information)

Info

This policy will not affect any active deployments at any point. It will only apply to users working with the API, Serverless Toolkit or the new UI editor. It does not apply to Functions (Classic) and Assets (Classic).

Data generated by the underlying products used via Functions, such as SMS or voice calls, is retained/deleted in line with those products' own data-retention policies. You can find details of individual product data-retention policies in the specific product documentation, such as this page for SMS and this page for voice calls.


Limitations

limitations page anchor
  • Functions and Assets created by the API are not reflected in the Classic UI for those products. You cannot use the API to read Functions or Assets created with the Classic UI. The two systems are separate.
  • There is no GET for Asset Versions. You cannot retrieve the Asset file content itself via the API.
  • An account can have 50 Services .
  • A Service can have up to 25 Environments .
  • A Build can contain up to 100 Function Versions .
  • A Build can contain up to 1000 public/protected Asset Versions .
  • A Build can contain up to 50 private Asset Versions.
  • A Build can have up to 512MB of Dependencies . Consider removing non-essential libraries if using the Console UI, or setting development-only Dependencies as devDependencies instead of dependencies if using the Serverless Toolkit .
  • An account can do up to 100 Builds per hour.
  • Builds without an active deployment are deleted after 7 days.
  • Function Versions that are not part of any Builds and are older than 7 days will be deleted.
  • Asset Versions that are not part of any Build and are older than 7 days will be deleted.
  • Functions that don't have any Function Versions and are older than 7 days will be deleted.
  • Assets that don't have any Asset Versions and are older than 7 days will be deleted.
  • Function execution time is limited to 10 seconds.
  • An account can execute up to 30 Functions concurrently. In case your account is reaching these concurrency limits, you can reach out to support to request a limit increase.

Both public and private Assets have limitations on the maximum file size of each when using APIs:

Asset TypeMaximum Size
Public and protected25MB
Private10MB

Rate this page: