> ## 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.

# 계약 분할

> 조립의 역: 매니페스트 하나를 정규 계약 폴더 파일 맵으로 분할.

**`POST`** `https://api-datahub.octoparse.com/v1/data-apps/contract/split`

인증: 없음. 익명 호출 가능.

조립의 역: 자기완결 매니페스트 → 정규 계약 폴더 파일 맵(각 파일은 JSON 텍스트. zip은 클라이언트).

분할 의미(단일 정본): 플랫폼 주입 읽기 키(`scope` / `status` / `namespace`) 제거. `input` / `output`은 각각 `schema` 래퍼 한 단 제거, `output.id_field`는 형제로. 결과 파일 맵은 조립의 역.

## 요청

### 요청 body

<ParamField body="manifest" type="object" required>
  매니페스트 객체.
</ParamField>

<ParamField body="translations" type="object">
  선택 번역 세트 `{source, locales}`.
</ParamField>

### 요청 예시

```bash theme={null}
curl -X POST \
  -H "Content-Type: application/json" \
  -d '{"manifest": {"spec_version": "0.2", "identity": {"app_name": "reviews-query"}, "…": "…"}}' \
  "https://api-datahub.octoparse.com/v1/data-apps/contract/split"
```

## 응답

### 200 성공

```json theme={null}
{
  "data": {
    "files": {
      "dataapp.json": "{\n  \"spec_version\": \"0.2\",\n  …",
      "input_schema.json": "{…}",
      "output_schema.json": "{…}",
      "runtime.json": "{…}",
      "pricing.json": "{…}",
      "examples.json": "[…]"
    },
    "warnings": []
  }
}
```

페이로드는 `data`로 감쌉니다. 필드:

<ResponseField name="files" type="object">
  파일 맵. 키는 파일명, 값은 JSON 텍스트.
</ResponseField>

<ResponseField name="folder_name" type="string">
  —
</ResponseField>

## 클라이언트 라이브러리

Python / JavaScript SDK는 아직 이 엔드포인트를 감싸지 않습니다. REST를 직접 호출하세요.
