Clean up API documentation files by removing Phase X references: Remove 'API Explorer will be inserted here in Phase X' placeholders from: - 70+ API endpoint documentation files - Authentication endpoints (login, logout, register, refresh) - User endpoints (profile, settings, password) - Device endpoints (registration, sync, shelves) - Library endpoints (CRUD, folders, visibility) - Media endpoints (items, progress, highlights, notes) - Admin endpoints (users, analytics) - Sync endpoints (Kobo, KOReader) - OPDS endpoints - Scanner endpoints - Queue endpoints These placeholders were from planning documents and have no meaning to API consumers. The documentation is now clean and ready for use.
1.7 KiB
1.7 KiB
Link Book
Link a device book to a Bookhoard media item. Supports bulk linking.
Endpoint: POST /api/sync/bulk-link-books or POST /api/sync/auto-link-books
Auth: Required
Content-Type: application/json
Manual Link Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| links | array | Yes | List of book links |
| links[].unlinked_book_id | string | Yes | Device book UUID |
| links[].media_item_id | string | Yes | Bookhoard media item UUID |
| links[].confidence_score | float | No | Match confidence (0-1) |
Example Manual Link Request
{
"links": [
{
"unlinked_book_id": "uuid-1",
"media_item_id": "uuid-2",
"confidence_score": 1.0
}
]
}
Auto-Link Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| confidence_threshold | float | No | Minimum confidence for auto-link (default: 0.8) |
| limit | integer | No | Maximum books to auto-link (default: 50) |
Example Auto-Link Request
{
"confidence_threshold": 0.8,
"limit": 50
}
Response (200 OK) - Manual Link
{
"results": [
{
"unlinked_book_id": "uuid-1",
"status": "success",
"media_item_id": "uuid-2"
}
],
"total": 1,
"successful": 1,
"failed": 0
}
Response (200 OK) - Auto-Link
{
"auto_linked": 15,
"results": [
{
"unlinked_book_id": "uuid-1",
"title": "The Hobbit",
"matched_media_item_id": "uuid-2",
"confidence": 0.95,
"match_method": "sha256_match"
}
]
}
Error Responses
| Code | Description |
|---|---|
| 400 | Invalid link data |
| 401 | Invalid or expired token |
| 404 | Media item not found |