Skip to main content

Messages

Messages belong to tickets and represent the conversation thread between agents and customers. Each message has a sender type and optional metadata.

The Message object

id uuid

Unique message identifier

ticket_id uuid

Parent ticket ID

content string

Message body text

sender string

Who sent the message "agent" | "customer" | "system"

sender_name string

Display name of the sender

created_at datetime

When the message was sent

Endpoints

GET /api/v1/teams/{teamId}/tickets/{ticketId}/messages

List Messages

Get all messages for a ticket, ordered chronologically.

Path Parameters

ticketId uuid required

The parent ticket ID

Code Examples

curl -X GET "https://app.cstar.help/api/v1/teams/{teamId}/tickets/{ticketId}/messages" \
			  -H "Authorization: Bearer sk_live_your_key"
			

Responses

200 Array of messages
{
			  "data": [
			    {
			      "id": "msg_001",
			      "ticket_id": "550e8400-e29b-41d4-a716-446655440000",
			      "content": "I keep getting \"invalid credentials\" when I try to log in.",
			      "sender": "customer",
			      "sender_name": "Jane Smith",
			      "created_at": "2025-12-10T14:30:00Z"
			    },
			    {
			      "id": "msg_002",
			      "ticket_id": "550e8400-e29b-41d4-a716-446655440000",
			      "content": "I'll look into this for you right away.",
			      "sender": "agent",
			      "sender_name": "Bob (Support)",
			      "created_at": "2025-12-10T14:35:00Z"
			    }
			  ]
			}
			
404 Ticket not found
{
			  "error": {
			    "code": "resource_missing",
			    "message": "Ticket not found"
			  }
			}
			
401 Authentication failed — missing or invalid API key
{
			  "error": {
			    "code": "UNAUTHORIZED",
			    "message": "Invalid or expired API key"
			  }
			}
			
403 Insufficient permissions — wrong key type or team access
{
			  "error": {
			    "code": "FORBIDDEN",
			    "message": "Secret key required for this endpoint"
			  }
			}
			
429 Rate limit exceeded
{
			  "error": {
			    "code": "RATE_LIMITED",
			    "message": "Rate limit exceeded. Try again in 60 seconds",
			    "retryAfter": 60
			  }
			}
			
POST /api/v1/teams/{teamId}/tickets/{ticketId}/messages

Add Message

Add a new message to a ticket thread. Fires the `ticket.message_added` webhook event.

Requires a secret API key.

Path Parameters

ticketId uuid required

The parent ticket ID

Request Body

content string required

Message body text

sender string

Sender type

Default: agent

senderName string

Display name (optional)

Code Examples

curl -X POST "https://app.cstar.help/api/v1/teams/{teamId}/tickets/{ticketId}/messages" \
			  -H "Authorization: Bearer sk_live_your_key" \
			  -H "Content-Type: application/json" \
			  -d '{
			    "content": "I have reset your password. Please try logging in again.",
			    "sender": "agent",
			    "senderName": "Bob (Support)"
			  }'
			

Responses

201 Message added
{
			  "data": {
			    "id": "msg_003",
			    "ticket_id": "550e8400-e29b-41d4-a716-446655440000",
			    "content": "I've reset your password. Please try logging in again.",
			    "sender": "agent",
			    "sender_name": "Bob (Support)",
			    "created_at": "2025-12-10T14:45:00Z"
			  }
			}
			
404 Ticket not found
{
			  "error": {
			    "code": "resource_missing",
			    "message": "Ticket not found"
			  }
			}
			
401 Authentication failed — missing or invalid API key
{
			  "error": {
			    "code": "UNAUTHORIZED",
			    "message": "Invalid or expired API key"
			  }
			}
			
403 Insufficient permissions — wrong key type or team access
{
			  "error": {
			    "code": "FORBIDDEN",
			    "message": "Secret key required for this endpoint"
			  }
			}
			
429 Rate limit exceeded
{
			  "error": {
			    "code": "RATE_LIMITED",
			    "message": "Rate limit exceeded. Try again in 60 seconds",
			    "retryAfter": 60
			  }
			}