meta { name: Update Ebook type: http seq: 9 } put { url: {{base_url}}/api/ebooks/{{ebook_id}} body: json auth: inherit } body:json { { "title": "Updated Ebook Title", "author": "Updated Author Name", "isbn": "978-0123456789", "description": "Updated ebook description", "cover_image_path": "/path/to/updated_cover.jpg", "series": "Updated Series", "series_number": 2, "tags": "fiction,adventure,updated", "asin": "B00EXAMPLE2", "date_published": "2023-02-15", "publisher": "Updated Publisher", "contributors": "Updated Contributor Name" } } settings { encodeUrl: true timeout: 0 } docs { ## Update Ebook Updates an existing ebook's metadata. **Method:** PUT **Endpoint:** /api/ebooks/:id **Authentication:** Required (Admin only) **Path Parameters:** - `id` (string): Ebook ID (UUID) **Request Body:** JSON object with: - `title` (string, required): Updated ebook title (1-500 characters) - `author` (string, optional): Updated author name - `isbn` (string, optional): Updated ISBN number - `description` (string, optional): Updated ebook description - `cover_image_path` (string, optional): Updated path to cover image - `series` (string, optional): Updated series name - `series_number` (integer, optional): Updated number in series - `tags` (string, optional): Updated comma-separated tags - `asin` (string, optional): Updated Amazon ASIN - `date_published` (string, optional): Updated publication date (YYYY-MM-DD) - `publisher` (string, optional): Updated publisher name - `contributors` (string, optional): Updated contributors list **Response:** Updated ebook object with all fields **Status Codes:** - 200: Ebook updated successfully - 400: Bad request (invalid data or ID) - 401: Unauthorized - 403: Forbidden (admin access required) - 404: Ebook not found - 500: Internal server error **Features:** - Admin-only endpoint for updating ebook metadata - Updates only provided fields, preserves others - Full validation of all fields - Cannot update file_path, file_size, or mime_type (file properties) }