Cocoon networks
Shroud routes inference traffic through one of two Cocoon networks — distinct upstream Cocoon proxies, each with its own model catalog, worker fleet, and pricing config. The network you target determines:
which models are available;
which workers serve your request;
the
owned_byvalue returned by/v1/models;the pricing applied (each network has its own pricing config).
Network | Status | Notes |
|---|---|---|
| Available | Original Cocoon proxy network. |
| Available | Newer network with separate model fleet and worker schedule. |
The default network for unprefixed routes is set per-deployment via the cocoon.default_network config knob. When in doubt, list models on the unprefixed /v1/models endpoint and read each entry's owned_by field.
Targeting a network
Every Cocoon-bound HTTP and WebSocket route is reachable under three shapes:
Shape | Path pattern | Routes to |
|---|---|---|
Default |
| The deployment's |
Classic explicit |
| Always |
Alpha explicit |
| Always |
Use the explicit forms when you want stable routing that doesn't follow operator changes to default_network, or when the default network doesn't have the model you need.
The full Cocoon-bound route grid:
Surface | Default | Classic explicit | Alpha explicit |
|---|---|---|---|
Chat completions |
|
|
|
List models |
|
|
|
List workers |
|
|
|
Cocoon WebSocket |
|
|
|
Network-agnostic routes (/mcp, /rpc, /v1/midnight/rpc, /.well-known/*) don't have prefixed forms; they're not Cocoon-bound.
Inspecting which networks are enabled
The same model id appears once per enabled network. To see only one network, use the prefixed form:
The created field that OpenAI's spec includes is intentionally omitted: Cocoon doesn't have a meaningful creation timestamp for a registered model, so synthesizing one would mislead.
Pinning a network from a client
OpenAI-compatible clients
Pin by setting base_url to a network-prefixed path:
Cocoon Go SDK
Override the per-route paths so each call goes to the prefixed endpoint:
The SDK defaults are the unprefixed routes (/v1/models, /v1/cocoon/stream, /v1/cocoon/workers), which follow the deployment default_network.
Cocoon TypeScript SDK
When to pin
If you don't have a reason to care, leave the prefix off and let the deployment default decide. Pin explicitly when:
The model you need isn't on the default network — check
/v1/modelsfirst.You're running A/B comparisons across networks.
You need stable routing that won't follow an operator change to
default_network.You're integrating against a partner that requires a specific network.
Related
OpenAI-compatible API — chat completions reference.
Confidential inference — Cocoon architecture.