faxxing

// Documentation

Faxxing Docs.

Everything you need to send your first fax in under 90 seconds โ€” and the reference for every endpoint, webhook, and rate limit you'll touch after that.

Introduction

Faxxing is a REST API for sending and receiving faxes. You POST a job, we convert HTML to PDF if needed, route it to a carrier (Telnyx), and stream you delivery status via webhooks and SSE. Inbound faxes are forwarded to your email as PDF attachments.

The API is JSON in, JSON out. Auth is a single header. Webhooks are Ed25519-signed. No SDKs required.

Quick start

  1. Create a free account โ€” 50 outbound pages, no card required.
  2. From the dashboard, open API Keys and create a key. The plain key is shown once โ€” copy it immediately.
  3. Send a fax with the snippet under Send a fax.
  4. Watch it land in Fax Logs with live status updates.

Authentication

All requests must include your API key in the X-API-Key header. Keys are hashed (SHA-256) at rest โ€” we cannot retrieve a key after creation, so store it somewhere safe.

bash
export FAXXING_API_KEY="fax_..."

Revoke a key any time from the dashboard. Revocation is instant; in-flight jobs already accepted will still send.

Send a fax

POST a recipient and a media_url pointing to a PDF. Numbers must be E.164. The endpoint returns a 202 Accepted with the queued message โ€” delivery progress arrives via webhook.

curl
curl -X POST https://api.faxxing.com/api/v1/messages \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $FAXXING_API_KEY" \
  -d '{
    "to_number": "+14155550123",
    "display_name": "Acme Co",
    "media_url": "https://example.com/contract.pdf",
    "campaign_id": "msa-q2"
  }'

Response ยท 202

json
{
  "id": 1287,
  "status": "queued",
  "to_number": "+14155550123",
  "created_at": "2026-05-13T10:24:00.123Z"
}
FieldTypeNotes
to_numberstring ยท requiredE.164 phone number.
media_urlstringPublic URL to a PDF. Required if html is omitted.
htmlstringRaw HTML โ€” we render to PDF via Gotenberg.
display_namestringCaller ID name shown on the recipient's machine.
campaign_idstringFree-form tag for grouping faxes in logs.

Send from HTML

Skip the PDF pipeline โ€” POST raw HTML and we convert it via Gotenberg before sending.

curl
curl -X POST https://api.faxxing.com/api/v1/messages \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $FAXXING_API_KEY" \
  -d '{
    "to_number": "+14155550123",
    "html": "<h1>Hello</h1><p>This is a fax rendered from HTML.</p>"
  }'

HTML and media_url are XOR โ€” provide exactly one.

Inbound faxes

Every tenant gets a dedicated inbound number. When someone faxes it, we:

  • Download the PDF from the carrier.
  • Email it to your forwarding address as an attachment.
  • Fire a fax.received webhook so you can wire it into your CRM.

Rate limits

Each API key is limited to 100 requests / minute. Hitting the limit returns 429 Too Many Requests with a Retry-After header. Need more? Email egm.ventures@icloud.com.

// End of docs ยท still have questions? โ†’ Book a call