Developer-friendly API

Sending faxes just got super easy.

# It can't get any easier!
# Try this in your terminal to send a fax:

curl https://api.phaxio.com/v2/faxes \
   -u 'API_KEY:API_SECRET' \
   -F 'to=A_PHONE_NUMBER' \
   -F 'file=@/path/to/a/supported/file'
use Phaxio\Phaxio;

$phaxio = new Phaxio(YOUR_API_KEY, YOUR_API_SECRET);
$phaxio->sendFax(
    $aPhoneNumber,
    '/path/to/a/supported/file'
);
var Phaxio = require('phaxio'),
  phaxio = new Phaxio(YOUR_API_KEY, YOUR_API_SECRET),
  callback = function(err,data){console.log(data);};

phaxio.sendFax({
    to: 'aPhoneNumber',
    filename: ['/path/to/a/supported/file']
},callback);
Phaxio.config do |config|
  config.api_key = "YOUR_API_KEY"
  config.api_secret = "YOUR_API_SECRET"
end

Phaxio.send_fax(
    to: "a_phone_number",
    filename: File.new("/path/to/a/supported/file")
)
Phaxio.apiKey = "your_api_key";
Phaxio.apiSecret = "your_api_secret";

List<String> phoneNumbers = new ArrayList<String>();
phoneNumbers.add("a_phone_number");

List<File> files = new ArrayList<File>();
files.add(new File("/path/to/a/supported/file"));

Long faxId = Fax.send(phoneNumbers, files, null);
import requests

response = requests.post(
	url='https://api.phaxio.com/v2/faxes',
   	data=[('to', A_PHONE_NUMBER)],
	files=[('file', ('a_filename', open('/path/to/a/supported/file', 'rb')))],
    auth=(MY_API_KEY, MY_API_SECRET)
)
var phaxio = new PhaxioClient(yourApiKey, yourApiSecret);

var file = new FileInfo("/path/to/a/supported/file");
var fax = phaxio.CreateFax();
fax.Send("aPhoneNumber", file);

We provide clear and up-to-date documentation. Also, we have open-source first-party and community-contributed client libraries to quickly get you started.

Learn more about Phaxio's API.

View Documentation

Reliable Infrastracture

From startup to Fortune 500, we're the only platform you'll need.

Huge Scalability

Never worry about having enough phone lines or channels again. Send and receive as many faxes as you need, whenever you need.

Batch & Avoid

Easily batch multiple faxes together and avoid collisions, sending to numbers already in use. Perfect for restaurant ordering during peak hours.

Cancel Timeouts

Don't let faxes hang in limbo. With cancel timeouts you're guaranteed your fax request will complete within the timeout you specified.

Zero Throttling

We never throttle your sent faxes. All faxes are sent as soon as your API call is processed.

Smart Routing

Multiple carriers for redundancy and scalability to ensure your fax gets through every time.

Intelligent Retries

Configurable settings for retrying failed faxes due to busy lines and other fax related errors.

Beautiful Dashboard

Manage faxes, provision numbers and more

Business Integrations

Integrate Phaxio with your current business process

Barcode Scanning

Easily add barcodes to outgoing faxes. When the fax is received, our API will POST data directly to your application. Great for tracking documents and routing faxes to the appropriate departments.

Metadata Tagging

Easily add metadata like order numbers, user id's or even patient record numbers, with each outgoing fax. Great for audit trails and HIPAA compliance.

Supported Document Formats

Send just about any file type as a fax

  • PDF
  • DOC
  • JPG, PNG & TIFF
  • HTML

    Send us a string of HTML and your fax will appear just as it would in any Webkit browser!

Price starts at 7ยข per page.

See Pricing  Sign Up

Start sending faxes right now!

We'll give you an API test key that you can use in your staging environment for free, and unlimited API calls.

Get API Key