curl https://api.ifaxapp.com/v1/customer/fax-send \
-H 'accessToken: YOUR_API_KEY' \
-d '{
    "faxNumber": "12345678901",
    "faxData": [
        {
            "fileName": "test.pdf",
            "fileUrl": "file:///path/to/your/file.pdf"
        }
    ]
}'
require 'rest-client'
require 'json'
def create_fax
    begin
        url = 'https://api.ifaxapp.com/v1/customer/fax-send'
        data = {
            faxNumber: '+12345678910',
            faxData: [{
                fileName: 'abc.pdf',
                fileUrl: 'http://sample.url/path/to/file'
            },{
                fileName: 'xyz.pdf',
                fileUrl: 'http://sample.url/path/to/file'
            }]
        }
        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 = {
            faxNumebr: "+12345679801",
            faxData: [{
                fileName: "abc.pdf",
                fileUrl:  "http://sample.url/path/to/file"
            },
            {
                fileName: "xyz.pdf",
                fileUrl: "http://sample.url/path/to/file"
            }]
        }
        let result = await axios.post(
            `https://api.ifaxapp.com/v1/customer/fax-send`, 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/fax-send";
            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("faxNumber", "+12345678910");
            JSONArray faxData = new JSONArray();
            faxData.put(new JSONObject()
                .put("fileName", "abc.pdf")
                .put("fileUrl", "http://sample.url/path/to/file"));
            faxData.put(new JSONObject()
                .put("fileName", "xyz.pdf")
                .put("fileUrl", "http://sample.url/path/to/file"));
            json.put("faxData", faxData);
            
            // 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/fax-send';
        $data = [
            'faxNumber' => '+12345678910',
            'faxData' => [
                [
                    'fileName' => 'abc.pdf',
                    'fileUrl' => 'http://sample.url/path/to/file'
                ],
                [
                    'fileName' => 'xyz.pdf',
                    'fileUrl' => 'http://sample.url/path/to/file'
                ]
            ]
        ];
        $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/fax-send'
        data = {
            "faxNumber": "+12345678910",
            "faxData": [
                {
                    "fileName": "abc.pdf",
                    "fileUrl": "http://sample.url/path/to/file"
                },
                {
                    "fileName": "xyz.pdf",
                    "fileUrl": "http://sample.url/path/to/file"
                }
            ]
        }
        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()
Fax API
Fax API
Fax API
Fax API
Fax API
Fax API
Fax API
Powering secure document exchange with award-winning performance and scalability.
testi1

iFax is smooth. Works every time as expected and its aesthetics are on point.

microsoft
Hani Ewais Microsoft
testi1

My work-life is now a paperless reality. I can now send and receive faxes from anywhere.

Bmi
Dr. Asad Hussain BMI Hospital
testi3

I use iFax when traveling abroad. It sends all my faxes promptly and is very reliable. iFax is incredibly user-friendly and straightforward to use.

lyft
Anna Vu Lyft
testi4

I need a secure and dependable cloud faxing service. iFax has proven to be the optimal solution.

labor
Laurie Foster Department of Labor & Industries, Washington
testi5

It's incredibly easy to use and reliable. I love how quickly my lab documents are scanned and sent in a secure framework.

uoc
Panos Philandrinos University of California
Fax API
Fax API
Fax API
Fax API
Fax API
Fax API

Send, Receive & Automate Secure Fax at Scale

Developer-Friendly API for Online Fax

Developer-Friendly API for Online Fax

Add faxing capabilities to your software effortlessly with our API. Access easy-to-use documentation and SDKs for fast integration.

Core Faxing Capabilities

Core Faxing Capabilities

  • Send Faxes: Deliver documents programmatically with incredibly high reliability.
  • Receive Faxes: Retrieve faxes seamlessly with automatic delivery notifications.
  • Manage Faxes: Cancel, re-send, or tag faxes for streamlined workflows.
Advanced Workflows

Advanced Workflows

  • AI-Driven Data Extraction: Automate workflows with text recognition and AI-powered document analysis.
  • Custom Integrations: Tailor fax workflows with custom field management and EHR integrations.
Secure and Reliable Transmissions

Secure and Reliable Transmissions

Ensure HIPAA-compliant faxing with 256-bit encryption and robust security against breaches.

Fax API

Free Test API Key

Explore and test our fully Programmable API at no added cost.
Fax API

Cost-effective plans

Pay only for the features that you need with our flexible pricing.

Fax API

Robust security

Enjoy maximum data protection with the most stringent security measures.

Fax API

Enhanced collaboration

Work with our experienced developers for a smoother deployment.

Fax API

Dedicated support

Our team of experts is available to assist you with any concerns — 24/7/365.

Fax API

Scalable features

Build a document management workflow that grows with your team.

cloud fax api

Cloud fax API designed for businesses and enterprises

iFax offers a scalable API solution that supports selective page faxing and next-level customization options. You can also set endpoints for managing labels associated with tasks.

Our fax communication platform integrates seamlessly with EHRs, CRMs, ERPs, and other enterprise systems.

Fax API service that ensures data privacy

Our platform is designed to protect confidential information in compliance with HIPAA, GDPR, and GLBA, among other federal and international standards. This level of security is critical not just for protecting sensitive data but also for facilitating efficient and effective fax transmission in your organization. Create customized fax cover sheets for an extra layer of security when you send patient files, financial records, and legal documents.

hipaa compliant fax api

Retrieve a list of incoming faxes via API

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()
    
Discover the Power of the iFax API
Unlock seamless faxing capabilities tailored to your enterprise needs with the iFax API. Here’s what you can do:
  • Enterprise-Specific Access

    Gain exclusive access to our API, designed specifically for Enterprise users, ensuring robust and scalable faxing solutions.

  • Send Faxes Effortlessly

    Programmatically send faxes and track their delivery status in real-time with our API.

  • Receive Faxes Instantly

    Stay updated with instant notifications for incoming faxes using webhooks for streamlined communication.

  • Enhance Your Workflow with Custom Fields

    Add custom fields to your fax documents, enabling better organization and improved workflow efficiency.

  • Download Fax Documents and Receipts

    Access and download fax documents and transmission receipts programmatically for seamless record-keeping.

  • Purchase Fax Numbers On-Demand

    Instantly obtain fax numbers directly through the API, saving time and effort.

satisfied customers of ifax
5M+ Delighted Users
20 million online faxes sent
20M+ Faxes Sent
online fax reviews
4.5 Average Rating

An internet fax API, or application programming interface, enables software developers to build applications that send and receive faxes using a fax server or a web service. API uses a set of standard web protocols so that you can integrate your fax document transmission into your existing software stack.

You can connect two systems using an API and allow them to communicate with each other. This communication can happen over the internet, within a single network, or even between different devices.

Think of an API as a bridge connecting two apps with each other. To illustrate, imagine a customer at a restaurant who places an order with a server. The latter then relays this to the food preparation staff. An API acts in a similar fashion.

Yes, iFax complies with the Health Insurance Portability and Accountability Act (HIPAA). We meet compliance standards and assure transparency in all transactions. This way, your clients and business partners get the protection they deserve when using our fax service.

Our secure internet fax solutions provide the highest standards for the transit, storage, and archiving of sensitive data.  These standards make iFax a perfect match for fax handling applications. You can be confident that your patient information, financial records, and legal documents are always safe. iFax is a reliable and cost-effective solution for businesses that need to send and receive confidential information.

Yes, you can. With the iFax API, you can search for available fax numbers by country and area code. You can also directly purchase additional fax numbers through API calls by using JSON. JSON, or JavaScript Object Notation, is a compact and human-readable text for structuring data. It is a versatile tool that allows faster data interchange and web service results.

Fax API calls only affect your billing and charges if the transmission is successful, ensuring a cost-effective fax experience.

To fully understand how fax API calls affect billings and charges, let’s take a look at how our billing process works:

  1. Everytime you make an API call to send a fax, our system automatically checks your balance. If you have sufficient balance, your fax queues for sending. However, if it’s too low for the price of the fax, the call will result in an error and will cancel the process.
  2. Before sending the fax over the wire, our system rechecks your balance. If you have enough balance in your account, we deduct the price of the fax. On the other hand, if you don’t have enough balance, the transmission is halted.
  3. After the transmission processes has ended, we will check to see if the fax successfully went through or not. In some cases, the transmission is unsuccessful fue to busy lines, intermittent connection, and the like. If your transmission failed, our system credits the price of the fax back to your account

To test our fax API, you need to have an iFax account. You can sign up for a free trial to try the API. Our top-tier customer service is readily available to assist you throughout the process.

Once you have an account, you can get your API key from the Settings page and start making calls. The API documentation will guide you on how to ensure successful fax delivery by teaching you how to make various requests and what parameters to include. 

Arrow-up