What the sandbox API normalizes
Applications call the same four operations for every supported provider. Provider selection is explicit when a sandbox is created, and the returned routeable ID sends later calls back to that same provider-native resource.
Create
POST /v1/sandboxes creates a persistent sandbox.
Get
GET /v1/sandboxes/{id} reads normalized state.
Execute
POST /v1/sandboxes/{id}/exec runs a command in place.
Delete
DELETE /v1/sandboxes/{id} removes the selected sandbox.
Discover provider capabilities
GET /v1/providers returns the stable ID, display name, normalized published price, image mode, timeout mode, output-stream behavior, and supported lifecycle capabilities for each configured provider. It requires the Wildflower Computer API key but no provider credential.
Retry creates safely
Send a caller-generated Idempotency-Key with create requests. A completed request replayed with the same body and non-secret provider connection context returns the original sandbox; conflicting input, a concurrent attempt, or an uncertain earlier outcome fails closed instead of dispatching another provider create.
A language-independent lifecycle
The generated SDKs call this JSON-over-HTTP contract. The same API remains available directly from any language that can make HTTP requests.
export WILDFLOWER_URL="http://localhost:8080"export WILDFLOWER_API_KEY="<your-wildflower-api-key>"export PROVIDER_API_KEY="$E2B_API_KEY"sandbox_id=$( curl -fsS "$WILDFLOWER_URL/v1/sandboxes" \ -H "Authorization: Bearer $WILDFLOWER_API_KEY" \ -H "Content-Type: application/json" \ -H "X-Provider-Api-Key: $PROVIDER_API_KEY" \ -H "Idempotency-Key: logical-create-42" \ --data '{"provider":"e2b","image":"base","timeout":300}' | jq -r '.id')curl -fsS "$WILDFLOWER_URL/v1/sandboxes/$sandbox_id/exec" \ -H "Authorization: Bearer $WILDFLOWER_API_KEY" \ -H "Content-Type: application/json" \ -H "X-Provider-Api-Key: $PROVIDER_API_KEY" \ --data '{"command":"echo hello > /tmp/hello && cat /tmp/hello"}'curl -fsS -X DELETE "$WILDFLOWER_URL/v1/sandboxes/$sandbox_id" \ -H "Authorization: Bearer $WILDFLOWER_API_KEY" \ -H "X-Provider-Api-Key: $PROVIDER_API_KEY"Two authentication boundaries
Authorization: Bearer <key> authenticates the application to Wildflower Computer. X-Provider-Api-Key carries the customer-owned credential for the selected provider. Blaxel also requires non-secret workspace routing context in X-Provider-Workspace.
Provider profiles can be connected once per project. PostgreSQL mode encrypts their credentials at rest; static local mode retains them only in process memory. Inline credentials remain available as ephemeral per-request overrides.
What stays provider-specific
Wildflower Computer does not flatten differences that affect behavior. Image meanings, timeout semantics, command-output handling, and sleep states remain documented in the provider compatibility matrix.
Current limitations
- No automatic failover or migration between providers.
- No hosted secret manager beyond project-scoped provider profiles.
- No provider resale, billing layer, or marketplace.
- No AI model execution or completed agent runtime.
