> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wiseyield.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Update task status

> Quick status update. Transitioning to "completed" auto-populates completedDate.

```
PUT https://www.wiseyield.co/api/v1/tasks/{id}/status
```

A focused alternative to [PUT /api/v1/tasks/{id}](/api-reference/tasks/update-task) when you only need to change `status`. Setting `completed` auto-populates `completedDate` to now (if not already set).

### Authentication

Requires a key with the `tasks:write` scope.

### Path parameters

<ParamField path="id" type="string" required>Task UUID.</ParamField>

### Request body

<ParamField body="status" type="string" required>
  One of `pending`, `in_progress`, `completed`, `overdue`, `cancelled`.
</ParamField>

### Response

Returns the updated task wrapped under `data`.

<RequestExample>
  ```bash cURL theme={null}
  curl -X PUT 'https://www.wiseyield.co/api/v1/tasks/aaaaaaaa.../status' \
    -H "Authorization: Bearer $WISEYIELD_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{ "status": "in_progress" }'
  ```
</RequestExample>

## Errors

| Status                    | When                                            |
| ------------------------- | ----------------------------------------------- |
| `400 INVALID_ID`          | `{id}` is not a valid UUID                      |
| `400 VALIDATION_ERROR`    | `status` not in the allowed enum                |
| `401`                     | Missing, malformed, expired, or revoked API key |
| `403 INSUFFICIENT_SCOPE`  | Key lacks `tasks:write` scope                   |
| `404 NOT_FOUND`           | Task doesn't exist or belongs to another user   |
| `429 RATE_LIMIT_EXCEEDED` | Per-user rate limit reached                     |
| `5xx`                     | Server error                                    |
