Why do you need it?
This snippet might be helpful to you if you need to pull your call records from SignalWire into a more readable format or somewhere easy to store for your own records. You can use one or more of the following parameters to further filter your records and return only the specific information that you need: StartTime, EndTime, From, Status, To, and ParentCallSid. This example shows how to filter all calls by a particular date range.
What does it do?
This code snippet will allow you to list all the calls made (both outbound and inbound) from your SignalWire Project and export them as a CSV. You can add date filters to restrict which calls are exported.
For the python version of this snippet, You MUST have datetime and pandas installed and imported for this to work. DateTime is required to work with datetime objects and Pandas is required to create the dataframe and export to CSV.
You must have the SignalWire Python SDK installed. You can install that here.
Change the following variables
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 your SignalWire Portal and clicking the API tab on the lefthand 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.
Change the date when calling clients.calls.list() to specify the date range that you need. If you are filtering by another parameter, you can add it within client.calls.list()
This snippet sets up a SignalWire client and then calls client.calls.list. This data is inserted into a Pandas DataFrame which then exports a CSV file with the following columns
From phone number
To phone number
Status (queued, ringing, in-progress, canceled, completed, busy, failed)
To list messages, view the article here.
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.