Build a signed Android APK of a published phone app revision.
Idempotent per Idempotency-Key. For a project whose current revision carries generated screens, the build is instead identified by the revision and the generated sources it carries (sha256(locationId:projectId:revision:sourcesSha)): repeating the request for the same revision and sources returns the same build whatever the key, and a failed one is queued again. Such a build is made from the React Native kernel commit the screens were generated against, and must be requested for the current revision. Generated screens reach members only through a new APK; they are never delivered over the air. At most one build may be active per project; sibling projects in the same location may build in parallel. Deleting a project while its build is still queued or building fails that build. A project compiles one signed APK for now: after a successful build the binary is final. A project without generated screens keeps reaching installed apps by publishing a revision; a project with generated screens cannot build another APK yet. Failed builds do not consume the allowance.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your access token.
clientportal-ai. writeOAuthPrivate IntegrationSub-Account TokenRequest
Headers
A key you choose for this build. Retrying with the same key returns the same build.
Possible values: non-empty and <= 200 characters
apk-prj_a7ca4adc-4The API version.
v3v3Path Parameters
The app's id.
Possible values: Value must match regular expression ^prj_[A-Za-z0-9_-]+$
prj_a7ca4adc-be67-40ff-ae79-4f5acf56ac67Body
The published revision to build. An app with generated screens builds its current revision.
Possible values: >= 1
4Response
APK build queued or the existing idempotent build returned.
The build's id.
Possible values: Value must match regular expression ^apk_[a-f0-9]{32}$
apk_3f1c0b9e2d4a6f8e0c1b3d5f7a9e2c4bThe app's id.
Possible values: Value must match regular expression ^prj_[A-Za-z0-9_-]+$
prj_a7ca4adc-be67-40ff-ae79-4f5acf56ac67The revision the APK is built from.
Possible values: >= 1
4The app's name on the device.
Possible values: non-empty and <= 120 characters
Run ClubWhere the build is. Read it again until finished or failed.
queuedbuildingfinishedfailedbuildingShort-lived signed GCS URL for the archived APK. Expo artifact URLs are never exposed.
Possible values: Value must match regular expression ^https://
https://storage.googleapis.com/apk-artifacts/prj_a7ca4adc/apk_3f1c0b9e.apk?X-Goog-Signature=abcCreator-facing summary of why the build failed, safe to render as-is. Raw EAS, npm, or Gradle console output is never returned here; it stays in the build worker log.
The Android build failed. Try again, or contact support if it keeps failing.When the build was requested.
2026-10-23T11:30:00.000ZWhen the build last changed state.
2026-10-23T11:34:00.000ZWhen the build finished or failed.
2026-10-23T11:42:00.000Z