---
title: "Read an app build and its accepted source"
method: GET
path: "/api/v1/app-builds/{buildId}"
tags: ["Apps"]
---

# Read an app build and its accepted source

`GET /api/v1/app-builds/{buildId}`

## Request

- Base URL: `https://charm.ing`
- URL: `https://charm.ing/api/v1/app-builds/{buildId}`
- Auth: HTTP bearer

Read progress or the retained terminal result using current user source access. Set include_source=true to inspect the exact accepted input. Only published means the app is live. Status remains available after authoring cohort removal. Accept: text/html renders progress and terminal results; pending pages refresh this status resource and published pages redirect to the actual app URL.

## Path parameters

- `buildId` string, required

## Query parameters

- `include_source` boolean

## Response `200`

Current build operation.

- AppBuildResponse
  - `ok` true, required
  - `buildId` string, required
  - `intent` 'create' | 'update' | 'migrate' | 'restore' | 'copy', required
  - `state` 'queued' | 'resolving' | 'building' | 'validating' | 'published' | 'failed' | 'superseded' | 'canceled' | 'expired', required
  - `sourceEtag` string, required
  - `statusUrl` string, uri, required
  - `retryAfterSeconds` integer
  - `appId` string, uuid
  - `revision` integer: Published app source revision. Present only after successful publication.
  - `desiredRevision` integer
  - `activeRevision` integer
  - `url` string, uri
  - `attempts` integer, required
  - `acceptedAt` string, date-time, required
  - `updatedAt` string, date-time, required
  - `finishedAt` string, date-time, nullable, required
  - `elapsedMs` integer, required
  - `lockState` 'locked' | 'unresolved', required
  - `inputDigest` string, required
  - `lockDigest` string
  - `resolvedDependencies` object
    - `server` object, required
    - `client` object, required
  - `queueDeadline` string, date-time, required
  - `deadline` string, date-time, required
  - `inspectionExpiresAt` string, date-time, nullable, required
  - `idempotencyExpiresAt` string, date-time, nullable, required
  - `source` object
    - `module` string, required
    - `ui` string, nullable, required
    - `styles` string, nullable, required
    - `description` string, nullable, required
  - `error` object
    - `kind` string, required
    - `message` string, required
    - `retryable` boolean, required
    - `details` union
      - object
        - `execution` 'not_started' | 'may_have_run', required
        - `operationId` string, required
        - `reservationId` string
      - object
        - `execution` 'may_have_run', required
    - `target` string
    - `specifier` string
    - `line` integer
    - `column` integer

## Other responses

- `303`: Browser navigation to the actual published app URL.
- `400`: Invalid source inclusion query.
- `401`: User authentication required.
- `404`: Build not found or inaccessible.

---

[API](https://skmtc.dev/charm/apis/charming-api.md) · [All operations](https://skmtc.dev/charm/apis/charming-api/llms.txt) · [OpenAPI document](https://skmtc.dev/charm/apis/charming-api/revisions/a9d06c419b3a?raw)
