- HTTPS: The platform terminates TLS at its edge with a certificate it provisions and renews, then forwards the request to your port as cleartext HTTP.
- TLS passthrough: The platform routes the connection to your port by Server Name Indication (SNI) without decrypting it. Your workload terminates TLS and owns its own certificates.
CoreWeave sandboxes are in public preview. For access, contact your CoreWeave account team, CoreWeave Support, or email support@coreweave.com.
Compare the two kinds
Declare an endpoint
Declare endpoints in theservices list when you create the sandbox. Ports are fixed for the sandbox’s lifetime, and no call exposes a port on a sandbox that is already running.
To give a service an endpoint, set visibility=PUBLIC and an endpoint value on it. A service without an endpoint value listens on its port inside the sandbox but gets no public address.
For an HTTPS endpoint, set kind=EndpointKind.HTTPS and auth=EndpointAuth.OPEN:
kind=EndpointKind.TLS_PASSTHROUGH and leave auth unset. The command you run must terminate TLS on the port itself, because the platform forwards the connection without decrypting it:
services entry:
- Ports must be unique, and any name you set must be unique. Names map to Kubernetes container port names, which require uniqueness.
visibilitymust bePUBLICwhenendpointis set, and must be left unset when it isn’t. Visibility on its own doesn’t create an endpoint or an address.protocolmust beTCPor unset. The platform rejectsUDPandSCTPendpoints.- Omit
authandrequest_timeout_secondsfor TLS passthrough. PassNonerather than0. A0counts as a set value, and the platform rejects the create call. - A platform limit caps how many services one sandbox declares. Operators set the cap, and deployments commonly set it to five.
Read the assigned address
The platform assigns the address. You can’t choose the hostname or supply your own domain. Read it back from the sandbox rather than constructing it, because the DNS zone differs per cluster and isn’t part of the API contract. TLS passthrough addresses arrive onservice_addresses as host:port, and HTTPS URLs arrive on service_urls. The two lists stay separate: A TLS endpoint never appears in service_urls.
8443 and clients connect to 443.
The two kinds become readable at different points in the sandbox’s startup:
- A TLS passthrough address is assigned when the sandbox is created, so it is on the create response and stays available while the sandbox is creating or running.
- An HTTPS URL is empty until the sandbox reaches
RUNNINGand its route has a hostname. Callget_status()in a loop until the URL appears or your own deadline passes. - Neither one means the application is serving. The platform doesn’t wait for your process to bind the port before reporting the sandbox as running, so retry your first connection.
Connect to a TLS passthrough endpoint
Because the platform doesn’t decrypt the connection, the certificate a client receives is the one your workload presents. Two things follow for the client:- Send the endpoint host as the SNI server name. The platform routes on SNI alone, so a connection that omits it, or sends a different name, doesn’t reach your sandbox.
- Trust the workload’s certificate. The endpoint hostname is platform-assigned, so a certificate you issue yourself doesn’t match it unless you issue it for that hostname. Configure the client to trust your own certificate authority, or pin the certificate.
[ENDPOINT-ADDRESS] with the address you read from service_addresses, and [PATH-TO-CA-CERT] with the path to the certificate authority that signed your workload’s certificate:
Endpoint lifetime
An endpoint lives as long as the sandbox that owns it:- It’s keyed to the sandbox, not to a Pod. If the underlying Pod restarts, the address stays the same.
- Deleting the sandbox removes the endpoint. The address doesn’t move to another sandbox, and a new sandbox gets a new address.
- Nothing is reserved between sandboxes. You can’t hold a hostname for reuse.
Troubleshoot create failures
If no runner in your fleet supports the endpoint kind you requested, the create call fails rather than starting a sandbox with the endpoint silently dropped.Related pages
- Sandbox configuration: resources, ports, secrets, and timeouts.
- Sandbox architecture: how runners, profiles, and the control plane interact.
- Sandbox lifecycle: the states a sandbox moves through.