Skip to main content

GET /faxes

List sent and received faxes

A page of the account's faxes — sent and received — newest first, for a time window.

Scopefax:read
Role permissionFax History not set to Block; Phone numbers — only faxes on the role's numbers
CostFree

The window defaults to the last 30 days. end defaults to now and start to 30 days before end; the two may be at most 366 days apart. Both take RFC 3339 or unix seconds. To filter by a fax number, use number.

Every user's faxes on the visible numbers are returned, not only the faxes the credential's own user sent. A key with number grants sees only the granted numbers that its user's role also allows.

A filter on a number the credential cannot see is not an error — it simply matches nothing.

total is returned on the first page (offset=0) only.

Query parameters​

NameTypeRequiredExampleDescription
numberstringno12125550188Only faxes on these fax lines of yours. Comma-separated; US numbers, 10 digits or 11 starting with 1. A value that is not a US number is a 400.
directionsent | receivedno—Only sent, or only received, faxes. Omit for both.
userstringno481920Only faxes sent by these users — ids from GET /users, comma-separated. A received fax has no user, so this filter returns sent faxes only.
statusstringnofailedComma-separated: success, failed, pending. A received fax is always success.
startstringno2026-10-01T00:00:00ZStart of the window — RFC 3339 or unix seconds. Defaults to 30 days before end.
endstringno2026-10-28T00:00:00ZEnd of the window — RFC 3339 or unix seconds. Defaults to now.
limitintegerno—Page size. An out-of-range value is a 400 rather than a silent clamp.
offsetintegerno—

Responses​

200​

A page of matching faxes.

FieldTypeDescription
faxesobject[]Newest first.
faxes[].idintegerThe fax id, for GET /faxes/{id}. Always present. A send records the fax before handing it over, so the id exists from the start.
faxes[].directionsent | received
faxes[].linestringYour fax number the fax went out on (sent) or came in to (received). Equal to from on a sent fax and to to on a received one.
faxes[].fromstringWho sent it. On a received fax this is the sender's number as the phone network reported it.
faxes[].tostringWho it was sent to.
faxes[].userIdintegerThe user who sent it — id in GET /users. For a fax sent through this API, the user the credential acts as. Absent on received faxes.
faxes[].pagesintegerPage count, including the cover page.
faxes[].statuspending | success | failedpending — queued or still sending. success — delivered. failed — not delivered; the reason is in statusDetail. A received fax is always success.
faxes[].statusCodeintegerSent faxes only. The fax service's delivery code: -1 pending, 0 delivered, anything else a failure. Branch on status; keep this for logs and support.
faxes[].statusDetailstringSent faxes only. The delivery result as text — queued while pending, Success once delivered, otherwise the failure reason (for example a busy line or no answer). Human-readable; do not parse it.
faxes[].createdAtstring (RFC 3339)When the fax was sent or received. RFC 3339 UTC.
totalintegerHow many faxes match across all pages. Returned on the first page (offset=0) only — keep the value from there.
limitintegerThe page size applied.
offsetinteger
{
"data": {
"faxes": [
{
"id": 7731402,
"direction": "sent",
"line": "12125550188",
"from": "12125550188",
"to": "13475550123",
"userId": 481920,
"pages": 3,
"status": "failed",
"statusCode": 3,
"statusDetail": "No answer",
"createdAt": "2026-10-27T15:02:11Z"
},
{
"id": 7731388,
"direction": "received",
"line": "12125550188",
"from": "17185550142",
"to": "12125550188",
"pages": 2,
"status": "success",
"createdAt": "2026-10-27T14:40:56Z"
}
],
"total": 2,
"limit": 50,
"offset": 0
}
}

Errors​

StatusMeaning
400invalid_request — a missing or malformed field, an unknown enum value, or an unknown field in the body. Nothing was charged.
401unauthenticated — no credential, or one that is invalid, revoked or expired. The WWW-Authenticate header names the scope the endpoint wanted.
403Two different failures share this status, and the type tells them apart:
500internal_error — something failed on our side. For a send, nothing was charged, guaranteed, which is what makes a retry safe.

See Errors for the full catalog and what to do about each.

Example​

curl -X GET 'https://api.account.telebroad.com/api/public/v1/faxes' \
-H "Authorization: Bearer $TB_KEY"

Try it in the playground →