{
    "openapi": "3.0.0",
    "info": {
        "title": "BookTracker API",
        "description": "API for managing your book library",
        "version": "1.0.0"
    },
    "paths": {
        "/api/auth/login": {
            "post": {
                "tags": [
                    "Authentication"
                ],
                "summary": "Login and get JWT token",
                "operationId": "post_api_auth_login",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "email",
                                    "password"
                                ],
                                "properties": {
                                    "email": {
                                        "type": "string",
                                        "format": "email"
                                    },
                                    "password": {
                                        "type": "string",
                                        "format": "password"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Login successful"
                    },
                    "401": {
                        "description": "Invalid credentials"
                    }
                }
            }
        },
        "/api/auth/register": {
            "post": {
                "tags": [
                    "Authentication"
                ],
                "summary": "Register a new user",
                "operationId": "post_api_auth_register",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "email",
                                    "password"
                                ],
                                "properties": {
                                    "email": {
                                        "type": "string",
                                        "format": "email"
                                    },
                                    "password": {
                                        "type": "string",
                                        "format": "password"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Registration successful"
                    },
                    "400": {
                        "description": "Validation failed"
                    }
                }
            }
        },
        "/api/auth/registration-status": {
            "get": {
                "operationId": "get_api_auth_registration_status",
                "responses": {
                    "default": {
                        "description": ""
                    }
                }
            }
        },
        "/api/auth/me": {
            "get": {
                "operationId": "get_api_auth_me",
                "responses": {
                    "default": {
                        "description": ""
                    }
                }
            }
        },
        "/api/user/password": {
            "patch": {
                "operationId": "patch_api_user_password",
                "responses": {
                    "default": {
                        "description": ""
                    }
                }
            }
        },
        "/api/books/search": {
            "get": {
                "operationId": "get_api_books_search",
                "responses": {
                    "default": {
                        "description": ""
                    }
                }
            }
        },
        "/api/books/add": {
            "post": {
                "operationId": "post_api_books_add",
                "responses": {
                    "default": {
                        "description": ""
                    }
                }
            }
        },
        "/api/books/add-manual": {
            "post": {
                "operationId": "post_api_books_add_manual",
                "responses": {
                    "default": {
                        "description": ""
                    }
                }
            }
        },
        "/api/user-books/{id}/read": {
            "patch": {
                "operationId": "patch_api_user_books_read",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "default": {
                        "description": ""
                    }
                }
            }
        },
        "/api/user-books/{id}/rating": {
            "patch": {
                "operationId": "patch_api_user_books_rating",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "default": {
                        "description": ""
                    }
                }
            }
        },
        "/api/user-books/{id}/crown": {
            "patch": {
                "operationId": "patch_api_user_books_crown",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "default": {
                        "description": ""
                    }
                }
            }
        },
        "/api/user-books/{id}/remove": {
            "delete": {
                "operationId": "delete_api_user_books_remove",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "default": {
                        "description": ""
                    }
                }
            }
        },
        "/api/user-books/{id}/buy-info": {
            "post": {
                "operationId": "post_api_user_books_buy_info",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "default": {
                        "description": ""
                    }
                }
            },
            "patch": {
                "operationId": "patch_api_user_books_buy_info",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "default": {
                        "description": ""
                    }
                }
            }
        },
        "/api/user-books/{id}": {
            "get": {
                "operationId": "get_api_user_books_detail",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "default": {
                        "description": ""
                    }
                }
            }
        },
        "/api/user-books/{id}/dnf": {
            "patch": {
                "operationId": "patch_api_user_books_dnf",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "default": {
                        "description": ""
                    }
                }
            }
        },
        "/api/user-books/{id}/progress": {
            "patch": {
                "operationId": "patch_api_user_books_progress",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "default": {
                        "description": ""
                    }
                }
            }
        },
        "/api/user-books/{id}/notes": {
            "patch": {
                "operationId": "patch_api_user_books_notes",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "default": {
                        "description": ""
                    }
                }
            }
        },
        "/api/user-books/{id}/description": {
            "patch": {
                "operationId": "patch_api_user_books_description",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "default": {
                        "description": ""
                    }
                }
            }
        },
        "/api/user-books/{id}/dates": {
            "patch": {
                "operationId": "patch_api_user_books_dates",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "default": {
                        "description": ""
                    }
                }
            }
        },
        "/api/user-books/{id}/cover": {
            "post": {
                "operationId": "post_api_user_books_cover",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "default": {
                        "description": ""
                    }
                }
            }
        },
        "/api/user-books/{id}/metadata": {
            "patch": {
                "operationId": "patch_api_user_books_metadata",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "default": {
                        "description": ""
                    }
                }
            }
        },
        "/api/thalia/scrape": {
            "post": {
                "operationId": "post_api_thalia_scrape",
                "responses": {
                    "default": {
                        "description": ""
                    }
                }
            }
        },
        "/api/user-books/{id}/apply-thalia": {
            "post": {
                "operationId": "post_api_user_books_apply_thalia",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "default": {
                        "description": ""
                    }
                }
            }
        },
        "/api/dashboard": {
            "get": {
                "operationId": "get_api_dashboard",
                "responses": {
                    "default": {
                        "description": ""
                    }
                }
            }
        },
        "/api/library": {
            "get": {
                "operationId": "get_api_library",
                "responses": {
                    "default": {
                        "description": ""
                    }
                }
            }
        },
        "/api/library/export": {
            "get": {
                "operationId": "get_api_library_export",
                "responses": {
                    "default": {
                        "description": ""
                    }
                }
            }
        },
        "/api/import/books": {
            "post": {
                "operationId": "post_api_import_books",
                "responses": {
                    "default": {
                        "description": ""
                    }
                }
            }
        },
        "/api/import/unmatched": {
            "get": {
                "operationId": "get_api_import_unmatched",
                "responses": {
                    "default": {
                        "description": ""
                    }
                }
            }
        },
        "/api/import/match/{id}": {
            "post": {
                "operationId": "post_api_import_match",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "default": {
                        "description": ""
                    }
                }
            }
        },
        "/api/import/skip/{id}": {
            "post": {
                "operationId": "post_api_import_skip",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "default": {
                        "description": ""
                    }
                }
            }
        },
        "/api/import/reset/{id}": {
            "post": {
                "operationId": "post_api_import_reset",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "default": {
                        "description": ""
                    }
                }
            }
        },
        "/api/user-books/{id}/update-info": {
            "patch": {
                "operationId": "patch_api_user_books_update_info",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "default": {
                        "description": ""
                    }
                }
            }
        },
        "/api/user/settings": {
            "get": {
                "operationId": "get_api_user_settings",
                "responses": {
                    "default": {
                        "description": ""
                    }
                }
            },
            "patch": {
                "operationId": "patch_api_user_settings_update",
                "responses": {
                    "default": {
                        "description": ""
                    }
                }
            }
        },
        "/api/wishlist": {
            "get": {
                "operationId": "get_api_wishlist",
                "responses": {
                    "default": {
                        "description": ""
                    }
                }
            }
        },
        "/api/wishlist/add": {
            "post": {
                "operationId": "post_api_wishlist_add",
                "responses": {
                    "default": {
                        "description": ""
                    }
                }
            }
        },
        "/api/wishlist/add-manual": {
            "post": {
                "operationId": "post_api_wishlist_add_manual",
                "responses": {
                    "default": {
                        "description": ""
                    }
                }
            }
        },
        "/api/user-wishlists/{id}": {
            "get": {
                "operationId": "get_api_wishlist_detail",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "default": {
                        "description": ""
                    }
                }
            },
            "delete": {
                "operationId": "delete_api_wishlist_remove",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "default": {
                        "description": ""
                    }
                }
            }
        },
        "/api/user-wishlists/{id}/metadata": {
            "patch": {
                "operationId": "patch_api_wishlist_metadata",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "default": {
                        "description": ""
                    }
                }
            }
        },
        "/api/user-wishlists/{id}/description": {
            "patch": {
                "operationId": "patch_api_wishlist_description",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "default": {
                        "description": ""
                    }
                }
            }
        },
        "/api/user-wishlists/{id}/cover": {
            "post": {
                "operationId": "post_api_wishlist_cover",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "default": {
                        "description": ""
                    }
                }
            }
        },
        "/api/user-wishlists/{id}/notes": {
            "patch": {
                "operationId": "patch_api_wishlist_notes",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "default": {
                        "description": ""
                    }
                }
            }
        },
        "/api/user-wishlists/{id}/move-to-library": {
            "post": {
                "operationId": "post_api_wishlist_move_to_library",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "default": {
                        "description": ""
                    }
                }
            }
        },
        "/api/wishlist/count": {
            "get": {
                "operationId": "get_api_wishlist_count",
                "responses": {
                    "default": {
                        "description": ""
                    }
                }
            }
        }
    },
    "components": {
        "securitySchemes": {
            "Bearer": {
                "type": "http",
                "bearerFormat": "JWT",
                "scheme": "bearer"
            }
        }
    },
    "security": [
        {
            "Bearer": []
        }
    ],
    "tags": [
        {
            "name": "Authentication",
            "description": "Authentication"
        }
    ]
}