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.
Request
The API version.
v3The app's id.
Possible values: Value must match regular expression ^prj_[A-Za-z0-9_-]+$
- application/json
- Body
- Example (auto)
Bodyrequired
The revision to publish: the app configuration's revision, once appliedRevision matches it and status is ready.
Possible values: >= 1
mobile for a phone app. web (the default) publishes a ClientPortal configuration app's web revision.
webmobile{
"revision": 4,
"platform": "mobile"
}
Published configuration.
- application/json
- Schema
- Example (auto)
Schema
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_-]+$
The newest saved revision. A finished run or a restore saves a new one.
Possible values: >= 0
The newest revision that finished applying. Publish a revision once it equals revision and status is ready.
Possible values: >= 0
The revision members get. 0 until the first publish.
Possible values: >= 0
Where the newest revision is: ready once it has applied and can be published, failed when it could not apply.
idlequeuedapplyingreadyfailedWhere the latest applied revision can be previewed, when the app has a preview.
Why the latest revision failed to apply, when status is failed.
When the app's configuration was first saved.
When the latest revision was saved or changed state.
{
"projectId": "prj_a7ca4adc-be67-40ff-ae79-4f5acf56ac67",
"revision": 4,
"appliedRevision": 4,
"publishedRevision": 3,
"status": "idle",
"previewUrl": "https://prj-a7ca4adc-be67-40ff-ae79-4f5acf56ac67-sbx.staging.clientclub.net",
"lastError": "The Schedule screen does not match the route contract.",
"createdAt": "2026-10-23T10:41:44.873Z",
"updatedAt": "2026-10-23T11:24:45.263Z"
}