{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/unprofane-com/json-schema/unprofane-com-check-response-schema.json",
  "title": "CheckResponse",
  "x-generated": "2026-10-31",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/_original/unprofane-com-api-openapi.json#/components/schemas/CheckResponse",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^chk_[A-Za-z0-9]{16,32}$"
    },
    "allowed": {
      "type": "boolean"
    },
    "action": {
      "type": "string",
      "enum": [
        "allow",
        "review",
        "block"
      ]
    },
    "score": {
      "type": "number",
      "minimum": 0,
      "maximum": 1
    },
    "severity": {
      "type": "string",
      "enum": [
        "none",
        "mild",
        "moderate",
        "strong",
        "extreme"
      ]
    },
    "categories": {
      "type": "object",
      "properties": {
        "mild_profanity": {
          "type": "number",
          "minimum": 0,
          "maximum": 1
        },
        "profanity": {
          "type": "number",
          "minimum": 0,
          "maximum": 1
        },
        "sexual": {
          "type": "number",
          "minimum": 0,
          "maximum": 1
        },
        "insult": {
          "type": "number",
          "minimum": 0,
          "maximum": 1
        },
        "slur": {
          "type": "number",
          "minimum": 0,
          "maximum": 1
        },
        "threat": {
          "type": "number",
          "minimum": 0,
          "maximum": 1
        },
        "rude": {
          "type": "number",
          "minimum": 0,
          "maximum": 1
        },
        "sexual_minors": {
          "type": "number",
          "minimum": 0,
          "maximum": 1
        },
        "self_harm": {
          "type": "number",
          "minimum": 0,
          "maximum": 1
        },
        "reserved": {
          "type": "number",
          "minimum": 0,
          "maximum": 1
        }
      },
      "required": [
        "mild_profanity",
        "profanity",
        "sexual",
        "insult",
        "slur",
        "threat",
        "rude",
        "sexual_minors",
        "self_harm",
        "reserved"
      ],
      "additionalProperties": false
    },
    "obfuscated": {
      "type": "boolean"
    },
    "evasion": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "homoglyph",
          "zero_width",
          "separator",
          "leetspeak",
          "repeated_chars",
          "diacritics",
          "mixed_script",
          "fullwidth",
          "combining_marks",
          "phonetic",
          "reversed",
          "concatenation",
          "case_mixing",
          "self_censored",
          "misspelled",
          "spoonerism",
          "pun"
        ]
      }
    },
    "matches": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "start": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "end": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "text": {
            "type": "string"
          },
          "normalized": {
            "type": "string"
          },
          "term_id": {
            "type": "string"
          },
          "category": {
            "type": "string",
            "enum": [
              "profanity",
              "sexual",
              "insult",
              "slur",
              "threat",
              "reserved"
            ]
          },
          "severity": {
            "type": "string",
            "enum": [
              "none",
              "mild",
              "moderate",
              "strong",
              "extreme"
            ]
          },
          "evasion": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "homoglyph",
                "zero_width",
                "separator",
                "leetspeak",
                "repeated_chars",
                "diacritics",
                "mixed_script",
                "fullwidth",
                "combining_marks",
                "phonetic",
                "reversed",
                "concatenation",
                "case_mixing",
                "self_censored",
                "misspelled",
                "spoonerism",
                "pun"
              ]
            }
          }
        },
        "required": [
          "start",
          "end",
          "text",
          "normalized",
          "term_id",
          "category",
          "severity",
          "evasion"
        ],
        "additionalProperties": false
      }
    },
    "censored": {
      "type": "string"
    },
    "reason": {
      "type": "string"
    },
    "decided_by": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "category": {
            "type": "string",
            "enum": [
              "mild_profanity",
              "profanity",
              "sexual",
              "insult",
              "slur",
              "threat",
              "rude",
              "sexual_minors",
              "self_harm",
              "reserved"
            ]
          },
          "action": {
            "type": "string",
            "enum": [
              "review",
              "block"
            ]
          },
          "from": {
            "type": "string",
            "enum": [
              "words",
              "context"
            ]
          }
        },
        "required": [
          "category",
          "action",
          "from"
        ],
        "additionalProperties": false
      }
    },
    "language": {
      "type": "object",
      "properties": {
        "detected": {
          "type": "string"
        },
        "confidence": {
          "type": "number",
          "minimum": 0,
          "maximum": 1
        }
      },
      "required": [
        "detected",
        "confidence"
      ],
      "additionalProperties": false
    },
    "engine": {
      "type": "object",
      "properties": {
        "version": {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
        },
        "route": {
          "type": "string",
          "enum": [
            "rules",
            "model",
            "cache"
          ]
        },
        "degraded": {
          "type": "boolean"
        }
      },
      "required": [
        "version",
        "route",
        "degraded"
      ],
      "additionalProperties": false
    },
    "timing_ms": {
      "type": "number",
      "minimum": 0
    }
  },
  "required": [
    "id",
    "allowed",
    "action",
    "score",
    "severity",
    "categories",
    "obfuscated",
    "evasion",
    "matches",
    "censored",
    "reason",
    "decided_by",
    "language",
    "engine",
    "timing_ms"
  ],
  "additionalProperties": false
}