A Python module for communicating with the Twilio API and generating TwiML.

Overview

twilio-python

Build Status PyPI PyPI Learn OSS Contribution in TwilioQuest

The default branch name for this repository has been changed to main as of 07/27/2020.

Documentation

The documentation for the Twilio API can be found here.

The Python library documentation can be found here.

Versions

twilio-python uses a modified version of Semantic Versioning for all changes. See this document for details.

Migrating from 5.x

Please consult the official migration guide for information on upgrading your application using twilio-python 5.x to 6.x

Supported Python Versions

This library supports the following Python implementations:

  • Python 2.7
  • Python 3.4
  • Python 3.5
  • Python 3.6
  • Python 3.7
  • Python 3.8

Installation

Install from PyPi using pip, a package manager for Python.

pip install twilio

If pip install fails on Windows, check the path length of the directory. If it is greater 260 characters then enable Long Paths or choose other shorter location.

Don't have pip installed? Try installing it, by running this from the command line:

$ curl https://bootstrap.pypa.io/get-pip.py | python

Or, you can download the source code (ZIP) for twilio-python, and then run:

python setup.py install

You may need to run the above commands with sudo.

Getting Started

Getting started with the Twilio API couldn't be easier. Create a Client and you're ready to go.

API Credentials

The Twilio needs your Twilio credentials. You can either pass these directly to the constructor (see the code below) or via environment variables.

from twilio.rest import Client

account = "ACXXXXXXXXXXXXXXXXX"
token = "YYYYYYYYYYYYYYYYYY"
client = Client(account, token)

Alternatively, a Client constructor without these parameters will look for TWILIO_ACCOUNT_SID and TWILIO_AUTH_TOKEN variables inside the current environment.

We suggest storing your credentials as environment variables. Why? You'll never have to worry about committing your credentials and accidentally posting them somewhere public.

from twilio.rest import Client
client = Client()

Specify Region and/or Edge

To take advantage of Twilio's Global Infrastructure, specify the target Region and/or Edge for the client:

from twilio.rest import Client

client = Client(region='au1', edge='sydney')

A Client constructor without these parameters will also look for TWILIO_REGION and TWILIO_EDGE variables inside the current environment.

Alternatively, you may specify the edge and/or region after constructing the Twilio client:

from twilio.rest import Client

client = Client()
client.region = 'au1'
client.edge = 'sydney'

This will result in the hostname transforming from api.twilio.com to api.sydney.au1.twilio.com.

Make a Call

from twilio.rest import Client

account = "ACXXXXXXXXXXXXXXXXX"
token = "YYYYYYYYYYYYYYYYYY"
client = Client(account, token)

call = client.calls.create(to="9991231234",
                           from_="9991231234",
                           url="http://twimlets.com/holdmusic?Bucket=com.twilio.music.ambient")
print(call.sid)

Send an SMS

from twilio.rest import Client

account = "ACXXXXXXXXXXXXXXXXX"
token = "YYYYYYYYYYYYYYYYYY"
client = Client(account, token)

message = client.messages.create(to="+12316851234", from_="+15555555555",
                                 body="Hello there!")

Enable Debug Logging

Log the API request and response data to the console:

import logging

client = Client(account, token)
logging.basicConfig()
client.http_client.logger.setLevel(logging.INFO)

Log the API request and response data to a file:

import logging

client = Client(account, token)
logging.basicConfig(filename='./log.txt')
client.http_client.logger.setLevel(logging.INFO)

Handling Exceptions

from twilio.rest import Client
from twilio.base.exceptions import TwilioRestException

account = "ACXXXXXXXXXXXXXXXXX"
token = "YYYYYYYYYYYYYYYYYY"
client = Client(account, token)

try:
  message = client.messages.create(to="+12316851234", from_="+15555555555",
                                   body="Hello there!")
except TwilioRestException as e:
  print(e)

For more descriptive exception types, please see the Twilio documentation.

Generating TwiML

To control phone calls, your application needs to output TwiML.

Use twilio.twiml.Response to easily create such responses.

from twilio.twiml.voice_response import VoiceResponse

r = VoiceResponse()
r.say("Welcome to twilio!")
print(str(r))
<?xml version="1.0" encoding="utf-8"?>
<Response><Say>Welcome to twilio!</Say></Response>

Using a Custom HTTP Client

To use a custom HTTP client with this helper library, please see the Twilio documentation.

Docker Image

The Dockerfile present in this repository and its respective twilio/twilio-python Docker image are currently used by Twilio for testing purposes only.

Getting help

If you need help installing or using the library, please check the Twilio Support Help Center first, and file a support ticket if you don't find an answer to your question.

If you've instead found a bug in the library or would like new features added, go ahead and open issues or pull requests against this repo!

Comments
  • Upgrade to PyJWT 2.0

    Upgrade to PyJWT 2.0

    Issue Summary

    The title speaks for itself. I think we should migrate to PyJWT 2.0 to comply with being updated all the time. It is noticeable that the community moves towards dropping Python 2.7 support as it stopped being maintained and is considered deprecated. Upgrading to PyJWT 2.0 will force us to drop Python 2.7 support and I think we should drop it regardless of updating PyJWT.

    WDYT?

    type: community enhancement status: work in progress 
    opened by wavenator 51
  • fix!: update code and tests for pyjwt>=2.0.0

    fix!: update code and tests for pyjwt>=2.0.0

    Fixes #556

    This PR upgrades pyjwt to 2.0.1, which is a major version upgrade and a breaking change. Namely, pyjwt 2.x drops support for Python 2.x and Python 3.0-3.5. It also changes some user-facing APIs that require changes to twilio-python.

    I've made a start on updating the code and fixing broken tests. It would be great to get feedback on the changes in twilio/jwt/__init__.py:143-144. Since the algorithms kwarg is now a required argument for jwt.decode(...) and this library uses both HS256 and RS256, the approach I've taken is to try and get the appropriate algorithm from the particular token's header and fall back to HS256 if it's missing. The alternative approach would be to explicitly pass in algorithms=["HS256", "RS256"] without trying to get the algorithm from the header.

    That's as far as the "easy" changes go. The harder decision is dropping support for older Python versions and what kind of changes that requires. Happy to help, but I'd need guidance.

    Checklist

    • [x] I acknowledge that all my contributions will be made under the project's license
    • [x] I have made a material change to the repo (functionality, testing, spelling, grammar)
    • [x] I have read the Contribution Guidelines and my PR follows them
    • [x] I have titled the PR appropriately
    • [x] I have updated my branch with the main branch
    • [x] I have added tests that prove my fix is effective or that my feature works
    • [x] I have added the necessary documentation about the functionality in the appropriate .md file
    • [ ] I have added inline documentation to the code I modified
    type: community enhancement status: code review request 
    opened by karls 24
  • Environment markers

    Environment markers

    This patch aims to fix #356 and some related others.

    • As twilio doesn't support Python 2.5 or below, removed simplejson from conditional dependencies.
    • Although twilio have used environment markers, it hadn't opt out conditional dependencies when building wheels. If a wheel is once built with Python 3 pip always installs pysocks (which is a conditional dependency only for Python 3) regardless of Python version. Opting out conditional dependencies prevents this problem.
    • Although environment markers work well with the recent versions of pip, the older versions of pip lacks the feature. To make it work on them as well, if conditions on setup.py still remains if it's not building wheels.
    • As some older versions of pip doesn't have operators like </>=, it uses only ==/!=/and for backward compatibility.
    • Environment markers became more organized and reduced duplicated lists.

    Dependencies of build wheels now look like ("run_requires" field of twilio-6.3.0.dist-info/metadata.json):

    [
      {
        "requires": [
          "PyJWT (>=1.4.2)",
          "pytz",
          "requests (>=2.0.0)",
          "six"
        ]
      },
      {
        "environment": "python_version!='2.6' and python_version!='2.7'",
        "requires": [
          "pysocks"
        ]
      },
      {
        "environment": "python_version=='2.6'",
        "requires": [
          "cryptography (>=1.3.4)",
          "idna (>=2.0.0)",
          "pyOpenSSL (>=0.14)"
        ]
      },
      {
        "environment": "python_version=='2.7'",
        "requires": [
          "cryptography (>=1.3.4)",
          "idna (>=2.0.0)",
          "pyOpenSSL (>=0.14)"
        ]
      }
    ]
    
    opened by dahlia 15
  • ImportError: No module named rest.ip_messaging

    ImportError: No module named rest.ip_messaging

    Hi,

    The first example I try to copy+paste from your docs does not seem to work. Looks like the imports are not working.

    from twilio.rest.ip_messaging import TwilioIpMessagingClient
    
    ImportError: No module named rest.ip_messaging
    
    opened by MichaelGradek 15
  • twilio.TwilioRestException - Docs bug, or import problem?

    twilio.TwilioRestException - Docs bug, or import problem?

    The docs say that TwilioRestException can be accessed from twilio.TwilioRestException, but this is not the case.

    You instead need to use twilio.rest.exceptions.TwilioRestException.

    Is this a documentation bug, or should twilio.TwilioRestException actually work?

    opened by foxx 15
  • No module named twilio

    No module named twilio

    Note: These issues are for bugs and feature requests for the helper libraries. If you need help or support, please email [email protected] and one of our experts will assist you!

    Version: 6.10.4

    Code Snippet

    from twilio.rest import Client
    

    Exception/Log

       from twilio.rest import Client
    ModuleNotFoundError: No module named 'twilio'
    

    I have tried following solutions to people asking the same question, but I still get the error. I have tried uninstalling python, pip and twilio and still get this error. I have spent 5 hours trying to fix this, but have got no where.

    opened by toogoodbruh 13
  • Twilio library for Python 3?

    Twilio library for Python 3?

    Nowadays it is encouraged to develop in Python 3. The library seems to be for Python 2.x version.

    How can I install this library in a system running Python 3?

    opened by santosh 13
  • 'ImportError: cannot import name 'Client' from 'twilio.rest' (unknown location)'

    'ImportError: cannot import name 'Client' from 'twilio.rest' (unknown location)'

    Code Snippet

    import random
    import getpass
    import smtplib
    import string
    import requests
    import time
    import pyautogui
    import json
    import os
    import sys
    from os import system
    from loading import load_animation
    from loading import randomStringDigits
    from config import API_KEY, YOUR_PHONE_NUMBER, TWILIO_SID, TWILIO_TOKEN, TWILIO_PHONE_NUMBER, sender_address, sender_pass, receiver_address
    from twilio.rest import Client
    from datetime import datetime
    from email.mime.multipart import MIMEMultipart
    from email.mime.text import MIMEText
    

    Exception/Log

        from twilio.rest import Client
    ImportError: cannot import name 'Client' from 'twilio.rest' (unknown location)
    

    Technical details:

    • twilio-python version: 6.36.0
    • python version: 3.8.2
    type: question status: waiting for feedback 
    opened by Aidan4444 11
  • Django/ Pytest - Cannot mock patch verification / message service

    Django/ Pytest - Cannot mock patch verification / message service

    I am attempting to write a test for a service that uses the Twilio Verification service. I am basing my test off of the following article: https://www.twilio.com/blog/testing-twilio-applications-python-pytest

    However, I cannot seem to properly target the client.verify.services.verifications.create method from the TwilioRest module as the request always gets sent to the Twilio server.

    Has anyone had any success properly mocking this method ?

    verification/services.py

    from decouple import config
    from twilio.rest import Client
    from twilio.base.exceptions import TwilioRestException
    from .config import INVALID_PARAMETER, TOO_MANY_REQUESTS
    
    
    account_sid_production = config("TWILIO_ACCOUNT_SID_PRODUCTION")
    auth_token_production = config("TWILIO_AUTH_TOKEN_PRODUCTION")
    verify_service_sid = config("TWILIO_VERIFY_SERVICE_SID")
    client = Client(account_sid_production, auth_token_production)
    
    
    def verification_service_create(phone_number, channel="sms"):
        try:
            client.verify.services(verify_service_sid).verifications.create(
                to=phone_number, channel=channel
            )
    
            return (
                True,
                "Check your phone for verification code",
                "Verification Code successfully sent",
            )
        except TwilioRestException as error:
            if error.code == INVALID_PARAMETER:
                return (
                    False,
                    "Phone value is incorrectly formatted or is not a valid phone number.",
                    "Use strict E.164 formatting, including the + sign,"
                    "for phone numbers in the To parameter. Example: +15017122661.",
                )
            if error.code == TOO_MANY_REQUESTS:
                return (
                    False,
                    "You have sent too many requests to this service. Please try again later.",
                    "You have sent too many requests to this service. Please try again later.",
                )
            return (
                False,
                "Internal Error",
                "Internal Error",
            )
    

    verification/tests/services/test_verification_service_create.py

    from unittest.mock import patch
    from django.test import TestCase
    from verification.services import verification_service_create
    
    
    class TwilioVerificationServiceCreateTest(
        TestCase,
    ):
    
    
        @patch(
            "verification.services.client.verify.services.create", return_value=(True)
        )
        def test_verification_service_create_a(self, mock_verification_service_create):
            
            mock_verification_service_create.return_value = True
            is_success = verification_service_create("MOCK PHONE NUMBER")
            # self.assertIs(mock_utils.called, True)
            self.assertIs(is_success, True)
    
    type: getting started status: waiting for feedback 
    opened by Justinohallo 10
  • pysocks installed in py2.7

    pysocks installed in py2.7

    Version: 6.3.0

    I was updating my copy of twilio from 5.6.0 and noticed that it also brought in PySocks. I looked at the setup.py and it looks like it should only be doing that in py3k. I guess it's a minor issue as I suspect the code won't use the pysocks components in py2.7, but I'm managing pinning lib versions for a project and it's yet another library to manage.

    Did I get it right? Is it installing pysocks on 2.7 a mistake?

    opened by tisdall 10
  • Just updated to twilio 6.0.0 and No module named 'twilio.util'

    Just updated to twilio 6.0.0 and No module named 'twilio.util'

    Note: These issues are for bugs and feature requests for the helper libraries. If you need help or support, please email [email protected] and one of our experts will assist you!

    Version:6.0.0 Browser Softphone Capability Token:

    Code Snippet

    from twilio.util import TwilioCapability  # This used to work
    

    Exception / Log

      File "app.py", line 5, in <module>
        from twilio.util import TwilioCapability
    ImportError: No module named 'twilio.util'
    
    
    

    Steps to Reproduce

    1. Try to import and it fails.
    opened by sktzofrenic 9
  • IOS app built with kivy-ios/python fails to upload when including twilio module in the build

    IOS app built with kivy-ios/python fails to upload when including twilio module in the build

    Issue Summary

    pypi twilio module, installs successfully on Xcode 13.2, it also runs fine when the app is ran on a test iphone; also the Xcode builds and uploads the app successfully to apple appstore. However, the app fails to check on apple integrity ; and the upload fails, with apple responding with the message below over email: ITMS-90048: This bundle is invalid - Your archive contains paths that are not allowed: ( 'init.py' )

    this happens only when the twilio module is included in the build.

    Steps to Reproduce

    use twilio library in a kivy module. build the app; it will run succesfully locally, and twilio module works as it should (whatsapp OTP). build the app for upload to apple store using developer account. the app will fail to upload; with invalid binary message sent from applestore to email.

    Exception/Log

    ITMS-90048: This bundle is invalid - Your archive contains paths that are not allowed: ( 'init.py' )

    paste exception/log here

    
    ### Technical details:
    * twilio-python version:7.15.4,7,15,3,7,15,2 .. 7.14.0
    * python version:
    3.9
    
    type: getting started status: waiting for feedback 
    opened by cryptoone 1
  • UTF-8 content doesn't get properly serialized

    UTF-8 content doesn't get properly serialized

    Issue Summary

    UTF-8 content doesn't get properly serialized

    Steps to Reproduce

    1. Add any utf-8 content to a VoiceResponse. E.g. voice_response = VoiceResponse(); voice_response.say("An utf-8 character: ñ")
    2. Serialize the voice_response. E.g. str(voice_response)
    3. The result is '<?xml version="1.0" encoding="UTF-8"?><Response><Say>An utf-8 character: &#241;</Say></Response>'. The ñ character was html encoded.

    Technical details:

    • twilio-python version: 7.15.0
    • python version: 3.9.15

    Proposed solution:

    Replace xml = ET.tostring(self.xml()).decode('utf-8') with xml = ET.tostring(self.xml(), encoding='utf-8').decode('utf-8') in https://github.com/twilio/twilio-python/blob/15eb9be126f562c80175d478fd3eafb5d1cc7efb/twilio/twiml/init.py#L67

    type: bug status: help wanted 
    opened by igz-gp 2
  • Are there plans for Content API integration?

    Are there plans for Content API integration?

    Issue Summary

    Not a bug, but I have been working on a wrapper for creating, submitting content for approval and sending content with the new Content API from Twilio. I was wondering if any official client is currently in the works or if this is something I could help contribute.

    type: community enhancement 
    opened by adamhoffstein 1
  • chore: Security upgrade pygments from 2.5.2 to 2.7.4

    chore: Security upgrade pygments from 2.5.2 to 2.7.4

    Snyk has created this PR to fix one or more vulnerable packages in the `pip` dependencies of this project.

    Changes included in this PR

    • Changes to the following files to upgrade the vulnerable dependencies to a fixed version:
      • requirements.txt

    Vulnerabilities that will be fixed

    By pinning:

    Severity | Issue | Upgrade | Breaking Change | Exploit Maturity :-------------------------:|:-------------------------|:-------------------------|:-------------------------|:------------------------- high severity | Regular Expression Denial of Service (ReDoS)
    SNYK-PYTHON-PYGMENTS-1086606 | pygments:
    2.5.2 -> 2.7.4
    | No | Proof of Concept high severity | Denial of Service (DoS)
    SNYK-PYTHON-PYGMENTS-1088505 | pygments:
    2.5.2 -> 2.7.4
    | No | No Known Exploit

    Some vulnerabilities couldn't be fully fixed and so Snyk will still find them when the project is tested again. This may be because the vulnerability existed within more than one direct dependency, but not all of the effected dependencies could be upgraded.

    Check the changes in this PR to ensure they won't cause issues with your project.


    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.

    For more information: 🧐 View latest project report

    🛠 Adjust project settings

    📚 Read more about Snyk's upgrade and patch logic


    Learn how to fix vulnerabilities with free interactive lessons:

    🦉 Learn about vulnerability in an interactive lesson of Snyk Learn.

    opened by twilio-product-security 1
  • changes

    changes

    Fixes

    A short description of what this PR does.

    Checklist

    • [x] I acknowledge that all my contributions will be made under the project's license
    • [ ] I have made a material change to the repo (functionality, testing, spelling, grammar)
    • [ ] I have read the Contribution Guidelines and my PR follows them
    • [ ] I have titled the PR appropriately
    • [ ] I have updated my branch with the main branch
    • [ ] I have added tests that prove my fix is effective or that my feature works
    • [ ] I have added the necessary documentation about the functionality in the appropriate .md file
    • [ ] I have added inline documentation to the code I modified

    If you have questions, please file a support ticket, or create a GitHub Issue in this repository.

    opened by KIET7UKE 0
  • Sending media as chat participant, Conversations API

    Sending media as chat participant, Conversations API

    Issue Summary

    Issue is that library is executing POST method onto url = https://media.twilio.com/v1/Services/<Service_SID>/Media instead of https://mcs.us1.twilio.com/v1/Services/<Service_SID>/Media. When I change URL in twilio/base/domain.py everything is working good.

    Code Snippet

            with open(os.getenv('PICTURE'), 'rb') as f:
                file = f.read()
            auth = account_sid + ":" + auth_token
            auth_bytes = auth.encode("ascii")
    
            base64_bytes = base64.b64encode(auth_bytes)
            base64_string = "Basic " + base64_bytes.decode("ascii")
    
            media = client.media.v1 \
                .create(
                    method="POST",
                    headers=
                    {
                        "Content-Type": "image/png",
                        "Authorization": base64_string},
                    data=file,
                    uri="/Services/" + os.getenv('DEFAULT_SERVICE_SID') + "/Media")
    

    Exception/Log

    Error ::
    HTTP 404 error: Unable to create record: The requested resource /Services/<Service_SID>/Media was not found
    

    Technical details:

    • twilio-python version: 7.8.0
    • python version: 3.9
    type: community enhancement status: help wanted 
    opened by AleksaPetrovicRBT 1
Releases(7.16.0)
  • 7.16.0(Dec 14, 2022)

    Release Notes

    Library - Docs

    • PR #631: Updated docstrings for timeout to be float instead of int. Thanks to @byarmis!

    Library - Chore

    Library - Test

    • PR #628: Pinning ubuntu version for python 3.6 test runs. Thanks to @rakatyal!

    Api

    • Add street_secondary param to address create and update
    • Make method optional for user defined message subscription (breaking change)

    Flex

    • Flex Conversations is now Generally Available
    • Adding the ie1 mapping for authorization api, updating service base uri and base url response attribute (breaking change)
    • Change web channels to GA and library visibility to public
    • Changing the uri for authorization api from using Accounts to Insights (breaking change)

    Media

    • Gate Twilio Live endpoints behind beta_feature for EOS

    Messaging

    • Mark MessageFlow as a required field for Campaign Creation (breaking change)

    Oauth

    • updated openid discovery endpoint uri (breaking change)
    • Added device code authorization endpoint

    Supersim

    • Allow filtering the SettingsUpdates resource by status

    Twiml

    • Add new Polly Neural voices
    • Add tr-TR, ar-AE, yue-CN, fi-FI languages to SSML <lang> element.
    • Add x-amazon-jyutping, x-amazon-pinyin, x-amazon-pron-kana, x-amazon-yomigana alphabets to SSML <phoneme> element.
    • Rename character value for SSML <say-as> interpret-as attribute to characters. (breaking change)
    • Rename role attribute to format in SSML <say-as> element. (breaking change)

    Docs

    Source code(tar.gz)
    Source code(zip)
  • 7.15.4(Nov 30, 2022)

    Release Notes

    Flex

    • Adding new assessments api in version v1

    Lookups

    • Add identity_match package to the lookup response

    Messaging

    • Added validated parameter to Link Shortening API

    Serverless

    • Add node16 as a valid Build runtime
    • Add ie1 and au1 as supported regions for all endpoints.

    Docs

    Source code(tar.gz)
    Source code(zip)
  • 7.15.3(Nov 16, 2022)

    Release Notes

    Library - Chore

    Api

    • Set the Content resource to have public visibility as Preview

    Flex

    • Adding new parameter base_url to 'gooddata' response in version v1

    Insights

    • Added answered_by field in List Call Summary
    • Added answered_by field in call summary

    Docs

    Source code(tar.gz)
    Source code(zip)
  • 7.15.2(Nov 10, 2022)

    Release Notes

    Flex

    • Adding two new authorization API 'user_roles' and 'gooddata' in version v1

    Messaging

    • Add new Campaign properties (MessageFlow, OptInMessage, OptInKeywords, OptOutMessage, OptOutKeywords, HelpMessage, HelpKeywords)

    Twiml

    • Add new speech models to Gather.

    Docs

    Source code(tar.gz)
    Source code(zip)
  • 7.15.1(Oct 31, 2022)

    Release Notes

    Api

    • Added contentSid and contentVariables to Message resource with public visibility as Beta
    • Add UserDefinedMessageSubscription and UserDefinedMessage resource

    Proxy

    • Remove FailOnParticipantConflict param from Proxy Session create and update and Proxy Participant create

    Supersim

    • Update SettingsUpdates resource to remove PackageSid

    Taskrouter

    • Add Ordering query parameter to Workers and TaskQueues for sorting by
    • Add worker_sid query param for list reservations endpoint

    Twiml

    • Add url and method attributes to <Conversation>

    Docs

    Source code(tar.gz)
    Source code(zip)
  • 7.15.0(Oct 19, 2022)

    Release Notes

    Api

    • Make link shortening parameters public (breaking change)

    Oauth

    • added oauth JWKS endpoint
    • Get userinfo resource
    • OpenID discovery resource
    • Add new API for token endpoint

    Supersim

    • Add SettingsUpdates resource

    Verify

    • Update Verify Push endpoints to ga maturity
    • Verify BYOT add Channels property to the Get Templates response

    Twiml

    • Add requireMatchingInputs attribute and input-matching-failed errorType to <Prompt>

    Docs

    Source code(tar.gz)
    Source code(zip)
  • 7.14.2(Oct 5, 2022)

  • 7.14.1(Sep 21, 2022)

  • 7.14.0(Sep 7, 2022)

    Release Notes

    Library - Fix

    Flex

    • Removed redundant close status from Flex Interactions flow (breaking change)
    • Adding debugger_integration and flex_ui_status_report to Flex Configuration

    Messaging

    • Add create, list and get tollfree verification API

    Verify

    • Verify SafeList API endpoints added.

    Video

    • Add Anonymize API

    Twiml

    • Update event value call-in-progress to call-answered

    Docs

    Source code(tar.gz)
    Source code(zip)
  • 7.13.0(Aug 24, 2022)

    Release Notes

    Library - Test

    Api

    • Remove beta feature from scheduling params and remove optimize parameters. (breaking change)

    Routes

    • Remove Duplicate Create Method - Update Method will work even if Inbound Processing Region is currently empty/404. (breaking change)

    Twiml

    • Add new Polly Neural voices
    • Add new languages to SSML <lang>.

    Docs

    Source code(tar.gz)
    Source code(zip)
  • 7.12.1(Aug 10, 2022)

  • 7.12.0(Jul 21, 2022)

    Release Notes

    Flex

    • Add status, error_code, and error_message fields to Interaction Channel
    • Adding messenger and gbm as supported channels for Interactions API

    Messaging

    • Update alpha_sender docs with new valid characters

    Verify

    • Reorder Verification Check parameters so code stays as the first parameter (breaking change)
    • Rollback List Attempts API V2 back to pilot stage.

    Docs

    Source code(tar.gz)
    Source code(zip)
  • 7.11.0(Jul 13, 2022)

    Release Notes

    Library - Fix

    Library - Test

    Conversations

    • Allowed to use identity as part of Participant's resource (breaking change)

    Lookups

    • Remove enhanced_line_type from the lookup response (breaking change)

    Supersim

    • Add support for sim_ip_addresses resource to helper libraries

    Verify

    • Changed summary param service_sid to verify_service_sid to be consistent with list attempts API (breaking change)
    • Make code optional on Verification check to support sna attempts. (breaking change)

    Docs

    Source code(tar.gz)
    Source code(zip)
  • 7.10.0(Jun 29, 2022)

    Release Notes

    Api

    • Added amazon-polly to usage_record API.

    Insights

    • Added annotation field in call summary
    • Added new endpoint to fetch/create/update Call Annotations

    Verify

    • Remove api.verify.totp beta flag and set maturity to beta for Verify TOTP properties and parameters. (breaking change)
    • Changed summary param verify_service_sid to service_sid to be consistent with list attempts API (breaking change)

    Twiml

    • Add maxQueueSize to Enqueue

    Docs

    Source code(tar.gz)
    Source code(zip)
  • 7.9.3(Jun 15, 2022)

    Release Notes

    Lookups

    • Adding support for Lookup V2 API

    Studio

    • Corrected PII labels to be 30 days and added context to be PII

    Twiml

    • Add statusCallbackMethod attribute, nested <Config and <Parameter> elements to <VirtualAgent> noun.
    • Add support for new Amazon Polly voices (Q2 2022) for Say verb
    • Add support for <Conversation> noun

    Docs

    Source code(tar.gz)
    Source code(zip)
  • 7.9.2(Jun 1, 2022)

  • 7.9.1(May 18, 2022)

  • 7.9.0(May 4, 2022)

    Release Notes

    Conversations

    • Expose query parameter type in list operation on Address Configurations resource

    Supersim

    • Add data_total_billed and billed_units fields to Super SIM UsageRecords API response.
    • Change ESimProfiles Eid parameter to optional to enable Activation Code download method support (breaking change)

    Verify

    • Deprecate push.include_date parameter in create and update service.

    Docs

    Source code(tar.gz)
    Source code(zip)
  • 7.8.2(Apr 20, 2022)

  • 7.8.1(Apr 6, 2022)

    Release Notes

    Library - Chore

    Library - Fix

    Api

    • Updated provider_sid visibility to private

    Verify

    • Verify List Attempts API summary endpoint added.
    • Update PII documentation for AccessTokens factor_friendly_name property.

    Voice

    • make annotation parameter from /Calls API private

    Docs

    Source code(tar.gz)
    Source code(zip)
  • 7.8.0(Mar 23, 2022)

    Release Notes

    Api

    • Change stream url parameter to non optional
    • Add verify-totp and verify-whatsapp-conversations-business-initiated categories to usage_record API

    Chat

    • Added v3 Channel update endpoint to support Public to Private channel migration

    Flex

    • Private Beta release of the Interactions API to support the upcoming release of Flex Conversations at the end of Q1 2022.
    • Adding channel_configs object to Flex Configuration

    Media

    • Add max_duration param to PlayerStreamer

    Supersim

    • Remove Commands resource, use SmsCommands resource instead (breaking change)

    Taskrouter

    • Add limits to split_by_wait_time for Cumulative Statistics Endpoint

    Video

    • Change recording status_callback_method type from enum to http_method (breaking change)
    • Add status_callback and status_callback_method to composition
    • Add status_callback and status_callback_method to recording

    Docs

    Source code(tar.gz)
    Source code(zip)
  • 7.7.1(Mar 9, 2022)

    Release Notes

    Library - Chore

    Api

    • Add optional boolean include_soft_deleted parameter to retrieve soft deleted recordings

    Chat

    • Add X-Twilio-Wehook-Enabled header to delete method in UserChannel resource

    Numbers

    • Expose failure_reason in the Supporting Documents resources

    Verify

    • Add optional metadata parameter to "verify challenge" endpoint, so the SDK/App can attach relevant information from the device when responding to challenges.
    • remove beta feature flag to list atempt api operations.
    • Add ttl and date_created properties to AccessTokens.

    Docs

    Source code(tar.gz)
    Source code(zip)
  • 7.7.0(Feb 23, 2022)

    Release Notes

    Api

    • Add uri to stream resource
    • Add A2P Registration Fee category (a2p-registration-fee) to usage records
    • Detected a bug and removed optional boolean include_soft_deleted parameter to retrieve soft deleted recordings. (breaking change)
    • Add optional boolean include_soft_deleted parameter to retrieve soft deleted recordings.

    Numbers

    • Unrevert valid_until and sort filter params added to List Bundles resource
    • Revert valid_until and sort filter params added to List Bundles resource
    • Update sorting params added to List Bundles resource in the previous release

    Preview

    • Moved web_channels from preview to beta under flex-api (breaking change)

    Taskrouter

    • Add ETag as Response Header to List of Task, Reservation & Worker

    Verify

    • Remove outdated documentation commentary to contact sales. Product is already in public beta.
    • Add optional metadata to factors.

    Twiml

    • Add new Polly Neural voices

    Docs

    Source code(tar.gz)
    Source code(zip)
  • 7.6.0(Feb 9, 2022)

    Release Notes

    Library - Chore

    Library - Test

    Api

    • Add stream resource

    Conversations

    • Fixed DELETE request to accept "sid_like" params in Address Configuration resources (breaking change)
    • Expose Address Configuration resource for sms and whatsapp

    Fax

    • Removed deprecated Programmable Fax Create and Update methods (breaking change)

    Insights

    • Rename call_state to call_status and remove whisper in conference participant summary (breaking change)

    Numbers

    • Expose valid_until filters as part of provisionally-approved compliance feature on the List Bundles resource

    Supersim

    • Fix typo in Fleet resource docs
    • Updated documentation for the Fleet resource indicating that fields related to commands have been deprecated and to use sms_command fields instead.
    • Add support for setting and reading ip_commands_url and ip_commands_method on Fleets resource for helper libraries
    • Changed sim property in requests to create an SMS Command made to the /SmsCommands to accept SIM UniqueNames in addition to SIDs

    Verify

    • Update list attempts API to include new filters and response fields.

    Docs

    Source code(tar.gz)
    Source code(zip)
  • 7.5.1(Jan 26, 2022)

    Release Notes

    Insights

    • Added new endpoint to fetch Conference Participant Summary
    • Added new endpoint to fetch Conference Summary

    Messaging

    • Add government_entity parameter to brand apis

    Verify

    • Add Access Token fetch endpoint to retrieve a previously created token.
    • Add Access Token payload to the Access Token creation endpoint, including a unique Sid, so it's addressable while it's TTL is valid.

    Docs

    Source code(tar.gz)
    Source code(zip)
  • 7.5.0(Jan 12, 2022)

    Release Notes

    Library - Chore

    Library - Feature

    Api

    • Make fixed time scheduling parameters public (breaking change)

    Messaging

    • Add update brand registration API

    Numbers

    • Add API endpoint for List Bundle Copies resource

    Video

    • Enable external storage for all customers

    Docs

    Source code(tar.gz)
    Source code(zip)
  • 7.4.0(Dec 15, 2021)

    Release Notes

    Library - Feature

    Api

    • Add optional boolean send_as_mms parameter to the create action of Message resource (breaking change)
    • Change team ownership for call delete

    Conversations

    • Change wording for Service Webhook Configuration resource fields

    Insights

    • Added new APIs for updating and getting voice insights flags by accountSid.

    Media

    • Add max_duration param to MediaProcessor

    Video

    • Add EmptyRoomTimeout and UnusedRoomTimeout properties to a room; add corresponding parameters to room creation

    Voice

    • Add endpoint to delete archived Calls

    Docs

    Source code(tar.gz)
    Source code(zip)
  • 7.3.2(Dec 1, 2021)

    Release Notes

    Conversations

    • Add Service Webhook Configuration resource

    Flex

    • Adding flex_insights_drilldown and flex_url objects to Flex Configuration

    Messaging

    • Update us_app_to_person endpoints to remove beta feature flag based access

    Supersim

    • Add IP Commands resource

    Verify

    • Add optional factor_friendly_name parameter to the create access token endpoint.

    Video

    • Add maxParticipantDuration param to Rooms

    Twiml

    • Unrevert Add supported SSML children to <emphasis>, <lang>, <p>, <prosody>, <s>, and <w>.
    • Revert Add supported SSML children to <emphasis>, <lang>, <p>, <prosody>, <s>, and <w>.

    Docs

    Source code(tar.gz)
    Source code(zip)
  • 7.3.1(Nov 17, 2021)

    Release Notes

    Library - Fix

    Frontline

    • Added is_available to User's resource

    Messaging

    • Added GET vetting API

    Verify

    • Add WHATSAPP to the attempts API.
    • Allow to update config.notification_platform from none to apn or fcm and viceversa for Verify Push
    • Add none as a valid config.notification_platform value for Verify Push

    Twiml

    • Add supported SSML children to <emphasis>, <lang>, <p>, <prosody>, <s>, and <w>.

    Docs

    Source code(tar.gz)
    Source code(zip)
  • 7.3.0(Nov 3, 2021)

    Release Notes

    Library - Chore

    Api

    • Updated media_url property to be treated as PII

    Messaging

    • Added a new enum for brand registration status named DELETED (breaking change)
    • Add a new K12_EDUCATION use case in us_app_to_person_usecase api transaction
    • Added a new enum for brand registration status named IN_REVIEW

    Serverless

    • Add node14 as a valid Build runtime

    Verify

    • Fix typos in Verify Push Factor documentation for the config.notification_token parameter.
    • Added TemplateCustomSubstitutions on verification creation
    • Make TemplateSid parameter public for Verification resource and DefaultTemplateSid parameter public for Service resource. (breaking change)

    Docs

    Source code(tar.gz)
    Source code(zip)
:evergreen_tree: Python module for communicating with the Taiga API

python-taiga A python wrapper for the Taiga REST API. Documentation: https://python-taiga.readthedocs.io/ Usage: : https://python-taiga.readthedocs.io

Nephila 87 Oct 12, 2022
The Official Twilio SendGrid Led, Community Driven Python API Library

The default branch name for this repository has been changed to main as of 07/27/2020. This library allows you to quickly and easily use the SendGrid

Twilio SendGrid 1.4k Jan 7, 2023
Hellomotoot - PSTN Mastodon Client using Mastodon.py and the Twilio API

Hello MoToot PSTN Mastodon Client using Mastodon.py and the Twilio API. Allows f

Lorenz Diener 9 Nov 22, 2022
Whatsapp-bot - Whatsapp chatbot build with python and twilio

Whatsapp-bot This is a Whatsapp Chatbot that responds with quotes, reply owners

arinzejustinng 1 Jan 14, 2022
Texting service to receive current air quality conditions and maps, powered by AirNow, Twilio, and AWS

The Air Quality Bot is generally available by texting a zip code (and optionally the word "map") to (415) 212-4229. The bot will respond with the late

Alex Laird 8 Oct 16, 2022
Tracker to check the covid shot slot availability in India and send mobile alerts via Twilio Messaging Service.

Cowin-Slot-Tracker Tracker to check the covid vaccine slot availability in India and send mobile notifications through Twilio Messaging Service. Requi

invalid username 27 Nov 12, 2022
This project, search all entities related to A2P in twilio

Mirror A2P Twilio This project, search all entities related to A2P in twilio (phone numbers, messaging services, campaign, A2P brand information and P

Iván Cárdenas 2 Nov 3, 2022
All in one Search Engine Scrapper for used by API or Python Module. It's Free!

All in one Search Engine Scrapper for used by API or Python Module. How to use: Video Documentation Senginta is All in one Search Engine Scrapper. Wit

null 33 Nov 21, 2022
A Python 2.7/3.x module for Amcrest Cameras using the SDK HTTP API.

A Python 2.7/3.x module for Amcrest Cameras using the SDK HTTP API. Amcrest and Dahua devices share similar firmwares. Dahua Cameras and NVRs also work with this module.

Marcelo Moreira de Mello 176 Dec 21, 2022
A jokes api python module

A jokes api python module

Fayas Noushad 3 Nov 28, 2021
Intelligent Trading Bot: Automatically generating signals and trading based on machine learning and feature engineering

Intelligent Trading Bot: Automatically generating signals and trading based on machine learning and feature engineering

Alexandr Savinov 326 Jan 3, 2023
:electric_plug: Generating short urls with python has never been easier

pyshorteners A simple URL shortening API wrapper Python library. Installing pip install pyshorteners Documentation https://pyshorteners.readthedocs.i

Ellison 351 Jan 3, 2023
Python library for generating sequences with uniform stimulus history

Sampling Euler tours for uniform stimulus history Table of Contents About Examples Experiment 1 Experiment 2 Experiment 3 Experiment 4 Experiment 5 Co

null 5 Nov 11, 2021
A simple waybar module to display the status of the ICE you are currently in using the ICE Portals JSON API.

waybar-iceportal A simple waybar module to display the status of the ICE you are currently in using the ICE Portals JSON API. Installation Ensure pyth

Moritz 7 Aug 26, 2022
Module to use some statistics from Spotify API

statify Module to use some statistics from Spotify API To use it you have to import the functions into your own project. You have also to authenticate

Miguel Cózar 2 Jun 2, 2022
A small module to communicate with Triller's API

A small, UNOFFICIAL module to communicate with Triller's API. I plan to add more features/methods in the future.

A3R0 1 Nov 1, 2022
Telegram Bot for generating and decoding QR-codes

Telegram openqrgen_bot Telegram Bot that generates from user's messages and decodes QR-codes from photos. Also contains rickroll detection :) Just typ

null 2 Nov 14, 2021
A telegram bot script for generating session string using pyrogram and telethon on Telegram bot

String-session-Bot Telegram Bot to generate Pyrogram and Telethon String Session. A star ⭐ from you means a lot to us! Usage Deploy to Heroku Tap on a

Wahyusaputra 8 Oct 28, 2022
Simple Telegram Bot for generating BalckPearl BBCode Templates

blackpearl-bbcode-bot Simple Telegram Bot for generating BlackPearl BBCode Templates Written in Pyrogram Features - ?? IMDB Info fetching from files -

D. Luffy 5 Oct 19, 2022