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 $OHFAX_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.
Balance
GET /api/v1/balance requires the same Bearer API key as sending. Returns balance_cents, formatted balance, currency, top_up_url, and top_up_presets with amount_cents and formatted amount. Missing or invalid keys return 401.
Pricing
Pricing: $2.00 per fax up to 100 pages (card); 2ยข per page from a prepaid balance or MPP stablecoin (pricing). Destinations: US and Canada. PDF only, up to 25 MB and 100 pages. See Limits.