# Get Universal Progress

Get universal (device-agnostic) reading progress for a media item.

**Endpoint**: `GET /api/progress/:id`
**Auth**: Required

## Path Parameters

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

## Request Headers

| Header        | Type   | Required | Description  |
| ------------- | ------ | -------- | ------------ |
| Authorization | string | Yes      | Bearer token |

### Example Request

```http
GET /api/progress/550e8400-e29b-41d4-a716-446655440000
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
```

## Response (200 OK)

```json
{
  "media_item_id": "uuid",
  "percentage": 75.5,
  "position": 1234,
  "page": 150,
  "total_pages": 200,
  "finished": false,
  "updated_at": "2026-02-08T10:00:00Z",
  "device": {
    "id": "device-uuid",
    "name": "My Kobo"
  }
}
```

## Error Responses

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