Files
bookhoard/docs/developer/api/progress/update_progress.md
john-okeefe 4d321528b2 docs: update comprehensive API documentation and project guides
This commit updates all documentation files throughout the project:

- Updated IMPLEMENTATION_PLAN.md with new implementation details
- Updated PROJECT_GUIDELINES.md with coding standards and practices
- Updated README.md with current project information
- Updated SCREENSHOT_AUTOMATION.md with new automation details
- Added TEST_DATA.md with test fixtures data
- Updated cover_image_serving_plan.md with static URL patterns

Documentation API updates:
- Updated API reference documentation for all endpoints including:
  - Authentication (login, logout, register, refresh_token)
  - Book matching (auto_link, bulk_link, link_book, search)
  - Collections (CRUD operations, shelf mappings, auto-assign rules)
  - Conflicts (bulk operations, resolve/dismiss)
  - Devices (registration, approval, shelf management)
  - Highlights (create, update, delete, get)
  - Kobo sync (bookmark, markup, initialization, sync)
  - KOReader sync (library, metadata, bookmarks, progress)
  - Libraries (CRUD, folders, media items, stats)
  - Media items (bulk operations, CRUD)
  - Notes (CRUD operations)
  - OPDS (acquisition, feeds, publication)
  - Progress (reading progress tracking)
  - Queue (device queue management)
  - Ratings (star ratings)
  - Scanner (watch mode, scan operations)
  - Sync protocols (Kobo, KOReader)
  - Users (profile, password, admin operations)
  - WebSocket protocols

- Updated user guides (admin, dashboard, settings, sync)
- Updated device setup guides (Kobo, KOReader)
- Updated developer guides (testing, contributing, operations)
- Updated scripts/README.md
2026-02-27 17:06:22 -05:00

2.4 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