# Update Universal Progress

Update universal reading progress for a media item.

**Endpoint**: `POST /api/progress/:id`
**Auth**: Required
**Content-Type**: `application/json`

## Path Parameters

| Parameter | Type          | Required | Description     |
| --------- | ------------- | -------- | --------------- |
| id        | string (UUID) | Yes      | Media item UUID |

## Request Body

| Field      | Type          | Required | Description                                 |
| ---------- | ------------- | -------- | ------------------------------------------- |
| percentage | float         | No       | Progress percentage (0-100)                 |
| position   | integer       | No       | Current position in bytes                   |
| page       | integer       | No       | Current page number                         |
| finished   | boolean       | No       | Whether the book is finished                |
| device_id  | string (UUID) | No       | Device UUID (optional, for tracking source) |

### Example Request

```json
{
  "percentage": 75.5,
  "position": 1234,
  "page": 150,
  "finished": false,
  "device_id": "device-uuid"
}
```

## Response (200 OK)

```json
{
  "media_item_id": "uuid",
  "percentage": 75.5,
  "position": 1234,
  "page": 150,
  "finished": false,
  "updated_at": "2026-02-08T10:00:00Z"
}
```

## Error Responses

| Code | Description              |
| ---- | ------------------------ |
| 400  | Invalid request data     |
| 401  | Invalid or expired token |
| 404  | Media item not found     |
