---
title: "Release"
description: "Release"
url: "https://www.contentstack.com/docs/developers/sdks/content-management-sdk/javascript/reference/release"
product: "Contentstack"
doc_type: "guide"
audience:
  - developers
  - admins
version: "current"
last_updated: "2026-09-13"
---

# Release

## Release

You can pin a set of entries and assets (along with the deploy action, i.e., publish/unpublish) to a ‘[release](/docs/headless-cms/about-releases)’, and then deploy this release to an environment. This will publish/unpublish all the items of the release to the specified environment.

## update

The Update Release call lets you update the name and description of an existing Release.

```
import * as contentstack from '@contentstack/management'
const client = contentstack.client({ authtoken })

const release = {
    name: "Release Name",
    description: "2018-12-12",
    locked: false,
    archived: false
}

var release = client.stack({ api_key: 'api_key'}).release('release_uid')
Object.assign(release, cloneDeep(release))

release.update()
.then((release) => console.log(release))
import * as contentstack from '@contentstack/management'
const client = contentstack.client({ authtoken })

client.stack({ api_key: 'api_key'}).release('release_uid').fetch()
.then((release) => {
 release.title = 'My New release'
 release.description = 'Release description'
 return release.update()
})
.then((release) => console.log(release))
```

## fetch

The fetch Release call fetches Release details.

```
import * as contentstack from '@contentstack/management'
const client = contentstack.client({ authtoken })

client.stack({ api_key: 'api_key'}).release('release_uid')
.fetch()
.then((release) => console.log(release))
```

## delete

The Delete Release call is used to delete an existing Release permanently from your Stack.

```
import * as contentstack from '@contentstack/management'
const client = contentstack.client({ authtoken })

client.stack({ api_key: 'api_key'}).release('release_uid')
.delete()
.then((response) => console.log(response.notice))
```

## item

A ReleaseItem is a set of entries and assets that needs to be deployed (published or unpublished) all at once to a particular environment.

```
import * as contentstack from '@contentstack/management'
const client = contentstack.client({ authtoken })

client.stack({ api_key: 'api_key'}).release('release_uid').item()
.fetchAll()
.then((items) => console.log(items))
```

The environment(s) on which the Release should be deployed.

## deploy

Deploying a release performs the selected action (publish or unpublish) on the items of that release associated with a specific environment.

```
import * as contentstack from '@contentstack/management'
const client = contentstack.client({ authtoken })

client.stack({ api_key: 'api_key'}).release('release_uid').deploy({
     environments: [
                     "production",
                     "uat"
                     ],
     locales: [
                 "en-us",
                 "ja-jp"
              ],
     scheduledAt: '2018-12-12T13:13:13:122Z',
     action: 'publish',
})
.then((response) => console.log(response.notice))
```

The environment(s) on which the Release should be deployed.

The locale(s) on which the Release should be deployed.

The action on which the Release should be deployed.

The schedule time for the Release to deploy.

## clone

The Clone a Release request allows you to clone (make a copy of) a specific Release in a stack.

```
import * as contentstack from '@contentstack/management'
const client = contentstack.client({ authtoken })

client.stack({ api_key: 'api_key'}).release('release_uid')
.clone({ name: 'New Name', description: 'New Description'})
.then((release) => console.log(release))
```

The name of the cloned Release.

description of the cloned Release.

## create

The Create a Release request allows you to create a new Release in your stack. To add entries/assets to a Release, you need to provide the UIDs of the entries/assets in ‘items’ in the request body.

```
import * as contentstack from '@contentstack/management'
const client = contentstack.client({ authtoken })

const release = {
       name: "Release Name",
       description: "2018-12-12",
       locked: false,
       archived: false
}

client.stack({ api_key: 'api_key'}).release().create({ release })
.then((release) => console.log(release))
```

Release details.

## query

The Query on release will allow to fetch details of all or specific Releases.

```
import * as contentstack from '@contentstack/management'
const client = contentstack.client({ authtoken })

client.stack({ api_key: 'api_key'}).release().query()
.find()
.then((release) => console.log(release))
```

The 'include\_count’ parameter includes the count of total number of releases in your stack, along with the details of each release.

The ‘include\_items\_count’ parameter returns the total number of items in a specific release.

The ‘limit’ parameter will return a specific number of releases in the output.

The ‘skip’ parameter will skip a specific number of releases in the response.

## Release | JavaScript Management SDK | Contentstack

Release lets you pin entries and assets with a deploy action and publish or unpublish them to an environment in the JavaScript Management SDK.