{
  "openapi": "3.1.0",
  "info": {
    "title": "OmniShield API",
    "description": "Military-grade VPN powered by VLESS + Reality protocol",
    "version": "2.0.0"
  },
  "paths": {
    "/api/auth/create": {
      "post": {
        "tags": [
          "auth"
        ],
        "summary": "Create Account",
        "description": "Create a new anonymous account with a 16-digit account number. No email/password needed.",
        "operationId": "create_account_api_auth_create_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/CreateAccountRequest"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/auth/login-token": {
      "post": {
        "tags": [
          "auth"
        ],
        "summary": "Login Token",
        "description": "Login with account number only. The account number IS the secret.",
        "operationId": "login_token_api_auth_login_token_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginTokenRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/auth/register": {
      "post": {
        "tags": [
          "auth"
        ],
        "summary": "Register",
        "operationId": "register_api_auth_register_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RegisterRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/auth/login": {
      "post": {
        "tags": [
          "auth"
        ],
        "summary": "Login",
        "operationId": "login_api_auth_login_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/auth/telegram": {
      "post": {
        "tags": [
          "auth"
        ],
        "summary": "Telegram Auth",
        "description": "Authenticate via Telegram Mini App initData with HMAC-SHA256 validation.",
        "operationId": "telegram_auth_api_auth_telegram_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TelegramAuthRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/auth/link-omnixploit": {
      "post": {
        "tags": [
          "auth"
        ],
        "summary": "Link Omnixploit",
        "operationId": "link_omnixploit_api_auth_link_omnixploit_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LinkOmnixploitRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/auth/me": {
      "get": {
        "tags": [
          "auth"
        ],
        "summary": "Me",
        "operationId": "me_api_auth_me_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/vpn/status": {
      "get": {
        "tags": [
          "vpn"
        ],
        "summary": "Vpn Status",
        "operationId": "vpn_status_api_vpn_status_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/vpn/subscription": {
      "get": {
        "tags": [
          "vpn"
        ],
        "summary": "Get Subscription",
        "operationId": "get_subscription_api_vpn_subscription_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/vpn/servers": {
      "get": {
        "tags": [
          "vpn"
        ],
        "summary": "List Servers",
        "operationId": "list_servers_api_vpn_servers_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/vpn/traffic-history": {
      "get": {
        "tags": [
          "vpn"
        ],
        "summary": "Traffic History",
        "description": "Return last 7 days of REAL traffic in MB for the current user.\n\nData is populated by /opt/omnishield/snapshot-traffic.sh (hourly cron) which\nsnapshots Marzban `lifetime_used_traffic` and writes daily deltas into\n`traffic_history`. Days with no data are returned as 0.",
        "operationId": "traffic_history_api_vpn_traffic_history_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/vpn/protocol-stats": {
      "get": {
        "tags": [
          "vpn"
        ],
        "summary": "Protocol Stats",
        "description": "System-wide protocol distribution from REAL Marzban data.\n\nMarzban does not expose per-inbound byte counters, so we compute the\ndistribution from active user provisioning per inbound (count of users\nwith each inbound enabled). Cached for 60s.",
        "operationId": "protocol_stats_api_vpn_protocol_stats_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/vpn/connect/{server_id}": {
      "post": {
        "tags": [
          "vpn"
        ],
        "summary": "Connect Server",
        "operationId": "connect_server_api_vpn_connect__server_id__post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "server_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Server Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/vpn/awg-nodes": {
      "get": {
        "tags": [
          "vpn"
        ],
        "summary": "Awg Nodes",
        "description": "List all AmneziaWG nodes with metadata for per-node config download.",
        "operationId": "awg_nodes_api_vpn_awg_nodes_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/vpn/awg-config": {
      "post": {
        "tags": [
          "vpn"
        ],
        "summary": "Awg Config Post",
        "description": "Generate or return the user's AmneziaWG client config.\n\nIf `node` query param is given, returns a single-peer config with that\nnode's specific obfuscation params. Otherwise returns a multi-peer\nconfig using the first node's params.",
        "operationId": "awg_config_post_api_vpn_awg_config_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "node",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Node"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "vpn"
        ],
        "summary": "Awg Config Get",
        "operationId": "awg_config_get_api_vpn_awg_config_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "node",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Node"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/vpn/awg-reprovision": {
      "post": {
        "tags": [
          "vpn"
        ],
        "summary": "Awg Reprovision",
        "description": "Force re-registration of the existing AWG peer on all nodes.\n\nUseful after a new node is added or if a node was rebuilt and lost peers.",
        "operationId": "awg_reprovision_api_vpn_awg_reprovision_post",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/vpn/dtls-config": {
      "post": {
        "tags": [
          "vpn"
        ],
        "summary": "Dtls Config",
        "description": "Return DTLS Masquerade client config (8 nodes).",
        "operationId": "dtls_config_api_vpn_dtls_config_post",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/vpn/devices": {
      "get": {
        "tags": [
          "vpn"
        ],
        "summary": "List Devices",
        "description": "Return active devices for the current user.\n\nMarzban does not expose per-IP session tracking, so we surface a single\n\"current device\" entry derived from `online_at` plus the user's\nmax_devices quota. When per-IP tracking becomes available, this can be\nextended to return multiple device entries.",
        "operationId": "list_devices_api_vpn_devices_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/vpn/extra-protocols": {
      "get": {
        "tags": [
          "vpn"
        ],
        "summary": "Extra Protocols",
        "description": "Metadata for the dashboard '\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u044b' panel.",
        "operationId": "extra_protocols_api_vpn_extra_protocols_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/plans": {
      "get": {
        "tags": [
          "plans"
        ],
        "summary": "List Plans",
        "operationId": "list_plans_api_plans_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/plans/": {
      "get": {
        "tags": [
          "plans"
        ],
        "summary": "List Plans",
        "operationId": "list_plans_api_plans__get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/plans/upgrade": {
      "post": {
        "tags": [
          "plans"
        ],
        "summary": "Upgrade Plan",
        "operationId": "upgrade_plan_api_plans_upgrade_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpgradeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/bot/webhook": {
      "post": {
        "tags": [
          "bot"
        ],
        "summary": "Bot Webhook",
        "operationId": "bot_webhook_api_bot_webhook_post",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/admin/stats": {
      "get": {
        "tags": [
          "admin"
        ],
        "summary": "Admin Stats",
        "operationId": "admin_stats_api_admin_stats_get",
        "parameters": [
          {
            "name": "x-admin-secret",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "title": "X-Admin-Secret"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/users": {
      "get": {
        "tags": [
          "admin"
        ],
        "summary": "Admin Users",
        "operationId": "admin_users_api_admin_users_get",
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 0,
              "title": "Offset"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 50,
              "title": "Limit"
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "",
              "title": "Search"
            }
          },
          {
            "name": "x-admin-secret",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "title": "X-Admin-Secret"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/users/{user_id}": {
      "get": {
        "tags": [
          "admin"
        ],
        "summary": "Admin User Detail",
        "operationId": "admin_user_detail_api_admin_users__user_id__get",
        "parameters": [
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "User Id"
            }
          },
          {
            "name": "x-admin-secret",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "title": "X-Admin-Secret"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "admin"
        ],
        "summary": "Admin Delete User",
        "operationId": "admin_delete_user_api_admin_users__user_id__delete",
        "parameters": [
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "User Id"
            }
          },
          {
            "name": "x-admin-secret",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "title": "X-Admin-Secret"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/users/{user_id}/disable": {
      "post": {
        "tags": [
          "admin"
        ],
        "summary": "Admin Disable User",
        "operationId": "admin_disable_user_api_admin_users__user_id__disable_post",
        "parameters": [
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "User Id"
            }
          },
          {
            "name": "x-admin-secret",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "title": "X-Admin-Secret"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/users/{user_id}/enable": {
      "post": {
        "tags": [
          "admin"
        ],
        "summary": "Admin Enable User",
        "operationId": "admin_enable_user_api_admin_users__user_id__enable_post",
        "parameters": [
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "User Id"
            }
          },
          {
            "name": "x-admin-secret",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "title": "X-Admin-Secret"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/nodes": {
      "get": {
        "tags": [
          "admin"
        ],
        "summary": "Admin Nodes",
        "operationId": "admin_nodes_api_admin_nodes_get",
        "parameters": [
          {
            "name": "x-admin-secret",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "title": "X-Admin-Secret"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/marzban/users": {
      "get": {
        "tags": [
          "admin"
        ],
        "summary": "Admin Marzban Users",
        "operationId": "admin_marzban_users_api_admin_marzban_users_get",
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 0,
              "title": "Offset"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 50,
              "title": "Limit"
            }
          },
          {
            "name": "x-admin-secret",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "title": "X-Admin-Secret"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/marzban/system": {
      "get": {
        "tags": [
          "admin"
        ],
        "summary": "Admin Marzban System",
        "operationId": "admin_marzban_system_api_admin_marzban_system_get",
        "parameters": [
          {
            "name": "x-admin-secret",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "title": "X-Admin-Secret"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/refunds/request": {
      "post": {
        "tags": [
          "admin"
        ],
        "summary": "User Refund Request",
        "description": "User-facing refund request (creates a log entry for admin review).",
        "operationId": "user_refund_request_api_admin_refunds_request_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RefundRequestBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/admin/refunds": {
      "get": {
        "tags": [
          "admin"
        ],
        "summary": "List Refunds",
        "operationId": "list_refunds_api_admin_refunds_get",
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            }
          },
          {
            "name": "x-admin-secret",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "title": "X-Admin-Secret"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/refunds/{refund_id}/resolve": {
      "post": {
        "tags": [
          "admin"
        ],
        "summary": "Resolve Refund",
        "operationId": "resolve_refund_api_admin_refunds__refund_id__resolve_post",
        "parameters": [
          {
            "name": "refund_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Refund Id"
            }
          },
          {
            "name": "x-admin-secret",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "title": "X-Admin-Secret"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RefundResolveBody"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/abuse/vpn-recent": {
      "get": {
        "tags": [
          "admin"
        ],
        "summary": "Abuse Dashboard",
        "operationId": "abuse_dashboard_api_admin_abuse_vpn_recent_get",
        "parameters": [
          {
            "name": "x-admin-secret",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "title": "X-Admin-Secret"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/support/tickets": {
      "get": {
        "tags": [
          "admin"
        ],
        "summary": "List Support Tickets",
        "operationId": "list_support_tickets_api_admin_support_tickets_get",
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 100,
              "title": "Limit"
            }
          },
          {
            "name": "x-admin-secret",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "title": "X-Admin-Secret"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/support/tickets/{ticket_id}/close": {
      "post": {
        "tags": [
          "admin"
        ],
        "summary": "Close Support Ticket",
        "operationId": "close_support_ticket_api_admin_support_tickets__ticket_id__close_post",
        "parameters": [
          {
            "name": "ticket_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "title": "Ticket Id"
            }
          },
          {
            "name": "x-admin-secret",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "title": "X-Admin-Secret"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/referral/validate/{code}": {
      "get": {
        "tags": [
          "referral"
        ],
        "summary": "Validate Referral Code",
        "description": "Public endpoint: validate a referral code for the landing page.",
        "operationId": "validate_referral_code_api_referral_validate__code__get",
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Code"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/referral/code": {
      "get": {
        "tags": [
          "referral"
        ],
        "summary": "Get Referral Code",
        "description": "Get (or generate) current user's referral code.",
        "operationId": "get_referral_code_api_referral_code_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/referral/stats": {
      "get": {
        "tags": [
          "referral"
        ],
        "summary": "Get Referral Stats",
        "description": "Get referral statistics for current user.",
        "operationId": "get_referral_stats_api_referral_stats_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/referral/apply": {
      "post": {
        "tags": [
          "referral"
        ],
        "summary": "Apply Referral",
        "description": "Apply a referral code. Both referrer and referred user get 7 days Pro.",
        "operationId": "apply_referral_api_referral_apply_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApplyReferralRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/wallet/balance": {
      "get": {
        "tags": [
          "wallet"
        ],
        "summary": "Get Balance",
        "operationId": "get_balance_api_wallet_balance_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/wallet/deposit": {
      "post": {
        "tags": [
          "wallet"
        ],
        "summary": "Create Deposit",
        "description": "Create an OxaPay crypto invoice.",
        "operationId": "create_deposit_api_wallet_deposit_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DepositRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/wallet/deposit-address": {
      "post": {
        "tags": [
          "wallet"
        ],
        "summary": "Get Or Create Static Address",
        "description": "Get or create a static crypto deposit address for the user.",
        "operationId": "get_or_create_static_address_api_wallet_deposit_address_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DepositAddressRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/wallet/oxapay-webhook": {
      "post": {
        "tags": [
          "wallet"
        ],
        "summary": "Oxapay Webhook",
        "description": "OxaPay invoice payment callback. Verifies HMAC-SHA512 signature.",
        "operationId": "oxapay_webhook_api_wallet_oxapay_webhook_post",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/wallet/static-callback": {
      "post": {
        "tags": [
          "wallet"
        ],
        "summary": "Static Callback",
        "description": "OxaPay static wallet payment callback.",
        "operationId": "static_callback_api_wallet_static_callback_post",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/wallet/buy-plan": {
      "post": {
        "tags": [
          "wallet"
        ],
        "summary": "Buy Plan",
        "description": "Spend balance to activate a VPN plan. Auto-activates Marzban subscription.",
        "operationId": "buy_plan_api_wallet_buy_plan_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BuyPlanRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/wallet/deposits": {
      "get": {
        "tags": [
          "wallet"
        ],
        "summary": "List Deposits",
        "description": "List user's deposit history.",
        "operationId": "list_deposits_api_wallet_deposits_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/wallet/verify-node": {
      "post": {
        "tags": [
          "wallet"
        ],
        "summary": "Verify Node Holder",
        "description": "Verify user's Omnixploit node ownership and activate Node Holder plan if valid.",
        "operationId": "verify_node_holder_api_wallet_verify_node_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyNodeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/omnixploit/link": {
      "post": {
        "tags": [
          "omnixploit"
        ],
        "summary": "Link Omnixploit Account",
        "description": "Link an Omnixploit account to this VPN account using a linking code.\n\nThe user generates the code in Omnixploit UI, then pastes it here.",
        "operationId": "link_omnixploit_account_api_omnixploit_link_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LinkRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      },
      "delete": {
        "tags": [
          "omnixploit"
        ],
        "summary": "Unlink Omnixploit Account",
        "description": "Unlink Omnixploit account from this VPN account.",
        "operationId": "unlink_omnixploit_account_api_omnixploit_link_delete",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/omnixploit/status": {
      "get": {
        "tags": [
          "omnixploit"
        ],
        "summary": "Omnixploit Status",
        "description": "Check Omnixploit link status and active node info.",
        "operationId": "omnixploit_status_api_omnixploit_status_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/omnixploit/sync": {
      "post": {
        "tags": [
          "omnixploit"
        ],
        "summary": "Sync Omnixploit",
        "description": "Sync Omnixploit status with VPN. Call on login or periodically.\n\n- If user has active Omnixploit node -> activate Node Holder plan\n- If user bought VPN Pro/Omni Pass -> cross-activate in Omnixploit",
        "operationId": "sync_omnixploit_api_omnixploit_sync_post",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/vpn/smart-route": {
      "post": {
        "tags": [
          "smart-route"
        ],
        "summary": "Smart Route",
        "description": "Auto-detect the best protocol + server combination for the user.",
        "operationId": "smart_route_api_vpn_smart_route_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SmartRouteRequest",
                "default": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/vpn/protocols": {
      "get": {
        "tags": [
          "smart-route"
        ],
        "summary": "List Protocols Detailed",
        "description": "Return all available protocols with descriptions and port info.",
        "operationId": "list_protocols_detailed_api_vpn_protocols_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/vpn/server-status": {
      "get": {
        "tags": [
          "smart-route"
        ],
        "summary": "Server Status",
        "description": "Return real-time status of all servers (TCP port 443 check + real load_pct).",
        "operationId": "server_status_api_vpn_server_status_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/analytics/event": {
      "post": {
        "tags": [
          "analytics"
        ],
        "summary": "Track Event",
        "description": "Record an analytics event. Rate limited to 30/min per IP.",
        "operationId": "track_event_api_analytics_event_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EventPayload"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/errors/log": {
      "post": {
        "tags": [
          "errors"
        ],
        "summary": "Log Error",
        "description": "Record a client/server error. Rate limited 100/min per IP. Always returns 200.",
        "operationId": "log_error_api_errors_log_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ErrorPayload"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/errors/recent": {
      "get": {
        "tags": [
          "errors"
        ],
        "summary": "Recent Errors",
        "description": "Admin-only: return recent errors with filters.",
        "operationId": "recent_errors_api_errors_recent_get",
        "parameters": [
          {
            "name": "level",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Level"
            }
          },
          {
            "name": "source",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Source"
            }
          },
          {
            "name": "hours",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 720,
              "minimum": 1,
              "default": 24,
              "title": "Hours"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 500,
              "minimum": 1,
              "default": 100,
              "title": "Limit"
            }
          },
          {
            "name": "x-admin-secret",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "title": "X-Admin-Secret"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/sub/{token}": {
      "get": {
        "tags": [
          "subscription"
        ],
        "summary": "Wrapped Subscription",
        "operationId": "wrapped_subscription_sub__token__get",
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Token"
            }
          },
          {
            "name": "protocol",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "all",
              "title": "Protocol"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/": {
      "get": {
        "summary": "Root",
        "operationId": "root__get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/health": {
      "get": {
        "summary": "Health",
        "operationId": "health_health_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/health": {
      "get": {
        "summary": "Api Health",
        "operationId": "api_health_api_health_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "ApplyReferralRequest": {
        "properties": {
          "code": {
            "type": "string",
            "title": "Code"
          }
        },
        "type": "object",
        "required": [
          "code"
        ],
        "title": "ApplyReferralRequest"
      },
      "BuyPlanRequest": {
        "properties": {
          "plan": {
            "type": "string",
            "title": "Plan"
          },
          "months": {
            "type": "integer",
            "title": "Months",
            "default": 1
          },
          "period": {
            "type": "string",
            "title": "Period",
            "default": "monthly"
          }
        },
        "type": "object",
        "required": [
          "plan"
        ],
        "title": "BuyPlanRequest"
      },
      "CreateAccountRequest": {
        "properties": {
          "referred_by": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Referred By"
          }
        },
        "type": "object",
        "title": "CreateAccountRequest"
      },
      "DepositAddressRequest": {
        "properties": {
          "currency": {
            "type": "string",
            "title": "Currency"
          },
          "network": {
            "type": "string",
            "title": "Network"
          }
        },
        "type": "object",
        "required": [
          "currency",
          "network"
        ],
        "title": "DepositAddressRequest"
      },
      "DepositRequest": {
        "properties": {
          "amount_usd": {
            "type": "number",
            "title": "Amount Usd"
          }
        },
        "type": "object",
        "required": [
          "amount_usd"
        ],
        "title": "DepositRequest"
      },
      "ErrorPayload": {
        "properties": {
          "message": {
            "type": "string",
            "maxLength": 4000,
            "title": "Message",
            "default": ""
          },
          "stack": {
            "type": "string",
            "maxLength": 8000,
            "title": "Stack",
            "default": ""
          },
          "url": {
            "type": "string",
            "maxLength": 1000,
            "title": "Url",
            "default": ""
          },
          "level": {
            "type": "string",
            "maxLength": 20,
            "title": "Level",
            "default": "error"
          },
          "source": {
            "type": "string",
            "maxLength": 20,
            "title": "Source",
            "default": "frontend"
          },
          "locale": {
            "type": "string",
            "maxLength": 10,
            "title": "Locale",
            "default": ""
          },
          "context": {
            "additionalProperties": true,
            "type": "object",
            "title": "Context"
          }
        },
        "type": "object",
        "title": "ErrorPayload"
      },
      "EventPayload": {
        "properties": {
          "event": {
            "type": "string",
            "maxLength": 100,
            "title": "Event"
          },
          "properties": {
            "additionalProperties": true,
            "type": "object",
            "title": "Properties"
          },
          "page": {
            "type": "string",
            "maxLength": 500,
            "title": "Page",
            "default": ""
          },
          "referrer": {
            "type": "string",
            "maxLength": 500,
            "title": "Referrer",
            "default": ""
          },
          "timestamp": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Timestamp"
          }
        },
        "type": "object",
        "required": [
          "event"
        ],
        "title": "EventPayload"
      },
      "HTTPValidationError": {
        "properties": {
          "detail": {
            "items": {
              "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
          }
        },
        "type": "object",
        "title": "HTTPValidationError"
      },
      "LinkOmnixploitRequest": {
        "properties": {
          "omnixploit_user_id": {
            "type": "string",
            "title": "Omnixploit User Id"
          },
          "email": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Email"
          },
          "telegram_id": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Telegram Id"
          }
        },
        "type": "object",
        "required": [
          "omnixploit_user_id"
        ],
        "title": "LinkOmnixploitRequest"
      },
      "LinkRequest": {
        "properties": {
          "code": {
            "type": "string",
            "title": "Code"
          }
        },
        "type": "object",
        "required": [
          "code"
        ],
        "title": "LinkRequest"
      },
      "LoginRequest": {
        "properties": {
          "email": {
            "type": "string",
            "format": "email",
            "title": "Email"
          },
          "password": {
            "type": "string",
            "title": "Password"
          }
        },
        "type": "object",
        "required": [
          "email",
          "password"
        ],
        "title": "LoginRequest"
      },
      "LoginTokenRequest": {
        "properties": {
          "account_number": {
            "type": "string",
            "title": "Account Number"
          }
        },
        "type": "object",
        "required": [
          "account_number"
        ],
        "title": "LoginTokenRequest"
      },
      "RefundRequestBody": {
        "properties": {
          "amount_usd": {
            "type": "number",
            "title": "Amount Usd"
          },
          "original_deposit_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Original Deposit Id"
          },
          "reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reason"
          }
        },
        "type": "object",
        "required": [
          "amount_usd"
        ],
        "title": "RefundRequestBody"
      },
      "RefundResolveBody": {
        "properties": {
          "status": {
            "type": "string",
            "title": "Status"
          },
          "admin_notes": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Admin Notes"
          }
        },
        "type": "object",
        "required": [
          "status"
        ],
        "title": "RefundResolveBody"
      },
      "RegisterRequest": {
        "properties": {
          "email": {
            "type": "string",
            "format": "email",
            "title": "Email"
          },
          "password": {
            "type": "string",
            "title": "Password"
          }
        },
        "type": "object",
        "required": [
          "email",
          "password"
        ],
        "title": "RegisterRequest"
      },
      "SmartRouteRequest": {
        "properties": {
          "ip": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ip"
          },
          "preferred_country": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Preferred Country"
          },
          "current_protocol": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Current Protocol"
          }
        },
        "type": "object",
        "title": "SmartRouteRequest"
      },
      "TelegramAuthRequest": {
        "properties": {
          "init_data": {
            "type": "string",
            "title": "Init Data"
          },
          "ref_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ref Code"
          }
        },
        "type": "object",
        "required": [
          "init_data"
        ],
        "title": "TelegramAuthRequest"
      },
      "UpgradeRequest": {
        "properties": {
          "plan": {
            "type": "string",
            "title": "Plan"
          }
        },
        "type": "object",
        "required": [
          "plan"
        ],
        "title": "UpgradeRequest"
      },
      "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"
      },
      "VerifyNodeRequest": {
        "properties": {
          "omnixploit_user_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Omnixploit User Id"
          }
        },
        "type": "object",
        "title": "VerifyNodeRequest"
      }
    },
    "securitySchemes": {
      "HTTPBearer": {
        "type": "http",
        "scheme": "bearer"
      }
    }
  }
}