renzora
Game Engine

Messaging API

The Messaging API provides direct messaging between users, including conversations and real-time message delivery.

Base URL

https://renzora.com/api/messages

Conversations

List Conversations

curl https://renzora.com/api/messages/conversations \
  -H "Authorization: Bearer rz_..."

Response:

{
  "conversations": [
    {
      "id": "uuid",
      "participants": [
        { "user_id": "uuid", "username": "player42", "avatar_url": "..." }
      ],
      "last_message": {
        "content": "See you in game!",
        "sender": "player42",
        "created_at": "2026-03-31T11:00:00Z"
      },
      "unread_count": 2,
      "updated_at": "2026-03-31T11:00:00Z"
    }
  ]
}

Create Conversation

curl -X POST https://renzora.com/api/messages/conversations \
  -H "Authorization: Bearer rz_..." \
  -H "Content-Type: application/json" \
  -d '{"participant_ids": ["user-uuid-1", "user-uuid-2"]}'

Messages

Get Messages

curl "https://renzora.com/api/messages/conversations/{conversation_id}?limit=50&before={message_id}" \
  -H "Authorization: Bearer rz_..."

Query Parameters:

ParameterTypeDescription
limitintegerMessages to return (default: 50, max: 100)
beforestringCursor for pagination (message ID)

Response:

{
  "messages": [
    {
      "id": "uuid",
      "sender_id": "uuid",
      "sender_username": "player42",
      "content": "Hey, nice game!",
      "created_at": "2026-03-31T10:55:00Z"
    },
    {
      "id": "uuid",
      "sender_id": "uuid",
      "sender_username": "you",
      "content": "Thanks!",
      "created_at": "2026-03-31T10:56:00Z"
    }
  ],
  "has_more": true
}

Send Message

curl -X POST https://renzora.com/api/messages/conversations/{conversation_id} \
  -H "Authorization: Bearer rz_..." \
  -H "Content-Type: application/json" \
  -d '{"content": "Hello!"}'

Mark as Read

curl -X POST https://renzora.com/api/messages/conversations/{conversation_id}/read \
  -H "Authorization: Bearer rz_..."

Real-time Messages

New messages are delivered in real-time via the WebSocket API. Subscribe to the notifications channel to receive new_message events:

{
  "type": "new_message",
  "payload": {
    "conversation_id": "uuid",
    "message": {
      "id": "uuid",
      "sender": "player42",
      "content": "Want to team up?",
      "created_at": "2026-03-31T12:05:00Z"
    }
  }
}