{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/bulkurlchecker-com/json-schema/bulkurlchecker-com-submit-review-request-schema.json",
  "title": "SubmitReviewRequest",
  "x-generated": "2026-11-03",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/bulkurlchecker-com-openapi.json#/components/schemas/SubmitReviewRequest",
  "properties": {
    "rating": {
      "type": "integer",
      "maximum": 5.0,
      "minimum": 1.0,
      "title": "Rating"
    },
    "content": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 1000
        },
        {
          "type": "null"
        }
      ],
      "title": "Content",
      "description": "Optional written quote — triggers the higher payout when >= MIN_QUOTE_LENGTH chars"
    },
    "role_type": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Role Type",
      "description": "AI-extracted or user-provided ('agency','marketer','seo','dev','other',...)"
    },
    "is_agency": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Is Agency"
    },
    "industry": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Industry"
    },
    "display_name_choice": {
      "anyOf": [
        {
          "type": "string",
          "pattern": "^(full|first|anon)$"
        },
        {
          "type": "null"
        }
      ],
      "title": "Display Name Choice"
    },
    "display_company": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Display Company"
    },
    "ai_transcript": {
      "anyOf": [
        {
          "items": {},
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "title": "Ai Transcript"
    },
    "ai_drafted": {
      "type": "boolean",
      "title": "Ai Drafted",
      "default": false
    },
    "source_trigger": {
      "type": "string",
      "title": "Source Trigger",
      "description": "How the user got here — must match an existing prompt row when applicable",
      "default": "manual"
    },
    "display_name": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 80
        },
        {
          "type": "null"
        }
      ],
      "title": "Display Name"
    },
    "display_title": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 80
        },
        {
          "type": "null"
        }
      ],
      "title": "Display Title"
    },
    "display_image_url": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 500
        },
        {
          "type": "null"
        }
      ],
      "title": "Display Image Url"
    },
    "details_confirmed": {
      "type": "boolean",
      "title": "Details Confirmed",
      "default": false
    }
  },
  "type": "object",
  "required": [
    "rating"
  ]
}