Skip to main content
Two endpoints answer two different questions. One says the web container is alive. The other says the whole pipeline is working.

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 when PROXY_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.

The daily pipeline and rate limits

What the pipeline does and when.

Troubleshooting

What to do when a field goes the wrong way.
Last modified on August 24, 2026