---
title: "Create App Build"
method: POST
path: "/app_builds"
tags: ["App Builds"]
---

# Create App Build

`POST /app_builds`

Uploads a new build artifact for an app. Upload the file first (POST /files or a direct upload), then reference it here; iOS and Android take a .zip bundle, web takes a JavaScript file or a .zip archive of the hosted site.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `ai_prompt_id` string — The AI prompt that generated this build, if applicable.
  - `app_id` string — The app to create the build for, prefixed `app_`. Defaults to the app behind the presented credential.
  - `attachment` object, required — The uploaded build file: `{ id }` for an existing file or `{ direct_upload_id }` for a completed direct upload.
    - `direct_upload_id` string — The signed id of a completed direct upload.
    - `id` string — The tag of an already-uploaded file.
  - `checksum` string, required — A client-generated checksum of the build file, used to verify file integrity when unpacked.
  - `platform` 'ios' | 'android' | 'web', required — The target platform for the build.
  - `source_attachment` object — An optional compressed archive (.zip or .gz) of the source code that produced this build, stored alongside the build so it can be downloaded later. Referenced like `attachment`, and must be a different file.
    - `direct_upload_id` string — The signed id of a completed direct upload.
    - `id` string — The tag of an already-uploaded file.
  - `supported_app_view_types` string[] — The view types this build supports. Only list the ones its code implements.

## Response `200`

app build created

- AppBuild
  - `checksum` string, required — Client-generated checksum of the build file, used to verify file integrity.
  - `created_at` string, required — When the build was uploaded, as an ISO 8601 timestamp.
  - `file_url` string, nullable, required — URL to download the uploaded build artifact.
  - `id` string, required — App build ID, prefixed `abld_`.
  - `is_production` boolean, 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_message` string, nullable, required — Feedback from the reviewer explaining a rejection, or `null` if the build has not been reviewed or was approved.
  - `source_url` string, 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_types` string[], required

## Other responses

- `400` — Invalid Parameters
- `401` — Unauthorized
- `403` — Forbidden

---

[API](https://skmtc.net/whop/apis/whop-api.md) · [All operations](https://skmtc.net/whop/apis/whop-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/whop/whop-api/versions/db0883548bc5/schema)
