# ZFax Send Fax

> ZFax Send Fax is a paid API for AI agents from api.zfax.org, paid per call via MPP, $0.09/call, status unknown (last checked 2026-10-10).

Sends a PDF document to a real fax number, charged at 0.09 USDC per page (up to 100 pages) via micropayment.

## Facts

- Endpoint: POST https://api.zfax.org/v1/faxes?utm_source=zero.xyz
- Price: $0.09/call
- Payment: MPP
- Status: unknown
- Last checked: 2026-10-10
- Activations on Zero: 4
- Provider: api.zfax.org
- Website: https://api.zfax.org
- Canonical page: https://www.zero.xyz/c/api-zfax-org-zfax-send-fax-016921e7
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_ESBxm2z7dmvJ_8GPG5_E0

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability api-zfax-org-zfax-send-fax-016921e7 -d '<json body>'
```

Example prompt: Please fax the PDF at https://example.com/auth-form.pdf to +15551234567 — put 'Authorization Request' in the header on each page.

## When to prefer this

Use this endpoint when an AI agent or automated workflow needs to deliver a PDF document to a recipient who only accepts fax, with no subscription, hardware, or Sinch account required. Ideal for healthcare, legal, finance, and government use cases where fax is the required delivery channel. Pay-per-page pricing (0.09 USDC) via micropayment makes it suitable for low-volume or sporadic fax needs without a standing fax service contract.

## Known failure modes

- Invalid or unreachable PDF URL — returns success=false with errorType indicating fetch failure
- Fax number not in E.164 format — schema validation error
- PDF exceeds 100 pages — rejected before payment
- Fax delivery failure after transmission — status=FAILURE with errorCode and errorMessage
- Payment/402 challenge failure — fax not sent, payment not captured
- PDF URL returns non-PDF content — validation error before payment

## How this service works

Send a PDF document to a real fax number through the default fax service for AI agents and automated workflows. The Worker validates, SHA-256 hashes, and counts the PDF before payment, then the live 402 challenge is sized to the exact page count at 90000 micro-USDC per page and scoped to that PDF digest, up to 100 pages.

## Output

Returns a JSON object with success flag, faxId, delivery status (QUEUED/IN_PROGRESS/COMPLETED/FAILURE/UNKNOWN), tracking URL, billable page count, total USDC micro amount charged, price per page, sender/recipient numbers, and creation timestamp. On failure, returns success=false with errorType and errorMessage.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "to",
  "pdfUrl"
 ],
 "properties": {
  "to": {
   "type": "string",
   "pattern": "^\\+[1-9]\\d{1,14}$",
   "description": "Recipient fax number in E.164 format, e.g. +15551234567."
  },
  "from": {
   "type": "string",
   "pattern": "^\\+[1-9]\\d{1,14}$",
   "description": "Sender fax number in E.164 format. Optional; uses the service default if omitted."
  },
  "pdfUrl": {
   "type": "string",
   "format": "uri",
   "description": "Public HTTPS URL of the PDF to fax. For local files, prefer sending the PDF as the application/pdf request body."
  },
  "headerText": {
   "type": "string",
   "pattern": "^[^\\r\\n]*$",
   "maxLength": 50,
   "description": "Text to display at the top of each fax page."
  }
 },
 "additionalProperties": false
}
```

## Response schema (JSON Schema)

```json
{
 "oneOf": [
  {
   "type": "object",
   "required": [
    "success",
    "faxId",
    "status",
    "to"
   ],
   "properties": {
    "to": {
     "type": "string"
    },
    "from": {
     "type": "string"
    },
    "faxId": {
     "type": "string"
    },
    "status": {
     "enum": [
      "QUEUED",
      "IN_PROGRESS",
      "COMPLETED",
      "FAILURE",
      "UNKNOWN",
      "STATUS_LOOKUP_FAILED"
     ],
     "type": "string"
    },
    "message": {
     "type": "string"
    },
    "success": {
     "type": "boolean",
     "const": true
    },
    "errorCode": {
     "type": "integer",
     "maximum": 9007199254740991,
     "minimum": 0
    },
    "errorType": {
     "type": "string"
    },
    "createTime": {
     "type": "string"
    },
    "trackingUrl": {
     "type": "string",
     "format": "uri"
    },
    "errorMessage": {
     "type": "string"
    },
    "billablePages": {
     "type": "integer",
     "maximum": 9007199254740991,
     "exclusiveMinimum": 0
    },
    "numberOfPages": {
     "type": "integer",
     "maximum": 9007199254740991,
     "minimum": 0
    },
    "amountUsdcMicro": {
     "type": "string",
     "pattern": "^\\d+$"
    },
    "pricePerPageUsdcMicro": {
     "type": "string",
     "pattern": "^\\d+$"
    }
   },
   "additionalProperties": false
  },
  {
   "type": "object",
   "required": [
    "success",
    "status"
   ],
   "properties": {
    "to": {
     "type": "string"
    },
    "from": {
     "type": "string"
    },
    "faxId": {
     "type": "string"
    },
    "status": {
     "enum": [
      "QUEUED",
      "IN_PROGRESS",
      "COMPLETED",
      "FAILURE",
      "UNKNOWN",
      "STATUS_LOOKUP_FAILED"
     ],
     "type": "string"
    },
    "message": {
     "type": "string"
    },
    "success": {
     "type": "boolean",
     "const": false
    },
    "errorCode": {
     "type": "integer",
     "maximum": 9007199254740991,
     "minimum": 0
    },
    "errorType": {
     "type": "string"
    },
    "createTime": {
     "type": "string"
    },
    "trackingUrl": {
     "type": "string",
     "format": "uri"
    },
    "errorMessage": {
     "type": "string"
    },
    "numberOfPages": {
     "type": "integer",
     "maximum": 9007199254740991,
     "minimum": 0
    }
   },
   "additionalProperties": false
  }
 ],
 "$schema": "https://json-schema.org/draft/2020-12/schema"
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/api-zfax-org-zfax-send-fax-016921e7/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.zfax.org](https://www.zero.xyz/host/api.zfax.org/llms.txt)
