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

# Manifest in Vertragsordner aufteilen

> Inverse von Assemble: ein Manifest in das kanonische Vertragsordner-Dateiset splitten.

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

Authentifizierung: keine. Anonymer Zugriff erlaubt.

Umkehrung von assemble: ein in sich geschlossenes Manifest → eine kanonische Datei-Map des Vertragsordners (jede Datei ist JSON-Text; das Zippen ist Aufgabe des Clients).

Geteilte Semantik (Single Source of Truth): Plattform-injizierte Rückleseschlüssel (`scope`/`status`/`namespace`) werden entfernt; `input`/`output` jeder Drop ein 5-Wrapper und ⟦ `output.id_field` ⟧ bewegt sich zurück auf die oberste Ebene von `output_schema.json`; `runtime`/`pricing`/`examples` werden bei Bedarf zu eigenständigen Dateien; ein leeres README entfällt; verbleibende Schlüssel gehen in der ursprünglichen Reihenfolge⟧ in ⟦11 über. Durch erneutes Zusammensetzen des geteilten Ordners kann das Manifest ohne Warnungen reproduziert werden. Optional ergibt `translations` (`{source, locales}`) zusätzlich ⟦⟧14.

## Anfrage

### Anfrage-Body

<ParamField body="manifest" type="object" required>
  Manifest-Objekt.
</ParamField>

<ParamField body="translations" type="object">
  Optionales Übersetzungsset `{source, locales}`.
</ParamField>

### Beispielanfrage

```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"
```

## Antwort

### 200 Erfolg

```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": []
  }
}
```

Payload ist in `data` gewrappt. Felder:

<ResponseField name="files" type="object">
  File-Map. Keys sind Dateinamen; Values sind JSON-Text.
</ResponseField>

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

## Client-Bibliotheken

Die Python- und JavaScript-SDKs wrappen diesen Endpoint noch nicht. REST direkt aufrufen.
