Skip to main content
Client App BuilderVersion: v3

Publish a saved revision of an app to its members.

POST/ai-builder-api/projects/{projectId}/app-config/publish

For a phone app send platform: mobile and the revision from GET .../app-config: installed apps get it over the air. Screens your agent wrote reach members only in a new APK (POST .../app-config/apk-builds). web, the default, is for ClientPortal configuration apps; a coded web app publishes with POST .../infra/promote-to-production.

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

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

Body

revisionintegerrequired

The revision to publish: the app configuration's revision, once appliedRevision matches it and status is ready.

Possible values: >= 1

Example:4
platformstring

mobile for a phone app. web (the default) publishes a ClientPortal configuration app's web revision.

Available optionswebmobile
Example:mobile

Response

Published configuration.

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