Twilio
This page contains the setup guide and reference information for the Twilio source connector.
Prerequisites
Twilio HTTP requests to the REST API are protected with HTTP Basic authentication. In short, you will use your Twilio Account SID as the username and your Auth Token as the password for HTTP Basic authentication.
You can find your Account SID and Auth Token in the Twilio Console.
For more information, see the Twilio API authentication documentation.
Setup guide
For Airbyte Cloud:
- Log into your Airbyte Cloud account.
- In the left navigation bar, click Sources. In the top-right corner, click +new source.
- On the Set up the source page, enter a name for the Twilio connector and select Twilio from the source type dropdown.
- Enter your Account ID (Twilio Account SID).
- Enter your Auth Token.
- Enter a Replication Start Date. Records created before this UTC date and time aren't synced. Use the format
YYYY-MM-DDTHH:MM:SSZ(for example,2020-10-01T00:00:00Z). - Optionally, configure the following fields:
- Lookback window: The number of minutes before the last cursor value to re-fetch on each incremental sync. Use this to catch late-arriving records. Defaults to
0. - Number of concurrent threads: The number of worker threads used during a sync. Defaults to
3. Maximum is40. - Slice Step Duration: The time window size used for each slice of an incremental stream. See Tuning the slice step duration. Defaults to 1 Month (
P1M).
- Lookback window: The number of minutes before the last cursor value to re-fetch on each incremental sync. Use this to catch late-arriving records. Defaults to
- Click Set up source.
For Airbyte Open Source:
- Navigate to the Airbyte Open Source dashboard.
- Set a name for your source.
- Enter your Account ID (Twilio Account SID).
- Enter your Auth Token.
- Enter a Replication Start Date in the format
YYYY-MM-DDTHH:MM:SSZ. - Optionally, set the Lookback window, Number of concurrent threads, and Slice Step Duration. See the Cloud instructions above for details.
- Click Set up source.
Supported sync modes
The Twilio source connector supports the following sync modes:
| Feature | Supported? |
|---|---|
| Full Refresh Sync | Yes |
| Incremental Sync | Yes |
| Replicate Incremental Deletes | No |
| SSL connection | Yes |
| Namespaces | No |
Supported Streams
- Accounts
- Addresses
- Alerts (Incremental)
- Applications
- Available Phone Number Countries (Incremental)
- Available Phone Numbers Local (Incremental)
- Available Phone Numbers Mobile (Incremental)
- Available Phone Numbers Toll Free (Incremental)
- Calls (Incremental)
- Conference Participants (Incremental)
- Conferences (Incremental)
- Conversations
- Conversation Messages
- Conversation Participants
- Dependent Phone Numbers (Incremental)
- Executions (Incremental)
- Incoming Phone Numbers (Incremental)
- Flows
- Keys
- Message Media (Incremental)
- Messages (Incremental)
- Outgoing Caller Ids
- Queues
- Recordings (Incremental)
- Services
- Step
- Roles
- Transcriptions
- Trunks
- Usage Records (Incremental)
- Usage Triggers
- Users
- UserConversations
- VerifyServices
Performance considerations
The Twilio connector gracefully handles rate limits using the Retry-After header with an exponential backoff fallback. For more information, see Twilio's rate limit documentation.
Alerts pagination limit
The Alerts API limits each request to 10,000 Alert resources. If the alerts stream fails because a time window contains more than 10,000 Alert records, reduce Slice Step Duration to sync fewer Alert records per request.
Tuning the slice step duration
Incremental streams page the Twilio API in fixed-size time windows between the replication start date and now. The Slice Step Duration option controls the size of those windows and lets you trade request count against the amount of data each request returns.
| Option | ISO 8601 value | When to use |
|---|---|---|
| 1 Day | P1D | Very high volume accounts where monthly or weekly windows trigger Twilio timeouts or exceed the result size Twilio returns. |
| 1 Week | P1W | High volume accounts that still time out with monthly windows. |
| 1 Month | P1M | Default. Works well for most accounts and minimizes request count compared to shorter windows. |
| 1 Year | P1Y | Low volume accounts or short backfills where you want to minimize the number of slices per stream. |
Smaller windows increase the number of API requests and are more likely to be rate limited, but they reduce the amount of data Twilio must return per request. Larger windows reduce request count but can time out on busy accounts. If syncs of the calls, messages, recordings, message_media, conference_participants, usage_records, or alerts streams fail with timeouts, lower the slice step duration.
Reference
This connector uses REST APIs, including the https://api.twilio.com/2010-04-01, https://monitor.twilio.com/v1, https://conversations.twilio.com/v1, https://studio.twilio.com/v1, https://chat.twilio.com/v2, https://trunking.twilio.com/v1, and https://verify.twilio.com/v2 API endpoints.
For programmatic configuration, use these parameter names:
| Field | Required | Description |
|---|---|---|
account_sid | Yes | Account identifier used as the HTTP Basic authentication username. |
auth_token | Yes | Auth Token used as the HTTP Basic authentication password. |
start_date | Yes | Date and time in YYYY-MM-DDTHH:MM:SSZ format. Records before this date aren't replicated. |
lookback_window | No | Number of minutes before the last cursor value to re-fetch on each incremental sync. Defaults to 0. |
num_worker | No | Number of concurrent threads to use during a sync. Valid values are 1 through 40. Defaults to 3. |
slice_step_duration | No | Time window size for each incremental stream slice. Valid values are P1D, P1W, P1M, and P1Y. Defaults to P1M. |
Reference
Config fields reference
Changelog
Expand to review
| Version | Date | Pull Request | Subject |
|---|---|---|---|
| 0.17.10 | 2026-05-12 | 77988 | Improve the Twilio Alerts pagination-limit error message. |
| 0.17.9 | 2026-04-30 | 77593 | Fix usage_records start_date schema format from date-time to date to prevent null primary key in Iceberg destination |
| 0.17.8 | 2026-04-28 | 77453 | Update dependencies |
| 0.17.7 | 2026-04-22 | 72494 | Add configurable slice step duration (default: 1 month) |
| 0.17.6 | 2026-04-21 | 76801 | Update dependencies |
| 0.17.5 | 2026-04-13 | 76276 | Rename "concurrent workers" to "concurrent threads" in connector spec |
| 0.17.4 | 2026-01-22 | 72260 | Update CDK version from 7.0.1 to 7.6.5 |
| 0.17.3 | 2025-11-14 | 68680 | Handle 404 errors gracefully for date ranges with no data |
| 0.17.2 | 2025-10-22 | 68591 | Add suggestedStreams |
| 0.17.1 | 2025-09-15 | 66090 | Update to CDK v7 |
| 0.17.0 | 2025-09-05 | 65955 | Promoting release candidate 0.17.0-rc.2 to a main version. |
| 0.17.0-rc.2 | 2025-09-04 | 65936 | Fix lookback window |
| 0.17.0-rc.1 | 2025-08-25 | 65072 | Migrate to manifest-only |
| 0.16.0 | 2025-08-28 | 65593 | Promoting release candidate 0.16.0-rc.1 to a main version. |
| 0.16.0-rc.1 | 2025-08-25 | 65072 | Migrate incremental streams |
| 0.15.0 | 2025-08-19 | 65085 | Promoting release candidate 0.15.0-rc.1 to a main version. |
| 0.15.0-rc.1 | 2025-08-18 | 64918 | Migrate nested full refresh streams |
| 0.14.0 | 2025-08-18 | 65066 | Promoting release candidate 0.14.0-rc.1 to a main version. |
| 0.14.0-rc.1 | 2025-08-14 | 64880 | Migrated all full refresh streams that have no parent streams |
| 0.13.0 | 2025-08-14 | 64929 | Promoting release candidate 0.13.0-rc.1 to a main version. |
| 0.13.0-rc.1 | 2025-08-11 | 64877 | Update CDK to v6 |
| 0.12.1 | 2025-06-15 | 56258 | Update dependencies |
| 0.12.0 | 2025-05-13 | 49097 | Fix per partition states for nested streams |
| 0.11.17 | 2025-02-22 | 54486 | Update dependencies |
| 0.11.16 | 2025-01-22 | 52089 | Fix typo to fix pagination for TwilioStream class |
| 0.11.15 | 2025-01-18 | 51966 | Update dependencies |
| 0.11.14 | 2024-12-28 | 50803 | Update dependencies |
| 0.11.13 | 2024-11-25 | 43769 | Starting with this version, the Docker image is now rootless. Please note that this and future versions will not be compatible with Airbyte versions earlier than 0.64 |
| 0.11.12 | 2024-08-03 | 43132 | Update dependencies |
| 0.11.11 | 2024-07-27 | 42593 | Update dependencies |
| 0.11.10 | 2024-07-20 | 42177 | Update dependencies |
| 0.11.9 | 2024-07-13 | 41845 | Update dependencies |
| 0.11.8 | 2024-07-10 | 41478 | Update dependencies |
| 0.11.7 | 2024-06-26 | 40527 | Update dependencies |
| 0.11.6 | 2024-06-22 | 40030 | Update dependencies |
| 0.11.5 | 2024-06-06 | 39252 | [autopull] Upgrade base image to v1.2.2 |
| 0.11.4 | 2024-05-22 | 38564 | Migrate authenticator to requests_native_auth package |
| 0.11.3 | 2024-05-20 | 38262 | Replace AirbyteLogger with logging.Logger |
| 0.11.2 | 2024-04-19 | 36666 | Updating to 0.80.0 CDK |
| 0.11.1 | 2024-04-12 | 36666 | Schema descriptions |
| 0.11.0 | 2024-03-19 | 36267 | Pin airbyte-cdk version to ^0 |
| 0.10.2 | 2024-02-12 | 35153 | Manage dependencies with Poetry |
| 0.10.1 | 2023-11-21 | 32718 | Base image migration: remove Dockerfile and use the python-connector-base image |
| 0.10.0 | 2023-07-28 | 27323 | Add new stream Step |
| 0.9.0 | 2023-06-27 | 27221 | Add new stream UserConversations with parent Users |
| 0.8.1 | 2023-07-12 | 28216 | Add property channel_metadata to ConversationMessages schema |
| 0.8.0 | 2023-06-11 | 27231 | Add new stream VerifyServices |
| 0.7.0 | 2023-05-03 | 25781 | Add new stream Trunks |
| 0.6.0 | 2023-05-03 | 25783 | Add new stream Roles with parent Services |
| 0.5.0 | 2023-03-21 | 23995 | Add new stream Conversation Participants |
| 0.4.0 | 2023-03-18 | 23995 | Add new stream Conversation Messages |
| 0.3.0 | 2023-03-18 | 22874 | Add new stream Executions with parent Flows |
| 0.2.0 | 2023-03-16 | 24114 | Add Conversations stream |
| 0.1.16 | 2023-02-10 | 22825 | Specified date formatting in specification |
| 0.1.15 | 2023-01-27 | 22025 | Set AvailabilityStrategy for streams explicitly to None |
| 0.1.14 | 2022-11-16 | 19479 | Fix date range slicing |
| 0.1.13 | 2022-10-25 | 18423 | Implement datetime slicing for streams supporting incremental syncs |
| 0.1.11 | 2022-09-30 | 17478 | Add lookback_window parameters |
| 0.1.10 | 2022-09-29 | 17410 | Migrate to per-stream states |
| 0.1.9 | 2022-09-26 | 17134 | Add test data for Message Media and Conferences |
| 0.1.8 | 2022-08-29 | 16110 | Add state checkpoint interval |
| 0.1.7 | 2022-08-26 | 15972 | Shift start date for stream if it exceeds 400 days |
| 0.1.6 | 2022-06-22 | 14000 | Update Records stream schema and align tests with connectors' best practices |
| 0.1.5 | 2022-06-22 | 13896 | Add lookback window parameters to fetch messages with a rolling window and catch status updates |
| 0.1.4 | 2022-04-22 | 12157 | Use Retry-After header for backoff |
| 0.1.3 | 2022-04-20 | 12183 | Add new subresource on the call stream + declare a valid primary key for conference_participants stream |
| 0.1.2 | 2021-12-23 | 9092 | Correct specification doc URL |
| 0.1.1 | 2021-10-18 | 7034 | Update schemas and transform data types according to the API schema |
| 0.1.0 | 2021-07-02 | 4070 | Native Twilio connector implemented |