# Update milestone

`PATCH /api/milestone/{milestoneId}`

URL: https://repsona.com/api/patch-milestone-milestoneid

Updates milestone attributes such as the name, due date and closed flag.

## Parameters

| name | in | type | required | description |
| --- | --- | --- | --- | --- |
| `milestoneId` | path | integer | required | The ID of the milestone. |

## Request body

| name | in | type | required | description |
| --- | --- | --- | --- | --- |
| `name` | body | string |  | Name of the milestone (1 to 50 characters). |
| `dueDate` | body | integer \| null |  | Due date in epoch milliseconds. Pass `null` to remove the due date. |
| `isClosed` | body | boolean |  | Whether the milestone is closed (completed). |

## Request

```sh
curl -X PATCH "https://<space>.repsona.com/api/milestone/{milestoneId}" \
  -H "Authorization: Bearer $REPSONA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Beta release",
    "dueDate": 1797724800000,
    "isClosed": false
  }'
```

## Responses

- 200: Updated milestone
- 400: Invalid request payload
- 401: Authentication is required
- 403: Project membership is required
- 404: Milestone not found

## Example response

```json
{
  "id": 30,
  "name": "Beta release",
  "dueDate": 1797724800000,
  "isClosed": false,
  "projectId": 253
}
```
