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

# Deprecate an app

> Mark an app as no longer maintained: leave market search, reject new versions. Reversible.

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

Authentication: API key required (`Authorization: Bearer <API Key>`). App author only; others get `404`.

Identity-level deprecation (idempotent, reversible): no longer maintained, migration recommended, new releases rejected.

Deprecated apps leave market search, but detail remains readable per visibility scope and runs are still allowed. Cutting supply is the author’s explicit decision via the maintenance switch — not an implied side effect of deprecation — so in-flight integrations are not suddenly interrupted. Apps with zero releases can also be deprecated. Undo via undeprecate if this was a mistake or you change your mind.

## Request

### Path parameters

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

### Example request

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

## Response

### 200 success

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

The payload is wrapped in `data`. Fields:

<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>
  Derived status after deprecation.
</ResponseField>

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

### Errors

| HTTP | `code`         | `category`  | Description                 |
| ---- | -------------- | ----------- | --------------------------- |
| 401  | `unauthorized` | `forbidden` | Missing or invalid API key. |

Error responses use `{"error": {code, category, message, retryable}}`. See <a href="/docs/en/datahub/api/reference/introduction#errors">Errors</a>.

## Client libraries

The Python and JavaScript SDKs do not wrap this endpoint yet. Call REST directly.
