> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://contentful.com/developers/docs/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://contentful.com/developers/docs/_mcp/server.

# Update a task

PUT https://api.contentful.com/spaces/{space_id}/environments/{environment_id}/entries/{entry_id}/tasks/{task_id}
Content-Type: application/vnd.contentful.management.v1+json

Updates a task's body, assignee, or status. Task assignees can only update `status`; task creators and admins can update `body` and `assignedTo`. Resolved tasks cannot have `body` or `assignee` changed without unresolving first.

Reference: https://contentful.com/developers/docs/references/content-management-api/entry-tasks/update-a-task

## Authentication

- `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer <token>`, where token is your auth token.

## Request

### Path parameters

- `space_id` (string, required) — ID of the space in form of a string
- `environment_id` (string, required) — ID of the environment in form of a string
- `entry_id` (string, required) — ID of the entry in form of a string
- `task_id` (string, required) — ID of the task

### Headers

- `X-Contentful-Version` (string, required) — Version of the task to update

### Body (application/vnd.contentful.management.v1+json)

This endpoint expects a map from string to any.

- `map from string to any`

## Response

### 200

OK - Request successful

- `map from string to any`

## Examples

**Request**

```json
{
  "assignedTo": {
    "sys": {
      "id": "<assignee_id>",
      "linkType": "<User|Team>",
      "type": "Link"
    }
  },
  "body": "Review translation",
  "status": "active"
}
```

**Response**

```json
{
  "assignedTo": {
    "sys": {
      "id": "<assignee_id>",
      "linkType": "<User|Team>",
      "type": "Link"
    }
  },
  "body": "Review translation",
  "status": "active",
  "sys": {
    "createdAt": "2026-02-11T01:22:34.000Z",
    "createdBy": {
      "sys": {
        "id": "7BslKh9TdKGOK41VmLDjFZ",
        "linkType": "User",
        "type": "Link"
      }
    },
    "environment": {
      "sys": {
        "id": "staging",
        "linkType": "Environment",
        "type": "Link"
      }
    },
    "id": "RHfHVRz3QkAgcMq4CGg2m5",
    "parentEntity": {
      "sys": {
        "id": "5KsDBWseXY6QegucYAoacS",
        "linkType": "Entry",
        "type": "Link"
      }
    },
    "space": {
      "sys": {
        "id": "yadj1kx9rmg0",
        "linkType": "Space",
        "type": "Link"
      }
    },
    "type": "Task",
    "updatedAt": "2026-02-11T01:22:34.000Z",
    "updatedBy": {
      "sys": {
        "id": "4FLrUHftHW3v2BLi9fzfjU",
        "linkType": "User",
        "type": "Link"
      }
    },
    "version": 1
  }
}
```

**SDK Code**

```javascript JavaScript
import { createClient } from 'contentful-management'

// Client init
const client = contentful.createClient({
  accessToken: '<content_management_api_key>'
})

const task = await client.task.update(
 {
   spaceId: '<space_id>',
   entryId: '<entry_id>',
   environmentId: '<environment_id>',
   taskId: '<task_id>',
 },
 {
   body: 'Review Translation',
   status: 'active',
   assignedTo: {
     sys: {
       type: 'Link',
        linkType: 'User',
        id: <user_id>
     }
   }
 }
);
```

```android Android
No snippet for this SDK.
```

```java Java
No snippet for this SDK.
```

```kotlin Kotlin
No snippet for this SDK.
```

```swift Swift
No snippet for this SDK.
```

```js-legacy JavaScript (legacy)
No snippet for this SDK.
```

```php PHP
No snippet for this SDK.
```

```ruby Ruby
No snippet for this SDK.
```

```python Python
No snippet for this SDK.
```

```.net .NET
No snippet for this SDK.
```