> ## Documentation Index
> Fetch the complete documentation index at: https://www.octoparse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Build を作成

> 現在の下書きを、デバッグ実行と公開で使う不変スナップショットに固定。

**`POST`** `https://api-datahub.octoparse.com/v1/data-apps/{app_id}/builds`

認証：APIキー必須（`Authorization: Bearer <API Key>`）。App 作者のみ。他者は `404`。

現在のワークスペースを不変スナップショットに固定 — デバッグ実行と公開が参照するオブジェクト。

前提：ワークスペースが存在し内容が有効（さもなくば `422`+`issues`）。body に `expected_revision` 可（保存〜固定の間に下書きが変わると `409`）。同一 `content_hash` の ready スナップショットがあれば再利用し重複行なし。api 型は即 ready、code 型は `202` でイメージ Build キュー — 同一 App で進行中にもう一度出すと `409`。非推奨 App も Build 可。拒否されるのは新規 Release のみ。

## リクエスト

### パスパラメータ

<ParamField path="app_id" type="string" required>
  App reference.
</ParamField>

### リクエスト body

<ParamField body="expected_revision" type="integer">
  期待する現下書きリビジョン。不一致は `409`。
</ParamField>

### リクエスト例

```bash theme={null}
curl -X POST \
  -H "Authorization: Bearer $OCTOPARSE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"expected_revision": 3}' \
  "https://api-datahub.octoparse.com/v1/data-apps/carol/reviews-query/builds"
```

## レスポンス

### 200 成功

```json theme={null}
{
  "data": {
    "build_id": "string",
    "build_status": "string",
    "content_hash": "string",
    "source_revision": 0,
    "reused": false,
    "created_at": "string"
  }
}
```

ペイロードは `data` に包まれます。フィールド:

<ResponseField name="build_id" type="string" required>
  Build id.
</ResponseField>

<ResponseField name="build_status" type="string" required>
  `ready`, `building` (code-type), or `failed`.
</ResponseField>

<ResponseField name="content_hash" type="string" required>
  Content hash.
</ResponseField>

<ResponseField name="source_revision" type="integer" required>
  固定時点の下書きリビジョン。
</ResponseField>

<ResponseField name="reused" type="boolean">
  同一内容の既存スナップショットを再利用したか。
</ResponseField>

<ResponseField name="created_at" type="string">
  Created time.
</ResponseField>

### エラー

| HTTP | `code`                | `category`      | Description                                  |
| ---- | --------------------- | --------------- | -------------------------------------------- |
| 401  | `unauthorized`        | `forbidden`     | API キー欠落または無効。                               |
| 404  | `workspace-not-found` | `not_found`     | 進行中の下書きがない。通常の主経路状態であり故障ではない。                |
| 422  | `build-failed`        | `invalid_input` | ワークスペース内容の検証失敗。`issues[]` に問題一覧。             |
| 409  | `revision-conflict`   | `invalid_input` | `expected_revision` が現下書きリビジョンと一致しない — 同時編集。 |

エラー応答は `{"error": {code, category, message, retryable}}` です。<a href="/docs/jp/datahub/api/reference/introduction#errors">エラー</a> を参照。

## クライアントライブラリ

Python / JavaScript SDK はまだこのエンドポイントをラップしていません。REST を直接呼び出してください。
