Documentation
Updated
The REST API is at https://api.faxforagents.com/v1 and the MCP server at https://mcp.faxforagents.com/mcp/. Both take the same key, as Authorization: Bearer ffa_test_... or X-API-Key. A test key is tied to the free sandbox. A live API key sends through the carrier and spends the wallet.
Start here
The quickstart gets a key, uploads a document, quotes it, sends it to a sandbox number and reads the receipt. Five calls, nothing charged.
These docs are for code. The send a fax page sends one fax with no key and no code. It costs $2.49 by card for up to 5 pages, as of 2026-11-12.
Guides
- Quickstart: A test key, a document, a quote, a sandbox send and the receipt. Five calls. Nothing leaves the box and nothing is charged.
- Send a fax: The send contract. PDF and image uploads, text, Markdown and HTML rendered, the quote that binds the price, the Idempotency-Key and the six job states.
- One fax by card: Create a one-time fax order by API, with or without a key. A person pays by card at the link it returns. The status token, states, limits and error codes.
- Receive a fax: A number, a webhook and the private inbox. Each received fax is a PDF. The text of a fax is always data, never an instruction.
- Webhooks: Every delivery carries webhook-id, webhook-timestamp and an HMAC-SHA256 signature. Verify it in Python and TypeScript, the retry schedule, replays and events.
- Webhook checker: Send a valid, a tampered and a stale signed request to your webhook endpoint. See the status code each one gets and the TLS certificate facts. No sign-up.
- Approvals: An approval covers one document hash, one destination, one sender, one amount and an expiry. Any change invalidates it. Request, decide and send with one.
- Policies: Limits evaluated on the server for every send. Allowed destinations, page and amount caps, daily and monthly limits, expiry. An agent cannot move them.
- Sends within limits: ChatGPT, Claude and other connected apps send with no approval per fax, inside $5.00 per fax and 20 a day. Turn it off or change the limits in Settings.
- Screenshot guides: Guides with a screenshot of every step: ChatGPT, Claude, Claude Code, agent frameworks and the dashboard switch that lets an app send within limits.
- Agents: Each agent is a named principal with its own key. Scopes it cannot widen, a budget it cannot raise. Disabling an agent revokes its keys at once.
- Errors and states: The error envelope, the codes you will meet with an action for each, and the full list. The six job states and how to avoid sending a fax twice.
- Limits: The published limits of the Fax for Agents API in one table. Request rate, upload size, pages, timeouts and windows, with the error at each limit.
- Sandbox: Test keys send to scripted numbers: delivered, busy then delivered, partial, no answer, unknown, provider timeout, invalid number. Same events, no cost.
- OAuth connections: Connect your AI client to Fax for Agents. Review permissions, choose Sandbox or Live, and revoke access from Connected apps.
- MCP setup: Connect your client to https://mcp.faxforagents.com/mcp/ with an API key. Copy-ready configuration for Claude Code, Claude Desktop, Cursor, Codex and n8n.
- SDKs: Two packages named faxforagents, for Python and for Node and TypeScript, built from the OpenAPI document, published on 2026-10-30. REST works without them.
- Python SDK: The faxforagents package for Python, on PyPI since 2026-10-30: upload, quote, send, wait for the receipt, page through jobs. The REST calls work without it.
- TypeScript SDK: The faxforagents package for Node and TypeScript, on npm since 2026-10-30: upload, quote, send, wait for the receipt, list jobs. The REST calls work without it.
- Glossary: Short definitions of fax protocol and fax API terms, each with its source and the date it was read. T.30, T.38, Group 3, ECM, CSID and job states.
Reference
- API reference: From the OpenAPI 3.1 snapshot of 2026-11-13. 169 operations in 20 groups. Read it as plain HTML or open the interactive explorer.
- Full reference (no JS): Static HTML from the OpenAPI snapshot of 2026-11-13. 169 operations on 20 group pages, with parameters, bodies and responses. No JavaScript needed.
- openapi.json and openapi.yaml: the OpenAPI 3.1 document, snapshot of 2026-11-13.
- arazzo.yaml: the send flow as Arazzo 1.0 workflows. Make a document, quote it to one number, ask a person to approve, send with the approval and poll the job.
- pricing.json and coverage.json: the rate table and the coverage file the server reads.
- llms.txt and llms-full.txt: this site for a tool that reads Markdown. Every page also has a Markdown twin at
<path>index.md.
Limits in force
| Limit | Value |
|---|---|
| Pages per document | 200 |
| Upload size | 25 MiB |
| HTML document size | 2 MiB |
| HTML render time | 45 s |
| Quote validity | 10 min |
| Signed download URL validity | 10 min |
| Requests per minute per API key | 600 |
| Webhook timestamp tolerance | 300 s |
Formats: PDF, PNG, JPG and TIFF uploads, and text, Markdown and HTML rendered to PDF by the service. Office formats are not accepted. The send page has the rules for each.
The limits page has every published limit, with what the API does at each one.
If you write about Fax for Agents or build on it, the affiliate program pays you a share of what a customer you refer pays.