API

Quote → send → status → receipt. Host: https://app.ohfax.com

Auth

Create a key at Account after Google sign-in. Send it as:

Authorization: Bearer afx_live_…

Quoting does not require a key. Sending does, and debits your prepaid balance.

1. Quote

Free. Validates the destination and PDF, counts pages, returns an exact total. Sends nothing.

curl -X POST "https://app.ohfax.com/api/v1/quotes" \
  -F to=512-555-0123 \
  -F file=@invoice.pdf

Response includes quote_id, to_display, pages, amount, expires_at.

2. Send

Requires an API key and an Idempotency-Key on every send so a timed-out retry cannot produce a second fax or charge.

curl -X POST "https://app.ohfax.com/api/v1/faxes" \
  -H "Authorization: Bearer $AGENT_FAX_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "content-type: application/json" \
  -d '{"quote_id":"qt_..."}'

3. Status

curl "https://app.ohfax.com/api/v1/faxes/fx_..."

Statuses include awaiting_payment, paid, submitting, submitted, sending, delivered, failed, refunded.

4. Receipt

curl "https://app.ohfax.com/api/v1/faxes/fx_.../receipt"

Available once the fax reaches a final state.

Pricing

$0.99 + $0.25 per page. Destinations: US and Canada. PDF only, up to 10 MB and 30 pages. See Limits.

Next: MCP · Webhooks