unofax
First fax service on x402

Send a fax with USDC via x402 — the API built for AI agents.

$0.20USDC per pageFree cover sheet

Send faxes online and pay with USDC. Built for AI agents, works just as well for humans. No account, no API keys, no OAuth. Just a wallet and an HTTP request. Your agent pays in USDC and the document dials out over a real phone line. x402 protocol.

Why x402 for fax?

No hidden fees$0.20 per page, all in. Gas fees? On us. No surprise line items on your receipt.
Instant settlementPay and send in one flow. The moment the USDC transfer confirms on-chain, your fax is queued. No invoices, no payment processor delays.
No account requiredNo sign-up forms, no API keys. Got a wallet? You're already in the system.
No vendor lock-inx402 is an open protocol. No proprietary SDK, no platform dependency. If you can make an HTTP request, you can send a fax.

Who's sending faxes with x402?

AI agentsBuilt for this. No OAuth, no credentials to store. Your agent pays with a wallet and sends a fax in a single HTTP round-trip. It won't even complain about the dial-up sounds.
Humans tooSomeone asked you to fax something and you briefly considered quitting. Don't. Connect your wallet, pay with USDC, and get back to your coffee before it gets cold.

x402 vs traditional fax APIs

Feature comparison between unofax x402 and traditional fax APIs
unofax x402Traditional APIs
Sign upNone. Just a wallet.Account + verification
API keysNot neededRequired
Minimum spend$0. Pay only when you fax.Typically $10 - $50+/mo
10 pages/mo$2.00 totalTypically $10.50 - $51.50
PaymentInstant, on-chainCredit card + invoices
Agent friendlyYes, wallet-authTypically requires credentials
Time to first faxUnder 2 minutesTypically hours to days

* Cost comparisons are based on typical published pricing of major fax API providers as of 2026. Actual costs may vary. Bulk discounts available at unofax. Contact support@unofax.com to learn more.

Ready to integrate?

See the API

x402 fax platform details

45+ countriesUS, Canada, UK, Japan, Germany, Australia, and 40+ more. See full list
Your documents, your businessEncrypted in transit and at rest. We don't read, log, or keep your files longer than we need to. Privacy by default.
USDC on BasePayments settle on the Base network. Low fees, fast finality. We cover gas so you pay exactly $0.20 per page.
8 file formatsPDF, Word, PNG, JPG, GIF, WebP, HEIC, and TIFF. Send whatever you've got.

API reference

All endpoints are relative to https://unofax.com

1
Create a fax jobFire off a POST with the destination number and file name. You'll get back a jobId, a pre-signed uploadUrl, and links to check status or trigger the send.
POST/api/x402
{
  "faxNumber": "+14155551212",
  "fileName": "contract.pdf"
}
200Response
{
  "jobId": "fax_8a3b...",
  "status": "awaiting_upload",
  "uploadUrl": "https://unofax.com/uploads/...?Policy=...&Signature=...&Key-Pair-Id=...",
  "statusUrl": "/api/x402/fax_8a3b...",
  "sendUrl": "/api/x402/fax_8a3b.../send"
}

Request body

faxNumberrequired
string
E.164 destination number, e.g. "+14155551212".
fileNamerequired
string
File name with extension. Used to infer MIME type.
mimeTypeoptional
string
Explicit MIME type, e.g. "application/pdf". Inferred from fileName when omitted.
scheduledTimeoptional
string
RFC 3339 timestamp. If omitted, the fax sends immediately after payment.
2
Upload your documentPUT the raw file bytes to the pre-signed uploadUrl from step 1.
PUT{uploadUrl}
Content-Type: application/pdf
<raw file bytes>
Then poll GET /api/x402/{jobId} every 2-3 seconds until status becomes ready_to_send. Typical processing takes 5-15 seconds.
GET/api/x402/{jobId}
200Response
{
  "jobId": "fax_8a3b...",
  "faxNumber": "+14155551212",
  "status": "ready_to_send",
  "pageCount": 3,
  "payment": {
    "scheme": "exact",
    "network": "eip155:8453",
    "asset": "0x833589...",
    "amountAtomic": "600000",
    "amountDisplay": "0.6 USDC",
    "payTo": "0x1a2b...",
    "expiresAt": "2026-04-17T00:00:00Z"
  },
  "previewUrl": "/preview/fax_8a3b.../contract.pdf",
  "sendUrl": "/api/x402/fax_8a3b.../send"
}

Possible statuses

awaiting_upload
Waiting for file upload.
processing
File received, converting to fax format.
ready_to_send
Ready for payment. Proceed to step 3.
3
Pay and sendPOST to the send endpoint without a payment header. The server returns 402 with a PAYMENT-REQUIRED header containing the base64-encoded x402 payment requirement (amount, currency, network, and receiving address). If the document is still processing, you'll get 409 Conflict instead.
POST/api/x402/{jobId}/send
402Response
{
  "error": "payment required"
}

PAYMENT-REQUIRED header (base64-decoded):
{
  "accepts": [{
    "scheme": "exact",
    "network": "eip155:8453",
    "asset": "0x833589...",
    "amount": "200000",
    "payTo": "0x1a2b..."
  }]
}
Sign the payment with your wallet per the x402 spec, then resend the same request with a PAYMENT-SIGNATURE header. The server verifies the on-chain payment and queues the fax.
POST/api/x402/{jobId}/send
PAYMENT-SIGNATURE: <base64-encoded x402 payment payload>
202Response
{
  "status": "sending",
  "jobId": "fax_8a3b...",
  "pageCount": 3
}
4
Check delivery statusPoll GET /api/x402/{jobId} every 5 seconds until status resolves to sent or failed. Most faxes complete in 1 to 2 minutes per page.
GET/api/x402/{jobId}
200Response
{
  "status": "sent",
  "jobId": "fax_8a3b...",
  "pageCount": 3
}

Delivery statuses

sending
Fax is dialing or transmitting.
sent
Fax delivered successfully.
failed
Transmission failed. Contact support@unofax.com with your jobId.

Error responses

400
Bad Request
Invalid input. Missing faxNumber, invalid E.164 format, unsupported file type, or cover sheet validation error. Response body includes a message field with details.
402
Payment Required
Expected on the send endpoint. Contains x402 payment details. Not an error.
404
Not Found
Invalid or expired jobId.
409
Conflict
Document is still processing. Wait and retry the send request.
413
Payload Too Large
File exceeds the maximum upload size (20 MB).

FAQ

What is x402?

It's an open protocol for paying for web services with stablecoins over HTTP. The server says 402 Payment Required, your wallet signs, and the request goes through. No accounts, no API keys, no paperwork. Think of it as putting coins in the fax machine, except the coins are on-chain.

What do I need to get started?

A crypto wallet with some USDC and a document worth faxing. No sign-up, no API key, no waiting for approval. You're two curl commands away from hearing that sweet dial tone.

How much does it cost?

$0.20 USDC per page on the Base network. Cover sheets are free and don't count towards the total. We pick up the gas fees too. Bulk discounts are available for high-volume senders.

Where can I send faxes?

45+ countries including the US, Canada, UK, Japan, Germany, Australia, and most of Europe and Asia-Pacific.

Is my document secure?

Documents are encrypted in transit and at rest. We don't log document content, and files are automatically removed once they're no longer needed. We have no reason to read your faxes.

How long does delivery take?

Most faxes complete in 1 to 2 minutes per page. The actual speed depends on the recipient's machine and phone network. Some fax machines just like to take their time.

What happens if the fax fails?

If something goes wrong, contact us at support@unofax.com with your jobId and we'll sort it out.

Can AI agents use this?

Absolutely. The API is stateless and wallet-authenticated, so any agent with an HTTP client and a wallet can send faxes on its own. No OAuth, no stored credentials. Your bot can fax while you sleep.