Sandbox Commands
Commands for managing On-Demand Sandboxes.
Alias
These commands were previously available as b2c ods <command>. The ods prefix still works as a backward-compatible alias.
Sandbox ID Formats
Commands that operate on a specific sandbox (get, start, stop, restart, delete) accept two ID formats:
| Format | Example | Description |
|---|---|---|
| UUID | abc12345-1234-1234-1234-abc123456789 | Full sandbox UUID |
| Realm-instance | zzzv-123 or zzzv_123 | Realm-instance format |
The realm-instance format uses the 4-character realm code followed by a dash (-) or underscore (_) and the instance identifier. When using the realm-instance format, the CLI automatically looks up the corresponding sandbox UUID.
# These are equivalent (assuming zzzv-123 resolves to the UUID)
b2c sandbox get abc12345-1234-1234-1234-abc123456789
b2c sandbox get zzzv-123Global Sandbox Flags
These flags are available on all sandbox commands:
| Flag | Environment Variable | Description |
|---|---|---|
--sandbox-api-host | SFCC_SANDBOX_API_HOST | Sandbox API hostname (default: admin.dx.commercecloud.salesforce.com) |
Authentication
Sandbox commands work out of the box using the CLI's built-in public client, which authenticates via browser login (implicit flow). No API client configuration is required for interactive use.
For automation or CI/CD, you can provide your own API client credentials.
Required Roles
| Auth Method | Role | Configured On |
|---|---|---|
| Built-in client (default) | Sandbox API User | Your user account |
| User Authentication | Sandbox API User | Your user account |
| Client Credentials | Sandbox API User | The API client |
The Sandbox API User role must have a tenant filter configured for the realm(s) you wish to manage.
Configuration
# No configuration needed — opens browser for login
b2c sandbox list
# Or provide your own client ID
b2c sandbox list --client-id xxx
# Client Credentials (for automation)
export SFCC_CLIENT_ID=my-client
export SFCC_CLIENT_SECRET=my-secret
b2c sandbox listFor complete setup instructions, see the Authentication Guide.
b2c sandbox list
List all on-demand sandboxes accessible to your account.
Usage
b2c sandbox listFlags
| Flag | Description | Default |
|---|---|---|
--realm, -r | Filter by realm ID (four-letter ID) | |
--filter-params | Raw filter parameters (e.g., "realm=abcd&state=started") | |
--show-deleted | Include deleted sandboxes in the list | false |
--columns, -c | Columns to display (comma-separated) | |
--extended, -x | Show all columns including extended fields | false |
Available Columns
realm, instance, state, profile, created, eol, id, hostname, createdBy, autoScheduled
Examples
# List all sandboxes
b2c sandbox list
# Filter by realm
b2c sandbox list --realm abcd
# Filter by state and realm
b2c sandbox list --filter-params "realm=abcd&state=started"
# Show extended information
b2c sandbox list --extended
# Custom columns
b2c sandbox list --columns realm,instance,state,hostname
# Output as JSON
b2c sandbox list --jsonOutput
Realm Instance State Profile Created EOL
──────────────────────────────────────────────────────────────────────────
abcd 001 started medium 12/20/2024, 10:00 AM 12/21/2024, 10:00 AM
abcd 002 stopped large 12/19/2024, 2:30 PM 12/20/2024, 2:30 PMb2c sandbox create
Create a new on-demand sandbox.
Usage
b2c sandbox create --realm <REALM>Flags
| Flag | Description | Default |
|---|---|---|
--realm, -r | (Required) Realm ID (four-letter ID) | |
--ttl | Time to live in hours (0 for infinite) | 24 |
--profile | Resource profile (medium, large, xlarge, xxlarge) | medium |
--auto-scheduled | Enable automatic start/stop scheduling | false |
--wait, -w | Wait for sandbox to reach started or failed state | false |
--poll-interval | Polling interval in seconds when using --wait | 10 |
--timeout | Maximum wait time in seconds (0 for no timeout) | 600 |
--set-permissions / --no-set-permissions | Automatically set OCAPI and WebDAV permissions | true |
--permissions-client-id | Client ID to use for default OCAPI/WebDAV permissions (defaults to auth client ID) | |
--ocapi-settings | Custom OCAPI settings JSON array (replaces defaults) | |
--webdav-settings | Custom WebDAV settings JSON array (replaces defaults) | |
--start-scheduler | Start schedule JSON | |
--stop-scheduler | Stop schedule JSON |
Examples
# Create a sandbox with default settings
b2c sandbox create --realm abcd
# Create with extended TTL
b2c sandbox create --realm abcd --ttl 48
# Create with larger resources
b2c sandbox create --realm abcd --profile large
# Create and wait for it to be ready
b2c sandbox create --realm abcd --wait
# Create with auto-scheduling enabled
b2c sandbox create --realm abcd --auto-scheduled
# Create without automatic permissions
b2c sandbox create --realm abcd --no-set-permissions
# Use a different client ID for permissions
b2c sandbox create --realm abcd --permissions-client-id my-other-client
# Custom OCAPI settings (replaces defaults)
b2c sandbox create --realm abcd --ocapi-settings '[{"client_id":"my-client","resources":[{"resource_id":"/code_versions","methods":["get"]}]}]'
# Custom start/stop scheduler
b2c sandbox create --realm abcd --start-scheduler '{"weekdays":["MONDAY","TUESDAY"],"time":"08:00:00Z"}' --stop-scheduler '{"weekdays":["MONDAY","TUESDAY"],"time":"19:00:00Z"}'
# Output as JSON
b2c sandbox create --realm abcd --jsonNotes
- Sandbox creation can take several minutes
- Use
--waitto block until the sandbox is ready - By default, OCAPI and WebDAV permissions are set for the auth client ID. Use
--permissions-client-idto override the client ID, or--ocapi-settings/--webdav-settingsto provide fully custom settings - The
--start-schedulerand--stop-schedulerflags accept JSON objects withweekdaysandtimefields
b2c sandbox get
Get details of a specific sandbox.
Usage
b2c sandbox get <SANDBOXID>Arguments
| Argument | Description | Required |
|---|---|---|
SANDBOXID | Sandbox ID (UUID or realm-instance, e.g., zzzv-123) | Yes |
Examples
# Get sandbox details using UUID
b2c sandbox get abc12345-1234-1234-1234-abc123456789
# Get sandbox details using realm-instance format
b2c sandbox get zzzv-123
# Output as JSON
b2c sandbox get zzzv_123 --jsonOutput
Displays detailed information about the sandbox including:
- Sandbox ID and instance
- Realm and hostname
- State and resource profile
- Creation time and end-of-life
- Links to BM and storefront
b2c sandbox info
Display sandbox user and system information.
Usage
b2c sandbox infoExamples
# Get sandbox info
b2c sandbox info
# Output as JSON
b2c sandbox info --jsonOutput
Displays information about:
- Authenticated user
- Available realms
- System status and limits
b2c sandbox start
Start a stopped on-demand sandbox.
Usage
b2c sandbox start <SANDBOXID>Arguments
| Argument | Description | Required |
|---|---|---|
SANDBOXID | Sandbox ID (UUID or realm-instance, e.g., zzzv-123) | Yes |
Examples
# Start a sandbox using UUID
b2c sandbox start abc12345-1234-1234-1234-abc123456789
# Start a sandbox using realm-instance format
b2c sandbox start zzzv-123
# Output as JSON
b2c sandbox start zzzv_123 --jsonb2c sandbox stop
Stop a running on-demand sandbox.
Usage
b2c sandbox stop <SANDBOXID>Arguments
| Argument | Description | Required |
|---|---|---|
SANDBOXID | Sandbox ID (UUID or realm-instance, e.g., zzzv-123) | Yes |
Examples
# Stop a sandbox using UUID
b2c sandbox stop abc12345-1234-1234-1234-abc123456789
# Stop a sandbox using realm-instance format
b2c sandbox stop zzzv-123
# Output as JSON
b2c sandbox stop zzzv_123 --jsonb2c sandbox restart
Restart an on-demand sandbox.
Usage
b2c sandbox restart <SANDBOXID>Arguments
| Argument | Description | Required |
|---|---|---|
SANDBOXID | Sandbox ID (UUID or realm-instance, e.g., zzzv-123) | Yes |
Examples
# Restart a sandbox using UUID
b2c sandbox restart abc12345-1234-1234-1234-abc123456789
# Restart a sandbox using realm-instance format
b2c sandbox restart zzzv-123
# Output as JSON
b2c sandbox restart zzzv_123 --jsonb2c sandbox delete
Delete an on-demand sandbox.
Usage
b2c sandbox delete <SANDBOXID>Arguments
| Argument | Description | Required |
|---|---|---|
SANDBOXID | Sandbox ID (UUID or realm-instance, e.g., zzzv-123) | Yes |
Flags
| Flag | Description | Default |
|---|---|---|
--force, -f | Skip confirmation prompt | false |
Examples
# Delete a sandbox using UUID (with confirmation prompt)
b2c sandbox delete abc12345-1234-1234-1234-abc123456789
# Delete a sandbox using realm-instance format
b2c sandbox delete zzzv-123
# Delete without confirmation
b2c sandbox delete zzzv_123 --forceNotes
- The command will prompt for confirmation unless
--forceis used - Deleted sandboxes cannot be recovered