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

# Establecer retención

> Marca o quita el flag de retención de un dataset que posees.

**`PUT`** `https://api-datahub.octoparse.com/v1/datasets/{dataset_id}/retention`

Autenticación: se requiere API key (`Authorization: Bearer <API Key>`).

Los resultados de ejecución se conservan 90 días desde la creación por defecto. Los datasets con el flag de retención activado quedan excluidos de la limpieza por caducidad. El flag es una declaración explícita del usuario: leer no renueva la retención, y activar/quitar son idempotentes.

Solo puedes marcar tus propios datasets. El dataset de otra persona, un dataset seed público o un id inexistente devuelven `404`. La puerta de marcado es más estrecha que la de visibilidad porque los seed no son tu salida y no se limpian, así que marcarlos no tiene sentido.

## Solicitud

### Parámetros de ruta

<ParamField path="dataset_id" type="string" required>
  Id del dataset.
</ParamField>

### Cuerpo de la solicitud

<ParamField body="retained" type="boolean" required>
  `true` para retener, `false` para quitar el flag.
</ParamField>

### Ejemplo de solicitud

```bash theme={null}
curl -X PUT \
  -H "Authorization: Bearer $OCTOPARSE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"retained": true}' \
  "https://api-datahub.octoparse.com/v1/datasets/ds_0bd5345d13d0/retention"
```

## Respuesta

### 200 correcto

```json theme={null}
{
  "data": {
    "dataset_id": "ds_0bd5345d13d0",
    "retained": true
  }
}
```

### Errores

| HTTP | `code`              | `category`  | Descripción                                            |
| ---- | ------------------- | ----------- | ------------------------------------------------------ |
| 401  | `unauthorized`      | `forbidden` | API key ausente o no válida.                           |
| 404  | `dataset-not-found` | `not_found` | El dataset no existe, no es tuyo o no se puede marcar. |

Las respuestas de error usan `{"error": {code, category, message, retryable}}`. Véase <a href="/docs/es/datahub/api/reference/introduction#errors">Errores</a>.

## Bibliotecas cliente

<CodeGroup>
  ```python Python theme={null}
  client.set_dataset_retention("ds_0bd5345d13d0", True)
  ```

  ```js JavaScript theme={null}
  await client.setDatasetRetention("ds_0bd5345d13d0", true);
  ```
</CodeGroup>
