App Builds

Promote App Build

Promotes a draft or approved app build to production so it becomes the active version served to users. Draft builds enter review first.

post/app_builds/{id}/promote

Headers

Idempotency-Keystring
Example:d9105228-4a08-46b1-8b91-42fed586d383

A unique key that makes this request safe to retry. See Idempotent requests.

Response

app build promotion started

checksumstring required

Client-generated checksum of the build file, used to verify file integrity.

created_atstring required

When the build was uploaded, as an ISO 8601 timestamp.

file_urlstring nullable required

URL to download the uploaded build artifact.

idstring required

App build ID, prefixed abld_.

is_productionboolean required

Whether this build is the currently active production build for its platform.

platform'ios' | 'android' | 'web' required

The target platform for this build.

review_messagestring nullable required

Feedback from the reviewer explaining a rejection, or null if the build has not been reviewed or was approved.

source_urlstring nullable required

URL to download the compressed source code archive that produced this build, or null when the build was uploaded without a source archive.

status'draft' | 'pending' | 'approved' | 'rejected' required

The build's review status.

supported_app_view_typesstring[] required

Example response

{
  "checksum": "xxxxxxxxxxxxxxx",
  "created_at": "2026-01-01T12:00:00.000Z",
  "file_url": "https://whop-assets-example.s3.amazonaws.com/uploads/image/2026-01-01/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "id": "apbu_xxxxxxxxxxxxxx",
  "platform": "ios",
  "review_message": "The hub view crashes on launch when the member has no active membership. Fix and resubmit.",
  "source_url": "https://whop-assets-example.s3.amazonaws.com/uploads/image/2026-01-01/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "rejected",
  "supported_app_view_types": [
    "hub"
  ]
}

Changes

Changed in 4 of the 41 revisions of this API.21620

    • added the non-success response with the status 409

      response-non-success-status-added

    • added the optional property error/code to the response with the 400 status

      response-optional-property-added

    • added the optional property error/code to the response with the 401 status

      response-optional-property-added

    • added the optional property error/code to the response with the 403 status

      response-optional-property-added

    • added the optional property error/code to the response with the 404 status

      response-optional-property-added

    This revision also has 9 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog

    • added the new analytics enum value to the supported_app_view_types/items/ response property for the response status 200

      response-property-enum-value-added

    • added the new dash enum value to the supported_app_view_types/items/ response property for the response status 200

      response-property-enum-value-added

    • added the new dashboard enum value to the supported_app_view_types/items/ response property for the response status 200

      response-property-enum-value-added

    • added the new discover enum value to the supported_app_view_types/items/ response property for the response status 200

      response-property-enum-value-added

    • added the new hub enum value to the supported_app_view_types/items/ response property for the response status 200

      response-property-enum-value-added

    • added the new openapi enum value to the supported_app_view_types/items/ response property for the response status 200

      response-property-enum-value-added

    • added the new skills enum value to the supported_app_view_types/items/ response property for the response status 200

      response-property-enum-value-added

    This revision also has 4 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog

  • 60bbb4a6ffbc2915See the full diff
    • the response property file_url became nullable for the status 200

      response-property-became-nullable

    • the created_at response's property type/format changed from string/date-time to string/ for status 200

      response-property-type-changed

    • deleted the path request parameter id

      request-parameter-removed

    • removed the optional property error/code from the response with the 400 status

      response-optional-property-removed

    • removed the optional property error/code from the response with the 401 status

      response-optional-property-removed

    • removed the optional property error/code from the response with the 403 status

      response-optional-property-removed

    • removed the optional property error/code from the response with the 404 status

      response-optional-property-removed

    • removed the optional property error/param from the response with the 400 status

      response-optional-property-removed

    • removed the optional property error/param from the response with the 401 status

      response-optional-property-removed

    • removed the optional property error/param from the response with the 403 status

      response-optional-property-removed

    • removed the optional property error/param from the response with the 404 status

      response-optional-property-removed

    • api tag App Builds added

      api-tag-added

    • api tag App builds removed

      api-tag-removed

    • added the new optional header request parameter Api-Version-Date to all path's operations

      new-optional-request-default-parameter-to-existing-path

    • added the new optional header request parameter Idempotency-Key

      new-optional-request-parameter

    • removed the non-success response with the status 422

      response-non-success-status-removed

    • removed the non-success response with the status 429

      response-non-success-status-removed

    • removed the non-success response with the status 500

      response-non-success-status-removed

    • removed the analytics enum value from the supported_app_view_types/items/ response property for the response status 200

      response-property-enum-value-removed

    • removed the dash enum value from the supported_app_view_types/items/ response property for the response status 200

      response-property-enum-value-removed

    • removed the dashboard enum value from the supported_app_view_types/items/ response property for the response status 200

      response-property-enum-value-removed

    • removed the discover enum value from the supported_app_view_types/items/ response property for the response status 200

      response-property-enum-value-removed

    • removed the hub enum value from the supported_app_view_types/items/ response property for the response status 200

      response-property-enum-value-removed

    • removed the openapi enum value from the supported_app_view_types/items/ response property for the response status 200

      response-property-enum-value-removed

    • removed the skills enum value from the supported_app_view_types/items/ response property for the response status 200

      response-property-enum-value-removed

    • added the required property source_url to the response with the 200 status

      response-required-property-added

    This revision also has 1 change that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog