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

# Data App umbenennen

> App-Name (Routing-Alias) ändern ohne Version-Release und ohne laufende Runs zu betreffen.

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

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

Rename ist voll offen — nicht auf Zero-Release-Apps beschränkt. App-Name = Routing-Alias: Rename published keine Version, invalidiert keine alten Versionen und betrifft keine laufenden Runs (alle durable Referenzen pinnen `app_id`).

Kaputte Caller-Referenzen sind Sache des Developers: alte `owner/old-name`-Referenzen (MCP-Pins, SDKs, REST, Detail-URLs) liefern nach Rename sauberes `404` ohne Redirect. Historische Runs und Abrechnung zeigen den neuen Namen. Der alte Name ist in Ihrem Namespace nicht von anderen claimbar, aber Sie können ihn später für eine neue App wiederverwenden — residuale externe Referenzen würden dann auf die neue App zeigen. Consumer sollten über `app_id` integrieren.

Die Validierung entspricht dem Anlegen der Identität: Benennungsregeln → reservierte Wörter → neuer Name ≠ aktueller Name. Ein Konflikt mit der historischen Bindung einer anderen Person ist `409 app-name-reserved`; ein Konflikt mit einer anderen Ihrer Apps ist `409 app-name-taken`.

## Anfrage

### Pfadparameter

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

### Anfrage-Body

<ParamField body="new_app_name" type="string" required>
  —
</ParamField>

### Beispielanfrage

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

## Antwort

### 200 Erfolg

```json theme={null}
{
  "data": {
    "app_id": "app_6dfe4e839ccf",
    "namespace": "carol",
    "app_name": "review-lookup",
    "previous_app_name": "reviews-query"
  }
}
```

Payload ist in `data` gewrappt. Felder:

<ResponseField name="app_id" type="string" required>
  Stabile App-ID — unverändert.
</ResponseField>

<ResponseField name="app_name" type="string" required>
  Neuer Name.
</ResponseField>

<ResponseField name="namespace" type="string">
  Publisher-Benutzername.
</ResponseField>

### Fehler

| HTTP | `code`              | `category`      | Beschreibung                                                                                                                          |
| ---- | ------------------- | --------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| 401  | `unauthorized`      | `forbidden`     | Fehlender oder ungültiger API-Schlüssel.                                                                                              |
| 400  | `invalid-app-name`  | `invalid_input` | Name verletzt Naming-Regeln oder ist ein reserviertes Wort.                                                                           |
| 409  | `app-name-reserved` | `forbidden`     | Der Name ist durch eine historische Bindung einer anderen Person belegt (30-tägige Sperre nach einer Übertragung des Benutzernamens). |
| 409  | `app-name-taken`    | `invalid_input` | Sie haben bereits eine App mit diesem Namen.                                                                                          |

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.
