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

# Vertragsordner herunterladen

> Author-Contract des latest Release als Zip der Slot-Dateien herunterladen.

**`GET`** `https://api-datahub.octoparse.com/v1/data-apps/{app_id}/contract.zip`

Authentifizierung: API-Schlüssel erforderlich (`Authorization: Bearer <API Key>`). Nur App-Autor; andere erhalten `404`.

Autorenseitiger Vertrag des neuesten Release, in das kanonische Layout des Vertragsordners aufgeteilt und auf dem Server gezippt. Dieselbe Datenquelle wie Manifest abrufen (Dateiverweise bereits eingebettet). Das Zip enthält ein einziges Verzeichnis `<app_name>/` auf oberster Ebene; `Content-Disposition` benennt die Datei `<app_name>.zip`.

Null Releases liefern `404 release-not-found`: Semantik ist „latest release“, nie Fallback auf den Draft. Non-Slot-Editor-Companion-State entfällt — Download → Edit → Import ist ein verlustfreier Round-Trip für api-kind-Apps. Hat die App Übersetzungen, enthält das Zip auch `i18n.json` (aktuelle Übersetzungen, nicht die zum Publish-Zeitpunkt).

## Anfrage

### Pfadparameter

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

### Beispielanfrage

```bash theme={null}
curl \
  -H "Authorization: Bearer $OCTOPARSE_API_KEY" \
  "https://api-datahub.octoparse.com/v1/data-apps/carol/reviews-query/contract.zip"
```

## Antwort

### 200 Erfolg

Response-Body ist `application/zip`-Binary.

### Fehler

| HTTP | `code`              | `category`  | Beschreibung                                                         |
| ---- | ------------------- | ----------- | -------------------------------------------------------------------- |
| 401  | `unauthorized`      | `forbidden` | Fehlender oder ungültiger API-Schlüssel.                             |
| 404  | `release-not-found` | `not_found` | Diese Version existiert nicht, oder die App hat noch keine Releases. |

Fehlerantworten nutzen `{"error": {code, category, message, retryable}}`. Siehe <a href="/docs/de/datahub/api/reference/introduction#errors">Fehler</a>.

## Client-Bibliotheken

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