Submit feedback for a message
Submit feedback (like/dislike) for a specific message in a conversation. This endpoint allows users to rate the quality and helpfulness of AI assistant responses. **Use Cases:** - Rate the helpfulness of AI responses - Provide training data for model improvement - Track user satisfaction with AI interactions - Remove existing feedback by setting feedback to null - Update existing feedback by submitting a new value **Authentication Required:** This endpoint requires a valid Bearer token in the Authorization header. The user must have access to the conversation containing the message. **Feedback Types:** - `like`: Positive feedback indicating the response was helpful and accurate - `dislike`: Negative feedback indicating the response was unhelpful or incorrect - `null`: Remove existing feedback **Behavior:** - Feedback is stored with a timestamp (`feedbackAt`) - Submitting new feedback overwrites any existing feedback - Setting feedback to `null` removes the existing feedback - Feedback submissions are published as events for analytics - Only the message owner (visitor) can submit feedback **Event Publishing:** Feedback submissions are automatically published as events for analytics and monitoring purposes.
In: header
Path Parameters
The unique identifier of the message to provide feedback for
uuid
The feedback type for the message. Use 'like' to indicate the response was helpful and accurate, 'dislike' to indicate it was unhelpful or incorrect, or null to remove any existing feedback. This feedback is used for analytics and model improvement.
"like" | "dislike"
Response Body
curl -X POST "https://api.siteassist.io/v2/messages/123e4567-e89b-12d3-a456-426614174000/feedback" \ -H "Content-Type: application/json" \ -d '{ "feedback": "like" }'
Response when positive feedback is successfully submitted
{
"feedback": "like"
}
{
"error": {
"message": "Invalid request body. Content is required.",
"code": "INVALID_REQUEST_BODY",
"details": {
"field": "content"
}
}
}
{
"error": {
"message": "Authentication required",
"code": "UNAUTHORIZED"
}
}
{
"error": {
"message": "A higher pricing plan is required to access this feature",
"code": "PAYMENT_REQUIRED",
"details": {
"currentPlan": "free",
"requiredPlan": "pro",
"feature": "advanced_ai_models"
}
}
}
{
"error": {
"message": "Access denied to this conversation",
"code": "FORBIDDEN"
}
}
{
"error": {
"message": "Conversation not found!",
"code": "CONVERSATION_NOT_FOUND",
"details": {
"conversationId": "123e4567-e89b-12d3-a456-426614174000"
}
}
}
{
"error": {
"message": "Resource already exists",
"code": "CONFLICT",
"details": {
"resource": "conversation",
"conflictingField": "id"
}
}
}
{
"error": {
"message": "Validation failed",
"code": "VALIDATION_ERROR",
"details": {
"field": "content",
"reason": "Content exceeds maximum length of 10000 characters"
}
}
}
{
"error": {
"message": "Rate limit exceeded. Please try again later.",
"code": "RATE_LIMIT_EXCEEDED",
"details": {
"retryAfter": 60
}
}
}
{
"error": {
"message": "An internal server error occurred",
"code": "INTERNAL_SERVER_ERROR"
}
}
{
"error": {
"message": "Service temporarily unavailable",
"code": "BAD_GATEWAY",
"details": {
"service": "ai_model_service"
}
}
}
{
"error": {
"message": "Service temporarily unavailable",
"code": "SERVICE_UNAVAILABLE",
"details": {
"retryAfter": 30
}
}
}
Retrieve messages from a conversation GET
Retrieve messages from a conversation, ordered chronologically from oldest to newest. Supports pagination and filtering by role or status. Only the conversation owner can access their messages.
Send a message in a conversation POST
Send a message to an AI assistant in a conversation. Supports both streaming and non-streaming responses. Rate limiting and usage quotas are enforced per project.