# Get Scan Status Get the status of a specific scan job. **Endpoint**: `GET /api/scanner/status/:jobId` **Auth**: Required (Admin only) ## Path Parameters | Parameter | Type | Required | Description | | --------- | ------------- | -------- | ------------- | | jobId | string (UUID) | Yes | Scan job UUID | ## Request Headers | Header | Type | Required | Description | | ------------- | ------ | -------- | ----------------------------------- | | Authorization | string | Yes | Bearer token (must have admin role) | ### Example Request ```http GET /api/scanner/status/550e8400-e29b-41d4-a716-446655440000 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... ``` ## Response (200 OK) ```json { "job_id": "uuid", "library_id": "uuid", "status": "in_progress", "started_at": "2026-02-08T10:00:00Z", "updated_at": "2026-02-08T10:05:00Z", "progress": { "total_files": 1523, "scanned_files": 850, "added_files": 125, "updated_files": 45, "failed_files": 3, "percentage": 55.8 }, "errors": [ { "file_path": "/path/to/file.epub", "error": "Invalid EPUB format" } ] } ``` ## Status Values | Status | Description | | ----------- | -------------------------- | | pending | Job is queued | | in_progress | Job is currently running | | completed | Job completed successfully | | failed | Job failed with errors | | cancelled | Job was cancelled | ## Error Responses | Code | Description | | ---- | ----------------------------------- | | 401 | Invalid or expired token | | 403 | User does not have admin privileges | | 404 | Job not found |