---
schema_version: "1"
id: abf93a5bdf078cca0d85a9299f03a638e30546ce8c11fa650122210aebdf6b1c
title: B2C Commerce Developer Sandbox REST API
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/commerce-cloud/b2c-commerce/references/generated-api-specs/ods-rest-api.md
canonical_url: https://developer.salesforce.com/docs/commerce/b2c-commerce/references/ods-rest-api
source_site: developer.salesforce.com
content_type: documentation
content_hash: 2fd8f8e76dacba0245a63b3e4f7644b2428333ac684750e1dd90a1d7557c2dd3
products:
  - B2C Commerce
  - Salesforce APIs
---
B2C Commerce Developer Sandbox REST API

# B2C Commerce Developer Sandbox REST API

B2C Commerce provides a REST API to manage developer sandboxes. The API allows you to create, manage, and delete developer sandboxes.

**Version:** 1.0

## Servers

*   `https://admin.dx.commercecloud.salesforce.com/api/v1`

Protocols: https.

## Security

*   `AccountManager` (oauth2) Authenticate using Commerce Cloud Account Manager with your SSO credentials.
    *   OAuth flow implicit (authorizationUrl: https://account.demandware.com:443/dwsso/oauth2/authorize)
*   `ClientCredentials` (oauth2) Authenticate using Commerce Cloud Account Manager with your client credentials.
    *   OAuth flow application (tokenUrl: https://account.demandware.com:443/dwsso/oauth2/access\_token)

## Tags

### Common

General purpose API endpoints.

### Realms

Operations on the realm level.

### Sandboxes

Operations on the sandbox level.

## Operations

### GET Retrieve API information.

`GET /`

Operation ID: `getApiInfo`. Tags: Common.

Return API version information.

#### Responses

*   **200** API version information.
    
    Media type: `application/json`. Schema: `ApiVersionResponse`.
    

### GET Retrieve user information.

`GET /me`

Operation ID: `getUserInfo`. Tags: Common. Security: AccountManager; ClientCredentials.

Return information about the user interacting with the API.

#### Responses

*   **200** Metadata about the authenticated API user.
    
    Media type: `application/json`. Schema: `UserInfoResponse`.
    

### GET Retrieve system information

`GET /system`

Operation ID: `getSystemInfo`. Tags: Common. Security: AccountManager; ClientCredentials.

Returns information about the system, the user is interacting with.

#### Responses

*   **200** Metadata about the system
    
    Media type: `application/json`. Schema: `SystemInfoResponse`.
    

### GET Retrieve system information

`GET /realms/{realm}/system`

Operation ID: `getRealmSystemInfo`. Tags: Common. Security: AccountManager; ClientCredentials.

Returns information about the system, the user is interacting with.

#### Parameters

*   `realm` (path, string, required) The four-letter ID of the realm.

#### Responses

*   **200** Metadata about the system
    
    Media type: `application/json`. Schema: `SystemInfoResponse`.
    

### GET Show realm information.

`GET /realms/{realm}`

Operation ID: `getRealm`. Tags: Realms. Security: AccountManager; ClientCredentials.

Return metadata about a realm.

#### Parameters

*   `realm` (path, string, required) The four-letter ID of the realm.
*   `expand` (query, array of string) Additional information, which should be shown in the realm query. Available options are: \[configuration,usage\].  
    Items: Allowed values: `configuration`, `usage`.

#### Responses

*   **200** Realm metadata.
    
    Media type: `application/json`. Schema: `RealmResponse`.
    
*   **400** The ID is not a valid realm ID.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
*   **401** The user isn't authenticated.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
*   **403** The user doesn't have access to the realm.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
*   **404** There isn't any realm with that ID.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    

### GET Show realm configuration.

`GET /realms/{realm}/configuration`

Operation ID: `getRealmConfiguration`. Tags: Realms. Security: AccountManager; ClientCredentials.

Return the current configuration values of the realm.

#### Parameters

*   `realm` (path, string, required) The four-letter ID of the realm.

#### Responses

*   **200** Current configuration values of the realm.
    
    Media type: `application/json`. Schema: `RealmConfigurationResponse`.
    
*   **400** The ID isn't valid or the configuration isn't valid.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
*   **403** The user doesn't have access to that realm.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
*   **404** There isn't any realm with that ID.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    

### PATCH Update realm configuration.

`PATCH /realms/{realm}/configuration`

Operation ID: `patchRealmConfiguration`. Tags: Realms. Security: AccountManager; ClientCredentials.

Update the customizable configuration of a realm. Note that the internal time format in weekday schedules is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Times).

#### Parameters

*   `realm` (path, string, required) The four-letter ID of the realm.

#### Request body (required)

Realm values to update.

Media type: `application/json`. Schema: `RealmConfigurationUpdateRequestModel`.

#### Responses

*   **200** Updated realm configuration data.
    
    Media type: `application/json`. Schema: `RealmConfigurationResponse`.
    
*   **400** The ID isn't a valid realm ID.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
*   **401** The user isn't authenticated.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
*   **403** The user doesn't have access to that realm.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
*   **404** There isn't any realm with that ID.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    

### GET Show usage information for realm.

`GET /realms/{realm}/usage`

Operation ID: `getRealmUsage`. Tags: Realms. Security: AccountManager; ClientCredentials.

Return information about the realm's usage.

#### Parameters

*   `realm` (path, string, required) The four-letter ID of the realm.
*   `from` (query, string (date)) Earliest date for which data is in the response. Thirty days in the past by default. Format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).
*   `to` (query, string (date)) Latest date for which data is included in the response. Today's date by default. Format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).
*   `detailedReport` (query, boolean) Field to check whether detailed report is to be retrieved, by default detailed report will not be pulled  
    Allowed values: `false`, `true`. Default: `false`.

#### Responses

*   **200** Realm's usage information.
    
    Media type: `application/json, text/csv`. Schema: `RealmUsageResponse`.
    
*   **400** The ID isn't valid.
    
    Media type: `application/json, text/csv`. Schema: `ErrorResponse`.
    
*   **403** The user doesn't have access to the realm.
    
    Media type: `application/json, text/csv`. Schema: `ErrorResponse`.
    
*   **404** There isn't any realm with that ID.
    
    Media type: `application/json, text/csv`. Schema: `ErrorResponse`.
    

### POST Show usage information for given realms.

`POST /realms/usages`

Operation ID: `searchRealmUsage`. Tags: Realms. Security: AccountManager; ClientCredentials.

Update the customizable configuration of a realm. Note that the internal time format in weekday schedules is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Times).

#### Request body (required)

Return information for given all realm's usage

Media type: `application/json`. Schema: `MultiRealmUsageRequest`.

#### Responses

*   **200** Aggregates all realm usage data.
    
    Media type: `application/json, text/csv`. Schema: `MultiRealmUsageResponse`.
    
*   **400** The ID isn't a valid realm ID.
    
    Media type: `application/json, text/csv`. Schema: `ErrorResponse`.
    
*   **401** The user isn't authenticated.
    
    Media type: `application/json, text/csv`. Schema: `ErrorResponse`.
    
*   **403** The user doesn't have access to that realm.
    
    Media type: `application/json, text/csv`. Schema: `ErrorResponse`.
    
*   **404** There isn't any realm with that ID.
    
    Media type: `application/json, text/csv`. Schema: `ErrorResponse`.
    

### GET List sandboxes.

`GET /sandboxes`

Operation ID: `getSandboxes`. Tags: Sandboxes. Security: AccountManager; ClientCredentials.

Return all sandboxes of a realm.

#### Parameters

*   `include_deleted` (query, boolean) If set, return deleted sandboxes.
*   `filter_params` (query, string) If passed in supported format, returns sandboxes that matches the query. Supported format: state=active&resourceProfile=medium&createdBy=user1&tags=\[tag1,tag2,tag3\].

#### Responses

*   **200** List of sandboxes.
    
    Media type: `application/json`. Schema: `SandboxListResponse`.
    
*   **400** The request parameters are invalid (bad request).
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
*   **403** The user doesn't have access to that realm.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
*   **404** There isn't any realm with that ID.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    

### POST Create sandbox.

`POST /sandboxes`

Operation ID: `createSandbox`. Tags: Sandboxes. Security: AccountManager; ClientCredentials.

Create a new sandbox within the realm.

#### Request body (required)

Metadata about the new sandbox.

Media type: `application/json`. Schema: `SandboxProvisioningRequestModel`.

#### Responses

*   **201** The sandbox creation has started.
    
    Headers:
    
    *   `Location` (string) URI of the created sandbox.
    
    Media type: `application/json`. Schema: `SandboxResponse`.
    
*   **400** The request parameters are invalid (bad request).
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
*   **403** The user doesn't have access to the realm.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
*   **404** There isn't any realm with that ID.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
*   **500** There were server errors initiating the sandbox deployment.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    

### GET Retrieve sandbox information.

`GET /sandboxes/{sandboxId}`

Operation ID: `getSandbox`. Tags: Sandboxes. Security: AccountManager; ClientCredentials.

Return details on a specific sandbox in a realm.

#### Parameters

*   `sandboxId` (path, string (uuid), required) The sandbox UUID.

#### Responses

*   **200** Details on the sandbox (including its state).
    
    Media type: `application/json`. Schema: `SandboxResponse`.
    
*   **400** The request parameters are invalid (bad request).
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
*   **403** The user doesn't have access to the requested realm.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
*   **404** There isn't any realm with that ID.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    

### DELETE Delete sandbox.

`DELETE /sandboxes/{sandboxId}`

Operation ID: `deleteSandbox`. Tags: Sandboxes. Security: AccountManager; ClientCredentials.

Delete a specific sandbox in a realm.

#### Parameters

*   `sandboxId` (path, string (uuid), required) The sandbox UUID.

#### Responses

*   **202** The request for deleting the sandbox has been accepted by the API server. This doesn't mean that the sandbox has already been deleted, since the actual deletion process does not necessarily start immediately and might take a while. You can track the deletion process using sandbox GET requests.
    
    Media type: `application/json`. Schema: `StatusResponse`.
    
*   **400** The request parameters are invalid (bad request).
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
*   **403** The user doesn't have access to that realm.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
*   **404** ID not found.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    

### PATCH Update sandbox.

`PATCH /sandboxes/{sandboxId}`

Operation ID: `patchSandbox`. Tags: Sandboxes. Security: AccountManager; ClientCredentials.

Update a sandbox.

#### Parameters

*   `sandboxId` (path, string (uuid), required) The sandbox UUID.

#### Request body (required)

Sandbox values to update.

Media type: `application/json`. Schema: `SandboxUpdateRequestModel`.

#### Responses

*   **200** Updated details on the sandbox (including its state).
    
    Media type: `application/json`. Schema: `SandboxResponse`.
    
*   **400** The request parameters are invalid (bad request).
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
*   **403** The user doesn't have access to the realm.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
*   **404** There isn't any sandbox with that ID.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    

### GET Read all sandbox aliases

`GET /sandboxes/{sandboxId}/aliases`

Operation ID: `getAliases`. Tags: Sandboxes. Security: AccountManager; ClientCredentials.

Retrieve a list of all past and present operations on a sandbox within the realm.

#### Parameters

*   `sandboxId` (path, string (uuid), required) The sandbox UUID.

#### Responses

*   **200** List of Alias configurations.
    
    Media type: `application/json`. Schema: `SandboxAliasListResponse`.
    
*   **403** The user doesn't have access to the realm or sandbox.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
*   **404** There isn't any sandbox with that ID.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    

### POST Create sandbox alias.

`POST /sandboxes/{sandboxId}/aliases`

Operation ID: `createAlias`. Tags: Sandboxes. Security: AccountManager; ClientCredentials.

Create a new sandbox alias.

#### Parameters

*   `sandboxId` (path, string (uuid), required) The sandbox UUID.

#### Request body (required)

The alias for the sandbox

Media type: `application/json`. Schema: `SandboxAliasModel`.

#### Responses

*   **200** The sandbox alias already exists.
    
    Media type: `application/json`. Schema: `SandboxAliasResponse`.
    
*   **201** The alias has been created.
    
    Media type: `application/json`. Schema: `SandboxAliasResponse`.
    
*   **400** The request parameters are invalid (bad request).
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
*   **403** The user doesn't have access to the sandbox.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
*   **404** There isn't any sandbox with that ID.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    

### GET Read Alias configuration

`GET /sandboxes/{sandboxId}/aliases/{sandboxAliasId}`

Operation ID: `getAlias`. Tags: Sandboxes. Security: AccountManager; ClientCredentials.

Retrieves a dedicated alias for the sandbox. Can be called without authentication to get cookie values for the alias.

#### Parameters

*   `sandboxId` (path, string (uuid), required) The sandbox UUID.
*   `sandboxAliasId` (path, string (uuid), required) The sandbox alias UUID.

#### Responses

*   **200** The Alias configuration.
    
    Media type: `application/json`. Schema: `SandboxAliasResponse`.
    
*   **403** The user doesn't have access to the realm or sandbox.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
*   **404** There isn't any sandbox or any alias with that ID.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    

### DELETE Delete Alias configuration

`DELETE /sandboxes/{sandboxId}/aliases/{sandboxAliasId}`

Operation ID: `deleteAlias`. Tags: Sandboxes. Security: AccountManager; ClientCredentials.

Deletes a dedicated alias configuration for a sandbox.

#### Parameters

*   `sandboxId` (path, string (uuid), required) The sandbox UUID.
*   `sandboxAliasId` (path, string (uuid), required) The sandbox alias UUID.

#### Responses

*   **202** Shows, that alias currently gets deleted.
    
    Media type: `application/json`. Schema: `StatusResponse`.
    
*   **403** The user doesn't have access to the realm or sandbox.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
*   **404** There isn't any sandbox or any alias with that ID.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    

### GET List sandbox operations.

`GET /sandboxes/{sandboxId}/operations`

Operation ID: `getSandboxOperations`. Tags: Sandboxes. Security: AccountManager; ClientCredentials.

Retrieve a list of all past and present operations on a sandbox within the realm.

#### Parameters

*   `sandboxId` (path, string (uuid), required) The sandbox UUID.
*   `from` (query, string (date)) Earliest date for which data is in the response. Thirty days in the past by default. Format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).
*   `to` (query, string (date)) Latest date for which data is included in the response. Today's date by default. Format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).
*   `operation_state` (query, string) State of operations included in the response. By default, all operations are included.  
    Allowed values: `pending`, `running`, `finished`.
*   `status` (query, string) Status of operations included in the response. By default, all operations are included.  
    Allowed values: `success`, `failure`.
*   `operation` (query, string) Type of operations included in the response. By default, all operations are included.  
    Allowed values: `start`, `stop`, `restart`, `reset`, `create`, `delete`, `upgrade`.
*   `sort_order` (query, string) Order of the list. Default value is ''asc''.  
    Allowed values: `asc`, `desc`.
*   `sort_by` (query, string) Field by which to order the list. By default, the list is not ordered.  
    Allowed values: `created`, `operation_state`, `status`, `operation`.
*   `page` (query, integer (int32)) The page to access in a paged response. Page numbers start with '0', which is the default value.  
    Minimum: 0.
*   `per_page` (query, integer (int32)) Count of elements on a page. The default value is '20'.  
    Minimum: 1.

#### Responses

*   **200** List of operations.
    
    Headers:
    
    *   `Link` (string) Paging metadata, as described in [RFC-5988](https://tools.ietf.org/html/rfc5988)
    *   `X-Pagination-Count` (integer (int32)) Total count of elements.
    *   `X-Pagination-Page` (integer (int32)) Current page index.
    *   `X-Pagination-Limit` (integer (int32)) Maximum count of pages.
    
    Media type: `application/json`. Schema: `SandboxOperationListResponse`.
    
*   **400** The request parameters are invalid (bad request).
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
*   **403** The user doesn't have access to the sandbox.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
*   **404** There isn't any sandbox with that ID.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
*   **500** There were server errors during the operation.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    

### POST Run sandbox operation.

`POST /sandboxes/{sandboxId}/operations`

Operation ID: `createSandboxOperation`. Tags: Sandboxes. Security: AccountManager; ClientCredentials.

Request an operation on a sandbox within the realm.

#### Parameters

*   `sandboxId` (path, string (uuid), required) The sandbox UUID.

#### Request body (required)

Operation to be carried out on a sandbox.

Media type: `application/json`. Schema: `SandboxOperationRequestModel`.

#### Responses

*   **202** The operation has been accepted.
    
    Media type: `application/json`. Schema: `SandboxOperationResponse`.
    
*   **400** The request parameters are invalid (bad request).
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
*   **403** The user doesn't have access to the sandbox.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
*   **404** There isn't any sandbox with that ID.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
*   **422** The operation isn't allowed in the current state of the sandbox.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
*   **500** There were server errors during the operation.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    

### GET Retrieve sandbox operation.

`GET /sandboxes/{sandboxId}/operations/{operationId}`

Operation ID: `getSandboxOperation`. Tags: Sandboxes. Security: AccountManager; ClientCredentials.

Return details of a sandbox operation that was recently submitted, is currently in progress, or has already finished.

#### Parameters

*   `sandboxId` (path, string (uuid), required) The sandbox UUID.
*   `operationId` (path, string (uuid), required) The operation UUID.

#### Responses

*   **200** Details of the sandbox operation's state and the state of its target. If the operation has already finished, indicates whether the operation was successful.
    
    Media type: `application/json`. Schema: `SandboxOperationResponse`.
    
*   **400** The request parameters are invalid (bad request).
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
*   **403** The user doesn't have access to the requested operation or sandbox.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
*   **404** There isn't any sandbox or realm matching the given parameters.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    

### GET Show sandbox settings.

`GET /sandboxes/{sandboxId}/settings`

Operation ID: `getSandboxSettings`. Tags: Sandboxes. Security: AccountManager; ClientCredentials.

Return all settings of the sandbox.

#### Parameters

*   `sandboxId` (path, string (uuid), required) The sandbox UUID.

#### Responses

*   **200** Details of the sandbox settings.
    
    Media type: `application/json`. Schema: `SandboxSettingsResponse`.
    
*   **400** The sandbox ID isn't valid.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
*   **403** The user doesn't have access to the requested sandbox.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
*   **404** There isn't any sandbox matching the ID.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    

### GET Show sandbox usage.

`GET /sandboxes/{sandboxId}/usage`

Operation ID: `getSandboxUsage`. Tags: Sandboxes. Security: AccountManager; ClientCredentials.

Return information on sandbox usage.

#### Parameters

*   `sandboxId` (path, string (uuid), required) The sandbox UUID.
*   `from` (query, string (date)) Earliest date for which data is in the response. Thirty days in the past by default. Format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).
*   `to` (query, string (date)) Latest date for which data is included in the response. Today's date by default. Format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).

#### Responses

*   **200** Sandbox usage information.
    
    Media type: `application/json`. Schema: `SandboxUsageResponse`.
    
*   **400** The sandbox ID isn't valid.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
*   **403** The user doesn't have access to the requested sandbox.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
*   **404** There isn't any sandbox matching the ID.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    

### GET Show sandbox storage

`GET /sandboxes/{sandboxId}/storage`

Operation ID: `getSandboxStorage`. Tags: Sandboxes. Security: AccountManager; ClientCredentials.

Return information on sandbox storage capacity for a currently running sandbox.

#### Parameters

*   `sandboxId` (path, string (uuid), required) The sandbox UUID.

#### Responses

*   **200** Sandbox storage information.
    
    Media type: `application/json`. Schema: `SandboxStorageResponse`.
    
*   **400** The sandbox ID isn't valid.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
*   **403** The user doesn't have access to the requested sandbox.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
*   **404** There isn't any sandbox matching the ID.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    

## Schemas

### ApiVersionResponse

Includes all fields of `StatusResponse`.

*   `data` (_ApiVersion_)

### UserInfoResponse

Includes all fields of `StatusResponse`.

*   `data` (_UserInfoSpec_)

### SystemInfoResponse

Includes all fields of `StatusResponse`.

*   `data` (_SystemInfoSpec_)

### RealmResponse

Includes all fields of `StatusResponse`.

*   `data` (_RealmModel_)

### ErrorResponse

Includes all fields of `StatusResponse`.

*   `error` (_ErrorModel_)

### RealmConfigurationResponse

Includes all fields of `StatusResponse`.

*   `data` (_RealmConfigurationModel_)

### RealmConfigurationUpdateRequestModel

*   `emails` (_array of string_)  
    Items: Pattern: (.+)@(.+).
    
    _Example_
    
    ```
    [
      "email1@example.com",
      "email2@example.com"
    ]
    ```
    
*   `sandbox` (_RealmSandboxConfigurationUpdateModel_)

### RealmUsageResponse

Includes all fields of `StatusResponse`.

*   `data` (_RealmUsageModel_)

### MultiRealmUsageRequest

*   `from` (_string (date)_) Time the sandbox was started.
*   `to` (_string (date)_) Time the sandbox was stopped. If the sandbox is still running, this value will not exist for the last block.
*   `realms` (_array of string_)
*   `detailedReport` (_boolean_) Field to check whether detailed report is to be retrieved, by default detailed report will not be pulled.  
    Allowed values: `false`, `true`. Default: `false`.

### MultiRealmUsageResponse

Includes all fields of `StatusResponse`.

*   `data` (_array of MultiRealmUsageModel_)

### SandboxListResponse

Includes all fields of `StatusResponse`.

*   `data` (_array of SandboxModel_)

### SandboxProvisioningRequestModel

*   `realm` (_string_, required)
*   `emails` (_array of string_)  
    Items: Pattern: (.+)@(.+).
*   `ttl` (_integer (int32)_) Number of hours the sandbox will live (must adhere to the maximum TTL quotas). If set to 0 or less, the sandbox will have an infinite lifetime.
*   `autoScheduled` (_boolean_) Defaults to false. If set to true, the sandbox is covered by automatic start/stop actions, which can be set to a dedicated time via realm- configuration API.
*   `tags` (_array of string_)
*   `startScheduler` (_any_, nullable)
*   `stopScheduler` (_any_, nullable)
*   `resourceProfile` (_SandboxResourceProfile_)
*   `settings` (_SandboxSettings_)

_Example_

```
{
  "realm": "<your realm id>",
  "emails": [
    "email1@example.com",
    "email2@example.com"
  ],
  "ttl": 24,
  "autoScheduled": false,
  "tags": [
    "<your-custom-tag>"
  ],
  "startScheduler": {
    "weekdays": [
      "MONDAY",
      "TUESDAY",
      "WEDNESDAY",
      "THURSDAY",
      "FRIDAY"
    ],
    "time": "08:00:00+03:00"
  },
  "stopScheduler": {
    "weekdays": [
      "MONDAY",
      "TUESDAY",
      "WEDNESDAY",
      "THURSDAY",
      "FRIDAY"
    ],
    "time": "19:00:00Z"
  },
  "resourceProfile": "medium",
  "settings": {
    "ocapi": [
      {
        "client_id": "<your client id>",
        "resources": [
          {
            "resource_id": "/**",
            "methods": [
              "get",
              "post",
              "put",
              "patch",
              "delete"
            ],
            "read_attributes": "(**)",
            "write_attributes": ""
          }
        ]
      }
    ],
    "webdav": [
      {
        "client_id": "<your client id>",
        "permissions": [
          {
            "path": "/cartridges",
            "operations": [
              "read_write"
            ]
          },
          {
            "path": "/impex",
            "operations": [
              "read_write"
            ]
          }
        ]
      }
    ]
  }
}
```

### SandboxResponse

Includes all fields of `StatusResponse`.

*   `data` (_SandboxModel_)

### StatusResponse

Includes all fields of `Response`.

*   `status` (_string_, required) String with value 'Success' or 'Failure' to indicate request outcome.  
    Allowed values: `Success`, `Failure`.

### SandboxUpdateRequestModel

*   `emails` (_array of string_)  
    Items: Pattern: (.+)@(.+).
*   `ttl` (_integer (int32)_) Number of hours added to the sandbox lifetime (must, together with previous extensions, adhere to the maximum TTL configuration). If set to 0 or less, the sandbox will have an infinite lifetime.
*   `autoScheduled` (_boolean_) If set to true, this sandbox will be captured by automated start-/stop -management.
*   `tags` (_array of string_)
*   `startScheduler` (_any_, nullable)
*   `stopScheduler` (_any_, nullable)

_Example_

```
{
  "emails": [
    "email1@example.com",
    "email2@example.com"
  ],
  "ttl": null,
  "autoScheduled": false,
  "tags": [
    "<your-custom-tag>"
  ],
  "startScheduler": {
    "weekdays": [
      "MONDAY",
      "TUESDAY",
      "WEDNESDAY",
      "THURSDAY",
      "FRIDAY"
    ],
    "time": "08:00:00+03:00"
  },
  "stopScheduler": {
    "weekdays": [
      "MONDAY",
      "TUESDAY",
      "WEDNESDAY",
      "THURSDAY",
      "FRIDAY"
    ],
    "time": "19:00:00Z"
  }
}
```

### SandboxAliasListResponse

Includes all fields of `StatusResponse`.

*   `data` (_array of SandboxAliasModel_)

### SandboxAliasModel

*   `id` (_string (uuid)_, read-only) The sandbox alias UUID.
*   `name` (_string_, required) The alias name.  
    Example: `www.example.com`.
*   `unique` (_boolean_) Define if it's a unique configuration  
    Example: `false`.
*   `requestLetsEncryptCertificate` (_boolean_) Request a valid certificate to be generated on the fly through Lets Encrypt. This action consumes certificate requests from the domain quota imposed by Let's Encrypt, please read the Alias documentation carefully.  
    Example: `false`.
*   `sandboxId` (_string (uuid)_, read-only) The UUID of the sandbox the sandbox alias is pointing to.
*   `cookie` (_object_, read-only) The cookie required for each request to this alias.
    *   `name` (_string_, required)
    *   `value` (_string_, required)
    *   `path` (_string_)
    *   `domain` (_string_)
*   `registration` (_string_, read-only) The link that can be used to save the required cookie for this alias in the browser.
*   `domainVerificationRecord` (_string_, read-only) The verification code to be added as TXT record in the DNS
*   `status` (_string_, read-only) The status of the alias creation process  
    Allowed values: `pending`, `verified`.

### SandboxAliasResponse

Includes all fields of `StatusResponse`.

*   `data` (_SandboxAliasModel_)

### SandboxOperationListResponse

Includes all fields of `PagedResponse`.

*   `data` (_array of SandboxOperationModel_)

### SandboxOperationRequestModel

*   `operation` (_string_, required)  
    Allowed values: `start`, `stop`, `restart`, `reset`.

### SandboxOperationResponse

Includes all fields of `StatusResponse`.

*   `data` (_SandboxOperationModel_)

### SandboxSettingsResponse

Includes all fields of `StatusResponse`.

*   `data` (_SandboxSettings_)

### SandboxUsageResponse

Includes all fields of `StatusResponse`.

*   `data` (_SandboxUsageModel_)

### SandboxStorageResponse

Includes all fields of `StatusResponse`.

*   `data` (_SandboxStorageModel_)

### ApiVersion

*   `version` (_string_)  
    Allowed values: `v1`.
*   `git` (_object_)
    *   `commit` (_string_)
    *   `time` (_string (date-time)_)
*   `build` (_object_)
    *   `version` (_string_)
    *   `time` (_string (date-time)_)

### UserInfoSpec

*   `user` (_object_)
    *   `id` (_string_) User's unique ID on Account Manager.
    *   `email` (_string_) User's email address.
    *   `name` (_string_) User's human-readable, full name.
*   `client` (_object_)
    *   `id` (_string_) OAuth client ID used to retrieve the access token.
*   `roles` (_array of string_) User's roles as returned by Account Manager.
*   `realms` (_array of string_) Realms that the user is allowed to access. All sandboxes within these realms are accessible.
*   `sandboxes` (_array of string_) Sandboxes that the user is allowed to access.

### SystemInfoSpec

*   `region` (_string_) The region, the system is deployed on.
*   `systemIps` (_array of string_) Public IP addresses of internal services like API server
*   `sandboxIps` (_array of string_) Public IP addresses of all sandboxes
*   `inboundIps` (_array of string_) IP addresses for incoming traffic.
*   `outboundIps` (_array of string_) IP addresses for outgoing traffic.

### RealmModel

*   `id` (_string_, required) GUID of the realm in the system.
*   `name` (_string_) Human-readable four-letter ID of the realm.
*   `enabled` (_boolean_) Flag indicating whether the realm is enabled for any operations.
*   `usage` (_RealmUsageSummaryModel_)
*   `configuration` (_RealmConfigurationModel_)

### ErrorModel

*   `status` (_string_, required) String with value 'Success' or 'Failure' to indicate request outcome.  
    Allowed values: `Success`, `Failure`.
*   `message` (_string_) Human-readable description of the error.
*   `reason` (_string_) Machine-readable, one-word, CamelCase description of why the operation failed. If this value is empty, there is no information available. The reason clarifies an HTTP status code but does not override it.
*   `details` (_object_) Extended data associated with the reason. Each reason can define its own extended details. This field is optional, and the data returned is not guaranteed to conform to any schema except that defined by the reason type.
    
    Additional properties: `string`.
    

### RealmConfigurationModel

*   `emails` (_array of string_)  
    Items: Pattern: (.+)@(.+).
    
    _Example_
    
    ```
    [
      "email1@example.com",
      "email2@example.com"
    ]
    ```
    
*   `sandbox` (_RealmSandboxConfigurationModel_)
*   `requests` (_RealmRequestConfigurationModel_)
*   `startScheduler` (_WeekdaySchedule_)
*   `stopScheduler` (_WeekdaySchedule_)

### RealmSandboxConfigurationUpdateModel

Update data for configuration data related to sandboxes of a realm. The time formats within the weekday schedules have to be passed in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Times) format.

*   `sandboxTTL` (_ConfigurationIntegerValue_)
*   `startScheduler` (_any_, nullable)
*   `stopScheduler` (_any_, nullable)

_Example_

```
{
  "sandboxTTL": {
    "maximum": 240,
    "defaultValue": 24
  },
  "startScheduler": {
    "weekdays": [
      "MONDAY",
      "TUESDAY",
      "WEDNESDAY",
      "THURSDAY",
      "FRIDAY"
    ],
    "time": "08:00:00+03:00"
  },
  "stopScheduler": {
    "weekdays": [
      "MONDAY",
      "TUESDAY",
      "WEDNESDAY",
      "THURSDAY",
      "FRIDAY"
    ],
    "time": "19:00:00Z"
  }
}
```

### RealmUsageModel

*   `id` (_string_, required) GUID of the realm in the system.
*   `createdSandboxes` (_integer (int64)_) Total number of sandboxes created during the requested timeframe (by default, the previous 30 days).  
    Example: `93`.
*   `activeSandboxes` (_integer (int64)_) Total number of sandboxes active during the requested timeframe (by default, the previous 30 days).  
    Example: `128`.
*   `deletedSandboxes` (_integer (int64)_) Total number of sandboxes deleted during the requested timeframe (by default, the previous 30 days).  
    Example: `86`.
*   `sandboxSeconds` (_integer (int64)_) Total number of seconds sandboxes ran during the requested timeframe (by default, the previous 30 days).  
    Example: `360000`.
*   `minutesUpByProfile` (_array of object_)
    *   `profile` (_SandboxResourceProfile_)
    *   `minutes` (_integer (int64)_) How many minutes sandboxes of this profile type were running during the report timeframe.
*   `minutesUp` (_integer (int64)_) Sum of minutes sandboxes in this realm were running during the requested timeframe (by default, the previous 30 days).  
    Example: `360000`.
*   `minutesDown` (_integer (int64)_) Sum of minutes sandboxes in this realm were not running during the requested timeframe (by default, the previous 30 days).  
    Example: `180000`.
*   `sandboxDetails` (_array of SandboxInfo_)

### MultiRealmUsageModel

*   `realmName` (_string_, required) GUID of the realm in the system.
*   `realmUsage` (_RealmUsageModel_)
*   `error` (_string_) Error while getting usage.

### SandboxModel

*   `id` (_string_)
*   `realm` (_string_)
*   `emails` (_array of string_)  
    Items: Pattern: (.+)@(.+).
*   `instance` (_string_)
*   `versions` (_object_)
    
    SandboxModelVersions
    
    Versions of the components that make up the sandbox.
    
    *   `app` (_string_) Version of the commerce application.  
        Pattern: \\d(\\.\\d)\*.
    *   `web` (_string_) Version of the web proxy.  
        Pattern: \\d(\\.\\d)\*.
*   `autoScheduled` (_boolean_) Defaults to false. If set to true, the sandbox is covered by automatic start/stop actions, which can be set to a dedicated time via realm- configuration API.
*   `resourceProfile` (_SandboxResourceProfile_)
*   `state` (_SandboxState_)
*   `createdAt` (_string (date-time)_)
*   `createdBy` (_string_)
*   `deletedAt` (_string (date-time)_) Time when the delete operation was created.
*   `deletedBy` (_string_) User who requested the sandbox deletion.
*   `eol` (_string (date-time)_)
*   `tags` (_array of string_)
*   `hostName` (_string_)
*   `links` (_object_) Set of named links for accessing the sandbox.
    *   `bm` (_string_) Fully qualified URL of the sandbox Business Manager web app.
    *   `ocapi` (_string_) Fully qualified URL of OCAPI data API (excluding version selector).
    *   `impex` (_string_) Fully qualified WebDAV URL for accessing import and export files.
    *   `code` (_string_) Fully qualified WebDAV URL for accessing code.
    *   `logs` (_string_) Fully qualified WebDAV URL for accessing log files.
*   `startScheduler` (_WeekdaySchedule_)
*   `stopScheduler` (_WeekdaySchedule_)

### SandboxResourceProfile

Determines the resource allocation for the sandbox, "medium" is the default. Be careful, more powerful profiles consume more credits.

Type: `string`.

Allowed values: `medium`, `large`, `xlarge`.

### SandboxSettings

Map of additional settings evaluated when the sandbox is provisioned and initialized.

*   `ocapi` (_OcapiSettings_)
*   `webdav` (_WebDavSettings_)

### Response

*   `kind` (_string_, required) Type of response object.  
    Allowed values: `ApiVersion`, `UserInfo`, `SystemInfo`, `Realm`, `RealmConfiguration`, `RealmUsage`, `Sandbox`, `SandboxList`, `SandboxAlias`, `SandboxAliasList`, `SandboxSettings`, `SandboxUsage`, `SandboxStorage`, `SandboxOperationList`, `Status`.
*   `code` (_integer (int32)_, required) Response code sent along with the status.

### PagedResponse

Includes all fields of `StatusResponse`.

*   `metadata` (_PagingMetadata_)

### SandboxOperationModel

*   `id` (_string_, required)
*   `operation` (_string_, required)  
    Allowed values: `start`, `stop`, `restart`, `reset`, `create`, `delete`, `upgrade`.
*   `createdAt` (_string (date-time)_)
*   `operationState` (_string_, required)  
    Allowed values: `pending`, `running`, `finished`.
*   `sandboxState` (_SandboxState_)
*   `status` (_string_) Indicates whether the operation finished successfully ('Success') or not ('Failure').  
    Allowed values: `success`, `failure`.

### SandboxUsageModel

*   `id` (_string_, required)
*   `sandboxSeconds` (_integer (int64)_) Total number of seconds during which the sandbox ran.
*   `minutesUp` (_integer (int64)_) Sum of minutes sandboxes in this realm were running during the requested timeframe (by default, the previous 30 days).  
    Example: `360000`.
*   `minutesDown` (_integer (int64)_) Sum of minutes sandboxes in this realm were not running during the requested timeframe (by default, the previous 30 days).  
    Example: `180000`.
*   `history` (_array of object_) List of blocks, which describe the separate uptimes of a sandbox
    *   `from` (_string (date-time)_, required) Time the sandbox was started.
    *   `to` (_string (date-time)_) Time the sandbox was stopped. If the sandbox is still running, this value will not exist for the last block.
    *   `sandboxSeconds` (_integer (int64)_) Number of seconds that the sandbox was running for this block.
    *   `resourceProfile` (_SandboxResourceProfile_)
    *   `exceedsTimeframe` (_boolean_) This property is set to true if the block exceeds the given timeframe and was therefore trimmed.
    *   `clusterName` (_string_) Cluster where sandbox resides.

### SandboxStorageModel

Shows all filesystem storages and how much space is left on them.

Additional properties: `StorageUsageModel`.

### RealmUsageSummaryModel

*   `activeSandboxes` (_integer (int64)_, required) Number of currently active sandboxes for a realm.  
    Example: `42`.

### RealmSandboxConfigurationModel

Configuration object related to sandboxes of a realm.

*   `limitsEnabled` (_boolean_, required) Flag indicating whether sandbox specific limits are enforced for the realm.
*   `totalNumberOfSandboxes` (_integer_, required) Total number of sandboxes (regardless of state) that the realm can hold.
*   `sandboxTTL` (_ConfigurationIntegerValue_, required)
*   `localUsersAllowed` (_boolean_, required) Flag indicating whether users outside the Account Manager are allowed.

_Example_

```
{
  "limitsEnabled": true,
  "totalNumberOfSandboxes": 50,
  "sandboxTTL": {
    "maximum": 240,
    "defaultValue": 8
  },
  "localUsersAllowed": false
}
```

### RealmRequestConfigurationModel

Configuration object related to requests targeting the sandboxes of a realm.

*   `enforced` (_boolean_, required) If enabled, rate limiting is active.
*   `maxRate` (_integer_) Maximum requests allowed per time period.
*   `timePeriod` (_integer_) Number of seconds during which to count requests.

_Example_

```
{
  "enforced": true,
  "maxRate": 50000,
  "timePeriod": 60
}
```

### WeekdaySchedule

A schedule definition for a dedicated time on specific weekdays.

*   `weekdays` (_array of string_) List of weekdays, where the action should take place  
    Items: Allowed values: `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`.
*   `time` (_string_) Time (with timezone) where the action should take place on the specified weekdays. Time format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Times). If no time zone is given, the timezone defaults to GMT.  
    Example: `20:10:00Z`.

### ConfigurationIntegerValue

Object that holds an integer-based configuration property. A zero value means "unlimited".

*   `fixedValue` (_integer (int32)_) Fixed value for this configuration property. You can't use this along with a maximum or default value.
*   `maximum` (_integer (int32)_) Maximum value for this property.
*   `defaultValue` (_integer (int32)_) Default value for this property.

### SandboxInfo

*   `realm` (_string_)
*   `resourceProfile` (_SandboxResourceProfile_)
*   `createdAt` (_string (date-time)_)
*   `deletedAt` (_string (date-time)_) Time when the delete operation was created.
*   `name` (_string_) Name of the sandbox
*   `instanceId` (_string_) instanceId of the sandbox
*   `minutesUp` (_integer (int64)_) Minutes sandbox in this realm was running during the requested timeframe (by default, the previous 30 days).  
    Example: `360000`.
*   `minutesDown` (_integer (int64)_) Minutes sandbox in this realm was not running during the requested timeframe (by default, the previous 30 days).  
    Example: `180000`.
*   `autoScheduled` (_boolean_) Defaults to false. If set to true, the sandbox is covered by automatic start/stop actions, which can be set to a dedicated time via realm- configuration API.:
*   `startScheduler` (_WeekdaySchedule_)
*   `stopScheduler` (_WeekdaySchedule_)
*   `clusterName` (_string_) Cluster where sandbox resides.

### SandboxState

Type: `string`.

Allowed values: `new`, `creating`, `starting`, `started`, `stopping`, `stopped`, `deleting`, `deleted`, `resetting`, `failed`, `unknown`, `upgrading`.

### OcapiSettings

Use this document to configure Open Commerce API permissions for multiple client applications in the context of a single site.

Array of `object`.

Each item: Describes Open Commerce API permissions for a client application.

Minimum items: 1.

Describes Open Commerce API permissions for a client application.

*   `client_id` (_string (uuid)_, required) Client application ID.
*   `resources` (_array of object_) Array of resource-specific permission documents.
    
    Each item: Configures resource specific permissions and settings.
    
    *   `methods` (_array of string_, required) Open Commerce API HTTP method filter. For example, the filter \["get","patch"\] allows access to the GET and PATCH methods for the specified resource path. You can specify methods that are supported for a resource. You can list all available resources and methods for the Shop API, version 18.1, with the following meta data call: http://{your-domain}/dw/meta/rest/shop/v18\_1?client\_id={your-client-id}  
        Items: Allowed values: `get`, `delete`, `patch`, `post`, `put`.
    *   `read_attributes` (_string_) String that controls which properties are included in the response document. The configuration value must be specified using property selection syntax.
    *   `write_attributes` (_string_) String that controls which properties can be included in the request document. The configuration value must be specified using property selection syntax.
    *   `resource_id` (_string_, required) OCAPI resource identifier. For example: /products/\*/images or /products/specific\_id/images. This property supports Ant path style to describe resource IDs. You can specify wildcards or specific product IDs; you can also specify the pattern /products/\*\* to access to all available sub-resources. You can list all resource identifiers for the Shop API, version 18.1, with the following meta data call: http://{your-domain}/dw/meta/rest/shop/v18\_1?client\_id={your-client-id}
    *   `version_range` (_array of object_) Version range documents granting permissions only to a subset of OCAPI versions.
        
        Each item: Use this document to grant resource permissions only to a subset of Open Commerce API versions. You can use the properties from and until to define the range. At least one of both must be specified.
        
        *   `from` (_string_) From version (for example, 18.1). If you don't specify the from version, all versions including the oldest are accessible.
        *   `until` (_string_) Until version (for example, 18.1). The until version is exclusive, which means that it is not part of the range. If you don't specify the until version, all versions including the most recent one are accessible.

### WebDavSettings

WebDAV settings contain WebDAV client permissions for multiple client applications in the context of your organization. WebDAV client permissions enable you to configure which API clients can access your WebDAV files. These permissions also give you fine-grained control over which directories each client can access.

Array of `object`.

Each item: An array of client-specific permission documents.

Minimum items: 1.

An array of client-specific permission documents.

*   `client_id` (_string (uuid)_, required) Client ID indicating the API client for which the permissions are configured.
*   `permissions` (_array of object_, required) Array of directory-based permissions documents. Multiple permissions paths cannot intersect each other; for example, the following two paths intersect and are therefore invalid: /impex/src and /impex/src/foo.
    
    Each item: Use this document to configure WebDAV permissions.
    
    *   `path` (_string_, required) Directory for which the WebDAV permission is granted, including all subdirectories. File-specific permissions are not permitted.
    *   `operations` (_array of string_, required) Array of operations granted on this directory. Possible values are read and read\_write.  
        Items: Allowed values: `read`, `read_write`. Minimum items: 1.

### PagingMetadata

*   `page` (_integer (int32)_) Index of the current page.
*   `perPage` (_integer (int32)_) Maximum count of elements per page.
*   `pageCount` (_integer (int32)_) Total count of pages.
*   `totalCount` (_integer (int64)_) Total count of elements.
*   `links` (_PagingLinks_)

### StorageUsageModel

Represents a single filesystem storage unit with its available space.

*   `spaceTotal` (_integer (int64)_) Total available space in MB.
*   `spaceUsed` (_integer (int64)_) Used space in MB.
*   `percentageUsed` (_integer (int32)_) Used space in percent, compared to total space.

### PagingLinks

*   `self` (_string_) Relative link to this page.
*   `first` (_string_) Relative link to the first page.
*   `previous` (_string_) Relative link to the previous page. 'null' if the current page is the first page.
*   `next` (_string_) Relative link to the next page. 'null' if the current page is the last page.
*   `last` (_string_) Relative link to the last page.