To quickly run this code, check out our recipe below and replace the variables with your own!
Or, read our step by step walkthrough to learn more about this snippet!
At some point, you may need to release a large amount of numbers in order to purchase new ones. This can be tedious to delete one by one, so this example shows one way that you can release numbers in bulk with ease.
This code snippet will read a CSV of numbers that you want to delete, compare it with the full list of numbers within your project, and release all the ones that match the CSV. Please note: the CSV file containing the numbers to be deleted must be in the same folder as the below script
For this code, the SignalWire Python SDK will need to be installed. It can be accessed here: SignalWire Python SDK Documentation.
ProjectID - Your project ID is an alphanumeric string that tells the SignalWire SDK where to find your project. You can find this in an easily copyable format by going to yourSignalWire Portal and clicking the API tab on the left hand side.
AuthToken - Your Auth Token is an alphanumeric string that helps to authenticate your HTTP requests to SignalWire. You can create this (if you haven’t already) or copy this in an easily copyable format by going to your SignalWire Portal and clicking the API tab. If you have not created an API token, press the blue new button. If you have, click show and copy the string.
SpaceURL - Your space URL is the domain of your space, i.e. example.signalwire.com. This can also be found in an easily copyable format within the API tab in your SignalWire space.
You will need to replace the name ‘Numbers.csv’ with the name of your CSV file.
from signalwire.rest import Client as signalwire_client import csv # Replace project ID, auth token, and space URL client = signalwire_client("ProjectID", "AuthToken", signalwire_space_url='YOURSPACE.signalwire.com') # List and print all numbers on account incoming_phone_numbers = client.incoming_phone_numbers.list() print("Total Numbers -- " + str(len(incoming_phone_numbers))) # create empty array to store numbers targeted for deletion results =  # Open CSV file with numbers to delete with open("Numbers.csv", 'r', encoding='utf-8-sig') as csvfile: reader = csv.reader(csvfile) # Change to E164 format if it's not already in that format for row in reader: if "+" not in row: results.append("+" + row) else: results.append(row) print(results) # Loop through all account numbers, if number exists in Results array, print to console and release it for record in incoming_phone_numbers: if record.phone_number in results: print("deleting number -- " + record.phone_number) client.incoming_phone_numbers(record.sid).delete()
The CSV file containing the numbers to be deleted must be in the same folder as the script. Otherwise, you will need to specify the proper path to your CSV when opening the file.
If you are looking for more information about using SignalWire, refer to our Getting Started guide.
Please feel free to reach out to us on our Community Slack or create a Support ticket if you need guidance!
Start a free trial
If you would like to test this example out, you can create a SignalWire account and space here.
Updated about 2 months ago