--- title: Developer Sandbox Management API description: The Developer Sandbox Management API provides endpoints to create, list, retrieve, and destroy developer sandboxes, and to check the status of sandbox lifecycle operations.Destroys a developer sandbox, identified by its name.Retrieves the status of an asynchronous sandbox creation or destruction operation.Retrieves the details of a single developer sandbox, identified by its sys\_id.Retrieves all developer sandboxes on the instance along with a summary of sandbox allocation.Creates a developer sandbox and assigns the specified user as its owner. locale: en-US canonical_url: https://www.servicenow.com/docs/r/api-reference/rest-apis/developer-sandbox-management-api.html release: brazil product: REST APIs classification: rest-apis topic_type: concept last_updated: "2026-09-10" reading_time_minutes: 27 breadcrumb: [REST API reference, API reference, API implementation and reference] --- # Developer Sandbox Management API The Developer Sandbox Management API provides endpoints to create, list, retrieve, and destroy developer sandboxes, and to check the status of sandbox lifecycle operations. A developer sandbox \(DSB\) is an isolated development environment within a single ServiceNow instance. Developers use a sandbox to make and test changes without affecting, or being affected by, other users of the instance. Use this API to manage the sandbox lifecycle programmatically, such as when tooling provisions and retires developer environments at scale without administrator interaction in the UI. Sandbox creation and destruction are asynchronous. Both operations return an `operationId` and a `trackerStatusUrl`. Poll the GET /now/dsb/management/operations/\{operationId\} endpoint with that identifier to determine when the operation completes. A sandbox must exist before you can retrieve its details or destroy it. The list and retrieve endpoints have no ordering requirements. ## Requirements This API runs in the global `now` namespace. The following requirements apply to all endpoints in this API. - The Developer Sandboxes plugin \(com.glide.dsb\) must be installed. The plugin is active by default. - The `glide.dev_sandbox.enabled` system property must be set to true. - The calling user must have one of the following roles: admin, maint, or sandbox\_manager. - At least one unallocated sandbox node must be available for sandbox creation to succeed. - A valid User \[sys\_user\] record must exist for the user that you assign as the sandbox owner. The platform does not validate the owner sys\_id that you pass in the create request. ## Call ordering and use cases Use cases: provisioning and lifecycle management of DSBs for automation/tooling that manages developer environments at scale \(for example, internal platform tooling\), without requiring direct UI interaction. |Endpoint|Description| |--------|-----------| |[Developer Sandbox Management API - DELETE /now/dsb/management/sandboxes/\{dsbName\}](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/api-reference/rest-apis/developer-sandbox-management-api.md)|Destroys a developer sandbox, identified by its name. Only sandboxes in the `running` or `error` state can be destroyed.| |[Developer Sandbox Management API - GET /now/dsb/management/operations/\{operationId\}](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/api-reference/rest-apis/developer-sandbox-management-api.md)|Retrieves the status of an asynchronous sandbox creation or destruction operation.| |[Developer Sandbox Management API - GET /now/dsb/management/sandboxes/info/\{sysId\}](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/api-reference/rest-apis/developer-sandbox-management-api.md)|Retrieves all developer sandboxes on the instance along with a summary of sandbox allocation.| |[Developer Sandbox Management API - GET /now/dsb/management/sandboxes](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/api-reference/rest-apis/developer-sandbox-management-api.md)|Retrieves the details of a single developer sandbox, identified by its sys\_id.| |[Developer Sandbox Management API - POST /now/dsb/management/sandboxes](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/api-reference/rest-apis/developer-sandbox-management-api.md)|Creates a developer sandbox and assigns the specified user as its owner.| Call ordering: Create and Destroy are asynchronous — both return an `operationId`/`trackerStatusUrl` that must be polled via `GET /operations/{operationId}` to determine when the operation actually completes. There is no strict ordering requirement between List/Get-info calls, but a sandbox must exist \(post-creation\) before Get-info or Destroy will succeed. ## Association with other APIs This REST API is the external counterpart to `sn_dsb.API`, the server-side Scriptable API \(`DevSandboxJS.java`\) exposed for in-instance scripting use \(`registerDsb()`, `assignSandboxNode()`, `reassignSandboxNode()`, `destroySandbox()`\). Both front the same `IDsbManagementService`/service-locator layer described in `DevSandbox.java`. These two APIs are not meant to be used interchangeably or serve distinct audiences. `sn_dsb.API` is for internal team use. This API is for external customer use. **Parent Topic:**[REST API reference](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/brazil/markdown/api-reference/rest-apis/api-rest.md) ## Developer Sandbox Management API - DELETE /now/dsb/management/sandboxes/\{dsbName\} Destroys a developer sandbox, identified by its name. Use this endpoint to tear down a developer sandbox that is no longer needed and release its node back to the pool. Sandbox destruction is asynchronous. This endpoint validates the request and queues the sandbox for destruction. Use the returned `operationId` with the GET /now/dsb/management/operations/\{operationId\} endpoint to poll for completion. Only sandboxes in the `running` or `error` state can be destroyed. Requires the Developer Sandboxes plugin \(com.glide.dsb\) and the `glide.dev_sandbox.enabled` system property set to true. The calling user must have the admin, maint, or sandbox\_manager role. ### URL format Versioned URL: `/api/now/v1/dsb/management/sandboxes/{dsbName}` Default URL: `/api/now/dsb/management/sandboxes/{dsbName}` ### Supported request parameters
| Name | Description |
|---|---|
| api\_version | Optional. Version of the endpoint to access. For example, `v1` or `v2`. Only specify this value to use an endpoint version other than the latest. Data type: String |
| dsbName | Name of the sandbox to destroy. This value is the sandbox name, not its sys\_id. Located in the Developer Sandbox \[sys\_dsb\] table. Data type: String Maximum length: 20 |
| Header | Description |
|---|---|
| Accept | Data format of the response body. Supported types: **application/json** or **application/xml**. Default: **application/json** |
| Name | Description |
|---|---|
| displayName | Display name of the sandbox. Omitted from the response if the sandbox has no display name. Data type: String |
| errorMessage | Description of the failure. Returned only in error responses. Data type: String |
| message | Status message for the destruction request. For example, "Sandbox destruction queued successfully". Data type: String |
| name | Name of the sandbox being destroyed. Data type: String Maximum length: 20 |
| operationId | Unique identifier of the asynchronous destruction operation. Pass this value to the GET /now/dsb/management/operations/\{operationId\} endpoint to check the status of the operation. Data type: String |
| trackerStatus | Status of the destruction operation at the time of the response. Valid values: - queued - in\_progress - completed - failed Data type: String |
| trackerStatusUrl | Relative URL to poll for the status of the destruction operation. For example, /api/now/dsb/management/operations/6fa459ea-ee8a-3ca4-894e-db77e160355e. Data type: String |
| Name | Description |
|---|---|
| api\_version | Optional. Version of the endpoint to access. For example, `v1` or `v2`. Only specify this value to use an endpoint version other than the latest. Data type: String |
| operationId | Identifier of the operation to check. This value is returned as `operationId` by the POST /now/dsb/management/sandboxes and DELETE /now/dsb/management/sandboxes/\{dsbName\} endpoints. Data type: String |
| Header | Description |
|---|---|
| Accept | Data format of the response body. Supported types: **application/json** or **application/xml**. Default: **application/json** |
| Name | Description |
|---|---|
| errorMessage | Description of the failure. Returned only in error responses. Data type: String |
| message | Status message for the operation. For example, "Initializing sandbox". Data type: String |
| operationId | Identifier of the operation. Data type: String |
| operationType | Type of sandbox lifecycle operation. Valid values: - create - destroy - unknown Data type: String |
| percentComplete | Portion of the operation that has completed. The value increases incrementally as tables are processed during sandbox creation or teardown. Data type: Number \(integer\) Range: 0-100 Unit: Percent |
| state | Status of the operation. Valid values: - queued - in\_progress - completed - failed Data type: String |
| Name | Description |
|---|---|
| api\_version | Optional. Version of the endpoint to access. For example, `v1` or `v2`. Only specify this value to use an endpoint version other than the latest. Data type: String |
| sysId | Sys\_id of the sandbox record to retrieve. Located in the Developer Sandbox \[sys\_dsb\] table. Must be a valid 32-character sys\_id or the request is rejected with a 400 status code. Data type: String Maximum length: 32 |
| Header | Description |
|---|---|
| Accept | Data format of the response body. Supported types: **application/json** or **application/xml**. Default: **application/json** |
| Name | Description |
|---|---|
| aisPartitionId | Randomly generated identifier of the AI Search partition assigned to the sandbox. Set when AI Search is enabled on the instance. Empty when AI Search is not enabled. Data type: String |
| createdOn | Date and time that the sandbox record was created, in the format yyyy-MM-dd HH:mm:ss. Data type: String |
| dataUtilization | Amount of data consumed by the sandbox. Data type: Number \(integer\) Unit: Bytes **\[NEEDS DEV VERIFICATION\]** Confirm the unit of measure and how the value is calculated. |
| displayName | Display name of the sandbox. Data type: String |
| exportState | Status of the most recent export of the sandbox. Valid values: - not\_exported - requested - scheduled - in\_progress - completed Data type: String |
| lastAccessedOn | Date and time that the sandbox was last accessed, in the format yyyy-MM-dd HH:mm:ss. Data type: String |
| name | Unique name of the sandbox. Data type: String Maximum length: 20 |
| originInstanceName | Name of the instance that requested the sandbox. Data type: String |
| owner | Sys\_id of the user who owns the sandbox. Located in the User \[sys\_user\] table. This value is the sys\_id, not the user name or display name. Data type: String Maximum length: 32 |
| pool | Name of the node pool that the sandbox belongs to. Data type: String |
| reqItemId | Sys\_id of the requested item that provisioned the sandbox, if the sandbox was provisioned through a catalog request. Located in the Requested Item \[sc\_req\_item\] table. Empty if the sandbox was not provisioned through a catalog request. **\[NEEDS DEV VERIFICATION\]** Confirm the referenced table. Data type: String Maximum length: 32 |
| state | Lifecycle state of the sandbox. Valid values: - queued - initializing - starting - running - retiring - restarting - error - upgrading Data type: String |
| sysId | Sys\_id of the sandbox record. Located in the Developer Sandbox \[sys\_dsb\] table. Data type: String Maximum length: 32 |
| url | URL of the sandbox instance. Data type: String Maximum length: 200 |
| Name | Description |
|---|---|
| api\_version | Optional. Version of the endpoint to access. For example, `v1` or `v2`. Only specify this value to use an endpoint version other than the latest. Data type: String |
| None |
| Header | Description |
|---|---|
| Accept | Data format of the response body. Supported types: **application/json** or **application/xml**. Default: **application/json** |
| Name | Description |
|---|---|
| allocated | Number of sandboxes assigned to the user pool. A sandbox counts as allocated once its `pool` value is `user`, regardless of its lifecycle state. Data type: Number \(integer\) |
| available | Number of sandboxes that can still be allocated, calculated as `total` minus `allocated`. The value is never less than 0. This value is not derived from sandbox lifecycle state. Data type: Number \(integer\) Minimum value: 0 |
| dsbs | List of the developer sandboxes on the instance, one object per sandbox. Data type: Array of objects ``` "dsbs": [ { "aisPartitionId": "String", "createdOn": "String", "dataUtilization": Number, "displayName": "String", "exportState": "String", "lastAccessedOn": "String", "name": "String", "originInstanceName": "String", "owner": "String", "pool": "String", "reqItemId": "String", "state": "String", "sysId": "String", "url": "String" } ] ``` |
| dsbs.aisPartitionId | Randomly generated identifier of the AI Search partition assigned to the sandbox. Set when AI Search is enabled on the instance. Empty when AI Search is not enabled. Data type: String |
| dsbs.createdOn | Date and time that the sandbox record was created, in the format yyyy-MM-dd HH:mm:ss. Data type: String |
| dsbs.dataUtilization | Amount of data consumed by the sandbox. Data type: Number \(integer\) Unit: Bytes **\[NEEDS DEV VERIFICATION\]** Confirm the unit of measure and how the value is calculated. |
| dsbs.displayName | Display name of the sandbox. Data type: String |
| dsbs.exportState | Status of the most recent export of the sandbox. Valid values: - not\_exported - requested - scheduled - in\_progress - completed Data type: String |
| dsbs.lastAccessedOn | Date and time that the sandbox was last accessed, in the format yyyy-MM-dd HH:mm:ss. Data type: String |
| dsbs.name | Unique name of the sandbox. Data type: String Maximum length: 20 |
| dsbs.originInstanceName | Name of the instance that requested the sandbox. Data type: String |
| dsbs.owner | Sys\_id of the user who owns the sandbox. Located in the User \[sys\_user\] table. This value is the sys\_id, not the user name or display name. Data type: String Maximum length: 32 |
| dsbs.pool | Name of the node pool that the sandbox belongs to. Data type: String |
| dsbs.reqItemId | Sys\_id of the requested item that provisioned the sandbox, if the sandbox was provisioned through a catalog request. Located in the Requested Item \[sc\_req\_item\] table. Empty if the sandbox was not provisioned through a catalog request. **\[NEEDS DEV VERIFICATION\]** Confirm the referenced table. Data type: String Maximum length: 32 |
| dsbs.state | Lifecycle state of the sandbox. Valid values: - queued - initializing - starting - running - retiring - restarting - error - upgrading Data type: String |
| dsbs.sysId | Sys\_id of the sandbox record. Located in the Developer Sandbox \[sys\_dsb\] table. Data type: String Maximum length: 32 |
| dsbs.url | URL of the sandbox instance. Data type: String Maximum length: 200 |
| total | Total sandbox capacity of the instance, calculated as the lower of the sandbox node count and the licensed sandbox count. This value is a capacity ceiling, not a count of existing sandbox records. Data type: Number \(integer\) |
| Name | Description |
|---|---|
| api\_version | Optional. Version of the endpoint to access. For example, `v1` or `v2`. Only specify this value to use an endpoint version other than the latest. Data type: String |
| None |
| Name | Description |
|---|---|
| name | Required. Name to assign to the new developer sandbox. Must be unique across the instance. A duplicate name is rejected with a 400 status code and the message "Alias already in use. Try a different one." Data type: String Format: Lowercase alphanumeric characters and hyphens only. Must contain at least one letter. Must start and end with an alphanumeric character. Minimum length: 1 Maximum length: 20 |
| ownerId | Required. Sys\_id of the user to assign as the owner of the new sandbox. Located in the User \[sys\_user\] table. The platform does not verify that the specified sys\_id corresponds to an existing user record. Any non-empty value is accepted and written to the sandbox record. Validate the sys\_id before calling this endpoint. Data type: String Maximum length: 32 |
| Header | Description |
|---|---|
| Accept | Data format of the response body. Supported types: **application/json** or **application/xml**. Default: **application/json** |
| Content-Type | Required. Data format of the request body. Supported value: application/json. |
| Name | Description |
|---|---|
| displayName | Display name of the sandbox. Omitted from the response if the sandbox has no display name. Data type: String |
| errorMessage | Description of the failure. Returned only in error responses. Data type: String |
| message | Status message for the creation request. The value depends on how the sandbox was provisioned. Possible values: - Sandbox creation queued successfully: A new sandbox was queued for creation. - Sandbox is running: An already-running sandbox was claimed from the pool. - Sandbox initialization in progress: A sandbox that is still initializing was claimed from the pool. Data type: String |
| name | Name of the sandbox being created. Data type: String Maximum length: 20 |
| operationId | Unique identifier of the asynchronous creation operation. Pass this value to the GET /now/dsb/management/operations/\{operationId\} endpoint to check the status of the operation. Data type: String |
| trackerStatus | Status of the creation operation at the time of the response. Valid values: - queued - in\_progress - completed - failed Data type: String |
| trackerStatusUrl | Relative URL to poll for the status of the creation operation. For example, /api/now/dsb/management/operations/9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d. Data type: String |