{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/monacloud/json-schema/monacloud-check-otp-request-schema.json",
  "title": "CheckOtpRequest",
  "description": "Non-consuming OTP check (POST /api/auth/check-otp).\n\nPowers the SPA's two-step register / reset flows where the OTP is\nvalidated in step 1 so the user gets immediate feedback, and the\nreal consume happens at the final submit in step 2.\n\n`purpose` is constrained to the two OTP flows the SPA owns — pinning\nthe literal here means a typo (`\"reset\"` vs `\"reset_password\"`) is\ncaught by Pydantic, not by a silent 400 from the OTP lookup.",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/monacloud-auth-api-openapi.yml#/components/schemas/CheckOtpRequest",
  "properties": {
    "email": {
      "type": "string",
      "title": "Email"
    },
    "otp": {
      "type": "string",
      "maxLength": 6,
      "minLength": 6,
      "title": "Otp"
    },
    "purpose": {
      "type": "string",
      "enum": [
        "register",
        "reset_password"
      ],
      "title": "Purpose"
    }
  },
  "type": "object",
  "required": [
    "email",
    "otp",
    "purpose"
  ]
}