Skip to main content

Fax API

Receive faxes on a Telnyx-provisioned fax number and read past faxes. Sending a fax goes through the unified Messaging API at POST /api/v1/messages/fax. Base path: /api/v1/fax Authentication: API key (X-API-Key) or session JWT.

Using the SDKs

Prefer the typed client, but this page’s endpoint has no helper yet — the generic request() keeps auth/retries and the { data, meta } envelope identical:
Python (same call via the SDK’s escape hatch):
The Python SDK is core-scope — it wraps the 8 core resources (messaging, voice, contacts, campaigns, verify, numbers) and reaches everything else through the generic client.request() escape hatch above. See the Python SDK. Raw curl in the body of this page works identically. Full SDK index at SDK quickstart.

Worked examples

1. Receive — list and read a fax

Faxes received on your fax number land in the message history with channel: "fax". List them newest-first:
Read one fax by its message ID:
An ID that doesn’t belong to a fax in your account returns 404.

2. Poll delivery status

GET /api/v1/fax/{id}/status returns just the live delivery status. The result is cached for ~10s per tenant — poll no more often than that. Statuses move queued → sending → sent → delivered (or failed).
Calling it before the fax has been dispatched (no provider-side ID yet) returns 404 — send first, then poll.

3. Send — through the Messaging API

Sending goes through the unified Messaging API. PDF or TIFF, capped at 50 MB:
Both to and from must be E.164, and from must be one of your fax-capable numbers. Take the id from the 202 response and poll GET /api/v1/fax/{id}/status (above) for the live result. See the Messaging API for the full send surface.

See also