You can create email domains to handle the email notifications for your fax service. The operations in this endpoint allow you to create, manage, and verify your email domains.
Fax API (3.0)
This document provides a detailed user guide and reference documentation on the Fax REST API.
If you have questions please contact us via our support portal and a team member will be happy to assist.
You must create an account on our support portal if you do not have one.
Sinch has a global server that will route your call to the appropriate geography region automatically:
https://fax.api.sinch.com/If you have enabled storage, we retain fax logs and media for 13 months which you can access via the API. After 13 months, media and logs are deleted.
Find error codes and explanations here.
You can configure your service to use webhooks to send a request to you when faxes arrive or complete on your account.
Note: When webhooks with Basic authentication credentials are shown in GET requests, the credentials are masked with `***`` symbols. It is not possible to retrieve previously-set credentials through the API.
The Fax API allows you to send and receive faxes. You can send faxes to a single recipient or to multiple recipients. You can also receive faxes and download them.
To send a TEST Outbound fax you can send a fax TO +19898989898. This will emulate all aspects of a real fax without charging your account.
Webhooks allow you to get updates in real-time about the status of your faxes. Webhooks are triggered by events such as the completion of a fax, and transmit information about the state of that fax to you via HTTP(S) or email. HTTP webhooks are multipart/form-data POST requests, and should be processed like form submissions.
Note: When webhooks with Basic authentication credentials are shown in GET requests, the credentials are masked with `***`` symbols. It is not possible to retrieve previously-set credentials through the API.
The Emails endpoint allows you to configure the Fax to Email functionality. Fax to Email allows you to send an email and then receive a fax on your Sinch number or send a fax and have it sent to your email address. The service supports sending incoming faxes to multiple email addresses and having many numbers associated with one email address.
- v3.0 of the Fax APIhttps://fax.api.sinch.com/v3/projects/YOUR_project_id/services/{serviceId}/domains/{domainName}/templates
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
-u <username>:<password> \
https://fax.api.sinch.com/v3/projects/YOUR_project_id/services/01GVRB50KEQFFE1SGMPFRNBG6J/domains/yourdomain.com/templatesThe returned templates.
The name of the email template.
| Enum Value | Description |
|---|---|
| successful outbound fax | The template for a successful outbound fax. |
| unsuccessful outbound fax | The template for an unsuccessful outbound fax. |
| successful inbound fax | The template for a successful inbound fax. |
| unsuccessful inbound fax | The template for an unsuccessful inbound fax. |
The timestamp on which the template was created.
[ { "name": "successful outbound fax", "createdAt": "2025-10-24 19:11:50.235000+00:00", "description": "Successful fax template" } ]
The serviceId containing the templates you want to list.
The name of the domain containing the template you want to get.
The name of the template you want to get.
| Enum Value | Description |
|---|---|
| successful outbound fax | The template for a successful outbound fax. |
| unsuccessful outbound fax | The template for an unsuccessful outbound fax. |
| successful inbound fax | The template for a successful inbound fax. |
| unsuccessful inbound fax | The template for an unsuccessful inbound fax. |
- v3.0 of the Fax APIhttps://fax.api.sinch.com/v3/projects/YOUR_project_id/services/{serviceId}/domains/{domainName}/templates/{templateName}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
-u <username>:<password> \
'https://fax.api.sinch.com/v3/projects/YOUR_project_id/services/01GVRB50KEQFFE1SGMPFRNBG6J/domains/yourdomain.com/templates/successful outbound fax'{ "template": { "name": "successful outbound fax", "createdAt": "2025-10-24 19:11:50.235000+00:00", "id": "8836986f-050c-4b2d-afb9-8069d1520b17", "version": { … } } }
The serviceId containing the templates you want to update.
The name of the domain containing the templates you want to update.
The name of the template you want to update.
| Enum Value | Description |
|---|---|
| successful outbound fax | The template for a successful outbound fax. |
| unsuccessful outbound fax | The template for an unsuccessful outbound fax. |
| successful inbound fax | The template for a successful inbound fax. |
| unsuccessful inbound fax | The template for an unsuccessful inbound fax. |
The contents of the template. The following variables are available for you to use in templates:
| Variable | Description |
|---|---|
| id | The ID of the fax. |
| from | The phone number sending the fax. |
| to | The phone number receiving the fax. |
| completedTime | The date and time that the fax was completed. |
| numberOfPages | The number of pages included in the fax. |
| currencyCode | The currency in which the fax was billed. |
| amount | The total cost of the fax. |
| retryCount | The number of times the fax was retried. |
- v3.0 of the Fax APIhttps://fax.api.sinch.com/v3/projects/YOUR_project_id/services/{serviceId}/domains/{domainName}/templates/{templateName}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
- successfulOutboundFax
- successfulInboundFax
- unsuccessfulOutboundFax
- unsuccessfulInboundFax
curl -i -X PUT \
-u <username>:<password> \
'https://fax.api.sinch.com/v3/projects/YOUR_project_id/services/01GVRB50KEQFFE1SGMPFRNBG6J/domains/yourdomain.com/templates/successful outbound fax' \
-H 'Content-Type: application/json' \
-d '{
"template": "<!DOCTYPE html><html lang='\''en'\''><head><meta charset='\''utf-8'\''><meta name='\''viewport'\'' content='\''width=device-width'\''></head><body style='\''margin:0;padding:0;background:#f3f4f6;'\''><table role='\''presentation'\'' width='\''100%'\'' cellpadding='\''0'\'' cellspacing='\''0'\'' style='\''background:#f3f4f6;'\''><tr><td align='\''center'\'' style='\''padding:24px;'\''><table role='\''presentation'\'' width='\''100%'\'' cellpadding='\''0'\'' cellspacing='\''0'\'' style='\''max-width:600px;background:#ffffff;border-radius:8px;border:1px solid #e5e7eb;'\''><tr><td style='\''padding:24px 28px;font-family:Segoe UI,Helvetica,Arial,sans-serif;color:#111827;font-size:14px;line-height:1.5;'\''><p style='\''margin:0 0 16px 0;'\''>Hi,</p><p style='\''margin:0 0 20px 0;'\''>You have sent a successful fax to: <strong>{{to}}</strong>!</p><table role='\''presentation'\'' cellpadding='\''0'\'' cellspacing='\''0'\'' style='\''border-collapse:collapse;'\''><tr><td style='\''padding:0 10px 6px 0;font-weight:600;'\''>Fax Id:</td><td style='\''padding:0 0 6px 0;'\''>{{id}}</td></tr><tr><td style='\''padding:0 10px 6px 0;font-weight:600;'\''>From:</td><td style='\''padding:0 0 6px 0;'\''>{{from}}</td></tr><tr><td style='\''padding:0 10px 6px 0;font-weight:600;'\''>To:</td><td style='\''padding:0 0 6px 0;'\''>{{to}}</td></tr><tr><td style='\''padding:0 10px 6px 0;font-weight:600;'\''>Number of pages:</td><td style='\''padding:0 0 6px 0;'\''>{{numberOfPages}}</td></tr><tr><td style='\''padding:0 10px 6px 0;font-weight:600;'\''>Completed at:</td><td style='\''padding:0 0 6px 0;'\''>{{completedTime}}</td></tr><tr><td style='\''padding:0 10px 0 0;font-weight:600;'\''>Price:</td><td style='\''padding:0 0 0 0;'\''>{{currencyCode}} {{amount}}</td></tr></table><p style='\''margin:20px 0 0 0;'\''>Thanks!</p></td></tr></table></td></tr></table></body></html>"
}'{ "template": { "name": "successful outbound fax", "createdAt": "2025-10-24 19:11:50.235000+00:00", "id": "8836986f-050c-4b2d-afb9-8069d1520b17", "version": { … } } }
You can add cover pages to Sinch Fax either via the API or the Build dashboard.
A Fax service can have 0 or more cover pages configured.
A fax service identifies a set of configuration values. You can specify the service as a part of an API request or by associating a Sinch number with a service.
This can be useful if you want to point a group of numbers to a particular incoming fax URL, or want to set the storage strategy for some of your numbers but not all of them.