How it works
1
Note the time
Just before you send, note the time in UTC, with
Z:2
Send the test
Send your test fax to a test number with your provider or machine. A scan to email test works the same way.
3
Wait for it
Run one of the scripts below. It asks
GET /api/faxes?since=... every 15 seconds, and keeps the same since on each call.4
Check the result
The script prints the oldest test after
since that matches, as JSON, and exits with 0. Check its page_count, open its view_url, or download its pdf_url. If no test matches in time, the script exits with 1.The script
Set these environment variables, then run the script.
Set
FROM only if your sender ID reaches Faxbeep and only you use it. Most faxes by phone arrive with no sender ID. Without FROM, set PAGES: other people send tests at the same time.
SINCE=2026-10-01T14:25:00Z PAGES=2 node wait-for-fax.mjs.
Rules for your own client
- Keep
sinceat the time you noted. Do not move it to the newestreceived_atthat you saw.received_atis the time a test arrived. A test appears when its processing is done, so a long fax can appear after a newer short one. - Wait between calls. 15 seconds is enough: a fax by phone usually appears 1 to 2 minutes after the call ends. The rate limit is 60 requests each minute for one IP address, and parallel jobs from one runner share it.
- Stop after a time limit. Do not poll forever. 10 minutes is a good limit for one test.
- On 429, wait. Wait the number of seconds in the
Retry-Afterheader, then call again. - Ask for up to 100 tests. The scripts set
limit=100, so a busy minute does not push your test out of the list.
Next
Find your fax
One call by time, by sender or by email.
API reference
The rate limit, the errors and the fields of a test.
