Sends a fax from one of your fax servers and returns its new fax log.
Who may call it: an API key with All permissions, for every fax server of your account. A Scoped key is refused with 403.
Use it:
- Find the fax server's id:
fax_uuidfromGET /fax/servers. - Put each PDF in
documents, in the order to fax them: Base64-encoded ascontent_base64, or as aurlwe fetch. Addcoversheetto put a coversheet in front, or send a coversheet alone. - Send the body as JSON, with
Content-Type: application/json. Any other type is refused with 415 (curl -dwithout-H "Content-Type: application/json"sends a form type). - Keep
row.fax_log_uuidand follow the fax withGET /fax/logs/{logId}until its status is final. There is no delivery webhook.
Response: 200 with message, row, the new fax log (fax_status queued), and scheduled_send_at, null unless the fax is held for its number's verification. A 200 means the fax is queued, not delivered.
Checked strictly: every field is checked before your documents are read or stored, and the request is refused at the first problem found. A field this page doesn't list is refused (Unknown field "files"), in the body, in coversheet and in each document. subject, to_name and the coversheet's subject take at most 255 characters, the coversheet's message 5,000; quality and language take only their listed values; timezone must be an IANA time zone.
Limits:
- Inline documents: 10 MB (10,485,760 bytes) combined, decoded: 413
Inline documents are limited to 10 MB combined. - Each document by URL: 50 MB, counted as it's read: 413
documents[i] is over 50 MB. - The fax as sent, coversheet included: 50 MB and 350 pages: 400
The fax is over 50 MBorThe fax is over 350 pages. - No limit on the number of documents.
- The request body, as sent, is limited to 20 MB (20,971,520 bytes) on every request: 413
The request body is limited to 20 MB. Base64 is a third larger than the PDF, and JSON encoders that escape characters make it larger still: .NET's default encoder writes+as\u002Band PHP'sjson_encodewrites/as\/. Send the Base64 unescaped when you can (for exampleJsonSerializerwithJavaScriptEncoder.UnsafeRelaxedJsonEscaping, orJSON_UNESCAPED_SLASHES).
Documents by URL:
- Every document is checked before any is read: inline ones are decoded first, then each URL is fetched once, in turn. All URLs of a send share one 60-second deadline.
httpsonly, default port, no credentials in the URL, a host name rather than an IP address, at most 8,192 characters. Links to our own platform are refused.- Up to 3 redirects, each checked by the same rules. The final answer must be a 200 carrying the PDF, not an HTML page.
- We fetch with a plain
GET(user agentEMAK-Fax/1.0 (+https://docs.emak.tech)), no cookies or credentials. A signed link that expires is fine if it's valid when you send. - The URL is used once and never stored or logged: the fax keeps our copy of the document.
- Some sites refuse requests from cloud networks and answer 403 (
documents[i] could not be fetched: HTTP 403) even when the link works in a browser: use links from your own storage (signed S3, Google Cloud Storage or Azure links) or a host you control, or send the document as Base64.
Notes:
- Each document must be a PDF, with
%PDF-within its first 1,024 bytes. Nothing is converted: send other formats as PDF. to_numbertakes national formats, read as North American (8553301239,(855) 330-1239,1-855-330-1239), and is normalized to E.164 (+18553301239): the fax network accepts E.164 numbers only. A number that can't be normalized is refused before anything is stored or sent.- When the fax server's number isn't verified for faxing yet, sending starts its verification and holds the fax: it goes out about three minutes later, at
scheduled_send_at. See Fax. - The fax's subject is
subject, or, withcoversheet, the coversheet'ssubject(the top-level one is then ignored). A fax sent without one gets an AI-generated subject of up to six words, written from its content before we answer, sorow.fax_subjectalready carries it. When none can be written,fax_subjectisnull. - A failed attempt is retried automatically, up to four times. Retrying this request after a timeout can send the fax twice: check the fax logs first.
fax_from_numberinrowis your fax server's number as stored on it.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
