# AgentFax Send Fax

> AgentFax Send Fax is a paid API for AI agents from agentfax at agentfax.val.run, paid per call via MPP, $0.20/page (dynamic), status unknown (last checked 2026-09-14).

Sends a fax document (PDF or base64 content) to a phone number, billed per page in USDC

## Facts

- Endpoint: POST https://agentfax.val.run/v1/fax
- Price: $0.20/page (dynamic)
- Payment: MPP
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Provider: agentfax
- Docs: https://agentfax.val.run
- Website: https://agentfax.val.run
- Tags: fax, documents, pdf, communication, social
- Canonical page: https://www.zero.xyz/c/agentfax-fax-0e498a36
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_sMYMct-hTib2JW1BXkAEk

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 agentfax-fax-0e498a36 -d '<json body>'
```

Example prompt: Send a fax to +14155550123 with the PDF at https://example.com/contract.pdf — it's a signed contract I need delivered immediately.

## When to prefer this

Choose this endpoint when you need to programmatically send a fax to any phone number without API keys or signup, especially in automated agent workflows. It is pay-per-use (per page) with no subscription, accepts either a public PDF URL or base64-encoded content, and documents are never stored. Ideal for compliance workflows, legal document delivery, or any scenario requiring fax transmission from an AI agent.

## Known failure modes

- Invalid or unreachable fax number — fax fails with 'failed' status
- Neither file_url nor content_base64 provided — request rejected
- Malformed E.164 phone number — validation error
- PDF URL is not publicly accessible — document fetch failure
- Insufficient USDC balance to cover per-page cost — payment failure
- Document is corrupt or unsupported format — processing error

## How this service works

Send a fax to a phone number, priced per page. Pay with MPP (USDC.e on Tempo).

## Output

Returns a fax job object with a unique job ID, the destination number echoed back, number of pages transmitted, current status (queued/sending/delivered/failed), and total cost in USD. The job ID can be used to poll the fax status via GET /v1/fax/{id}.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "to"
 ],
 "properties": {
  "to": {
   "type": "string",
   "description": "Destination fax number in E.164, e.g. +14155550123"
  },
  "file_url": {
   "type": "string",
   "description": "Public URL to a PDF (provide this or content_base64)"
  },
  "metadata": {
   "type": "object",
   "description": "Optional, echoed back in the response"
  },
  "file_name": {
   "type": "string",
   "description": "Optional filename for content_base64"
  },
  "content_base64": {
   "type": "string",
   "description": "Base64-encoded document bytes"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "id": {
   "type": "string",
   "description": "Fax job id (use with GET /v1/fax/{id})"
  },
  "to": {
   "type": "string",
   "description": "Destination number, echoed back"
  },
  "pages": {
   "type": "integer",
   "description": "Number of pages sent"
  },
  "status": {
   "type": "string",
   "description": "queued | sending | delivered | failed"
  },
  "price_usd": {
   "type": "string",
   "description": "Total charged, in USD"
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/agentfax-fax-0e498a36/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agentfax.val.run](https://www.zero.xyz/host/agentfax.val.run/llms.txt)
