localhost:8080.
Base URL
<run-id> with the identifier of your Apify run. When self-hosting with Docker or Node.js directly, the server binds to port 8080 by default. You can override the port with the ACTOR_WEB_SERVER_PORT environment variable.
Endpoints
| Method | Path | Description |
|---|---|---|
GET | / | Built-in dashboard page (HTML or plain-text summary) |
GET | /info | Runtime metadata, active webhooks, and endpoint discovery |
ANY | /webhook/:id | Capture incoming webhook traffic for any HTTP method |
GET | /logs | Query captured events with filtering and pagination |
GET | /logs/:logId | Fetch a single captured event by ID |
GET | /logs/:logId/payload | Retrieve the raw payload for a captured event |
GET | /log-stream | Server-Sent Events live feed of captured events |
POST | /replay/:webhookId/:itemId | Replay a captured event to a new destination URL |
GET | /system/metrics | Dataset-to-DuckDB sync service metrics |
GET | /health | Liveness probe |
GET | /ready | Readiness probe |
Runtime endpoint discovery
You can discover the full set of live endpoint URLs at runtime by callingGET /info. The response includes an endpoints map with fully-qualified URLs built from the running base URL, so you do not need to hard-code paths when integrating programmatically.
Authentication
Authentication is optional. When you supply anauthKey in the Actor input, management endpoints and (optionally) webhook ingest require that key via a Bearer token header or ?key= query parameter. The /health and /ready probes are never protected. See Authentication for full details.