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

# Dividi un manifest in cartella contratto

> Inverso di assemble: dividi un manifest nel set file canonico della cartella contratto.

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

Autenticazione: nessuna. Accesso anonimo consentito.

Inverso di assemble: un manifest autonomo → una mappa di file canonica della cartella del contratto (ogni file è testo JSON; la compressione in zip spetta al client).

Semantica divisa (singola fonte di verità): i tasti di rilettura iniettati dalla piattaforma (`scope` ⟧/⟦1/`namespace`) vengono rimossi; `input`/`output` ciascuno rilascia un⟧ wrapper ⟦5 e `output.id_field` torna al livello superiore di `output_schema.json`; `runtime`/`pricing`/`examples` diventano file autonomi ogni volta che sono presenti; un README vuoto viene omesso; i tasti rimanenti vanno in `dataapp.json` nell'ordine originale. Il riassemblaggio della cartella divisa può riprodurre il manifesto con zero avvertenze. L'opzione `translations` (`{source, locales}`) fornisce inoltre `i18n.json`.

## Richiesta

### Body della richiesta

<ParamField body="manifest" type="object" required>
  Oggetto manifest.
</ParamField>

<ParamField body="translations" type="object">
  Set di traduzione opzionale `{source, locales}`.
</ParamField>

### Esempio di richiesta

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

## Risposta

### 200 successo

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

Il payload è wrappato in `data`. Campi:

<ResponseField name="files" type="object">
  Mappa file. Le key sono nomi file; i value sono testo JSON.
</ResponseField>

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

## Librerie client

Gli SDK Python e JavaScript non wrappano ancora questo endpoint. Chiama REST direttamente.
