Every port of a sandbox has a URL: https://<port>-<sandbox id>.sbx.compute.anonalabs.com. The SDK builds it for you with get_host. Who can open it depends on how you share it: Port 49983 (envd, which runs commands and files) is never shared: it always needs the sandbox’s own access token, which the SDK holds.
The link looks like https://3000-<id>.sbx.compute.anonalabs.com/?anona_sig=…&anona_exp=…. On the first visit the sandbox edge exchanges it for a cookie that is scoped to that one port’s host (Secure, HttpOnly, SameSite=Lax) and redirects to the same URL without the signature, so the app inside never sees it. Other ports and other sandboxes stay private. Revoking ends every link and every live-view token of the sandbox within a second. The dashboard’s sandbox page has Share preview, and agents get links from the MCP tool get_preview_url.

Public ports

public_port.sh
Up to 64 public ports per sandbox. PUT /v1/sandboxes/{id}/ports/{port} with {"public": true} does the same over the API.

Traffic token

For your own services, keep the port private and send the sandbox’s traffic token:
private_port.py
A request to a paused sandbox’s URL gets 409; resume it with Sandbox.connect first.