curl --request POST \
--url https://api.amplify.xyz/v1/faxes/send \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"fax_number": "+12509997881",
"fax_data": [
{
"file_name": "document.pdf",
"file_url": "https://example.com/document.pdf"
}
]
}
'import requests
url = "https://api.amplify.xyz/v1/faxes/send"
payload = {
"fax_number": "+12509997881",
"fax_data": [
{
"file_name": "document.pdf",
"file_url": "https://example.com/document.pdf"
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
fax_number: '+12509997881',
fax_data: [{file_name: 'document.pdf', file_url: 'https://example.com/document.pdf'}]
})
};
fetch('https://api.amplify.xyz/v1/faxes/send', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.amplify.xyz/v1/faxes/send",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'fax_number' => '+12509997881',
'fax_data' => [
[
'file_name' => 'document.pdf',
'file_url' => 'https://example.com/document.pdf'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.amplify.xyz/v1/faxes/send"
payload := strings.NewReader("{\n \"fax_number\": \"+12509997881\",\n \"fax_data\": [\n {\n \"file_name\": \"document.pdf\",\n \"file_url\": \"https://example.com/document.pdf\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.amplify.xyz/v1/faxes/send")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"fax_number\": \"+12509997881\",\n \"fax_data\": [\n {\n \"file_name\": \"document.pdf\",\n \"file_url\": \"https://example.com/document.pdf\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.amplify.xyz/v1/faxes/send")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"fax_number\": \"+12509997881\",\n \"fax_data\": [\n {\n \"file_name\": \"document.pdf\",\n \"file_url\": \"https://example.com/document.pdf\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"status": 1,
"message": "Fax processed for sending",
"data": {
"job_id": "01M1NMGG0WY0THD0YA3ZWN9WY7"
}
}{
"status": 401,
"message": "UNAUTHORIZED",
"data": "Token expired"
}Send a fax
Send a fax with PDF documents supplied as JSON.
curl --request POST \
--url https://api.amplify.xyz/v1/faxes/send \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"fax_number": "+12509997881",
"fax_data": [
{
"file_name": "document.pdf",
"file_url": "https://example.com/document.pdf"
}
]
}
'import requests
url = "https://api.amplify.xyz/v1/faxes/send"
payload = {
"fax_number": "+12509997881",
"fax_data": [
{
"file_name": "document.pdf",
"file_url": "https://example.com/document.pdf"
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
fax_number: '+12509997881',
fax_data: [{file_name: 'document.pdf', file_url: 'https://example.com/document.pdf'}]
})
};
fetch('https://api.amplify.xyz/v1/faxes/send', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.amplify.xyz/v1/faxes/send",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'fax_number' => '+12509997881',
'fax_data' => [
[
'file_name' => 'document.pdf',
'file_url' => 'https://example.com/document.pdf'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.amplify.xyz/v1/faxes/send"
payload := strings.NewReader("{\n \"fax_number\": \"+12509997881\",\n \"fax_data\": [\n {\n \"file_name\": \"document.pdf\",\n \"file_url\": \"https://example.com/document.pdf\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.amplify.xyz/v1/faxes/send")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"fax_number\": \"+12509997881\",\n \"fax_data\": [\n {\n \"file_name\": \"document.pdf\",\n \"file_url\": \"https://example.com/document.pdf\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.amplify.xyz/v1/faxes/send")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"fax_number\": \"+12509997881\",\n \"fax_data\": [\n {\n \"file_name\": \"document.pdf\",\n \"file_url\": \"https://example.com/document.pdf\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"status": 1,
"message": "Fax processed for sending",
"data": {
"job_id": "01M1NMGG0WY0THD0YA3ZWN9WY7"
}
}{
"status": 401,
"message": "UNAUTHORIZED",
"data": "Token expired"
}Attach documents
Send the request asapplication/json. The fax_data property is an array of document objects. For each document, provide file_name and one of:
file_url: A publicly accessible URL for the PDF file.file_data: The complete PDF file encoded as a Base64 string.
file_url and file_data for the same document.
Fax templates
Usetemplate_id to apply a Fax Default as the cover-page template. Customers can find the ID beneath the Fax Default name under Settings → iFax Settings → Fax Defaults.
Use smart_document_id to apply a Smart Template. Customers can find the ID beneath the Smart Template name under Settings → iFax Settings → Smart Templates.
template_id and smart_document_id cannot be used together. The fax_data array is always required with either option.
Phone number format
Supplyfax_number and caller_id in E.164 format. Begin the number with +, followed by the country code and subscriber number, with no spaces, parentheses, or hyphens.
+12509997881
Fax quality
Setfax_quality to one of the following values:
| Value | Quality |
|---|---|
low | Low |
standard | Standard |
hd | High definition |
template_id is omitted, the account’s default Fax Default is used.
Fax priority
Setfax_priority to high or regular. The default is regular.
Caller ID
Supplycaller_id to select the sending number explicitly. If omitted, caller ID comes from the selected Fax Default. When template_id is omitted, the fax_as value from the account’s default Fax Default is used.
Scheduling
Usescheduled_date to schedule transmission. Supply timestamps in ISO 8601 format, such as 2026-05-06T09:42:00Z.Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
Destination fax number in E.164 format.
^\+[1-9][0-9]{1,14}$"+12509997881"
Documents to include in the fax.
1- Option 1
- Option 2
Show child attributes
Show child attributes
Caller ID or sending fax number in E.164 format. When omitted, the value comes from the selected Fax Default or the account's default Fax Default.
^\+[1-9][0-9]{1,14}$"+12513120176"
ID of a Fax Default used as the cover-page template. Find it under Settings > iFax Settings > Fax Defaults. Cannot be combined with smart_document_id.
"1055"
Whether the fax requires approval before it is sent.
false
Fax priority.
high, regular "high"
ID of a Smart Template. Find it under Settings > iFax Settings > Smart Templates. Cannot be combined with template_id.
"10210"
Fax subject.
"Test Subject"
Sender name.
"Sender Name"
Recipient name.
"Recipient Name"
Message associated with the fax.
"Fax sent through the Amplify API"
Scheduled transmission date and time in ISO 8601 format.
"2026-05-06T09:42:00Z"
Requested fax quality. When omitted, the value comes from the selected Fax Default or the account's default Fax Default.
low, standard, hd "hd"
