How to Release Project Numbers by Area Code

This script shows how you can release all numbers matching a specific area code

Technical Success Manager Cassie Bowles

Why do you need it?

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.

What does it do?

This code snippet will filter all numbers by a certain area code and then return all the numbers that match. Once you review the numbers that it prints out, you can uncomment the delete line and run it again to release the numbers all at once.

Technical specifications

For this code, the SignalWire Python SDK will need to be installed. It can be accessed here: SignalWire Python SDK Documentation.

What variables change
  • 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. This can also be found in an easily copyable format within the API tab in your SignalWire space.

  • You will need to replace the area code with that of the area code that you want to release from your account.

Step by step guide with the code

The code below can be used to delete large volumes of DIDs at one time - the record.phone_number.startswith('+1855') will need to be replaced with the 3 digit area code the results will be filtered by.

Begin by running this code initially with the line #client.incoming_phone_numbers(record.sid).delete() commented out to see a dry run of what will be deleted. Once confirmed that numbers returned are to be deleted (this cannot be undone), un-comment the above line and run again.

Getting Started Guide

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.