---
sourceDocument: Australia API Reference
sourceDocumentLink: https://www.servicenow.com/docs/r/api-reference

 Release :

    - australia

ft:locale :

    - en-US

ft:publication_title :

    - Australia API Reference

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# Digital Product Release API

# Digital Product Release API {#ariaid-title1}

* Release version: Australia
* 
* Updated March 12, 2026
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 31 minutes to read

The Digital Product Release API provides endpoints to manage releases and policy compliance.
This API requires the Digital Product Release (sn_dpr) application, which is available on the ServiceNow Store. For more information, see [Digital Product Release](https://www.servicenow.com/docs/access?context=dpr-landing-page&version=australia&pubname=australia-it-service-management&ft:locale=en-US).

## Digital Product Release - GET /sn_dpr/digital_product_release/bundle/{sysId} {#ariaid-title2}

Retrieves release bundle details.
This endpoint can be extended to customize the fields and aggregated data returned in the response body. The default functionality of this endpoint is defined by the getReleaseBundleDetails() method in the
ReleaseBundleSNC script include. To customize the functionality, override the getReleaseBundleDetails() method in the ReleaseBundle script include, which extends
ReleaseBundleSNC. By default, aggregated data for enhancements, policies, release states, and task counts can be included in the response body.  
To access this endpoint, the caller must have one of the following roles.

* sn_dpr_model.product_manager
* sn_dpr_model.release_admin
* sn_dpr_model.release_coordinator
* sn_dpr_model.release_user
{#dpr-GET-bundle__ul_nwh_2fr_2hc}

### URL format

Versioned URL: /api/sn_dpr/{api_version}/digital_product_release/bundle/{sysId}

Default URL: /api/sn_dpr/digital_product_release/bundle/{sysId}

### Supported request parameters

{#dpr-GET-bundle__entry__2}{#dpr-GET-bundle__version-not_optional-RESTAPI}

| Name | Description |
|-|-|
| api_version | Optional. Version of the endpoint to access. For example, <kbd class="ph userinput">v1</kbd> or <kbd class="ph userinput">v2</kbd>. Only specify this value to use an endpoint version other than the latest. Data type: String |
| sysId | Sys_id of the release bundle. Table: Release Bundle \[sn_dpr_model_release_bundle\] Data type: String |
[Table 1. Path parameters]

{#dpr-GET-bundle__entry__8}

| Name | Description |
|-|-|
| sendAggregation | Flag that indicates whether to include aggregated data for enhancements, policies, release states, and task counts in the response body. Data type: Boolean Valid values: * true: Return aggregates for enhancements, policies, release states, and task counts. * false: Don't return aggregates. {#dpr-GET-bundle__ul_grf_jrg_whc} Default: false |
[Table 2. Query parameters]

{#dpr-GET-bundle__entry__12}

| Name | Description |
|-|-|
| None |   |
[Table 3. Request body parameters (JSON)]

### Headers

The following request and response headers apply to this HTTP
action only, or apply to this action in a distinct way. For a list of general headers used
in the REST API, see [Supported REST API headers](https://www.servicenow.com/docs/qh7RcF0RI6a~i9u3octdlg "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#dpr-GET-bundle__entry__16}{#dpr-GET-bundle__accept-JSON-only-entry-RESTAPI}

| Header | Description |
|-|-|
| Accept | Data format of the response body. Only supports application/json. |
| Authorization | Basic or bearer token for authentication. |
[Table 4. Request headers]

{#dpr-GET-bundle__entry__22}

| Header | Description |
|-|-|
| None |   |
[Table 5. Response headers]

### Status codes

The following status codes apply to this HTTP action. For a
list of possible status codes used in the REST API, see [REST API HTTP response
codes](https://www.servicenow.com/docs/qh7RcF0RI6a~i9u3octdlg "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#dpr-GET-bundle__entry__26}{#dpr-GET-bundle__entry-200-status-code}{#dpr-GET-bundle__entry-400-status-code}

| Status code | Description |
|-|-|
| 200 | Successful. The request was successfully processed. |
| 400 | Bad Request. A bad request type or malformed request was detected. |
[Table 6. Status codes]

### Response body parameters (JSON)

{#dpr-GET-bundle__entry__32}

| Name | Description |
|-|-|
| aggregates | Aggregated data for enhancements, policies, release states, and task counts. This parameter is only included in the response body if the sendAggregation query parameter is set to `true` in the request. "aggregates": { "enhancementAggregate": {Object}, "policyAggregate": {Object}, "releaseAggregate": {Object}, "taskAggregate": {Object} } Data type: Object |
| aggregates.enhancementAggregate | Lists the number of enhancements in each state. Data type: Object "enhancementAggregate": { "Closed": Number, "Open": Number } |
| aggregates.policyAggregate | Lists the number of policies in each execution status. Data type: Object "policyAggregate": { "Executed": Number, "Pending": Number } |
| aggregates.releaseAggregate | Lists the number of releases in each state. States are only included in this object if at least one release is in that state. Data type: Object "releaseAggregate": { "Cancelled": Number, "Completed": Number, "Draft": Number, "In Progress": Number, "Pending": Number, "Restarting": Number, "Review": Number } |
| aggregates.taskAggregate | Lists the number of tasks that are approved and not approved. Data type: Object "taskAggregate": { "approval": Number, "nonApproval": Number } |
| name | Name of the release bundle. Data type: String |
| owner | Owner of the release bundle. Data type: String |
| releases | Data about the releases included in the bundle. "releases": { "count": Number, "list": [Array] } Data type: Object |
| releases.count | Number of releases included in the bundle. Data type: Number |
| releases.list | List of sys_ids of releases included in the bundle. Table: Release \[sn_dpr_model_release\] Data type: Array |
| sysId | Sys_id of the release bundle. Table: Release Bundle \[sn_dpr_model_release_bundle\] Data type: String |
[ ]

### cURL request

This example retrieves details about a specified release bundle, including aggregated data for enhancements, policies, release states, and task counts.

    curl -X GET \ "https://instance.service-now.com/api/sn_dpr/v1/digital_product_release/bundle/9d0d0b4c874b1110dba83d5ebf867de2?sendAggregation=true" \
    --header "Accept: application/json" \ 
    --header "Authorization: Basic <base64encoded-credentials>"

Response body.

    {
       "sysId": "9d0d0b4c874b1110dba83d5ebf867de2",
       "name": "Release Bundle Q4",
       "owner": "jane.doe",
       "releases": {
          "count": 2,
          "list": ["rel1", "rel2"]
       },
       "aggregates": {
          "releaseAggregate": {
             "In Progress": 1,
             "Completed": 1
          },
          "taskAggregate": {
             "approval": 3,
             "nonApproval": 5
          },
          "policyAggregate": {
             "Executed": 2,
             "Pending": 1
          },
          "enhancementAggregate": {
             "Open": 1,
             "Closed": 1
          }
       }
    }

## Digital Product Release - GET /sn_dpr/digital_product_release/releases/{releaseId}/policies/status {#ariaid-title3}

Gets policy execution details by product for the current phase of a release.
To access this endpoint, the caller must have one of the following roles.

* sn_dpr_model.product_manager
* sn_dpr_model.release_admin
* sn_dpr_model.release_coordinator
* sn_dpr_model.release_user
{#dpr-GET-releases-policies-status__ul_nwh_2fr_2hc}

Before calling this endpoint, the release state must be In Progress and the current phase state must also be In Progress. You can view release information in the Digital Product Release
Workspace in the Releases tab.

### URL format

Versioned URL: /api/sn_dpr/{api_version}/digital_product_release/releases/{releaseId}/policies/status

Default URL: /api/sn_dpr/digital_product_release/releases/{releaseId}/policies/status

### Supported request parameters

{#dpr-GET-releases-policies-status__entry__2}{#dpr-GET-releases-policies-status__version-not_optional-RESTAPI}

| Name | Description |
|-|-|
| api_version | Optional. Version of the endpoint to access. For example, <kbd class="ph userinput">v1</kbd> or <kbd class="ph userinput">v2</kbd>. Only specify this value to use an endpoint version other than the latest. Data type: String |
| releaseId | Sys_id of the release. Table: Release \[sn_dpr_model_release\] Data type: String |
[Table 7. Path parameters]

{#dpr-GET-releases-policies-status__entry__8}

| Name | Description |
|-|-|
| None |   |
[Table 8. Query parameters]

{#dpr-GET-releases-policies-status__entry__12}

| Name | Description |
|-|-|
| None |   |
[Table 9. Request body parameters (JSON)]

### Headers

The following request and response headers apply to this HTTP
action only, or apply to this action in a distinct way. For a list of general headers used
in the REST API, see [Supported REST API headers](https://www.servicenow.com/docs/qh7RcF0RI6a~i9u3octdlg "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#dpr-GET-releases-policies-status__entry__16}{#dpr-GET-releases-policies-status__accept-JSON-only-entry-RESTAPI}

| Header | Description |
|-|-|
| Accept | Data format of the response body. Only supports application/json. |
[Table 10. Request headers]

{#dpr-GET-releases-policies-status__entry__20}

| Header | Description |
|-|-|
| None |   |
[Table 11. Response headers]

### Status codes

The following status codes apply to this HTTP action. For a
list of possible status codes used in the REST API, see [REST API HTTP response
codes](https://www.servicenow.com/docs/qh7RcF0RI6a~i9u3octdlg "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#dpr-GET-releases-policies-status__table_csx_jkm_fhc__entry__2}{#dpr-GET-releases-policies-status__entry-200-status-code}{#dpr-GET-releases-policies-status__entry-400-status-code}{#dpr-GET-releases-policies-status__entry-500-status-code}

| Status code | Description |
|-|-|
| 200 | Successful. The request was successfully processed. |
| 400 | Bad Request. A bad request type or malformed request was detected. |
| 500 | Internal server error. An unexpected error occurred while processing the request. The response contains additional information about the error. |
[Table 12. Status codes]

{#dpr-GET-releases-policies-status__table_csx_jkm_fhc}

### Response body parameters (JSON)

{#dpr-GET-releases-policies-status__entry__32}

| Name | Description |
|-|-|
| result | Object containing a compliance summary and product policy details. Data type: Object "result": { "overallSummary": {Object}, "products": [Array] } |
| result.overallSummary | Policy compliance summary for the current release phase. Data type: Object "overallSummary": { "compliant": Boolean, "compliantCount": Number, "currentPhase": "String", "nonCompliantCount": Number, "timestamp": "String", "totalCount": Number } |
| result.overallSummary.compliant | Flag that indicates whether all evaluated policies for the current release phase are compliant. Valid values: * true: All evaluated policies are compliant. * false: Not all evaluated policies are compliant. {#dpr-GET-releases-policies-status__ul_vmf_vvc_hhc} Data type: Boolean |
| result.overallSummary.compliantCount | Number of compliant policies. Data type: Number |
| result.overallSummary.currentPhase | Name of the current release phase. Data type: String |
| result.overallSummary.nonCompliantCount | Number of non-compliant policies. Data type: Number |
| result.overallSummary.timestamp | Date and time that policy compliance was last evaluated. Data type: String |
| result.overallSummary.totalCount | Total number of policies evaluated. Data type: Number |
| result.products | List of product-level compliance results. Each object in the array represents a product. Data type: Array "products": [ { "policyExecutionDetails": [Array], "productId": "String", "productName": "String", "productVersion": "String", "summary": {Object} } ] |
| result.products.policyExecutionDetails | List of executed policies with compliance results. Each object in the array represents a policy. Data type: Array "policyExecutionDetails": [ { "executionOutput": "Check sum OK; 0 violations. Execution log id: e23-9a.", "lastRunAt": "2025-09-26T08:30:00Z", "name": "Policy Name 1", "policyId": "policyVersionSysId1", "reason": "All checks passed", "status": "compliant" } ] |
| result.products.policyExecutionDetails.executionOutput | Output message produced by the policy execution. Data type: String |
| result.products.policyExecutionDetails.lastRunAt | Date and time the policy was last evaluated for compliance. Data type: String |
| result.products.policyExecutionDetails.name | Display name of the policy. Data type: String |
| result.products.policyExecutionDetails.policyId | Sys_id of the policy. Table: Policy \[sn_pace_policy\] Data type: String |
| result.products.policyExecutionDetails.reason | Message explaining the reason the policy is compliant or non-compliant. Data type: String |
| result.products.policyExecutionDetails.status | Compliance state for the policy. Valid values: * compliant * non_compliant * not_run {#dpr-GET-releases-policies-status__ul_yqv_x1d_hhc} Data type: String |
| result.products.productId | Sys_id of the product. Table: Product Model \[cmdb_model\] Data type: String |
| result.products.productName | Display name of the product. Data type: String |
| result.products.productVersion | Version associated with the product for the current release. Data type: String |
| result.products.summary | Compliance results for the product. Data type: Object "summary": { "compliant": Boolean, "compliantCount": Number, "nonCompliantCount": Number, "totalCount": Number } |
| result.products.summary.compliant | Flag that indicates whether all policies for the product are compliant. Valid values: * true: All policies are compliant. * false: Not all policies are compliant. {#dpr-GET-releases-policies-status__ul_kh3_myc_hhc} Data type: Boolean |
| result.products.summary.compliantCount | Number of compliant policies. Data type: Number |
| result.products.summary.nonCompliantCount | Number of non-compliant policies. Data type: Number |
| result.products.summary.totalCount | Total number of policies evaluated for the product. Data type: Number |
[ ]

### cURL request

This example gets policy execution details for the current phase of the specified release.

    curl "https://instance.service-now.com/api/sn_dpr/digital_product_release/releases/d4982eeb474b621027d48b41516d4385/policies/status" \
    --request GET \
    --header "Accept:application/json" \
    --user 'username':'password'

Response body.

    {
       "result": {
          "overallSummary": {
             "compliant": false,
             "compliantCount": 3,
             "nonCompliantCount": 2,
             "totalCount": 5,
             "currentPhase": "Phase Name",
             "timestamp": "2025-09-26T09:15:00Z"
          },
          "products": [
             {
                "productId": "f8fe5fd40a0a0b9100f91d64df145295",
                "productName": "Payments Service",
                "productVersion": "v2.4.1",
                "summary": {
                   "compliant": false,
                   "compliantCount": 1,
                   "nonCompliantCount": 1,
                   "totalCount": 2
                },
                "policyExecutionDetails": [
                   {
                      "name": "Policy Name 1",
                      "policyId": "f6783cc843590210ab16fc4bbcb8f223",
                      "status": "compliant",
                      "lastRunAt": "2025-09-26T08:30:00Z",
                      "executionOutput": "Check sum OK; 0 violations. Execution log id: e23-9a.",
                      "reason": "All checks passed"
                   },
                   {
                      "name": "Policy Name 2",
                      "policyId": "152bb04c43590210ab16fc4bbcb8f2a7",
                      "status": "non_compliant",
                      "lastRunAt": "2025-09-26T08:32:00Z",
                      "executionOutput": "Validation failed at step 3: required configuration missing.",
                      "reason": "Missing required configuration 'payments.retry_limit'"
                   }
                ]
             }
          ]
       }
    }

## Digital Product Release - POST /sn_dpr/digital_product_release/product_enhancement {#ariaid-title4}

Creates an enhancement for a product or service.
To access this endpoint, the caller must have the sn_dpr_model.product_manager role.

### URL format

Versioned URL: /api/sn_dpr/{api_version}/digital_product_release/product_enhancement

Default URL: /api/sn_dpr/digital_product_release/product_enhancement

### Supported request parameters

{#dpr-POST-product_enhancement__entry__2}{#dpr-POST-product_enhancement__version-not_optional-RESTAPI}

| Name | Description |
|-|-|
| api_version | Optional. Version of the endpoint to access. For example, <kbd class="ph userinput">v1</kbd> or <kbd class="ph userinput">v2</kbd>. Only specify this value to use an endpoint version other than the latest. Data type: String |
[Table 13. Path parameters]

{#dpr-POST-product_enhancement__entry__6}

| Name | Description |
|-|-|
| None |   |
[Table 14. Query parameters]

{#dpr-POST-product_enhancement__entry__10}

| Name | Description |
|-|-|
| description | Description of the enhancement. Data type: String |
| name | Required. Name of the enhancement. Data type: String |
| priority | Priority of the enhancement. Valid values: * high * medium * low {#dpr-POST-product_enhancement__ul_mkf_p5h_whc} Default: medium Data type: String |
| productFeatureSysId | Sys_id of the product feature to associate with the enhancement. Table: Product Feature \[sn_dpr_model_product_feature\] Data type: String |
| productSysId | Required. Sys_id of the product or service to associate with the enhancement. Table: Application Model \[cmdb_application_product_model\] or Service Model \[cmdb_service_product_model\] Data type: String |
| releaseSysId | Sys_id of the release to add the enhancement. The release must be associated with the version provided in the versionSysId parameter. Table: Release \[sn_dpr_model_release\] Data type: String |
| versionSysId | Sys_id of the product version or service version to associate with the enhancement. The version must be for the same product or service provided in the productSysId parameter. Table: Software Model \[cmdb_software_product_model\] or Service Offering Model \[cmdb_service_offering_model\] Data type: String |
[Table 15. Request body parameters (JSON)]

### Headers

The following request and response headers apply to this HTTP
action only, or apply to this action in a distinct way. For a list of general headers used
in the REST API, see [Supported REST API headers](https://www.servicenow.com/docs/qh7RcF0RI6a~i9u3octdlg "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#dpr-POST-product_enhancement__table_zpj_tcp_whc__entry__2}{#dpr-POST-product_enhancement__accept-JSON-only-entry-RESTAPI}{#dpr-POST-product_enhancement__content_type-JSON-only-entry-RESTAPI}

| Header | Description |
|-|-|
| Accept | Data format of the response body. Only supports application/json. |
| Content-Type | Data format of the request body. Only supports application/json. |
[Table 16. Request headers]

{#dpr-POST-product_enhancement__table_zpj_tcp_whc} {#dpr-POST-product_enhancement__entry__32}

| Header | Description |
|-|-|
| None |   |
[Table 17. Response headers]

### Status codes

The following status codes apply to this HTTP action. For a
list of possible status codes used in the REST API, see [REST API HTTP response
codes](https://www.servicenow.com/docs/qh7RcF0RI6a~i9u3octdlg "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#dpr-POST-product_enhancement__entry__36}{#dpr-POST-product_enhancement__entry-400-status-code}{#dpr-POST-product_enhancement__entry-500-status-code}

| Status code | Description |
|-|-|
| 201 | Created. The enhancement was successfully created. |
| 400 | Bad Request. A bad request type or malformed request was detected. |
| 500 | Internal server error. An unexpected error occurred while processing the request. The response contains additional information about the error. |
[Table 18. Status codes]

### Response body parameters (JSON)

{#dpr-POST-product_enhancement__table_fv1_gmm_fhc__entry__2}

| Name | Description |
|-|-|
| result | Details about the API request. Data type: Object "result": { "error": Boolean, "sysId": "String" } |
| result.error | Flag that indicates whether there is an error with the API request. Possible values: * true: Error. * false: No error. {#dpr-POST-product_enhancement__ul_tz2_smm_fhc} Data type: Boolean |
| result.sysId | Sys_id of the created enhancement. Table: Product Enhancement \[sn_dpr_model_product_enhancement\] Data type: String |
[ ]

{#dpr-POST-product_enhancement__table_fv1_gmm_fhc}  

### cURL request

This example creates a product enhancement.

    curl "https://instance.service-now.com/api/sn_dpr/digital_product_release/product_enhancement" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
       \"name\":\"Offline streaming\", 
       \"productSysId\":\"de8e9c0dfff8f2108289ffffffffff61\", 
       \"priority\":\"high\", 
       \"description\":\"Enhancement description\", 
       \"versionSysId\":\"da4b608dff7cf2108289ffffffffffc2\", 
       \"releaseSysId\":\"9a4b608dff7cf2108289ffffffffffc3\", 
       \"productFeatureSysId\":\"192d2905ff7436108289ffffffffff3f\" 
    }" \
    --user 'username':'password'

Response body.

    {
       "result": {
          "error": false,
          "sysId": "76417985ff7436108289ffffffffff5f"
       }
    }

## Digital Product Release - POST /sn_dpr/digital_product_release/release {#ariaid-title5}

Creates a release.
A release can be created as an independent release, or as a primary release that includes child releases. This endpoint can also be used to move an existing release from the Draft state to In Progress.  
To access this endpoint, the caller must have one of the following roles.

* sn_dpr_model.product_manager
* sn_dpr_model.release_admin
{#dpr-POST-release__ul_nwh_2fr_2hc}

### URL format

Versioned URL: /api/sn_dpr/{api_version}/digital_product_release/release

Default URL: /api/sn_dpr/digital_product_release/release

### Supported request parameters

{#dpr-POST-release__entry__2}{#dpr-POST-release__version-not_optional-RESTAPI}

| Name | Description |
|-|-|
| api_version | Optional. Version of the endpoint to access. For example, <kbd class="ph userinput">v1</kbd> or <kbd class="ph userinput">v2</kbd>. Only specify this value to use an endpoint version other than the latest. Data type: String |
[Table 19. Path parameters]

{#dpr-POST-release__entry__6}

| Name | Description |
|-|-|
| None |   |
[Table 20. Query parameters]

{#dpr-POST-release__entry__10}

| Name | Description |
|-|-|
| autoCreateIncludedVersions | List of child release versions to automatically create. Data type: Array "autoCreateIncludedVersions": [ { "product": "String", "version": "String" } ] |
| autoCreateIncludedVersions.product | Sys_id of the product to use for the version. Table: Product Model \[cmdb_model\] Data type: String |
| autoCreateIncludedVersions.version | Name of the version. Data type: String |
| autoCreateVersionName | Name of the version to automatically create. Data type: String |
| draftReleaseId | Sys_id of the draft release. Use this parameter to move a release from the Draft state to In Progress. Table: Release \[sn_dpr_model_release\] Data type: String |
| includedVersions | List of sys_ids of existing product versions to include in the release. Table: System Component Model \[cmdb_sw_component_model\] Data type: Array |
| isDraftRelease | Flag that indicates whether to create the release in the Draft state. Valid values: * true: The release is created with the state set to Draft. * false: The release is created with the state set to In Progress. {#dpr-POST-release__ul_pzs_pfp_ghc} Default: False Data type: Boolean |
| name | Required. Name of the release. Data type: String |
| productId | Required. Sys_id of the product. Table: Product Model \[cmdb_model\] Data type: String |
| productVersion | Sys_id of the product version. Table: System Component Model \[cmdb_sw_component_model\] Data type: String |
| releaseCalendar | Sys_id of the release calendar. Table: Release Calendar \[sn_dpr_model_release_calendar\] Data type: String |
| releaseDate | Release date in the format yyyy-MM-dd. Using this parameter creates a record in the Release Readiness Target \[sn_dpr_model_release_target\] table. Data type: String |
| releaseDescription | Description of the release. Data type: String |
| releaseOwner | Required. Sys_id of the release owner. Table: User \[sys_user\] Data type: String |
| releaseTarget | Sys_id of the release readiness target. Table: Release Readiness Target \[sn_dpr_model_release_target\] Data type: String |
| templateId | Sys_id of the template to use for the release. Table: Release Template \[sn_dpr_model_release_template\] Data type: String |
| validatesVersion | Flag that indicates whether the release validates a version. Valid values: * true: The release validates a version. * false: The release doesn't validate a version. {#dpr-POST-release__ul_vtk_kfp_ghc} Default: False Data type: Boolean |
[Table 21. Request body parameters (JSON)]

### Headers

The following request and response headers apply to this HTTP
action only, or apply to this action in a distinct way. For a list of general headers used
in the REST API, see [Supported REST API headers](https://www.servicenow.com/docs/qh7RcF0RI6a~i9u3octdlg "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#dpr-POST-release__entry__46}{#dpr-POST-release__accept-JSON-only-entry-RESTAPI}{#dpr-POST-release__content_type-JSON-only-entry-RESTAPI}

| Header | Description |
|-|-|
| Accept | Data format of the response body. Only supports application/json. |
| Content-Type | Data format of the request body. Only supports application/json. |
[Table 22. Request headers]

{#dpr-POST-release__entry__52}

| Header | Description |
|-|-|
| None |   |
[Table 23. Response headers]

### Status codes

The following status codes apply to this HTTP action. For a
list of possible status codes used in the REST API, see [REST API HTTP response
codes](https://www.servicenow.com/docs/qh7RcF0RI6a~i9u3octdlg "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#dpr-POST-release__entry__56}{#dpr-POST-release__entry-400-status-code}

| Status code | Description |
|-|-|
| 201 | Created. The release was successfully created. |
| 400 | Bad Request. A bad request type or malformed request was detected. |
[Table 24. Status codes]

### Response body parameters (JSON) {#dpr-POST-release__section_hsf_11q_ghc}

{#dpr-POST-release__table_fv1_gmm_fhc__entry__2}

| Name | Description |
|-|-|
| result | Details about the API request. Data type: Object "result": { "error": Boolean, "message": "String", "progressId": "String", "releaseId": "String" } |
| result.error | Flag that indicates whether there is an error with the API request. Possible values: * true: Error. * false: No error. {#dpr-POST-release__ul_tz2_smm_fhc} Data type: Boolean |
| result.message | Message containing details about the success or failure of the API request. Data type: String |
| result.progressId | Sys id of the tracker for the creation progress of the child release versions listed in the autoCreateIncludedVersions request parameter. Table: Progress Worker \[sys_progress_worker\] Data type: String |
| result.releaseId | Sys_id of the created primary release. Table: Release \[sn_dpr_model_release\] Data type: String |
[ ]

{#dpr-POST-release__table_fv1_gmm_fhc}  

### cURL request

This example creates a release with included versions.

    curl "https://instance.service-now.com/api/sn_dpr/v1/digital_product_release/release" \ 
    --request POST \ 
    --header "Accept:application/json" \ 
    --header "Content-Type:application/json" \ 
    --data "{ 
      \"name\": \"Patch Q4\", 
      \"releaseTarget\": \"8071e5f8ff687a10509cffffffffffd9\", 
      \"releaseOwner\": \"6816f79cc0a8016401c5a33be04be441\", 
      \"releaseDescription\": \"Q4 release\", 
      \"productVersion\": \"\", 
      \"templateId\": \"c83134a4ff643a10509cffffffffffb5\", 
      \"releaseDate\": \"\", 
      \"releaseCalendar\": \"\", 
      \"includedVersions\": [ 
        \"39fd3f66ff503610509cffffffffff09\" 
      ], 
      \"productId\": \"c65c372bfb9d5610fdacfe7405efdcd7\", 
      \"autoCreateVersionName\": \"1.2\", 
      \"autoCreateIncludedVersions\": [ 
        { 
          \"product\": \"de66ea3833e966103e8361a9ed5c7b4e\", 
          \"version\": \"1.1\" 
        } 
      ] 
    }" \ 
    --user 'username':'password'

Response body.

    {
      "result": { 
        "error": false, 
        "message": "", 
        "releaseId": "af90e98dff3c3210509cffffffffffc9", 
        "progressId": "f7902d01ffbc3210509cffffffffff7b" 
      } 
    }

### cURL request {#dpr-POST-release__example_bqc_mdq_ghc}

This example moves an existing release from the Draft state to In Progress.

    curl "https://instance.service-now.com/api/sn_dpr/v1/digital_product_release/release" \ 
    --request POST \ 
    --header "Accept:application/json" \ 
    --header "Content-Type:application/json" \ 
    --data "{ 
      \"name\": \"Q4 2025 Product Release\", 
      \"releaseTarget\": \"077e1ffb97bc4e107bc2341de053afe2\", 
      \"releaseOwner\": \"6816f79cc0a8016401c5a33be04be441\", 
      \"releaseDescription\": \"\", 
      \"productVersion\": \"0ff12581ffbc3210509cffffffffff15\", 
      \"templateId\": \"648c6ca8ffe03a10509cffffffffff11\", 
      \"releaseDate\": \"\", 
      \"releaseCalendar\": \"\", 
      \"includedVersions\": [], 
      \"productId\": \"\", 
      \"autoCreateVersionName\": \"\", 
      \"autoCreateIncludedVersions\": [], 
      \"draftReleaseId\": \"83f12581ffbc3210509cffffffffff16\" 
    }" \ 
    --user 'username':'password'

Response body.

    { 
      "result": { 
        "error": false, 
        "message": "", 
        "releaseId": "83f12581ffbc3210509cffffffffff16" 
      } 
    }

### cURL request {#dpr-POST-release__example_mnp_j2q_ghc}

This example creates an independent release.

    curl "https://instance.service-now.com/api/sn_dpr/v1/digital_product_release/release" \ 
    --request POST \ 
    --header "Accept:application/json" \ 
    --header "Content-Type:application/json" \ 
    --data "{ 
      \"name\": \"Q2 2026 patch\", 
      \"productVersion\": null, 
      \"releaseTarget\": \"008b84a1ffe4ba10509cffffffffff2c\", 
      \"releaseDescription\": \"\", 
      \"releaseOwner\": \"6816f79cc0a8016401c5a33be04be441\", 
      \"productId\": \"012c6d20ff203210229bffffffffff25\", 
      \"autoCreateVersionName\": \"2.4\", 
      \"templateId\": \"648c6ca8ffe03a10509cffffffffff11\", 
      \"releaseDate\": \"\", 
      \"releaseCalendar\": \"\", 
      \"isDraftRelease\": false, 
      \"validatesVersion\": true 
    }" \ 
    --user 'username':'password'

Response body.

    { 
      "result": { 
        "error": false, 
        "message": "", 
        "releaseId": "c6f52181ffbc3210509cffffffffffc0" 
      } 
    }

## Digital Product Release - POST /sn_dpr/digital_product_release/release/{releaseId}/key_date {#ariaid-title6}

Creates a key date for a release.
Key dates are used to track deadlines, milestones, and other important events during the release.

Before calling this endpoint, a [timeline-oriented release](https://www.servicenow.com/docs/access?context=dpr-working-timeline-release&version=australia&pubname=australia-it-service-management&ft:locale=en-US) must be created. A timeline-oriented release has fixed deadlines and follows a strict schedule, while a stage-oriented release is primarily focused
on completing objectives and features rather than meeting due dates.  
To access this endpoint, the caller must have one of the following roles.

* sn_dpr_model.product_manager
* sn_dpr_model.release_admin
* sn_dpr_model.release_coordinator
{#dpr-POST-release-key_date__ul_nwh_2fr_2hc}

### URL format

Versioned URL: /api/sn_dpr/{api_version}/digital_product_release/release/{releaseId}/key_date

Default URL: /api/sn_dpr/digital_product_release/release/{releaseId}/key_date

### Supported request parameters

{#dpr-POST-release-key_date__entry__2}{#dpr-POST-release-key_date__version-not_optional-RESTAPI}

| Name | Description |
|-|-|
| api_version | Optional. Version of the endpoint to access. For example, <kbd class="ph userinput">v1</kbd> or <kbd class="ph userinput">v2</kbd>. Only specify this value to use an endpoint version other than the latest. Data type: String |
| releaseId | Sys_id of the release. Table: Release \[sn_dpr_model_release\] Data type: String |
[Table 25. Path parameters]

{#dpr-POST-release-key_date__entry__8}

| Name | Description |
|-|-|
| None |   |
[Table 26. Query parameters]

{#dpr-POST-release-key_date__entry__12}

| Name | Description |
|-|-|
| assignedTo | Sys_id of the user assigned to the key date. The user must have one of the following roles. * sn_dpr_model.product_manager * sn_dpr_model.release_admin * sn_dpr_model.release_coordinator * sn_dpr_model.release_user {#dpr-POST-release-key_date__ul_kyv_ghc_xhc} Table: User \[sys_user\] Data type: String |
| description | Description of the key date. Data type: String |
| duedate | Required. Due date that the event or objective must be completed by. The due date must be between the release planned start and end dates. Format: yyyy-MM-dd Data type: String |
| name | Required. Name of the key date. Data type: String |
| state | Required. State of the key date. Valid values: * archived * missed * upcoming {#dpr-POST-release-key_date__ul_ssr_1hc_xhc} Data type: String |
| type | Required. Type of key date. Valid values: * deadline * important_date * key_event * milestone {#dpr-POST-release-key_date__ul_ikw_3fc_xhc} Data type: String |
[Table 27. Request body parameters (JSON)]

### Headers

The following request and response headers apply to this HTTP
action only, or apply to this action in a distinct way. For a list of general headers used
in the REST API, see [Supported REST API headers](https://www.servicenow.com/docs/qh7RcF0RI6a~i9u3octdlg "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#dpr-POST-release-key_date__table_zpj_tcp_whc__entry__2}{#dpr-POST-release-key_date__accept-JSON-only-entry-RESTAPI}{#dpr-POST-release-key_date__content_type-JSON-only-entry-RESTAPI}

| Header | Description |
|-|-|
| Accept | Data format of the response body. Only supports application/json. |
| Content-Type | Data format of the request body. Only supports application/json. |
[Table 28. Request headers]

{#dpr-POST-release-key_date__table_zpj_tcp_whc} {#dpr-POST-release-key_date__entry__32}

| Header | Description |
|-|-|
| None |   |
[Table 29. Response headers]

### Status codes

The following status codes apply to this HTTP action. For a
list of possible status codes used in the REST API, see [REST API HTTP response
codes](https://www.servicenow.com/docs/qh7RcF0RI6a~i9u3octdlg "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#dpr-POST-release-key_date__table_d11_5kv_whc__entry__2}{#dpr-POST-release-key_date__entry-400-status-code}{#dpr-POST-release-key_date__entry-500-status-code}

| Status code | Description |
|-|-|
| 201 | Created. The key date was successfully created. |
| 400 | Bad Request. A bad request type or malformed request was detected. |
| 500 | Internal server error. An unexpected error occurred while processing the request. The response contains additional information about the error. |
[Table 30. Status codes]

{#dpr-POST-release-key_date__table_d11_5kv_whc}

### Response body parameters (JSON)

{#dpr-POST-release-key_date__table_fv1_gmm_fhc__entry__2}

| Name | Description |
|-|-|
| result | Details about the API request. Data type: Object "result": { "error": Boolean, "keyDateSysId": "String", "message": "String" } |
| result.error | Flag that indicates whether there is an error with the API request. Possible values: * true: Error. * false: No error. {#dpr-POST-release-key_date__ul_tz2_smm_fhc} Data type: Boolean |
| result.keyDateSysId | Sys_id of the created key date. Table: Release Key Date \[sn_dpr_model_release_key_date\] Data type: String |
| result.message | Message containing details about the success or failure of the API request. Data type: String |
[ ]

{#dpr-POST-release-key_date__table_fv1_gmm_fhc}  

### cURL request

This example creates a project launch date for a specified release.

    curl "https://instance.service-now.com/api/sn_dpr/digital_product_release/release/eb7dd11d97b402107bc2341de053af34/key_date" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{ 
        \"name\": \"Project Launch\", 
        \"type\": \"milestone\", 
        \"dueDate\": \"2025-11-01\", 
        \"state\": \"upcoming\", 
        \"description\": \"Launching the new project phase.\", 
        \"assignedTo\": \"62826bf03710200044e0bfc8bcbe5df1\" 
    }" \
    --user 'username':'password'

Response body.

    {
       "result": {
          "error": false,
          "message": "Release key date created successfully",
          "keyDateSysId": "eb0b0905ff7036108289ffffffffff6d"
       }
    }

## Digital Product Release - POST /sn_dpr/digital_product_release/release/{releaseId}/policies/run {#ariaid-title7}

Executes mapped policies for the current phase of a release.
To access this endpoint, the caller must have the sn_dpr_model.product_manager role.

Before calling this endpoint, the release state must be In Progress and the current phase state must also be In Progress. You can view release information in the Digital Product Release
Workspace in the Releases tab.

### URL format

Versioned URL: /api/sn_dpr/{api_version}/digital_product_release/release/{releaseId}/policies/run

Default URL: /api/sn_dpr/digital_product_release/release/{releaseId}/policies/run

### Supported request parameters

{#dpr-POST-release-policies-run__entry__2}{#dpr-POST-release-policies-run__version-not_optional-RESTAPI}

| Name | Description |
|-|-|
| api_version | Optional. Version of the endpoint to access. For example, <kbd class="ph userinput">v1</kbd> or <kbd class="ph userinput">v2</kbd>. Only specify this value to use an endpoint version other than the latest. Data type: String |
| releaseId | Sys_id of the release. Table: Release \[sn_dpr_model_release\] Data type: String |
[Table 31. Path parameters]

{#dpr-POST-release-policies-run__entry__8}

| Name | Description |
|-|-|
| None |   |
[Table 32. Query parameters]

{#dpr-POST-release-policies-run__entry__12}

| Name | Description |
|-|-|
| None |   |
[Table 33. Request body parameters (JSON)]

### Headers

The following request and response headers apply to this HTTP
action only, or apply to this action in a distinct way. For a list of general headers used
in the REST API, see [Supported REST API headers](https://www.servicenow.com/docs/qh7RcF0RI6a~i9u3octdlg "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#dpr-POST-release-policies-run__entry__16}{#dpr-POST-release-policies-run__accept-JSON-only-entry-RESTAPI}

| Header | Description |
|-|-|
| Accept | Data format of the response body. Only supports application/json. |
[Table 34. Request headers]

{#dpr-POST-release-policies-run__entry__20}

| Header | Description |
|-|-|
| None |   |
[Table 35. Response headers]

### Status codes

The following status codes apply to this HTTP action. For a
list of possible status codes used in the REST API, see [REST API HTTP response
codes](https://www.servicenow.com/docs/qh7RcF0RI6a~i9u3octdlg "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#dpr-POST-release-policies-run__table_csx_jkm_fhc__entry__2}{#dpr-POST-release-policies-run__entry-400-status-code}{#dpr-POST-release-policies-run__entry-500-status-code}

| Status code | Description |
|-|-|
| 201 | Created. The release phase policies are scheduled to be run. |
| 400 | Bad Request. A bad request type or malformed request was detected. |
| 500 | Internal server error. An unexpected error occurred while processing the request. The response contains additional information about the error. |
[Table 36. Status codes]

{#dpr-POST-release-policies-run__table_csx_jkm_fhc}

### Response body parameters (JSON)

{#dpr-POST-release-policies-run__table_fv1_gmm_fhc__entry__2}

| Name | Description |
|-|-|
| result | Details about the API request. Data type: Object "result": { "error": Boolean, "errorCode": "String", "message": "String", "policyExecutionScheduled": Boolean } |
| result.error | Flag that indicates whether there is an error with the API request. Possible values: * true: Error. * false: No error. {#dpr-POST-release-policies-run__ul_tz2_smm_fhc} Data type: Boolean |
| result.errorCode | HTTP status code for the request. Data type: String |
| result.message | Message containing details about the success or failure of the API request. Data type: String |
| result.policyExecutionScheduled | Flag that indicates whether the release phase policies are scheduled to be run. Valid values: * true: Release phase policies are scheduled to be run. * false: Release phase policies aren't scheduled to be run. {#dpr-POST-release-policies-run__ul_hfm_2nm_fhc} Data type: Boolean |
[ ]

{#dpr-POST-release-policies-run__table_fv1_gmm_fhc}  

### cURL request

This example executes the mapped policies for the current phase of the specified release.

    curl "https://instance.service-now.com/api/sn_dpr/digital_product_release/release/d4982eeb474b621027d48b41516d4385/policies/run" \
    --request POST \
    --header "Accept:application/json" \
    --user 'username':'password'

Response body.

    {
       "result": {
          "error": false,
          "errorCode": "",
          "message": "Policy execution scheduled.",
          "policyExecutionScheduled": true
       }
    }

## Digital Product Release - POST /sn_dpr/digital_product_release/release/{releaseId}/related_task {#ariaid-title8}

Adds related tasks to a release.
You can view release information in the Digital Product Release Workspace in the Releases tab. Related tasks for a release are shown in the Release Scope section of a release record.  
Important:  
Before calling this endpoint, there must be existing task records that can be added as related tasks for the release. The records must be in tables that extend the Task \[task\] table, but not in the Task table itself. In the [sn_dpr_model.release_related_task_types](https://www.servicenow.com/docs/access?context=digital-product-release-properties&version=australia&pubname=australia-it-service-management&ft:locale=en-US) system property, list the tables that contain your task records.  
To access this endpoint, the caller must have one of the following roles.

* sn_dpr_model.product_manager
* sn_dpr_model.release_admin
{#dpr-POST-release-related_task__ul_nwh_2fr_2hc}

### URL format

Versioned URL: /api/sn_dpr/{api_version}/digital_product_release/release/{releaseId}/related_task

Default URL: /api/sn_dpr/digital_product_release/release/{releaseId}/related_task

### Supported request parameters

{#dpr-POST-release-related_task__entry__2}{#dpr-POST-release-related_task__version-not_optional-RESTAPI}

| Name | Description |
|-|-|
| api_version | Optional. Version of the endpoint to access. For example, <kbd class="ph userinput">v1</kbd> or <kbd class="ph userinput">v2</kbd>. Only specify this value to use an endpoint version other than the latest. Data type: String |
| releaseId | Sys_id of the release. Table: Release \[sn_dpr_model_release\] Data type: String |
[Table 37. Path parameters]

{#dpr-POST-release-related_task__entry__8}

| Name | Description |
|-|-|
| None |   |
[Table 38. Query parameters]

{#dpr-POST-release-related_task__entry__12}

| Name | Description |
|-|-|
| taskIds | Required. List of task sys_ids to add as related tasks for the release. The task records must be from tables listed in the sn_dpr_model.release_related_task_types system property. For more information, see [Digital Product Release properties](https://www.servicenow.com/docs/access?context=digital-product-release-properties&version=australia&pubname=australia-it-service-management&ft:locale=en-US). Data type: Array |
[Table 39. Request body parameters (JSON)]

### Headers

The following request and response headers apply to this HTTP
action only, or apply to this action in a distinct way. For a list of general headers used
in the REST API, see [Supported REST API headers](https://www.servicenow.com/docs/qh7RcF0RI6a~i9u3octdlg "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#dpr-POST-release-related_task__table_zpj_tcp_whc__entry__2}{#dpr-POST-release-related_task__accept-JSON-only-entry-RESTAPI}{#dpr-POST-release-related_task__content_type-JSON-only-entry-RESTAPI}

| Header | Description |
|-|-|
| Accept | Data format of the response body. Only supports application/json. |
| Content-Type | Data format of the request body. Only supports application/json. |
[Table 40. Request headers]

{#dpr-POST-release-related_task__table_zpj_tcp_whc} {#dpr-POST-release-related_task__entry__22}

| Header | Description |
|-|-|
| None |   |
[Table 41. Response headers]

### Status codes

The following status codes apply to this HTTP action. For a
list of possible status codes used in the REST API, see [REST API HTTP response
codes](https://www.servicenow.com/docs/qh7RcF0RI6a~i9u3octdlg "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#dpr-POST-release-related_task__table_d11_5kv_whc__entry__2}{#dpr-POST-release-related_task__entry-400-status-code}{#dpr-POST-release-related_task__entry-500-status-code}

| Status code | Description |
|-|-|
| 201 | Created. The related tasks were successfully added to the release. |
| 400 | Bad Request. A bad request type or malformed request was detected. |
| 500 | Internal server error. An unexpected error occurred while processing the request. The response contains additional information about the error. |
[Table 42. Status codes]

{#dpr-POST-release-related_task__table_d11_5kv_whc}

### Response body parameters (JSON)

{#dpr-POST-release-related_task__table_fv1_gmm_fhc__entry__2}

| Name | Description |
|-|-|
| result | Details about the API request. Data type: Object "result": { "error": Boolean, "message": "String" } |
| result.error | Flag that indicates whether there is an error with the API request. Possible values: * true: Error. * false: No error. {#dpr-POST-release-related_task__ul_tz2_smm_fhc} Data type: Boolean |
| result.message | Message containing details about the success or failure of the API request. Data type: String |
[ ]

{#dpr-POST-release-related_task__table_fv1_gmm_fhc}  

### cURL request

This example adds two related tasks to a release.

    curl "https://instance.service-now.com/api/sn_dpr/digital_product_release/release/eb7dd11d97b402107bc2341de053af34/related_task" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{\"taskIds\": [\"36836028532023004247ddeeff7b12f1\", \"bc84b11dff5c32108289ffffffffff12\"]}" \
    --user 'username':'password'

Response body.

    {
       "result": {
          "error": false,
          "message": "Successfully created the mappings between the release and all the tasks."
       }
    }

## Digital Product Release - POST /sn_dpr/digital_product_release/release_calendar {#ariaid-title9}

Creates a release calendar.
To access this endpoint, the caller must have the sn_dpr_model.release_calendar_admin role.

### URL format

Versioned URL: /api/sn_dpr/{api_version}/digital_product_release/release_calendar

Default URL: /api/sn_dpr/digital_product_release/release_calendar

### Supported request parameters

{#dpr-POST-release_calendar__entry__2}{#dpr-POST-release_calendar__version-not_optional-RESTAPI}

| Name | Description |
|-|-|
| api_version | Optional. Version of the endpoint to access. For example, <kbd class="ph userinput">v1</kbd> or <kbd class="ph userinput">v2</kbd>. Only specify this value to use an endpoint version other than the latest. Data type: String |
[Table 43. Path parameters]

{#dpr-POST-release_calendar__entry__6}

| Name | Description |
|-|-|
| None |   |
[Table 44. Query parameters]

{#dpr-POST-release_calendar__entry__10}

| Name | Description |
|-|-|
| description | Description of the release calendar. Data type: String |
| name | Required. Name of the release calendar. Data type: String |
| releaseAdmin | Required. Sys_id of the release calendar owner. Table: User \[sys_user\] Data type: String |
| schedules | Comma-separated list of schedule sys_ids to use for the release calendar. For example, `"sysId1,sysId2,sysId3"`. Table: Schedule \[cmn_schedule\] Data type: String |
[Table 45. Request body parameters (JSON)]

### Headers

The following request and response headers apply to this HTTP
action only, or apply to this action in a distinct way. For a list of general headers used
in the REST API, see [Supported REST API headers](https://www.servicenow.com/docs/qh7RcF0RI6a~i9u3octdlg "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#dpr-POST-release_calendar__table_zpj_tcp_whc__entry__2}{#dpr-POST-release_calendar__accept-JSON-only-entry-RESTAPI}{#dpr-POST-release_calendar__content_type-JSON-only-entry-RESTAPI}

| Header | Description |
|-|-|
| Accept | Data format of the response body. Only supports application/json. |
| Authorization | Basic or bearer token for authentication. |
| Content-Type | Data format of the request body. Only supports application/json. |
[Table 46. Request headers]

{#dpr-POST-release_calendar__table_zpj_tcp_whc} {#dpr-POST-release_calendar__entry__28}

| Header | Description |
|-|-|
| None |   |
[Table 47. Response headers]

### Status codes

The following status codes apply to this HTTP action. For a
list of possible status codes used in the REST API, see [REST API HTTP response
codes](https://www.servicenow.com/docs/qh7RcF0RI6a~i9u3octdlg "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#dpr-POST-release_calendar__table_d11_5kv_whc__entry__2}{#dpr-POST-release_calendar__entry-400-status-code}{#dpr-POST-release_calendar__entry-401-status-code}

| Status code | Description |
|-|-|
| 201 | Created. The release calendar was successfully created. |
| 400 | Bad Request. A bad request type or malformed request was detected. |
| 401 | Unauthorized. The user credentials are incorrect or have not been passed. |
[Table 48. Status codes]

{#dpr-POST-release_calendar__table_d11_5kv_whc}

### Response body parameters (JSON) {#dpr-POST-release_calendar__section_tmc_1lv_whc}

{#dpr-POST-release_calendar__table_fv1_gmm_fhc__entry__2}

| Name | Description |
|-|-|
| result | Details about the API request. Data type: Object "result": { "error": Boolean, "message": "String", "releaseCalendarId": "String" } |
| result.error | Flag that indicates whether there is an error with the API request. Possible values: * true: Error. * false: No error. {#dpr-POST-release_calendar__ul_tz2_smm_fhc} Data type: Boolean |
| result.message | Message containing details about the success or failure of the API request. Data type: String |
| result.releaseCalendarId | Sys_id of the created release calendar. Table: Release Calendar \[sn_dpr_model_release_calendar\] Data type: String |
[ ]

{#dpr-POST-release_calendar__table_fv1_gmm_fhc}  

### cURL request

This example creates a release calendar.

    curl 'https://instance.service-now.com/api/sn_dpr/v1/digital_product_release/release_calendar' \ 
    --request POST \
    --header 'Accept:application/json' \
    --header 'Content-Type: application/json' \ 
    --header 'Authorization: Basic <base64encoded-credentials>' \ 
    --data '{ 
        "name": "Q1 2025 Release Calendar123", 
        "releaseAdmin": "dc6770ae3b97a210532fb50f23e45a33", 
        "description": "Calendar for Q1 releases" 
    }'

Response body.

    {
       "result": {
          "error": false,
          "message": "",
          "releaseCalendarId": "5f6702c13bbc3a50532fb50f23e45a2b"
       }
    }

## Digital Product Release - POST /sn_dpr/digital_product_release/release_id/{releaseId}/complete_phase {#ariaid-title10}

Completes the current phase of a release.
Note:  
The current phase is only set to Completed if all policies for the phase are compliant.  
To access this endpoint, the caller must have one of the following roles.

* sn_dpr_model.product_manager
* sn_dpr_model.release_admin
* sn_dpr_model.release_coordinator
{#dpr-POST-releaseid-completephase__ul_nwh_2fr_2hc}

Before calling this endpoint, the release state must be In Progress and the current phase state must also be In Progress. You can view release information in the Digital Product Release
Workspace in the Releases tab.

### URL format

Versioned URL: /api/sn_dpr/{api_version}/digital_product_release/release_id/{releaseId}/complete_phase

Default URL: /api/sn_dpr/digital_product_release/release_id/{releaseId}/complete_phase

### Supported request parameters

{#dpr-POST-releaseid-completephase__entry__2}{#dpr-POST-releaseid-completephase__version-not_optional-RESTAPI}

| Name | Description |
|-|-|
| api_version | Optional. Version of the endpoint to access. For example, <kbd class="ph userinput">v1</kbd> or <kbd class="ph userinput">v2</kbd>. Only specify this value to use an endpoint version other than the latest. Data type: String |
| releaseId | Sys_id of the release. Table: Release \[sn_dpr_model_release\] Data type: String |
[Table 49. Path parameters]

{#dpr-POST-releaseid-completephase__entry__8}

| Name | Description |
|-|-|
| None |   |
[Table 50. Query parameters]

{#dpr-POST-releaseid-completephase__entry__12}

| Name | Description |
|-|-|
| None |   |
[Table 51. Request body parameters (JSON)]

### Headers

The following request and response headers apply to this HTTP
action only, or apply to this action in a distinct way. For a list of general headers used
in the REST API, see [Supported REST API headers](https://www.servicenow.com/docs/qh7RcF0RI6a~i9u3octdlg "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#dpr-POST-releaseid-completephase__entry__16}{#dpr-POST-releaseid-completephase__accept-JSON-only-entry-RESTAPI}

| Header | Description |
|-|-|
| Accept | Data format of the response body. Only supports application/json. |
[Table 52. Request headers]

{#dpr-POST-releaseid-completephase__entry__20}

| Header | Description |
|-|-|
| None |   |
[Table 53. Response headers]

### Status codes

The following status codes apply to this HTTP action. For a
list of possible status codes used in the REST API, see [REST API HTTP response
codes](https://www.servicenow.com/docs/qh7RcF0RI6a~i9u3octdlg "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#dpr-POST-releaseid-completephase__entry__24}{#dpr-POST-releaseid-completephase__entry-400-status-code}{#dpr-POST-releaseid-completephase__entry-500-status-code}

| Status code | Description |
|-|-|
| 201 | Created. The release phase was successfully completed. |
| 400 | Bad Request. A bad request type or malformed request was detected. |
| 500 | Internal server error. An unexpected error occurred while processing the request. The response contains additional information about the error. |
[Table 54. Status codes]

### Response body parameters (JSON)

{#dpr-POST-releaseid-completephase__entry__32}

| Name | Description |
|-|-|
| result | Details about the API request. The elements included in this object depend on whether the request succeeded or failed. Data type: Object Success object. "result": { "message": "String", "phaseSysId": "String", "status": "String", } Error object. "result": { "error": Boolean, "message": "String" } |
| result.error | Flag that indicates whether there is an error with the API request. This parameter is only returned if the request failed so the only possible value is `true`. Data type: Boolean |
| result.message | Message containing details about the success or failure of the API request. Data type: String |
| result.phaseSysId | Sys_id of the release phase. Table: Release Phase \[sn_dpr_model_release_phase\] Data type: String |
| result.status | Status of the API request. This parameter is only returned if the request was successful so the only possible value is `success`. Data type: String |
[ ]

### cURL request

This example completes the current phase of the specified release.

    curl "https://instance.service-now.com/api/sn_dpr/digital_product_release/release_id/d4982eeb474b621027d48b41516d4385/complete_phase" \
    --request POST \
    --header "Accept:application/json" \
    --user 'username':'password'

Response body.

    {
      "result": {
        "status": "success",
        "message": "Release phase is marked as complete",
        "phaseSysId": "2498222f474b621027d48b41516d4342"
      }
    }

### cURL request {#dpr-POST-releaseid-completephase__example_dtv_vsf_fhc}

This example shows an error response when an invalid release sys_id is provided.

    curl "https://instance.service-now.com/api/sn_dpr/digital_product_release/release_id/a/complete_phase" \
    --request POST \
    --header "Accept:application/json" \
    --user 'username':'password'

Error response.

    {
      "result": {
        "error": true,
        "message": "Release ID is invalid"
      }
    }

## Digital Product Release - POST /sn_dpr/digital_product_release/release_target {#ariaid-title11}

Creates a release readiness target or a set of recurring release readiness targets.
To access this endpoint, the caller must have one of the following roles.

* sn_dpr_model.product_manager
* sn_dpr_model.release_admin
{#dpr-POST-release_target__ul_nwh_2fr_2hc}

### URL format

Versioned URL: /api/sn_dpr/{api_version}/digital_product_release/release_target

Default URL: /api/sn_dpr/digital_product_release/release_target

### Supported request parameters

{#dpr-POST-release_target__entry__2}{#dpr-POST-release_target__version-not_optional-RESTAPI}

| Name | Description |
|-|-|
| api_version | Optional. Version of the endpoint to access. For example, <kbd class="ph userinput">v1</kbd> or <kbd class="ph userinput">v2</kbd>. Only specify this value to use an endpoint version other than the latest. Data type: String |
[Table 55. Path parameters]

{#dpr-POST-release_target__entry__6}

| Name | Description |
|-|-|
| None |   |
[Table 56. Query parameters]

{#dpr-POST-release_target__entry__10}

| Name | Description |
|-|-|
| description | Description of the readiness target. Data type: String |
| endDate | End date for a recurring readiness target. Required if isRecurring is `true`. Data type: String |
| isRecurring | Required. Flag that indicates whether the readiness target is recurring. Valid values: * true: The target is recurring. * false: The target is a single date. {#dpr-POST-release_target__ul_nwm_nxf_k3c} Data type: Boolean |
| name | Required. Name of the release readiness target. Data type: String |
| releaseAdmin | Required. Sys_id of the readiness target owner. Table: User \[sys_user\] Data type: String |
| releaseCalendar | Required. Sys_id of the release calendar for the readiness target. Table: Release Calendar \[sn_dpr_model_release_calendar\] Data type: String |
| repeats | Sets the schedule for a recurring readiness target. Required if isRecurring is `true`. Data type: Object "repeats": { "daysOfWeek": Number, "every": Number, "type": "String" } |
| repeats.daysOfWeek | Number of working days in a week. Data type: Number |
| repeats.every | Number of intervals between each date. Used with repeats.type to define the frequency the target recurs. In this example, the target recurs every two weeks. "repeats": { "every": 2, "type": "weekly" } Data type: Number |
| repeats.type | Type of interval between each date. Used with repeats.every to define the frequency the target recurs. Valid values: * weekly * monthly {#dpr-POST-release_target__ul_kgt_1bg_k3c} Data type: String |
| scheduleSysId | Sys_id of the schedule to use for the release target. Table: Schedule \[cmn_schedule\] Data type: String |
| startDate | Required. Date for the readiness target, or the first date of a recurring readiness target. Data type: String |
| targetsWithOverlappingScheduleDetails | List of dates for a recurring readiness target. Data type: Array "targetsWithOverlappingScheduleDetails": [ { "active": Boolean, "date": "String" } ] |
| targetsWithOverlappingScheduleDetails.active | Flag that indicates whether the readiness target recurrence is active. Valid values: * true: Active. * false: Inactive. {#dpr-POST-release_target__ul_sjq_hgg_k3c} Data type: Boolean |
| targetsWithOverlappingScheduleDetails.date | Date for the readiness target recurrence. Data type: String |
[Table 57. Request body parameters (JSON)]

### Headers

The following request and response headers apply to this HTTP
action only, or apply to this action in a distinct way. For a list of general headers used
in the REST API, see [Supported REST API headers](https://www.servicenow.com/docs/qh7RcF0RI6a~i9u3octdlg "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#dpr-POST-release_target__table_tn3_hhg_k3c__entry__2}{#dpr-POST-release_target__accept-JSON-only-entry-RESTAPI}{#dpr-POST-release_target__content_type-JSON-only-entry-RESTAPI}

| Header | Description |
|-|-|
| Accept | Data format of the response body. Only supports application/json. |
| Content-Type | Data format of the request body. Only supports application/json. |
[Table 58. Request headers]

{#dpr-POST-release_target__table_tn3_hhg_k3c} {#dpr-POST-release_target__entry__48}

| Header | Description |
|-|-|
| None |   |
[Table 59. Response headers]

### Status codes

The following status codes apply to this HTTP action. For a
list of possible status codes used in the REST API, see [REST API HTTP response
codes](https://www.servicenow.com/docs/qh7RcF0RI6a~i9u3octdlg "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#dpr-POST-release_target__table_osg_lhg_k3c__entry__2}{#dpr-POST-release_target__entry-400-status-code}

| Status code | Description |
|-|-|
| 201 | Created. Release target(s) successfully created. |
| 400 | Bad Request. A bad request type or malformed request was detected. |
[Table 60. Status codes]

{#dpr-POST-release_target__table_osg_lhg_k3c}

### Response body parameters (JSON)

{#dpr-POST-release_target__table_ndx_qsy_j3c__entry__2}

| Name | Description |
|-|-|
| result | Details about the API request. Data type: Object "result": { "count": Number, "error": Boolean, "message": "String" } |
| result.count | Number of release targets created by the API request. Data type: Number |
| result.error | Flag that indicates whether there is an error with the API request. Possible values: * true: Error. * false: No error. {#dpr-POST-release_target__ul_odx_qsy_j3c} Data type: Boolean |
| result.message | Error message. This parameter is empty for successful requests. Data type: String |
[ ]

{#dpr-POST-release_target__table_ndx_qsy_j3c}  

### cURL request

This example creates a set of four release readiness targets, with a target recurring every week on Friday.

    curl "https://instance.service-now.com/api/sn_dpr/digital_product_release/release_target" \ 
    --request POST \ 
    --header "Accept:application/json" \ 
    --header "Content-Type:application/json" \ 
    --data "{ 
      \"name\": \"Weekly Friday patch\", 
      \"releaseAdmin\": \"6816f79cc0a8016401c5a33be04be441\", 
      \"isRecurring\": true, 
      \"description\": \"\", 
      \"startDate\": \"2025-10-24\", 
      \"releaseCalendar\": \"d3d1f3b4ff60ba10509cffffffffffa8\", 
      \"endDate\": \"2025-11-19\", 
      \"repeats\": { 
        \"type\": \"weekly\", 
        \"every\": 1, 
        \"daysOfWeek\": 5 
      }, 
      \"scheduleSysId\": \"b862d589ff3c3210509cffffffffff97\", 
      \"targetsWithOverlappingScheduleDetails\": [ 
        { 
          \"active\": true, 
          \"date\": \"2025-10-24\" 
        }, 
        { 
          \"active\": true, 
          \"date\": \"2025-10-31\" 
        }, 
        { 
          \"active\": true, 
          \"date\": \"2025-11-07\" 
        }, 
        { 
          \"active\": true, 
          \"date\": \"2025-11-14\" 
        } 
      ] 
    }" \ 
    --user 'username':'password'

Response body.

    {
      "result": {
        "error": false,
        "message": "",
        "count": 4
      }
    }

### cURL request {#dpr-POST-release_target__example_cdx_2lz_j3c}

This example creates a release readiness target for a specified date.

    curl "https://instance.service-now.com/api/sn_dpr/digital_product_release/release_target" \ 
    --request POST \ 
    --header "Accept:application/json" \ 
    --header "Content-Type:application/json" \ 
    --data "{ 
      \"name\": \"Fourth Thursday patch\", 
      \"releaseAdmin\": \"6816f79cc0a8016401c5a33be04be441\", 
      \"isRecurring\": false, 
      \"description\": \"Last Thursday of October\", 
      \"startDate\": \"2025-10-30\", 
      \"releaseCalendar\": \"d3d1f3b4ff60ba10509cffffffffffa8\" 
    }" \ 
    --user 'username':'password' 

Response body.

    {
      "result": {
        "error": false,
        "message": "",
        "count": 1
      }
    }

## Digital Product Release - PUT /sn_dpr/digital_product_release/release/{sysId}/retarget {#ariaid-title12}

Changes the readiness target for a release.
The new readiness target can be an existing readiness target that is already defined, or an out-of-band date (a one-time readiness target not tied to the standard release calendar). To set an out-of-band date, the [sn_dpr.out_of_band_release_allowed](https://www.servicenow.com/docs/access?context=digital-product-release-properties&version=australia&pubname=australia-it-service-management&ft:locale=en-US) system property must be set to <kbd class="ph userinput">true</kbd>.

The release phase duration is adjusted to reflect the new readiness target.

Before calling this endpoint, the release state must be In Progress or Pending.  
To access this endpoint, the caller must have one of the following roles.

* sn_dpr_model.product_manager
* sn_dpr_model.release_admin
{#dpr-PUT-release-retarget__ul_nwh_2fr_2hc}

### URL format

Versioned URL: /api/sn_dpr/{api_version}/digital_product_release/release/{sysId}/retarget

Default URL: /api/sn_dpr/digital_product_release/release/{sysId}/retarget

### Supported request parameters

{#dpr-PUT-release-retarget__entry__2}{#dpr-PUT-release-retarget__version-not_optional-RESTAPI}

| Name | Description |
|-|-|
| api_version | Optional. Version of the endpoint to access. For example, <kbd class="ph userinput">v1</kbd> or <kbd class="ph userinput">v2</kbd>. Only specify this value to use an endpoint version other than the latest. Data type: String |
| sysId | Sys_id of the release. Table: Release \[sn_dpr_model_release\] Data type: String |
[Table 61. Path parameters]

{#dpr-PUT-release-retarget__entry__8}

| Name | Description |
|-|-|
| None |   |
[Table 62. Query parameters]

{#dpr-PUT-release-retarget__entry__12}

| Name | Description |
|-|-|
| outOfBand | Flag that indicates whether the readiness target is an out-of-band date (a one-time readiness target not tied to the standard release calendar). This parameter is required if releaseTarget  is not used. Valid values: * true: The readiness target is out-of-band. * false: The readiness target is already defined and tied to the standard release calendar. {#dpr-PUT-release-retarget__ul_hdr_lmy_j3c} Default: False Data type: Boolean |
| releaseCalendar | Sys_id of the release calendar to use for the readiness target. Required if using outOfBand. Table: Release Calendar \[sn_dpr_model_release_calendar\] Data type: String |
| releaseDate | Date for the readiness target. Required if using outOfBand. Data type: String |
| releaseTarget  | Sys_id of the release readiness target. Use this parameter to select an existing readiness target. Either this parameter or outOfBand is required to set the new target. Table: Release Readiness Target \[sn_dpr_model_release_target\] Data type: String |
[Table 63. Request body parameters (JSON)]

### Headers

The following request and response headers apply to this HTTP
action only, or apply to this action in a distinct way. For a list of general headers used
in the REST API, see [Supported REST API headers](https://www.servicenow.com/docs/qh7RcF0RI6a~i9u3octdlg "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#dpr-PUT-release-retarget__entry__22}{#dpr-PUT-release-retarget__accept-JSON-only-entry-RESTAPI}{#dpr-PUT-release-retarget__content_type-JSON-only-entry-RESTAPI}

| Header | Description |
|-|-|
| Accept | Data format of the response body. Only supports application/json. |
| Content-Type | Data format of the request body. Only supports application/json. |
[Table 64. Request headers]

{#dpr-PUT-release-retarget__entry__28}

| Header | Description |
|-|-|
| None |   |
[Table 65. Response headers]

### Status codes

The following status codes apply to this HTTP action. For a
list of possible status codes used in the REST API, see [REST API HTTP response
codes](https://www.servicenow.com/docs/qh7RcF0RI6a~i9u3octdlg "REST (REpresentational State Transfer) is a simple stateless architecture that provides standards between computer systems on the web, making it easier for them to communicate with each other.").
{#dpr-PUT-release-retarget__entry__32}{#dpr-PUT-release-retarget__entry-200-status-code}{#dpr-PUT-release-retarget__entry-400-status-code}{#dpr-PUT-release-retarget__entry-500-status-code}

| Status code | Description |
|-|-|
| 200 | Successful. The request was successfully processed. |
| 400 | Bad Request. A bad request type or malformed request was detected. |
| 500 | Internal server error. An unexpected error occurred while processing the request. The response contains additional information about the error. |
[Table 66. Status codes]

### Response body parameters (JSON)

{#dpr-PUT-release-retarget__table_ndx_qsy_j3c__entry__2}

| Name | Description |
|-|-|
| result | Details about the API request. Data type: Object "result": { "error": Boolean, "message": "String" } |
| result.error | Flag that indicates whether there is an error with the API request. Possible values: * true: Error. * false: No error. {#dpr-PUT-release-retarget__ul_odx_qsy_j3c} Data type: Boolean |
| result.message | Error message. This parameter is empty for successful requests. Data type: String |
[ ]

{#dpr-PUT-release-retarget__table_ndx_qsy_j3c}  

### cURL request

This example updates the release readiness target using an existing readiness target.

    curl "https://instance.service-now.com/api/sn_dpr/digital_product_release/release/9b2e7ec9476c8e105b8e0dcfe16d43d4/retarget" \
    --request PUT \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
       \"releaseTarget\": \"3f6668e95427fd10f877ac7ac399daa6\"
    }" \
    --user 'username':'password'

Response body.

    {
      "result": {
        "error": false,
        "message": ""
      }
    }

### cURL request {#dpr-PUT-release-retarget__example_mkk_lpy_j3c}

This example updates the release readiness target using an out-of-band readiness target.

    curl "https://instance.service-now.com/api/sn_dpr/digital_product_release/release/9b2e7ec9476c8e105b8e0dcfe16d43d4/retarget" \
    --request PUT \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
       \"outOfBand\": true,
       \"releaseCalendar\": \"fcb2eaa09f4302105c534d837a0a1c2b\",
       \"releaseDate\": \"2026-10-23\"
    }" \
    --user 'username':'password'

Response body.

    {
      "result": {
        "error": false,
        "message": ""
      }
    }


