Endpoints
Both are reachable on the web origin, so an uptime check needs no credentials and no access to the API port.
What does a healthy instance look like?
The 26 hour window is deliberate. A daily schedule plus a slow night should not page you, so
stale only fires once a run has genuinely been missed. A fresh instance with no apps never reports stale, because there is nothing to collect.
Monitor it
One command is enough for an uptime check.--fail turns the 503 into a non zero exit status, which is what most monitoring agents key on.
To alert on a stalled pipeline rather than on a dead API, check the stale and failedJobs fields rather than the status code. A stale pipeline still answers 200, because the API itself is healthy.
Egress proxy pool
Only relevant whenPROXY_PROVIDER is set. GET /api/backend/admin/proxy-pool answers with the pool’s shape and is reserved for the platform operator: any other account gets 404, the same answer the queue dashboard gives, so the surface never confirms it exists.
The response carries pool size, per store healthy and cooling down counts, per endpoint success rate over a rolling hour, the distribution of the last failure classification, residential fallback rate and month to date spend, and requests per hour against capacity.
The alerts array is the part to watch. It is empty on a healthy pool.
The same alerts are written to the API log on every pool reconciliation, so an operator with no dashboard still sees them.
Container health checks
Every Compose service defines its own health check, and the dependency order uses them: the API waits for PostgreSQL and Redis to report healthy, and the web app waits for the API.docker compose up --wait blocks until every check passes, so a successful exit is a real signal rather than a process start.
Related
The daily pipeline and rate limits
What the pipeline does and when.
Troubleshooting
What to do when a field goes the wrong way.