Skip to main content
Client App BuilderVersion: v3

Check whether an app can be published now, and which build would go live.

GET/ai-builder-api/projects/{projectId}/publishability

Computed by the same resolver as promote-to-production. Without sourceRunId: publishable iff some ready run of this project (caller's location, main lineage) has a sealed build; the newest one goes live with the newest config-only revision made on its lineage. With sourceRunId (the reviewed preview): publishes what that preview shows — its own sealed build, or for a ready run that built nothing, the sealed build it descends from with config-only edits on that lineage; a run that failed or has not finished is reviewed_preview_not_publishable. Send the returned sourceRunId on promote-to-production. Tenant scope comes from the session only.

Authorizations

Authorizationstringheaderrequired

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

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

Request​

Headers

Versionstringrequired

The API version.

Available optionsv3
Example:v3

Path Parameters

projectIdstringrequired

The project.

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

Example:prj_5f0c2a3e

Query Parameters

sourceRunIdstring

Run whose preview the creator is reviewing; bounds what may go live.

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

Example:run_7b2c9e41

Response

Publishability answer.

publishablebooleanrequired

Whether a publish now would succeed.

Example:true
sourceRunIdstring

Run id to send as sourceRunId on promote-to-production. Present when publishable.

Example:run_7b2c9e41
workspaceRunIdstring

Run that sealed the build that would go live. Present when publishable.

Example:run_7b2c9e41
workspaceCreatedAtstring<date-time>

When that sealed build was made. Present when publishable.

Example:2026-10-23T09:41:12.000Z
experienceRevisioninteger

Experience revision that would go live, when one applies.

Possible values: >= 1

Example:5
reasonstring

Why nothing is publishable. Present when not publishable.

Available optionsno_sealed_buildmobile_uses_apk_lanefinalizingsource_run_not_foundreviewed_preview_not_publishable
Example:no_sealed_build