Highest rated fax software

capterra-single
Fax API (LP)
Fax API (LP)
Fax API (LP)

Developer-First

Go live in minutes, not months

Get your API key, choose your fax number and send your first test fax, all without talking to sales or waiting for provisioning.

api

1. Get your API key instantly

Start a 7-day free trial with full API access. Up and running in under five minutes.

fax-number

2. Configure your fax number

Search, purchase, and provision a local or toll-free fax number directly through our portal or via API. Port an existing number if you’re migrating.

fax

3. Send or receive your first fax

One API call to send faxes. Configure a callback URL to receive faxes.

visibility

Know exactly what's happening with every fax

Track every transmission from queued to sent. Get notified the moment something fails so you can act on it, not discover it in an audit.

Fax API (LP)

Extensible

One API for every fax workflow

One RESTful interface covers the full fax lifecycle. Send a single document, broadcast to thousands, provision numbers, or extract data from inbound faxes. All from the same REST API.

POST

Send fax

Deliver documents programmatically with automatic retry on busy signals. Track delivery status in real-time.

POST

Receive Inbound Faxes

Set a callback URL and receive POST notifications the moment a fax arrives. Route inbound documents to any endpoint, CRM, or storage.

json

Receive real-time fax statuses

Get instant notifications the moment a fax is delivered, cancelled or failed. Route inbound documents to any endpoint, CRM, or storage.

POST

Provision numbers on demand

Search, purchase, and manage fax numbers across 50+ countries directly through the API.

GET

Extract data with AI

Auto-classify, OCR, and extract structured data from inbound faxes. Eliminate manual document handling.

curl https://api.ifaxapp.com/v1/customer/inbound/fax-list \
-H 'accessToken: YOUR_API_KEY' \
-d '{
    "numberId": "123465",
    "orderId": "123465",
    "markedAs": "Done",
    "startDate": "05/03/2024"
    "endDate": "10/03/2024"
}    
require 'rest-client'
    require 'json'
    def create_fax
        begin
            url = 'https://api.ifaxapp.com/v1/customer/inbound/fax-list'
            data = {
                numberId: '123456',
                orderId: '123456',
                markedAs: 'Done',
                startDate: '05/03/2024',
                endDate: '10/03/2024'
            }                
            headers = {
                ''Content-Type' => ''application/json',
                ''Accept' => ''application/json',
                ''accessToken' => ''YOUR_API_KEY'
            }
            response = RestClient.post(url, data.to_json, headers)
            puts "Response Code: #{response.code}"
            puts "Response Body: #{response.body}"        
            return response.body
        rescue RestClient::ExceptionWithResponse => e
            return { error: e.response.body }
        end
    end
    create_fax
    
const axios = const require("axios");

exports.createFax = async ()= > {
    try {
        data = {
            numberId: "123456",
            orderId: "123456",
            markedAs: "Done",
            startDate: "05/03/2024",
            endDate: "10/03/2024"
        }
        let result = await axios.post(
            `https://api.ifaxapp.com/v1/customer/inbound/fax-list`, data, {
            headers: {
                "Content-Type": "application/json",
                "Accept": "application/json",
                "AccessToken": "YOUR_API_KEY"
            },
        })
        return result
    } catch (error) {
        return { error }
    }
}
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import org.json.JSONArray;
import org.json.JSONObject;

public class FaxSender {
    public static void createFax() {
        try {
            String url = "https://api.ifaxapp.com/v1/customer/inbound/fax-list";
            URL obj = new URL(url);
            HttpURLConnection con = (HttpURLConnection) 
                obj.openConnection();
            // Set request method and headers
            con.setRequestMethod("POST");
            con.setRequestProperty("Content-Type", "application/json");
            con.setRequestProperty("Accept", "application/json");
            con.setRequestProperty("accessToken", "YOUR_API_KEY");
            con.setDoOutput(true);
            
            // Prepare JSON data
            JSONObject json = new JSONObject();
            json.put("numberId", "123465");
            json.put("orderId", "123465");
            json.put("markedAs", "Done");
            json.put("startDate", "05/03/2024");
            json.put("endDate", "10/03/2024");
            
            // Write data to request body
            try (OutputStream os = con.getOutputStream()) {
                os.write(json.toString().getBytes("UTF-8"));
                os.flush();
            }
            
            // Get response
            int responseCode = con.getResponseCode();
            System.out.println("Response Code: " + responseCode);
            try (java.util.Scanner scanner = 
            new java.util.Scanner(con.getInputStream())) {
                String responseBody = scanner.useDelimiter("\\A").next();
                System.out.println("Response Body: " + responseBody);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        createFax();
    }
}
function createFax() {
    try {
        $url = 'https://api.ifaxapp.com/v1/customer/inbound/fax-list';
        $data = [
            'numberId' => '123456',
            'orderId' => '123456',
            'markedAs' => 'Done',
            'startDate' => '05/03/2024',
            'endDate' => '10/03/2024'            
        ];
        $headers = [
            'Content-Type: application/json',
            'Accept: application/json',
            'accessToken: YOUR_API_KEY'
        ];
        $ch = curl_init($url);
        // Set cURL options
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
        $response = curl_exec($ch);
        if (curl_errno($ch)) {
            throw new Exception('Request Error: ' . curl_error($ch));
        }
        $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        curl_close($ch);
        echo "Response Code: $httpCode\n";
        echo "Response Body: $response\n";
        return $response;
    } catch (Exception $e) {
        return json_encode(['error' => $e->getMessage()]);
    }
}
createFax();
    import requests
    import json
    
    def create_fax():
        try:
            url = 'https://api.ifaxapp.com/v1/customer/inbound/fax-list'
            data = {
                "numberId": "123456",
                "orderId": "123456",
                "markedAs": "Done",
                "startDate": "05/03/2024",
                "endDate": "10/03/2024"
            }
            headers = {
                "Content-Type": "application/json",
                "Accept": "application/json",
                "accessToken": "YOUR_API_KEY"
            }
            # Make the POST request
            response =  requests.post(url, 
                            data=json.dumps(data), 
                            headers=headers
                        )
            # Print response details
            print("Response Code:", response.status_code)
            print("Response Body:", response.text)
            return response.json()
        except requests.exceptions.RequestException as e:
            print(f"Error: {e}")
            return {"error": str(e)}
    
    # Call the function
    create_fax()
    

Compliant by Default

HIPAA-compliant fax API with end-to-end encryption

Send patient records, financial documents, and legal files knowing every transmission is encrypted, logged, and compliant. Security is built into every API call, not bolted on as an upgrade.

HIPAA & BAA included

HIPAA & BAA included

Signed Business Associate Agreement available for every API customer. Not an upsell, it’s included as standard.

hippa-baa

256-bit AES + TLS 1.2

Encryption at rest and in transit. Every transmission protected against interception and unauthorized access.

Fax API (LP)

Full audit trail via API

Every send, receive, view, and download is logged with timestamps. Pull audit reports programmatically for compliance reviews.

Rated 4.8 on G2 by the teams that depend on fax.

Fax API (LP)
Fax API (LP)
Fax API (LP)
Fax API (LP)
Fax API (LP)
Fax API (LP)
Fax API (LP)
Read iFax reviews on G2

Based on 370+ reviews

Uptime SLA
80 %

Infrastructure built for mission-critical document delivery. Automatic failover across redundant systems.

Faxes delivered
0 M+

Handling production workloads for healthcare, finance, and insurance teams sending 50K+ faxes per month.

Developer support
24 /7

Real engineers who can help with onboarding, migration, and production issues. Not a chatbot, not a ticket queue.

Frequently asked questions

Fax API (LP)
Not getting the answer?

A cloud fax API allows developers to send and receive faxes over the internet without using traditional fax machines or phone lines. It works by integrating fax functionality directly into your software, enabling you to upload documents, send them to fax numbers, track delivery status, and receive incoming faxes—all within your application.

Yes. iFax is fully HIPAA compliant with 256-bit AES encryption, TLS 1.2+ for data in transit, and a signed Business Associate Agreement (BAA) included for every API customer at no additional cost. All transmissions generate detailed audit logs that are accessible via API for compliance reviews. We also comply with GLBA and GDPR standards.

Integrating the fax API into your existing software is simple. You can connect your application using REST APIs, follow the provided documentation, and start sending or receiving faxes programmatically. The API also supports tracking and notifications to help manage fax workflows efficiently.

Yes, the API supports bulk or broadcast faxing, allowing you to send large volumes of faxes simultaneously. This is useful for businesses that need to automate communication at scale, such as sending notifications, documents, or campaigns to multiple recipients.

The cost of a fax API depends on usage, including the number of pages sent or received and the selected subscription plan. Pricing is typically flexible, with options ranging from pay-as-you-go to monthly plans designed for higher-volume usage.

To set up a fax API for a healthcare application, you need to choose a HIPAA-compliant provider, sign a Business Associate Agreement, and integrate the API into your system. Proper configuration of security features, encryption, and access controls ensures compliance and protects sensitive patient information.

Built For Your Industry

Embed fax into the systems
your team already uses

Email to Fax Comparison: Who Does It Best?

The best email-to-fax services combine simple email sending with secure, reliable fax delivery, and ...

Read Story

Best Online Fax Service for Emailing Faxes

The best option is an online fax service like iFax that converts emails and attachments...

Read Story

What’s the Best Way to Send a Fax via Email?

To send faxes via email to a fax number, use an email-to-fax service like iFax...

Read Story

Infrastructure built for PHI and PII security.

Move your critical data exchange into a hardened, compliant cloud environment. Eliminate the risk of legacy servers, unencrypted lines, and hardware failures.

Arrow-up