Quickstart

Three ways to send your first fax.

1. Send in the browser

No account. Open Send, drop a PDF, enter a US/CA fax number, see the price, pay with Stripe Checkout, then watch delivery on /f/:id.

open https://app.ohfax.com/

2. Account + API key

  1. Sign in with Google at https://app.ohfax.com/account.
  2. Add credit ($10 / $25 / $50).
  3. Create an API key โ€” the plaintext (afx_live_โ€ฆ) is shown once.
  4. Quote, then send:
# Quote (free โ€” sends nothing)
curl -X POST "https://app.ohfax.com/api/v1/quotes" \
  -F to=512-555-0123 \
  -F file=@document.pdf

# Send (charges your balance)
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_..."}'

Create a key at Account after Google sign-in. Every send requires an idempotency key so a retry cannot double-charge or double-send.

3. MCP (no Oh Fax account)

Claude Code

claude mcp add --transport http ohfax https://app.ohfax.com/mcp

Cursor

Add to .cursor/mcp.json or Settings โ†’ MCP:

{
  "mcpServers": {
    "ohfax": {
      "url": "https://app.ohfax.com/mcp"
    }
  }
}

Codex

codex mcp add ohfax --url https://app.ohfax.com/mcp

For manual configuration, set url = "https://app.ohfax.com/mcp" under [mcp_servers.ohfax] in ~/.codex/config.toml. The remote URL uses streamable HTTP.

Muse Code

Add to ~/.config/muse/settings.json:

{
  "schema_version": 1,
  "mcp_servers": {
    "ohfax": {
      "transport": "streamable_http",
      "url": "https://app.ohfax.com/mcp",
      "mode": "optional"
    }
  }
}

Any MCP client

Remote URL: https://app.ohfax.com/mcp (streamable HTTP). No API key for the MPP path; use an MPP-capable payer such as mppx or an agent wallet.

Agents pay via MPP โ€” no Oh Fax account required; an MPP-capable payer (mppx or an agent wallet) is required. After quote_fax, pay the HTTP 402 on /pay, then poll status/receipt. See MCP payment.

Next: API or MCP