First steps with fax
Prototype, build, and deploy fax applications quickly and at competitive rates using our APIs and SDKs as well as the lightweight SignalWire Markup Language (“SWML”).
Security first
SignalWire Fax is certified SOC 2 Type II compliant, and is built from the ground up for seamless HIPAA compliance.Learn how to send and receive your first fax using SignalWire. You’ll configure a phone number, create SWML scripts to handle faxes, and use SWML or our APIs to send faxes programmatically.
Prerequisites
Before you begin, you’ll need:
- A SignalWire account
- At least one phone number capable of receiving faxes
- Your API credentials (Space URL, Project ID, and API token)
Receiving your first fax
To receive faxes, you’ll configure a phone number to handle incoming faxes using a SWML script that defines what happens when a fax arrives.
Obtain a phone number
First, you need a SignalWire phone number capable of receiving faxes.
Log in to your SignalWire Space. If you don’t have a number yet, navigate to the Phone Numbers section and buy a new phone number.
Create a script
From your SignalWire Dashboard, create a new Resource by navigating to the resources tab, then select the “New Script” option and choose “New SWML application”.

Paste the following code into your script:
Save the script. It should now be located in your Resources tab on the left sidebar, under Scripts.
Legacy dashboard instructions
Follow the above guide with these changes:
Create a SWML Script
Navigate to the “RELAY/SWML” section of your Dashboard and create a new SWML Script.
Assign a phone number
Open the settings for your phone number. Under “Voice and Fax Settings”:
- Set “Accept Incoming Calls As” to “Fax”
- Set “Handle Faxes Using” to “SWML Script”
- Select your SWML Script from the dropdown for “When a Fax Comes In”
Which Dashboard version am I using?
New Dashboard: You have a Resources tab in the left sidebar.
Legacy Dashboard: You have separate tabs for SIP, LaML, RELAY, etc.
Configure phone number
Navigate to the “Phone Numbers” tab on the left sidebar. From this tab, click on your newly purchased phone number, then on the “edit settings” option. In the settings page that appears, select “Assign Resource” for “Inbound Call Settings”.

Select the newly created script, then click “Save” to apply the configuration.
If you prefer to host the fax handling logic yourself, configure a webhook endpoint that returns SWML. See our SWML receive_fax documentation for more details.
You’ll need to make your code accessible to SignalWire through a webhook. In development environments, use a tunneling service like ngrok to expose your local server.
Sending your first fax
SWML
SignalWire REST API
SWML can be used to send a fax through the send_fax method.
The below example script sends a fax, then posts the result to a predetermined webhook.
