{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "FeedbackSubmissionRequest",
"description": "A product feedback request. Anonymous submissions are allowed. Account identity is derived only from a validated credential, never from request fields. Optional structured context fields are flat on the request and share a 2,048-byte serialized limit.",
"type": "object",
"required": [
"message",
"type"
],
"properties": {
"category": {
"description": "Optional feedback category. Defaults to support.",
"type": "string",
"enum": [
"support",
"security"
],
"default": "support"
},
"data_type": {
"description": "Optional data-type identifier (maximum 64 UTF-8 bytes).",
"type": "string"
},
"email": {
"description": "Optional contact email for anonymous submissions. If a credential authenticates the request, this field is ignored and the account email is used; this field never establishes account identity.",
"type": "string",
"format": "email",
"maxLength": 254
},
"end": {
"description": "Optional end timestamp in Unix milliseconds. When both start and end are supplied, start must not exceed end.",
"type": "integer",
"format": "int64",
"minimum": 0,
"maximum": 253402300799999
},
"error_code": {
"description": "Optional error-code identifier (maximum 128 UTF-8 bytes).",
"type": "string"
},
"market_family": {
"description": "Optional market-family identifier (maximum 64 UTF-8 bytes).",
"type": "string"
},
"message": {
"description": "Required nonblank message, limited to 5,000 UTF-8 bytes. Include any free-text reproduction details in this field; there is no separate free-text context property.",
"type": "string",
"minLength": 1,
"maxLength": 5000
},
"request_id": {
"description": "Optional request identifier (maximum 128 UTF-8 bytes).",
"type": "string"
},
"route": {
"description": "Optional route identifier (maximum 512 UTF-8 bytes).",
"type": "string"
},
"start": {
"description": "Optional start timestamp in Unix milliseconds. When both start and end are supplied, start must not exceed end.",
"type": "integer",
"format": "int64",
"minimum": 0,
"maximum": 253402300799999
},
"surface": {
"description": "Optional surface identifier (maximum 64 UTF-8 bytes).",
"type": "string"
},
"symbol": {
"description": "Optional symbol identifier (maximum 128 UTF-8 bytes).",
"type": "string"
},
"type": {
"description": "Feedback type. Security reports use type=other with category=security.",
"type": "string",
"enum": [
"bug",
"feature",
"question",
"other"
]
},
"venue": {
"description": "Optional venue identifier (maximum 64 UTF-8 bytes).",
"type": "string"
}
}
}