{
  "openapi": "3.1.0",
  "info": {
    "title": "Taapit API",
    "description": "Taapit API - A comprehensive link management and analytics platform",
    "version": "1.0.0"
  },
  "paths": {
    "/api/v1/auth/login": {
      "post": {
        "tags": [
          "authentication"
        ],
        "summary": "Login",
        "description": "Login with email and password using Firebase Authentication",
        "operationId": "login_api_v1_auth_login_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth/verify": {
      "post": {
        "tags": [
          "authentication"
        ],
        "summary": "Verify Token",
        "description": "Verify authentication token",
        "operationId": "verify_token_api_v1_auth_verify_post",
        "parameters": [
          {
            "name": "scheme",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Scheme"
            }
          },
          {
            "name": "credentials",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Credentials"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TokenVerifyResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth/me": {
      "get": {
        "tags": [
          "authentication"
        ],
        "summary": "Get Current User Info",
        "description": "Get current user information",
        "operationId": "get_current_user_info_api_v1_auth_me_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/auth/refresh": {
      "post": {
        "tags": [
          "authentication"
        ],
        "summary": "Refresh Token",
        "description": "Refresh authentication token using Firebase refresh token",
        "operationId": "refresh_token_api_v1_auth_refresh_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RefreshTokenRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RefreshTokenResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/users/me": {
      "get": {
        "tags": [
          "users"
        ],
        "summary": "Get Current User Profile",
        "description": "Get current user profile",
        "operationId": "get_current_user_profile_api_v1_users_me_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      },
      "put": {
        "tags": [
          "users"
        ],
        "summary": "Update Current User",
        "description": "Update current user profile",
        "operationId": "update_current_user_api_v1_users_me_put",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/users/{user_id}": {
      "get": {
        "tags": [
          "users"
        ],
        "summary": "Get User",
        "description": "Get user by ID",
        "operationId": "get_user_api_v1_users__user_id__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "User Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/users/": {
      "get": {
        "tags": [
          "users"
        ],
        "summary": "List Users",
        "description": "List users with cursor-based pagination",
        "operationId": "list_users_api_v1_users__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Cursor for pagination",
              "title": "Cursor"
            },
            "description": "Cursor for pagination"
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 1,
              "title": "Page"
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 20,
              "title": "Page Size"
            }
          },
          {
            "name": "sort_by",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Sort By"
            }
          },
          {
            "name": "sort_order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "desc",
              "title": "Sort Order"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedResponse_UserResponse_"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/users/verify-email": {
      "post": {
        "tags": [
          "users"
        ],
        "summary": "Verify User Email",
        "description": "Verify user email with verification code",
        "operationId": "verify_user_email_api_v1_users_verify_email_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "verification_code",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Verification Code"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "type": "string"
                  },
                  "title": "Response Verify User Email Api V1 Users Verify Email Post"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/users/subscription": {
      "put": {
        "tags": [
          "users"
        ],
        "summary": "Update User Subscription",
        "description": "Update user subscription information",
        "operationId": "update_user_subscription_api_v1_users_subscription_put",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserSubscriptionUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/links/": {
      "post": {
        "tags": [
          "links"
        ],
        "summary": "Create Link",
        "description": "Create a new link using external API",
        "operationId": "create_link_api_v1_links__post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LinkCreate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LinkResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "links"
        ],
        "summary": "List Links",
        "description": "List links with cursor-based pagination using LinkService",
        "operationId": "list_links_api_v1_links__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "archived",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Filter by archived status",
              "title": "Archived"
            },
            "description": "Filter by archived status"
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Cursor for pagination",
              "title": "Cursor"
            },
            "description": "Cursor for pagination"
          },
          {
            "name": "sort_order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "desc",
              "title": "Sort Order"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 1,
              "title": "Page"
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 20,
              "title": "Page Size"
            }
          },
          {
            "name": "sort_by",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Sort By"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedResponse_LinkResponse_"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/links/{link_id}": {
      "put": {
        "tags": [
          "links"
        ],
        "summary": "Update Link",
        "description": "Update link using external API",
        "operationId": "update_link_api_v1_links__link_id__put",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "link_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Link Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LinkUpdate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LinkResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "links"
        ],
        "summary": "Delete Link",
        "description": "Delete link using external API",
        "operationId": "delete_link_api_v1_links__link_id__delete",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "link_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Link Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Response Delete Link Api V1 Links  Link Id  Delete"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "links"
        ],
        "summary": "Get Link",
        "description": "Get link by ID using LinkService",
        "operationId": "get_link_api_v1_links__link_id__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "link_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Link Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LinkResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/links/code/{code}": {
      "get": {
        "tags": [
          "links"
        ],
        "summary": "Get Link By Code",
        "description": "Get link by code - public access unless archived, automatically tracks click using LinkService",
        "operationId": "get_link_by_code_api_v1_links_code__code__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Code"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LinkResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/domains/": {
      "post": {
        "tags": [
          "domains"
        ],
        "summary": "Create Domain",
        "description": "Create a new domain",
        "operationId": "create_domain_api_v1_domains__post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DomainCreate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DomainResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "domains"
        ],
        "summary": "List Domains",
        "description": "List domains with cursor-based pagination",
        "operationId": "list_domains_api_v1_domains__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Cursor for pagination",
              "title": "Cursor"
            },
            "description": "Cursor for pagination"
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 1,
              "title": "Page"
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 20,
              "title": "Page Size"
            }
          },
          {
            "name": "sort_by",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Sort By"
            }
          },
          {
            "name": "sort_order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "desc",
              "title": "Sort Order"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedResponse_DomainResponse_"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/domains/{domain_id}": {
      "get": {
        "tags": [
          "domains"
        ],
        "summary": "Get Domain",
        "description": "Get domain by ID",
        "operationId": "get_domain_api_v1_domains__domain_id__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "domain_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Domain Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DomainResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "domains"
        ],
        "summary": "Update Domain",
        "description": "Update domain",
        "operationId": "update_domain_api_v1_domains__domain_id__put",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "domain_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Domain Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DomainUpdate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DomainResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "domains"
        ],
        "summary": "Delete Domain",
        "description": "Delete domain",
        "operationId": "delete_domain_api_v1_domains__domain_id__delete",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "domain_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Domain Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "type": "string"
                  },
                  "title": "Response Delete Domain Api V1 Domains  Domain Id  Delete"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/domains/{domain_id}/verify": {
      "get": {
        "tags": [
          "domains"
        ],
        "summary": "Verify Domain Setup",
        "description": "Verify domain setup (DNS records, etc.)",
        "operationId": "verify_domain_setup_api_v1_domains__domain_id__verify_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "domain_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Domain Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Response Verify Domain Setup Api V1 Domains  Domain Id  Verify Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/projects/": {
      "post": {
        "tags": [
          "projects"
        ],
        "summary": "Create Project",
        "description": "Create a new project",
        "operationId": "create_project_api_v1_projects__post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectCreate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "projects"
        ],
        "summary": "List Projects",
        "description": "List projects with cursor-based pagination",
        "operationId": "list_projects_api_v1_projects__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Cursor for pagination",
              "title": "Cursor"
            },
            "description": "Cursor for pagination"
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 1,
              "title": "Page"
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 20,
              "title": "Page Size"
            }
          },
          {
            "name": "sort_by",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Sort By"
            }
          },
          {
            "name": "sort_order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "desc",
              "title": "Sort Order"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedResponse_ProjectResponse_"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/projects/{project_id}": {
      "get": {
        "tags": [
          "projects"
        ],
        "summary": "Get Project",
        "description": "Get project by ID",
        "operationId": "get_project_api_v1_projects__project_id__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "project_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Project Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "projects"
        ],
        "summary": "Update Project",
        "description": "Update project",
        "operationId": "update_project_api_v1_projects__project_id__put",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "project_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Project Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectUpdate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "projects"
        ],
        "summary": "Delete Project",
        "description": "Delete project",
        "operationId": "delete_project_api_v1_projects__project_id__delete",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "project_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Project Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "type": "string"
                  },
                  "title": "Response Delete Project Api V1 Projects  Project Id  Delete"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/pages/": {
      "post": {
        "tags": [
          "pages"
        ],
        "summary": "Create Page",
        "description": "Create a new page",
        "operationId": "create_page_api_v1_pages__post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PageCreate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PageResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "pages"
        ],
        "summary": "List Pages",
        "description": "List pages with cursor-based pagination",
        "operationId": "list_pages_api_v1_pages__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "archived",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Filter by archived status",
              "title": "Archived"
            },
            "description": "Filter by archived status"
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Cursor for pagination",
              "title": "Cursor"
            },
            "description": "Cursor for pagination"
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 1,
              "title": "Page"
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 20,
              "title": "Page Size"
            }
          },
          {
            "name": "sort_by",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Sort By"
            }
          },
          {
            "name": "sort_order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "desc",
              "title": "Sort Order"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedResponse_PageResponse_"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/pages/{page_id}": {
      "get": {
        "tags": [
          "pages"
        ],
        "summary": "Get Page",
        "description": "Get page by ID",
        "operationId": "get_page_api_v1_pages__page_id__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "page_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Page Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PageResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "pages"
        ],
        "summary": "Update Page",
        "description": "Update page",
        "operationId": "update_page_api_v1_pages__page_id__put",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "page_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Page Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PageUpdate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PageResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "pages"
        ],
        "summary": "Delete Page",
        "description": "Delete page",
        "operationId": "delete_page_api_v1_pages__page_id__delete",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "page_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Page Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "type": "string"
                  },
                  "title": "Response Delete Page Api V1 Pages  Page Id  Delete"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/pages/username/{username}": {
      "get": {
        "tags": [
          "pages"
        ],
        "summary": "Get Page By Username",
        "description": "Get page by username",
        "operationId": "get_page_by_username_api_v1_pages_username__username__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "username",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Username"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PageResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/pages/{page_id}/archive": {
      "post": {
        "tags": [
          "pages"
        ],
        "summary": "Archive Page",
        "description": "Archive a page",
        "operationId": "archive_page_api_v1_pages__page_id__archive_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "page_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Page Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PageResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/pages/{page_id}/unarchive": {
      "post": {
        "tags": [
          "pages"
        ],
        "summary": "Unarchive Page",
        "description": "Unarchive a page",
        "operationId": "unarchive_page_api_v1_pages__page_id__unarchive_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "page_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Page Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PageResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/pages/{page_id}/analytics": {
      "post": {
        "tags": [
          "pages"
        ],
        "summary": "Update Page Analytics",
        "description": "Update page analytics",
        "operationId": "update_page_analytics_api_v1_pages__page_id__analytics_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "page_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Page Id"
            }
          },
          {
            "name": "time_spent",
            "in": "query",
            "required": true,
            "schema": {
              "type": "number",
              "description": "Time spent on page in seconds",
              "title": "Time Spent"
            },
            "description": "Time spent on page in seconds"
          },
          {
            "name": "scroll_percent",
            "in": "query",
            "required": true,
            "schema": {
              "type": "number",
              "description": "Scroll percentage (0-100)",
              "title": "Scroll Percent"
            },
            "description": "Scroll percentage (0-100)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PageResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/stats/links/{link_id}": {
      "get": {
        "tags": [
          "stats"
        ],
        "summary": "Get Link Stats",
        "description": "Get link stats for a specific link",
        "operationId": "get_link_stats_api_v1_stats_links__link_id__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "link_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Link Id"
            }
          },
          {
            "name": "start_date",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date-time"
                },
                {
                  "type": "string",
                  "format": "date"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Start date for stats (YYYY-MM-DD or ISO datetime)",
              "title": "Start Date"
            },
            "description": "Start date for stats (YYYY-MM-DD or ISO datetime)"
          },
          {
            "name": "end_date",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date-time"
                },
                {
                  "type": "string",
                  "format": "date"
                },
                {
                  "type": "null"
                }
              ],
              "description": "End date for stats (YYYY-MM-DD or ISO datetime)",
              "title": "End Date"
            },
            "description": "End date for stats (YYYY-MM-DD or ISO datetime)"
          },
          {
            "name": "max_days",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 30,
              "minimum": 1,
              "description": "Maximum allowed days between start and end date",
              "default": 30,
              "title": "Max Days"
            },
            "description": "Maximum allowed days between start and end date"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LinkStatsResponse"
                  },
                  "title": "Response Get Link Stats Api V1 Stats Links  Link Id  Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/stats/workspaces/{workspace_id}": {
      "get": {
        "tags": [
          "stats"
        ],
        "summary": "Get Workspace Stats",
        "description": "Get workspace stats for a specific workspace",
        "operationId": "get_workspace_stats_api_v1_stats_workspaces__workspace_id__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "workspace_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Workspace Id"
            }
          },
          {
            "name": "start_date",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date-time"
                },
                {
                  "type": "string",
                  "format": "date"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Start date for stats (YYYY-MM-DD or ISO datetime)",
              "title": "Start Date"
            },
            "description": "Start date for stats (YYYY-MM-DD or ISO datetime)"
          },
          {
            "name": "end_date",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date-time"
                },
                {
                  "type": "string",
                  "format": "date"
                },
                {
                  "type": "null"
                }
              ],
              "description": "End date for stats (YYYY-MM-DD or ISO datetime)",
              "title": "End Date"
            },
            "description": "End date for stats (YYYY-MM-DD or ISO datetime)"
          },
          {
            "name": "max_days",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 30,
              "minimum": 1,
              "description": "Maximum allowed days between start and end date",
              "default": 30,
              "title": "Max Days"
            },
            "description": "Maximum allowed days between start and end date"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WorkspaceStatsResponse"
                  },
                  "title": "Response Get Workspace Stats Api V1 Stats Workspaces  Workspace Id  Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/stats/links/{link_id}/summary": {
      "get": {
        "tags": [
          "stats"
        ],
        "summary": "Get Link Stats Summary",
        "description": "Get aggregated link stats summary",
        "operationId": "get_link_stats_summary_api_v1_stats_links__link_id__summary_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "link_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Link Id"
            }
          },
          {
            "name": "start_date",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date-time"
                },
                {
                  "type": "string",
                  "format": "date"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Start date for summary (YYYY-MM-DD or ISO datetime)",
              "title": "Start Date"
            },
            "description": "Start date for summary (YYYY-MM-DD or ISO datetime)"
          },
          {
            "name": "end_date",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date-time"
                },
                {
                  "type": "string",
                  "format": "date"
                },
                {
                  "type": "null"
                }
              ],
              "description": "End date for summary (YYYY-MM-DD or ISO datetime)",
              "title": "End Date"
            },
            "description": "End date for summary (YYYY-MM-DD or ISO datetime)"
          },
          {
            "name": "max_days",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 30,
              "minimum": 1,
              "description": "Maximum allowed days between start and end date",
              "default": 30,
              "title": "Max Days"
            },
            "description": "Maximum allowed days between start and end date"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LinkStatsSummary"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/stats/workspaces/{workspace_id}/summary": {
      "get": {
        "tags": [
          "stats"
        ],
        "summary": "Get Workspace Stats Summary",
        "description": "Get aggregated workspace stats summary",
        "operationId": "get_workspace_stats_summary_api_v1_stats_workspaces__workspace_id__summary_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "workspace_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Workspace Id"
            }
          },
          {
            "name": "start_date",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date-time"
                },
                {
                  "type": "string",
                  "format": "date"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Start date for summary (YYYY-MM-DD or ISO datetime)",
              "title": "Start Date"
            },
            "description": "Start date for summary (YYYY-MM-DD or ISO datetime)"
          },
          {
            "name": "end_date",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date-time"
                },
                {
                  "type": "string",
                  "format": "date"
                },
                {
                  "type": "null"
                }
              ],
              "description": "End date for summary (YYYY-MM-DD or ISO datetime)",
              "title": "End Date"
            },
            "description": "End date for summary (YYYY-MM-DD or ISO datetime)"
          },
          {
            "name": "max_days",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 30,
              "minimum": 1,
              "description": "Maximum allowed days between start and end date",
              "default": 30,
              "title": "Max Days"
            },
            "description": "Maximum allowed days between start and end date"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkspaceStatsSummary"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/plan/workspace/{workspace_id}/features": {
      "get": {
        "tags": [
          "plan-features"
        ],
        "summary": "Get Workspace Plan Features",
        "description": "Get plan features for a workspace",
        "operationId": "get_workspace_plan_features_api_v1_plan_workspace__workspace_id__features_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "workspace_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Workspace Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Response Get Workspace Plan Features Api V1 Plan Workspace  Workspace Id  Features Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/plan/workspace/{workspace_id}/limits": {
      "get": {
        "tags": [
          "plan-features"
        ],
        "summary": "Get Workspace Limits",
        "description": "Get current usage and limits for a workspace",
        "operationId": "get_workspace_limits_api_v1_plan_workspace__workspace_id__limits_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "workspace_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Workspace Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Response Get Workspace Limits Api V1 Plan Workspace  Workspace Id  Limits Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/rate-limit/ping": {
      "get": {
        "tags": [
          "rate-limiting"
        ],
        "summary": "Rate Limit Ping",
        "description": "Test endpoint for rate limiting\n\nThis endpoint demonstrates rate limiting functionality.\nCheck the response headers for rate limit information:\n- X-RateLimit-Limit: Maximum requests per minute\n- X-RateLimit-Remaining: Remaining requests in current window\n- X-RateLimit-Reset: Seconds until window resets",
        "operationId": "rate_limit_ping_api_v1_rate_limit_ping_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Response Rate Limit Ping Api V1 Rate Limit Ping Get"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/rate-limit/debug": {
      "get": {
        "tags": [
          "rate-limiting"
        ],
        "summary": "Rate Limit Debug",
        "description": "Debug endpoint to track Redis operations during rate limiting\n\nThis endpoint helps identify why multiple Redis operations might be triggered",
        "operationId": "rate_limit_debug_api_v1_rate_limit_debug_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Response Rate Limit Debug Api V1 Rate Limit Debug Get"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/api-keys/": {
      "get": {
        "tags": [
          "api-keys"
        ],
        "summary": "List Api Keys",
        "description": "List API keys for the current user",
        "operationId": "list_api_keys_api_v1_api_keys__get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "type": "object"
                  },
                  "type": "array",
                  "title": "Response List Api Keys Api V1 Api Keys  Get"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/api-keys/{api_key_id}": {
      "get": {
        "tags": [
          "api-keys"
        ],
        "summary": "Get Api Key",
        "description": "Get specific API key details",
        "operationId": "get_api_key_api_v1_api_keys__api_key_id__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "api_key_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Api Key Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Response Get Api Key Api V1 Api Keys  Api Key Id  Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/api-keys/validate": {
      "post": {
        "tags": [
          "api-keys"
        ],
        "summary": "Validate Api Key",
        "description": "Validate current API key and return its permissions",
        "operationId": "validate_api_key_api_v1_api_keys_validate_post",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Response Validate Api Key Api V1 Api Keys Validate Post"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/examples/domains": {
      "get": {
        "tags": [
          "examples"
        ],
        "summary": "List Domains",
        "description": "List domains - requires read access to domains resource",
        "operationId": "list_domains_api_v1_examples_domains_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Response List Domains Api V1 Examples Domains Get"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      },
      "post": {
        "tags": [
          "examples"
        ],
        "summary": "Create Domain",
        "description": "Create domain - requires write access to domains resource",
        "operationId": "create_domain_api_v1_examples_domains_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "title": "Domain Data"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Response Create Domain Api V1 Examples Domains Post"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/examples/links": {
      "get": {
        "tags": [
          "examples"
        ],
        "summary": "List Links",
        "description": "List links - requires read access to links resource",
        "operationId": "list_links_api_v1_examples_links_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Response List Links Api V1 Examples Links Get"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      },
      "post": {
        "tags": [
          "examples"
        ],
        "summary": "Create Link",
        "description": "Create link - requires write access to links resource",
        "operationId": "create_link_api_v1_examples_links_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "title": "Link Data"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Response Create Link Api V1 Examples Links Post"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/examples/analytics": {
      "get": {
        "tags": [
          "examples"
        ],
        "summary": "Get Analytics",
        "description": "Get analytics - requires read access to analytics resource",
        "operationId": "get_analytics_api_v1_examples_analytics_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Response Get Analytics Api V1 Examples Analytics Get"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/examples/projects": {
      "get": {
        "tags": [
          "examples"
        ],
        "summary": "List Projects",
        "description": "List projects - requires read access to projects resource",
        "operationId": "list_projects_api_v1_examples_projects_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Response List Projects Api V1 Examples Projects Get"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/examples/auth-info": {
      "get": {
        "tags": [
          "examples"
        ],
        "summary": "Get Auth Info",
        "description": "Get current authentication information",
        "operationId": "get_auth_info_api_v1_examples_auth_info_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Response Get Auth Info Api V1 Examples Auth Info Get"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/": {
      "get": {
        "summary": "Root",
        "description": "Root endpoint",
        "operationId": "root__get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/health": {
      "get": {
        "summary": "Health Check",
        "description": "Health check endpoint",
        "operationId": "health_check_health_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "DomainCreate": {
        "properties": {
          "domain": {
            "type": "string",
            "title": "Domain",
            "description": "Domain name"
          }
        },
        "type": "object",
        "required": [
          "domain"
        ],
        "title": "DomainCreate",
        "description": "Domain creation model"
      },
      "DomainResponse": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          },
          "user_id": {
            "type": "string",
            "title": "User Id"
          },
          "domain": {
            "type": "string",
            "title": "Domain",
            "description": "Domain name"
          },
          "is_domain_added_to_vercel": {
            "type": "boolean",
            "title": "Is Domain Added To Vercel",
            "default": false
          },
          "is_cname_record_added": {
            "type": "boolean",
            "title": "Is Cname Record Added",
            "default": false
          },
          "process_migration_v2": {
            "type": "boolean",
            "title": "Process Migration V2",
            "default": false
          },
          "processed_migration_v2": {
            "type": "boolean",
            "title": "Processed Migration V2",
            "default": false
          }
        },
        "type": "object",
        "required": [
          "id",
          "created_at",
          "user_id",
          "domain"
        ],
        "title": "DomainResponse",
        "description": "Domain response model - excludes workspace_id for security"
      },
      "DomainUpdate": {
        "properties": {
          "domain": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Domain"
          }
        },
        "type": "object",
        "title": "DomainUpdate",
        "description": "Domain update model"
      },
      "ExcludedCountry": {
        "properties": {
          "code": {
            "type": "string",
            "title": "Code"
          },
          "label": {
            "type": "string",
            "title": "Label"
          },
          "phone": {
            "type": "string",
            "title": "Phone"
          },
          "suggested": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Suggested"
          },
          "lang": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lang"
          },
          "continent": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Continent"
          }
        },
        "type": "object",
        "required": [
          "code",
          "label",
          "phone"
        ],
        "title": "ExcludedCountry",
        "description": "Excluded country model"
      },
      "HTTPValidationError": {
        "properties": {
          "detail": {
            "items": {
              "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
          }
        },
        "type": "object",
        "title": "HTTPValidationError"
      },
      "LinkCreate": {
        "properties": {
          "original_url": {
            "type": "string",
            "title": "Original Url"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Code"
          },
          "app": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "App"
          },
          "app_logo": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "App Logo"
          },
          "android_link": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Android Link"
          },
          "ios_link": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ios Link"
          },
          "android_fallback_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Android Fallback Url"
          },
          "ios_fallback_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ios Fallback Url"
          },
          "windows_link": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Windows Link"
          },
          "macos_link": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Macos Link"
          },
          "whatsapp_message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Whatsapp Message"
          },
          "metadata": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LinkMetadata"
              },
              {
                "type": "null"
              }
            ]
          },
          "qr_code_options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/QrCodeOptions"
              },
              {
                "type": "null"
              }
            ]
          },
          "utm_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Utm Name"
          },
          "utm_source": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Utm Source"
          },
          "utm_medium": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Utm Medium"
          },
          "utm_campaign": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Utm Campaign"
          },
          "utm_term": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Utm Term"
          },
          "utm_content": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Utm Content"
          },
          "utm_template_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Utm Template Id"
          },
          "referrer": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Referrer"
          },
          "password": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Password"
          },
          "password_description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Password Description"
          },
          "excluded_countries": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/ExcludedCountry"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Excluded Countries"
          },
          "has_public_stat": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Has Public Stat"
          },
          "project_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Project Id"
          },
          "domain_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Domain Id"
          },
          "pixel_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Pixel Id"
          }
        },
        "type": "object",
        "required": [
          "original_url"
        ],
        "title": "LinkCreate",
        "description": "Link creation model"
      },
      "LinkMetadata": {
        "properties": {
          "title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Title"
          },
          "favicon": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Favicon"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "social_image": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Social Image"
          }
        },
        "type": "object",
        "title": "LinkMetadata",
        "description": "Link metadata model for website previews"
      },
      "LinkResponse": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
          },
          "user_id": {
            "type": "string",
            "title": "User Id"
          },
          "project_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Project Id"
          },
          "domain_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Domain Id"
          },
          "pixel_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Pixel Id"
          },
          "original_url": {
            "type": "string",
            "title": "Original Url"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "code": {
            "type": "string",
            "title": "Code"
          },
          "app": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "App"
          },
          "app_logo": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "App Logo"
          },
          "android_link": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Android Link"
          },
          "ios_link": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ios Link"
          },
          "android_fallback_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Android Fallback Url"
          },
          "ios_fallback_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ios Fallback Url"
          },
          "windows_link": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Windows Link"
          },
          "macos_link": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Macos Link"
          },
          "whatsapp_message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Whatsapp Message"
          },
          "metadata": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LinkMetadata"
              },
              {
                "type": "null"
              }
            ]
          },
          "qr_code_options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/QrCodeOptions"
              },
              {
                "type": "null"
              }
            ]
          },
          "utm_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Utm Name"
          },
          "utm_source": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Utm Source"
          },
          "utm_medium": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Utm Medium"
          },
          "utm_campaign": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Utm Campaign"
          },
          "utm_term": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Utm Term"
          },
          "utm_content": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Utm Content"
          },
          "utm_template_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Utm Template Id"
          },
          "referrer": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Referrer"
          },
          "password": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Password"
          },
          "password_description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Password Description"
          },
          "excluded_countries": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/ExcludedCountry"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Excluded Countries"
          },
          "has_public_stat": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Has Public Stat"
          },
          "has_been_checked": {
            "type": "boolean",
            "title": "Has Been Checked",
            "default": false
          },
          "is_unsafe_domain": {
            "type": "boolean",
            "title": "Is Unsafe Domain",
            "default": false
          },
          "is_archived": {
            "type": "boolean",
            "title": "Is Archived",
            "default": false
          },
          "is_malicious": {
            "type": "boolean",
            "title": "Is Malicious",
            "default": false
          },
          "is_page_link": {
            "type": "boolean",
            "title": "Is Page Link",
            "default": false
          },
          "is_widget_link": {
            "type": "boolean",
            "title": "Is Widget Link",
            "default": false
          },
          "process_migration_v2": {
            "type": "boolean",
            "title": "Process Migration V2",
            "default": false
          },
          "processed_migration_v2": {
            "type": "boolean",
            "title": "Processed Migration V2",
            "default": false
          },
          "expiration_click_count": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expiration Click Count"
          },
          "expiration_date": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expiration Date"
          },
          "link_scan_amount": {
            "type": "integer",
            "title": "Link Scan Amount",
            "default": 0
          },
          "link_click_amount": {
            "type": "integer",
            "title": "Link Click Amount",
            "default": 0
          },
          "clicks": {
            "type": "integer",
            "title": "Clicks",
            "default": 0
          }
        },
        "type": "object",
        "required": [
          "id",
          "created_at",
          "updated_at",
          "user_id",
          "original_url",
          "code"
        ],
        "title": "LinkResponse",
        "description": "Link response model - excludes workspace_id for security"
      },
      "LinkStatsResponse": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "link_id": {
            "type": "string",
            "title": "Link Id"
          },
          "last_updated": {
            "type": "string",
            "format": "date-time",
            "title": "Last Updated"
          },
          "click_date": {
            "type": "string",
            "title": "Click Date"
          },
          "total_clicks": {
            "type": "integer",
            "title": "Total Clicks",
            "default": 0
          },
          "os_stats": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Os Stats"
          },
          "city_stats": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "City Stats"
          },
          "os_version_stats": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Os Version Stats"
          },
          "lang_stats": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lang Stats"
          },
          "device_stats": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Device Stats"
          },
          "browser_stats": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Browser Stats"
          },
          "country_stats": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Country Stats"
          },
          "device_and_os_stats": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Device And Os Stats"
          },
          "app_stats": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "App Stats"
          },
          "device_type_stats": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Device Type Stats"
          },
          "from_app_stats": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "From App Stats"
          },
          "continent_stats": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Continent Stats"
          },
          "chrome_clicks": {
            "type": "integer",
            "title": "Chrome Clicks",
            "default": 0
          },
          "ios_clicks": {
            "type": "integer",
            "title": "Ios Clicks",
            "default": 0
          },
          "android_clicks": {
            "type": "integer",
            "title": "Android Clicks",
            "default": 0
          },
          "scans_only": {
            "type": "integer",
            "title": "Scans Only",
            "default": 0
          },
          "clicks_only": {
            "type": "integer",
            "title": "Clicks Only",
            "default": 0
          },
          "unique_visitors": {
            "type": "integer",
            "title": "Unique Visitors",
            "default": 0
          }
        },
        "type": "object",
        "required": [
          "id",
          "link_id",
          "last_updated",
          "click_date"
        ],
        "title": "LinkStatsResponse",
        "description": "Link stats response model - excludes workspace_id for security"
      },
      "LinkStatsSummary": {
        "properties": {
          "link_id": {
            "type": "string",
            "title": "Link Id"
          },
          "total_clicks": {
            "type": "integer",
            "title": "Total Clicks"
          },
          "top_countries": {
            "items": {
              "type": "object"
            },
            "type": "array",
            "title": "Top Countries"
          },
          "top_devices": {
            "items": {
              "type": "object"
            },
            "type": "array",
            "title": "Top Devices"
          },
          "top_browsers": {
            "items": {
              "type": "object"
            },
            "type": "array",
            "title": "Top Browsers"
          },
          "qr_code_usage": {
            "type": "integer",
            "title": "Qr Code Usage"
          },
          "date_range": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object",
            "title": "Date Range"
          }
        },
        "type": "object",
        "required": [
          "link_id",
          "total_clicks",
          "top_countries",
          "top_devices",
          "top_browsers",
          "qr_code_usage",
          "date_range"
        ],
        "title": "LinkStatsSummary",
        "description": "Link stats summary model"
      },
      "LinkUpdate": {
        "properties": {
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "original_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Original Url"
          },
          "code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Code"
          },
          "app": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "App"
          },
          "app_logo": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "App Logo"
          },
          "android_link": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Android Link"
          },
          "ios_link": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ios Link"
          },
          "android_fallback_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Android Fallback Url"
          },
          "ios_fallback_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ios Fallback Url"
          },
          "windows_link": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Windows Link"
          },
          "macos_link": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Macos Link"
          },
          "whatsapp_message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Whatsapp Message"
          },
          "metadata": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LinkMetadata"
              },
              {
                "type": "null"
              }
            ]
          },
          "qr_code_options": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/QrCodeOptions"
              },
              {
                "type": "null"
              }
            ]
          },
          "is_archived": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Is Archived"
          },
          "expiration_date": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expiration Date"
          },
          "expiration_click_count": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expiration Click Count"
          },
          "utm_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Utm Name"
          },
          "utm_source": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Utm Source"
          },
          "utm_medium": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Utm Medium"
          },
          "utm_campaign": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Utm Campaign"
          },
          "utm_term": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Utm Term"
          },
          "utm_content": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Utm Content"
          },
          "utm_template_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Utm Template Id"
          },
          "referrer": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Referrer"
          },
          "password": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Password"
          },
          "password_description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Password Description"
          },
          "excluded_countries": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/ExcludedCountry"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Excluded Countries"
          },
          "has_public_stat": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Has Public Stat"
          },
          "pixel_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Pixel Id"
          }
        },
        "type": "object",
        "title": "LinkUpdate",
        "description": "Link update model"
      },
      "LoginRequest": {
        "properties": {
          "email": {
            "type": "string",
            "format": "email",
            "title": "Email"
          },
          "password": {
            "type": "string",
            "title": "Password"
          }
        },
        "type": "object",
        "required": [
          "email",
          "password"
        ],
        "title": "LoginRequest",
        "description": "Login request model"
      },
      "LoginResponse": {
        "properties": {
          "access_token": {
            "type": "string",
            "title": "Access Token"
          },
          "refresh_token": {
            "type": "string",
            "title": "Refresh Token"
          },
          "token_type": {
            "type": "string",
            "title": "Token Type",
            "default": "Bearer"
          },
          "expires_in": {
            "type": "integer",
            "title": "Expires In"
          },
          "user": {
            "$ref": "#/components/schemas/UserAuthInfo"
          }
        },
        "type": "object",
        "required": [
          "access_token",
          "refresh_token",
          "expires_in",
          "user"
        ],
        "title": "LoginResponse",
        "description": "Login response model"
      },
      "PageCreate": {
        "properties": {
          "name": {
            "type": "string",
            "title": "Name"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "username": {
            "type": "string",
            "title": "Username"
          },
          "avatar_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Avatar Url"
          },
          "widgets": {
            "anyOf": [
              {
                "items": {
                  "type": "object"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Widgets"
          },
          "project_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Project Id"
          }
        },
        "type": "object",
        "required": [
          "name",
          "username"
        ],
        "title": "PageCreate",
        "description": "Page creation model"
      },
      "PageResponse": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
          },
          "user_id": {
            "type": "string",
            "title": "User Id"
          },
          "project_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Project Id"
          },
          "link_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Link Id"
          },
          "taapit_link": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Taapit Link"
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "username": {
            "type": "string",
            "title": "Username"
          },
          "avatar_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Avatar Url"
          },
          "widgets": {
            "anyOf": [
              {
                "items": {
                  "type": "object"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Widgets"
          },
          "is_archived": {
            "type": "boolean",
            "title": "Is Archived",
            "default": false
          },
          "public": {
            "type": "boolean",
            "title": "Public",
            "default": false
          },
          "is_dark_mode": {
            "type": "boolean",
            "title": "Is Dark Mode",
            "default": false
          },
          "processed_migration_v2": {
            "type": "boolean",
            "title": "Processed Migration V2",
            "default": false
          },
          "average_time_spent": {
            "type": "number",
            "title": "Average Time Spent",
            "default": 0.0
          },
          "last_updated": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Updated"
          },
          "average_scroll_percent": {
            "type": "number",
            "title": "Average Scroll Percent",
            "default": 0.0
          },
          "visit_count": {
            "type": "integer",
            "title": "Visit Count",
            "default": 0
          },
          "total_time_spent": {
            "type": "number",
            "title": "Total Time Spent",
            "default": 0.0
          },
          "total_scroll_percent": {
            "type": "number",
            "title": "Total Scroll Percent",
            "default": 0.0
          }
        },
        "type": "object",
        "required": [
          "id",
          "created_at",
          "updated_at",
          "user_id",
          "name",
          "username"
        ],
        "title": "PageResponse",
        "description": "Page response model - excludes workspace_id for security"
      },
      "PageUpdate": {
        "properties": {
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "username": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Username"
          },
          "avatar_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Avatar Url"
          },
          "widgets": {
            "anyOf": [
              {
                "items": {
                  "type": "object"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Widgets"
          },
          "is_archived": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Is Archived"
          },
          "is_dark_mode": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Is Dark Mode"
          }
        },
        "type": "object",
        "title": "PageUpdate",
        "description": "Page update model"
      },
      "PaginatedResponse_DomainResponse_": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/DomainResponse"
            },
            "type": "array",
            "title": "Items"
          },
          "page": {
            "type": "integer",
            "title": "Page"
          },
          "page_size": {
            "type": "integer",
            "title": "Page Size"
          },
          "has_next": {
            "type": "boolean",
            "title": "Has Next"
          },
          "has_prev": {
            "type": "boolean",
            "title": "Has Prev"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          },
          "prev_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Prev Cursor"
          }
        },
        "type": "object",
        "required": [
          "items",
          "page",
          "page_size",
          "has_next",
          "has_prev"
        ],
        "title": "PaginatedResponse[DomainResponse]"
      },
      "PaginatedResponse_LinkResponse_": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/LinkResponse"
            },
            "type": "array",
            "title": "Items"
          },
          "page": {
            "type": "integer",
            "title": "Page"
          },
          "page_size": {
            "type": "integer",
            "title": "Page Size"
          },
          "has_next": {
            "type": "boolean",
            "title": "Has Next"
          },
          "has_prev": {
            "type": "boolean",
            "title": "Has Prev"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          },
          "prev_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Prev Cursor"
          }
        },
        "type": "object",
        "required": [
          "items",
          "page",
          "page_size",
          "has_next",
          "has_prev"
        ],
        "title": "PaginatedResponse[LinkResponse]"
      },
      "PaginatedResponse_PageResponse_": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PageResponse"
            },
            "type": "array",
            "title": "Items"
          },
          "page": {
            "type": "integer",
            "title": "Page"
          },
          "page_size": {
            "type": "integer",
            "title": "Page Size"
          },
          "has_next": {
            "type": "boolean",
            "title": "Has Next"
          },
          "has_prev": {
            "type": "boolean",
            "title": "Has Prev"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          },
          "prev_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Prev Cursor"
          }
        },
        "type": "object",
        "required": [
          "items",
          "page",
          "page_size",
          "has_next",
          "has_prev"
        ],
        "title": "PaginatedResponse[PageResponse]"
      },
      "PaginatedResponse_ProjectResponse_": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/ProjectResponse"
            },
            "type": "array",
            "title": "Items"
          },
          "page": {
            "type": "integer",
            "title": "Page"
          },
          "page_size": {
            "type": "integer",
            "title": "Page Size"
          },
          "has_next": {
            "type": "boolean",
            "title": "Has Next"
          },
          "has_prev": {
            "type": "boolean",
            "title": "Has Prev"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          },
          "prev_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Prev Cursor"
          }
        },
        "type": "object",
        "required": [
          "items",
          "page",
          "page_size",
          "has_next",
          "has_prev"
        ],
        "title": "PaginatedResponse[ProjectResponse]"
      },
      "PaginatedResponse_UserResponse_": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/UserResponse"
            },
            "type": "array",
            "title": "Items"
          },
          "page": {
            "type": "integer",
            "title": "Page"
          },
          "page_size": {
            "type": "integer",
            "title": "Page Size"
          },
          "has_next": {
            "type": "boolean",
            "title": "Has Next"
          },
          "has_prev": {
            "type": "boolean",
            "title": "Has Prev"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          },
          "prev_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Prev Cursor"
          }
        },
        "type": "object",
        "required": [
          "items",
          "page",
          "page_size",
          "has_next",
          "has_prev"
        ],
        "title": "PaginatedResponse[UserResponse]"
      },
      "ProjectCreate": {
        "properties": {
          "name": {
            "type": "string",
            "title": "Name"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "color": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Color"
          },
          "has_public_stat": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Has Public Stat"
          }
        },
        "type": "object",
        "required": [
          "name"
        ],
        "title": "ProjectCreate",
        "description": "Project creation model"
      },
      "ProjectResponse": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          },
          "user_id": {
            "type": "string",
            "title": "User Id"
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "color": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Color"
          },
          "has_public_stat": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Has Public Stat"
          },
          "process_migration_v2": {
            "type": "boolean",
            "title": "Process Migration V2",
            "default": false
          },
          "project_click_amount": {
            "type": "integer",
            "title": "Project Click Amount",
            "default": 0
          },
          "project_scan_amount": {
            "type": "integer",
            "title": "Project Scan Amount",
            "default": 0
          }
        },
        "type": "object",
        "required": [
          "id",
          "created_at",
          "user_id",
          "name"
        ],
        "title": "ProjectResponse",
        "description": "Project response model - excludes workspace_id for security"
      },
      "ProjectUpdate": {
        "properties": {
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "color": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Color"
          },
          "has_public_stat": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Has Public Stat"
          }
        },
        "type": "object",
        "title": "ProjectUpdate",
        "description": "Project update model"
      },
      "QrCodeOptions": {
        "properties": {
          "size": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Size"
          },
          "color": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Color"
          },
          "background_color": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Background Color"
          },
          "logo": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Logo"
          },
          "logo_size": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Logo Size"
          },
          "error_correction_level": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Correction Level"
          }
        },
        "type": "object",
        "title": "QrCodeOptions",
        "description": "QR Code options model"
      },
      "RefreshTokenRequest": {
        "properties": {
          "refresh_token": {
            "type": "string",
            "title": "Refresh Token"
          }
        },
        "type": "object",
        "required": [
          "refresh_token"
        ],
        "title": "RefreshTokenRequest",
        "description": "Refresh token request model"
      },
      "RefreshTokenResponse": {
        "properties": {
          "access_token": {
            "type": "string",
            "title": "Access Token"
          },
          "refresh_token": {
            "type": "string",
            "title": "Refresh Token"
          },
          "token_type": {
            "type": "string",
            "title": "Token Type",
            "default": "Bearer"
          },
          "expires_in": {
            "type": "integer",
            "title": "Expires In"
          }
        },
        "type": "object",
        "required": [
          "access_token",
          "refresh_token",
          "expires_in"
        ],
        "title": "RefreshTokenResponse",
        "description": "Refresh token response model"
      },
      "TokenVerifyResponse": {
        "properties": {
          "valid": {
            "type": "boolean",
            "title": "Valid"
          },
          "user": {
            "$ref": "#/components/schemas/UserAuthInfo"
          },
          "message": {
            "type": "string",
            "title": "Message"
          }
        },
        "type": "object",
        "required": [
          "valid",
          "user",
          "message"
        ],
        "title": "TokenVerifyResponse",
        "description": "Token verification response model"
      },
      "UserAuthInfo": {
        "properties": {
          "uid": {
            "type": "string",
            "title": "Uid"
          },
          "email": {
            "type": "string",
            "title": "Email"
          },
          "email_verified": {
            "type": "boolean",
            "title": "Email Verified"
          },
          "display_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Display Name"
          },
          "photo_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Photo Url"
          }
        },
        "type": "object",
        "required": [
          "uid",
          "email",
          "email_verified"
        ],
        "title": "UserAuthInfo",
        "description": "User authentication information"
      },
      "UserResponse": {
        "properties": {
          "email": {
            "type": "string",
            "format": "email",
            "title": "Email"
          },
          "firstname": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Firstname"
          },
          "lastname": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lastname"
          },
          "username": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Username"
          },
          "avatar_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Avatar Url"
          },
          "phone": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Phone"
          },
          "phone_country": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Phone Country"
          },
          "locale": {
            "type": "string",
            "title": "Locale",
            "default": "en"
          },
          "job_description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Job Description"
          },
          "user_type": {
            "type": "string",
            "title": "User Type",
            "default": "user"
          },
          "marketing_source": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Marketing Source"
          },
          "company": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Company"
          },
          "contact_details": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Contact Details"
          },
          "id": {
            "type": "string",
            "title": "Id"
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At"
          },
          "email_verified": {
            "type": "boolean",
            "title": "Email Verified",
            "default": false
          },
          "verification_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Verification Code"
          },
          "verification_code_expires": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Verification Code Expires"
          },
          "on_boarding_completed": {
            "type": "boolean",
            "title": "On Boarding Completed",
            "default": false
          },
          "process_migration_v2": {
            "type": "boolean",
            "title": "Process Migration V2",
            "default": false
          },
          "processed_migration_v2": {
            "type": "boolean",
            "title": "Processed Migration V2",
            "default": false
          },
          "stripe_customer_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Stripe Customer Id"
          },
          "stripe_subscription_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Stripe Subscription Id"
          },
          "subscription_created_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Subscription Created At"
          },
          "plan_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Plan Type"
          },
          "canceled_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Canceled At"
          },
          "cancel_at_period_end": {
            "type": "boolean",
            "title": "Cancel At Period End",
            "default": false
          },
          "stripe_subscription_status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Stripe Subscription Status"
          },
          "plan": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Plan"
          },
          "last_payment_status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Payment Status"
          },
          "next_billing_date": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Billing Date"
          },
          "subscription_end_date": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Subscription End Date"
          },
          "last_subscription_update": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Subscription Update"
          },
          "last_payment_date": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Payment Date"
          },
          "shared_with": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Shared With"
          },
          "credits": {
            "type": "integer",
            "title": "Credits",
            "default": 0
          },
          "is_admin": {
            "type": "boolean",
            "title": "Is Admin",
            "default": false
          },
          "has_seen_analytics": {
            "type": "boolean",
            "title": "Has Seen Analytics",
            "default": false
          },
          "has_shared_link_in_bio": {
            "type": "boolean",
            "title": "Has Shared Link In Bio",
            "default": false
          },
          "url_branding_domain": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Url Branding Domain"
          },
          "url_branding_domains": {
            "anyOf": [
              {
                "items": {},
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Url Branding Domains"
          }
        },
        "type": "object",
        "required": [
          "email",
          "id"
        ],
        "title": "UserResponse",
        "description": "User response model (excludes sensitive fields)"
      },
      "UserSubscriptionUpdate": {
        "properties": {
          "stripe_customer_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Stripe Customer Id"
          },
          "stripe_subscription_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Stripe Subscription Id"
          },
          "subscription_created_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Subscription Created At"
          },
          "plan_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Plan Type"
          },
          "canceled_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Canceled At"
          },
          "cancel_at_period_end": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cancel At Period End"
          },
          "stripe_subscription_status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Stripe Subscription Status"
          },
          "plan": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Plan"
          },
          "last_payment_status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Payment Status"
          },
          "next_billing_date": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Billing Date"
          },
          "subscription_end_date": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Subscription End Date"
          },
          "last_subscription_update": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Subscription Update"
          },
          "last_payment_date": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Payment Date"
          }
        },
        "type": "object",
        "title": "UserSubscriptionUpdate",
        "description": "User subscription update model"
      },
      "UserUpdate": {
        "properties": {
          "firstname": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Firstname"
          },
          "lastname": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lastname"
          },
          "username": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Username"
          },
          "avatar_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Avatar Url"
          },
          "phone": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Phone"
          },
          "phone_country": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Phone Country"
          },
          "locale": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Locale"
          },
          "job_description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Job Description"
          },
          "company": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Company"
          },
          "contact_details": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Contact Details"
          }
        },
        "type": "object",
        "title": "UserUpdate",
        "description": "User update model"
      },
      "ValidationError": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "type": "array",
            "title": "Location"
          },
          "msg": {
            "type": "string",
            "title": "Message"
          },
          "type": {
            "type": "string",
            "title": "Error Type"
          }
        },
        "type": "object",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError"
      },
      "WorkspaceStatsResponse": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "last_updated": {
            "type": "string",
            "format": "date-time",
            "title": "Last Updated"
          },
          "click_date": {
            "type": "string",
            "title": "Click Date"
          },
          "total_clicks": {
            "type": "integer",
            "title": "Total Clicks",
            "default": 0
          },
          "os_stats": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Os Stats"
          },
          "city_stats": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "City Stats"
          },
          "os_version_stats": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Os Version Stats"
          },
          "lang_stats": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lang Stats"
          },
          "device_stats": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Device Stats"
          },
          "browser_stats": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Browser Stats"
          },
          "country_stats": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Country Stats"
          },
          "device_and_os_stats": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Device And Os Stats"
          },
          "app_stats": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "App Stats"
          },
          "device_type_stats": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Device Type Stats"
          },
          "from_app_stats": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "From App Stats"
          },
          "continent_stats": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Continent Stats"
          },
          "chrome_clicks": {
            "type": "integer",
            "title": "Chrome Clicks",
            "default": 0
          },
          "ios_clicks": {
            "type": "integer",
            "title": "Ios Clicks",
            "default": 0
          },
          "android_clicks": {
            "type": "integer",
            "title": "Android Clicks",
            "default": 0
          },
          "scans_only": {
            "type": "integer",
            "title": "Scans Only",
            "default": 0
          },
          "clicks_only": {
            "type": "integer",
            "title": "Clicks Only",
            "default": 0
          },
          "unique_visitors": {
            "type": "integer",
            "title": "Unique Visitors",
            "default": 0
          }
        },
        "type": "object",
        "required": [
          "id",
          "last_updated",
          "click_date"
        ],
        "title": "WorkspaceStatsResponse",
        "description": "Workspace stats response model - excludes workspace_id for security"
      },
      "WorkspaceStatsSummary": {
        "properties": {
          "total_clicks": {
            "type": "integer",
            "title": "Total Clicks"
          },
          "top_countries": {
            "items": {
              "type": "object"
            },
            "type": "array",
            "title": "Top Countries"
          },
          "top_devices": {
            "items": {
              "type": "object"
            },
            "type": "array",
            "title": "Top Devices"
          },
          "top_browsers": {
            "items": {
              "type": "object"
            },
            "type": "array",
            "title": "Top Browsers"
          },
          "qr_code_usage": {
            "type": "integer",
            "title": "Qr Code Usage"
          },
          "date_range": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object",
            "title": "Date Range"
          }
        },
        "type": "object",
        "required": [
          "total_clicks",
          "top_countries",
          "top_devices",
          "top_browsers",
          "qr_code_usage",
          "date_range"
        ],
        "title": "WorkspaceStatsSummary",
        "description": "Workspace stats summary model - excludes workspace_id for security"
      }
    },
    "securitySchemes": {
      "HTTPBearer": {
        "type": "http",
        "scheme": "bearer"
      }
    }
  }
}
