Files
bookhoard/docs/api/progress/update_progress.md
T
john-okeefe 284486f0a0 docs: add progress, notes, and highlights API endpoints
Phase 2 part 4: Split reading progress and annotation endpoints
- Progress: get_progress, update_progress, delete_progress
- Notes: get_notes, create_note, update_note, delete_note
- Highlights: get_highlights, create_highlight, update_highlight, delete_highlight
- All endpoints support EPUB CFI and percentage locations
2026-02-02 08:51:48 -05:00

1.8 KiB

Update Reading Progress

Update reading progress for a media item. This will sync across all devices via WebSocket.

Endpoint: PUT /api/media-items/{media_id}/progress Auth: Required Content-Type: application/json

Path Parameters

Parameter Type Required Description
media_id string Yes Media item UUID

Request Body

Field Type Required Description
source string Yes Progress source (e.g., "web", "koreader", "kobo")
location object Yes Location information
location.percentage float No Progress percentage (0-1)
location.epubcfi string No EPUB CFI location
location.character integer No Character offset
location.chapter integer No Chapter number
location.page integer No Current page
location.total_pages integer No Total pages
device_metadata object No Device metadata
device_metadata.device_type string No Device type
device_metadata.user_agent string No User agent string

Example Request

{
  "source": "web",
  "location": {
    "percentage": 0.45678,
    "epubcfi": "epubcfi(/6/4/2:15)",
    "character": 15432,
    "chapter": 3,
    "page": 89,
    "total_pages": 200
  },
  "device_metadata": {
    "device_type": "web",
    "user_agent": "Mozilla/5.0..."
  }
}

Response (200 OK)

{
  "sync_status": "success",
  "progress_updated": true,
  "devices_notified": ["device-1", "device-2"],
  "broadcast": true
}

Error Responses

Code Description
400 Invalid location data
401 Invalid or expired token
404 Media item not found

Try It Out