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

# Veraltet-Markierung einer App aufheben

> Deprecation-Mark löschen, damit Status auf die vorherige Spur zurückkehrt.

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

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

Abkündigung aufheben (idempotent): löscht die Abkündigungsmarkierung. Der abgeleitete Status kehrt auf seinen vorherigen Pfad zurück – published, wenn Releases existieren (die Marktsuche wird gemäß Sichtbarkeitsbereich wiederhergestellt), sonst draft.

Isomorph zu yank/unyank auf Versionsebene: Die Abkündigung ist eine Markierung auf Identitätsebene, kein physischer Zustand. Das Wiederherstellen berührt weder den Sichtbarkeitsbereich noch den Wartungsschalter; Betriebseinstellungen, die der Autor während der Abkündigung geändert hat, werden nicht stillschweigend zurückgesetzt.

## Anfrage

### Pfadparameter

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

### Beispielanfrage

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

## Antwort

### 200 Erfolg

```json theme={null}
{
  "data": {
    "app_name": "string",
    "namespace": "string",
    "version": "",
    "status": "string",
    "missing_secrets": [
      "string"
    ]
  }
}
```

Payload ist in `data` gewrappt. Felder:

<ResponseField name="app_name" type="string" required>
  —
</ResponseField>

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

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

<ResponseField name="status" type="string" required>
  Abgeleiteter Status nach dem Wiederherstellen.
</ResponseField>

<ResponseField name="missing_secrets" type="string[]">
  —
</ResponseField>

### Fehler

| HTTP | `code`         | `category`  | Beschreibung                             |
| ---- | -------------- | ----------- | ---------------------------------------- |
| 401  | `unauthorized` | `forbidden` | Fehlender oder ungültiger API-Schlüssel. |

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.
