> Portal Navigation:
> 
> - Append `.md` to any URL under `https://dev.wix.com/docs/` to get its markdown version.
> - Pages are either content pages (article or reference text) or menu pages (a list of links to child pages).
> - To get a menu page, truncate any URL to a parent path and append `.md` (e.g. `https://dev.wix.com/docs/sdk.md`, `https://dev.wix.com/docs/sdk/core-modules.md`).
> - Top-level index of all portals: https://dev.wix.com/docs/llms.txt
> - Full concatenated docs: https://dev.wix.com/docs/llms-full.txt

# RestoreRelease

# Package: containersProjects

# Namespace: ContainersProjects

# Method link: https://dev.wix.com/docs/api-reference/mobile/containers-app/containers-projects/project-v1/restore-release.md

## Permission Scopes:
Manage AppSmith Projects: SCOPE.CONTAINERS.PROJECTS

## Introduction

Restores an earlier version of a project.

Sets the project's `headReleaseId` to the release specified in `releaseId`. Your app then
previews that release, and the next design save or edit by the coding agent branches from it.
Restoring a release doesn't change the project's live app.

Only the project's owner can restore a release.

To confirm that the release belongs to the project before it's restored, specify
`himalayaControlToken`. To record the restored version in a conversation, specify the
conversation's ID in `conversationId`. A `CHECKPOINT` message is then added to the conversation.
If the checkpoint can't be added, the release is still restored.

---

## REST API

### Schema

```
 Method: restoreRelease
 Description: Restores an earlier version of a project.  Sets the project's `headReleaseId` to the release specified in `releaseId`. Your app then previews that release, and the next design save or edit by the coding agent branches from it. Restoring a release doesn't change the project's live app.  Only the project's owner can restore a release.  To confirm that the release belongs to the project before it's restored, specify `himalayaControlToken`. To record the restored version in a conversation, specify the conversation's GUID in `conversationId`. A `CHECKPOINT` message is then added to the conversation. If the checkpoint can't be added, the release is still restored.
 URL: https://www.wixapis.com/containers/projects/v1/projects/{projectId}/restore-release
 Method: POST
 # Note: If the parameter `a.b` is listed under required parameters, `b` is only required if `a` is also present.
 Required parameters:  releaseId
 Method parameters: 
   param name: conversationId | type: conversationId | description: GUID of the [conversation](https://dev.wix.com/docs/api-reference/mobile/containers-app/containers-chat/introduction.md) that the release is restored from.  When specified, a `CHECKPOINT` message that marks the restored version is added to the conversation. The conversation must belong to the project.  | validation: maxLength 100
   param name: himalayaControlToken | type: himalayaControlToken | description: Short-lived control credential for the project's app releases.  When specified, the release is checked to belong to the project before it's restored. Used for this call only. It isn't stored or returned.  | validation: maxLength 4096
   param name: releaseId | type: releaseId | description: GUID of the release to restore. For example, `rel-4f9c2a1b7d3e`. | required: true | validation: maxLength 200
 Return type: RestoreReleaseResponse
  - name: project | type: Project | description: Updated project. `headReleaseId` is set to the restored release.  
     - name: id | type: string | description: Project GUID.  | read-only: true | validation: format GUID
     - name: name | type: string | description: Project name, shown to the user.  | validation: maxLength 200
     - name: status | type: ProjectStatus | description: Project status.  
         - enum:
         -     PLANNING: The user and the coding agent are planning the app. New projects start with this status.
         -     BUILDING: The coding agent is building the app, or has built it. The user can continue to request changes.
         -     PLAN_READY: The plan is finalized, and the first build of the app is about to start.
     - name: templateId | type: string | description: GUID of the template that the project was created from.  | validation: format GUID, immutable
     - name: codeStoreProjectId | type: string | description: GUID of the project's source code project. Set automatically when the project is created.  | read-only: true | validation: format GUID
     - name: ownerUserId | type: string | description: GUID of the user who created the project.  | read-only: true | validation: format GUID
     - name: revision | type: string | description: Revision number, which increments by 1 each time the project is updated. To prevent conflicting changes, the current revision must be passed when updating the project.  Ignored when creating a project.  | read-only: true | validation: format int64
     - name: createdDate | type: string | description: Date and time the project was created.  | read-only: true | validation: format date-time
     - name: updatedDate | type: string | description: Date and time the project was last updated.  | read-only: true | validation: format date-time
     - name: sandboxStatus | type: SandboxStatus | description: Whether a remote development environment is being created for the project.  | read-only: true 
         - enum:
         -     NONE: No remote development environment is being created.
         -     CREATING: A remote development environment is being created.
     - name: metaSiteIds | type: array<string> | description: IDs of the Wix sites that the project relates to.  A project can relate to any number of sites, including none.  | validation: format GUID
     - name: platform | type: Platform | description: Platform that the project's app targets. Set when the project is created and can't be changed.  | validation: immutable
         - enum:
         -     IOS: Native iOS app. Used by older projects.
         -     ANDROID: Native Android app. Used by older projects.
         -     HIMALAYA_MOBILE: Mobile app built from content that's updated over the air, instead of native iOS or Android code. Most new projects use this platform.
     - name: appIconUrl | type: string | description: URL of the app's icon.  | validation: maxLength 2000
     - name: headReleaseId | type: string | description: GUID of the release that the project is currently on.  Your app previews this release, and the next design save or edit by the coding agent branches from it. Set automatically after each design save or edit, and by [Restore Release](https://dev.wix.com/docs/api-reference/mobile/containers-app/containers-projects/project-v1/restore-release.md). When empty, the project is on its newest release.  | read-only: true | validation: maxLength 200


```

### Examples

### Restore Release
Restores an earlier version of a project and adds a checkpoint to the conversation.

```curl
curl -X POST \
'https://www.wixapis.com/containers/projects/v1/projects/8046df3c-7575-4098-a5ab-c91ad8f33c47/restore-release' \
-H 'Authorization: <AUTH>' \
-H 'Content-Type: application/json' \
-d '{
  "releaseId": "rel-4f9c2a1b7d3e",
  "himalayaControlToken": "<CONTROL_TOKEN>",
  "conversationId": "1f5b2c8e-9a3d-4c21-8b77-2d2f6e0a9c10"
}'
```

---

## JavaScript SDK

### Schema

```
 Method: wixClientAdmin.containers.projects.restoreRelease(projectId, releaseId, options)
 Description: Restores an earlier version of a project.  Sets the project's `headReleaseId` to the release specified in `releaseId`. Your app then previews that release, and the next design save or edit by the coding agent branches from it. Restoring a release doesn't change the project's live app.  Only the project's owner can restore a release.  To confirm that the release belongs to the project before it's restored, specify `himalayaControlToken`. To record the restored version in a conversation, specify the conversation's GUID in `conversationId`. A `CHECKPOINT` message is then added to the conversation. If the checkpoint can't be added, the release is still restored.
 # Note: If the parameter `a.b` is listed under required parameters, `b` is only required if `a` is also present.
 Required parameters:  projectId, releaseId
 Method parameters: 
   param name: options | type: RestoreReleaseOptions  none  
        - name: himalayaControlToken | type: string | description: Short-lived control credential for the project's app releases.  When specified, the release is checked to belong to the project before it's restored. Used for this call only. It isn't stored or returned.  | validation: maxLength 4096
        - name: conversationId | type: string | description: GUID of the [conversation](https://dev.wix.com/docs/api-reference/mobile/containers-app/containers-chat/introduction.md) that the release is restored from.  When specified, a `CHECKPOINT` message that marks the restored version is added to the conversation. The conversation must belong to the project.  | validation: maxLength 100
   param name: projectId | type: string | description: GUID of the project to restore a release for. | required: true | validation: format GUID
   param name: releaseId | type: string | description: GUID of the release to restore. For example, `rel-4f9c2a1b7d3e`. | required: true | validation: maxLength 200
 Return type: PROMISE<RestoreReleaseResponse>
  - name: project | type: Project | description: Updated project. `headReleaseId` is set to the restored release.  
     - name: _id | type: string | description: Project GUID.  | read-only: true | validation: format GUID
     - name: name | type: string | description: Project name, shown to the user.  | validation: maxLength 200
     - name: status | type: ProjectStatus | description: Project status.  
         - enum:
         -     PLANNING: The user and the coding agent are planning the app. New projects start with this status.
         -     BUILDING: The coding agent is building the app, or has built it. The user can continue to request changes.
         -     PLAN_READY: The plan is finalized, and the first build of the app is about to start.
     - name: templateId | type: string | description: GUID of the template that the project was created from.  | validation: format GUID, immutable
     - name: codeStoreProjectId | type: string | description: GUID of the project's source code project. Set automatically when the project is created.  | read-only: true | validation: format GUID
     - name: ownerUserId | type: string | description: GUID of the user who created the project.  | read-only: true | validation: format GUID
     - name: revision | type: string | description: Revision number, which increments by 1 each time the project is updated. To prevent conflicting changes, the current revision must be passed when updating the project.  Ignored when creating a project.  | read-only: true | validation: format int64
     - name: _createdDate | type: Date | description: Date and time the project was created.  | read-only: true 
     - name: _updatedDate | type: Date | description: Date and time the project was last updated.  | read-only: true 
     - name: sandboxStatus | type: SandboxStatus | description: Whether a remote development environment is being created for the project.  | read-only: true 
         - enum:
         -     NONE: No remote development environment is being created.
         -     CREATING: A remote development environment is being created.
     - name: metaSiteIds | type: array<string> | description: IDs of the Wix sites that the project relates to.  A project can relate to any number of sites, including none.  | validation: format GUID
     - name: platform | type: Platform | description: Platform that the project's app targets. Set when the project is created and can't be changed.  | validation: immutable
         - enum:
         -     IOS: Native iOS app. Used by older projects.
         -     ANDROID: Native Android app. Used by older projects.
         -     HIMALAYA_MOBILE: Mobile app built from content that's updated over the air, instead of native iOS or Android code. Most new projects use this platform.
     - name: appIconUrl | type: string | description: URL of the app's icon.  | validation: maxLength 2000
     - name: headReleaseId | type: string | description: GUID of the release that the project is currently on.  Your app previews this release, and the next design save or edit by the coding agent branches from it. Set automatically after each design save or edit, and by [Restore Release](https://dev.wix.com/docs/api-reference/mobile/containers-app/containers-projects/project-v1/restore-release.md). When empty, the project is on its newest release.  | read-only: true | validation: maxLength 200


```

### Examples

### Restore an earlier version of a project
Sets the project's head release to an earlier release and adds a checkpoint for the restored version to the conversation.

```javascript
import { projects } from "@wix/containers";

async function restoreRelease() {
  const response = await projects.restoreRelease(
    "8046df3c-7575-4098-a5ab-c91ad8f33c47",
    "rel-4f9c2a1b7d3e",
    {
      himalayaControlToken: "<CONTROL_TOKEN>",
      conversationId: "1f5b2c8e-9a3d-4c21-8b77-2d2f6e0a9c10",
    },
  );
}

/* Promise resolves to:
 * {
 *   "project": {
 *     "_id": "8046df3c-7575-4098-a5ab-c91ad8f33c47",
 *     "name": "Coffee Corner",
 *     "status": "BUILDING",
 *     "templateId": "3f8a1c6e-9b2d-4e7f-a1c5-6d8e2f4b9a07",
 *     "codeStoreProjectId": "c7e4a2f9-1b3d-4c8e-b6a5-2d9f7e1c3b48",
 *     "ownerUserId": "5e1c9a7b-2f4d-4b8e-9a3c-7d6f1e2b8c40",
 *     "revision": 6,
 *     "_createdDate": "2026-07-29T09:00:00.000Z",
 *     "_updatedDate": "2026-07-29T11:00:00.000Z",
 *     "sandboxStatus": "NONE",
 *     "metaSiteIds": [
 *       "9a6c3e1f-7b4d-4a2e-8c5f-1e3b7d9a2c64"
 *     ],
 *     "platform": "HIMALAYA_MOBILE",
 *     "appIconUrl": "https://static.wixstatic.com/media/a1f2e3_7c9b4d2e6f8a4b1c9d3e5f7a2b4c6d8e~mv2.png",
 *     "headReleaseId": "rel-4f9c2a1b7d3e"
 *   }
 * }
 */

```

### restoreRelease (self-hosted)
Self-hosted SDK calls require you to [create a client](https://dev.wix.com/docs/sdk/articles/work-with-the-sdk/about-the-wix-client.md).

```javascript
import { createClient } from '@wix/sdk';
import { projects } from '@wix/containers';
// Import the auth strategy for the relevant access type
// Import the relevant host module if needed

const myWixClient = createClient ({
  modules: { projects },
  // Include the auth strategy and host as relevant
});


async function restoreRelease(projectId,releaseId,options) {
  const response = await myWixClient.projects.restoreRelease(projectId,releaseId,options);
};
```

---