Send a message in a conversation
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.
In: header
Path Parameters
The unique identifier of the conversation to send the message to
uuid
If set to true, the model response data will be streamed to the client as it is generated using server-sent events. When streaming is enabled, the response will be sent as text/event-stream with incremental updates. When disabled, the complete response will be returned as application/json.
false
The message content to send to the assistant. This is the user's input that will be processed by the AI.
1 <= length <= 10000
Optional context information about the user's current page and interaction. This helps the assistant provide more relevant responses.
Response Body
curl -X POST "https://api.siteassist.io/v2/conversations/123e4567-e89b-12d3-a456-426614174000/messages" \ -H "Content-Type: application/json" \ -d '{ "content": "Hello! Can you help me understand how to use this feature?", "stream": false, "pageContext": { "url": "https://example.com/help", "title": "Help Center - Getting Started", "content": "Welcome to our help center. Here you can find answers to common questions..." } }'
{
"steps": [
{
"content": [
{
"type": "text",
"text": "Hello! How can I assist you today?"
}
],
"finishReason": "stop",
"usage": {
"inputTokens": 2409,
"outputTokens": 11,
"totalTokens": 2420,
"reasoningTokens": 0,
"cachedInputTokens": 0
}
}
]
}
"Message sent"
{
"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
}
}
}
Submit feedback for a message POST
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.
Get current project GET
Return the current project identified by the provided publishable API key. Useful for initializing client SDKs with project configuration like chat widget settings.