Skip to main content
Client App BuilderVersion: v3

Return a phone app to an earlier revision.

POST/ai-builder-api/projects/{projectId}/app-config/revisions/{revision}/restore

Saves a copy of the earlier revision, screens included, as the newest one. Members get it once you publish it with POST .../app-config/publish.

Authorizations

Authorizationstringheaderrequired

Bearer authentication header of the form Bearer <token>, where <token> is your access token.

Scope:clientportal-ai.write
Auth methods:OAuthPrivate Integration
Token type:Sub-Account Token

Request​

Headers

Idempotency-Keystringrequired

A key you choose for this restore. Retrying with the same key returns the same restore instead of a second one.

Possible values: non-empty and <= 200 characters

Example:restore-prj_a7ca4adc-2
Versionstringrequired

The API version.

Available optionsv3
Example:v3

Path Parameters

projectIdstringrequired

The app's id.

Possible values: Value must match regular expression ^prj_[A-Za-z0-9_-]+$

Example:prj_a7ca4adc-be67-40ff-ae79-4f5acf56ac67
revisionintegerrequired

The earlier revision to return to, from the app's revisions.

Possible values: >= 1

Example:2

Body

baseRevisionintegerrequired

The newest revision the caller saw (revision in the app's configuration). A save made since then refuses the restore instead of being overwritten.

Possible values: >= 1

Example:4

Response

Restore revision queued for validation and preview publication.

projectIdstringrequired

Stable owner project for this location's shared ClientPortal Experience. It may differ from the web or mobile project in the current route.

Possible values: Value must match regular expression ^prj_[A-Za-z0-9_-]+$

Example:prj_a7ca4adc-be67-40ff-ae79-4f5acf56ac67
revisionintegerrequired

The newest saved revision. A finished run or a restore saves a new one.

Possible values: >= 0

Example:4
appliedRevisionintegerrequired

The newest revision that finished applying. Publish a revision once it equals revision and status is ready.

Possible values: >= 0

Example:4
publishedRevisionintegerrequired

The revision members get. 0 until the first publish.

Possible values: >= 0

Example:3
statusAppCustomizationStatusrequired

Where the newest revision is: ready once it has applied and can be published, failed when it could not apply.

Available optionsidlequeuedapplyingreadyfailed
previewUrlstring<uri>

Where the latest applied revision can be previewed, when the app has a preview.

Example:https://prj-a7ca4adc-be67-40ff-ae79-4f5acf56ac67-sbx.staging.clientclub.net
lastErrorstring

Why the latest revision failed to apply, when status is failed.

Example:The Schedule screen does not match the route contract.
createdAtstring<date-time>required

When the app's configuration was first saved.

Example:2026-10-23T10:41:44.873Z
updatedAtstring<date-time>required

When the latest revision was saved or changed state.

Example:2026-10-23T11:24:45.263Z