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