RATIO MACHINA STARTER logo

MERCURY

Messages REST API

The Messages REST API provides management of messages within conversations. All message operations are scoped to specific conversations using external IDs.

Base URL & Authentication

Base URL: https://your-api-name.mercury.ratiomachina.com
Authentication: x-mercury-api-key: YOUR_API_KEY (Note: Not validated for message endpoints)

List Conversation Messages

GET /conversations/{external_id}/messages

Path Parameters

  • external_id - Conversation external ID

Query Parameters

No query parameters supported. Returns conversation with all messages and context.

Response Example

{
  "conversation": {
    "id": "456e7890-e89b-12d3-a456-426614174000",
    "externalId": "conv789",
    "personaId": "789e4567-e89b-12d3-a456-426614174000",
    "contactId": "123e4567-e89b-12d3-a456-426614174000",
    "data": "{"channel":"SMS"}",
    "createdAt": "2024-01-15T10:35:00Z",
    "updatedAt": "2024-01-15T10:45:00Z",
    "messages": [
      {
        "id": "abc12345-e89b-12d3-a456-426614174000",
        "conversationId": "456e7890-e89b-12d3-a456-426614174000",
        "sender": "contact",
        "message": "Hello, I need help",
        "messageType": "undefined",
        "data": "{}",
        "createdAt": "2024-01-15T10:35:00Z"
      }
    ],
    "persona": {
      "id": "789e4567-e89b-12d3-a456-426614174000",
      "externalId": "agent456",
      "name": "Sales Agent",
      "data": "{"tone":"friendly"}",
      "createdAt": "2024-01-15T10:30:00Z",
      "updatedAt": "2024-01-15T10:30:00Z"
    },
    "contact": {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "externalId": "customer123",
      "name": "John Doe",
      "email": "john@example.com",
      "phone": "555-0123",
      "data": "{"source":"website"}",
      "createdAt": "2024-01-15T10:30:00Z",
      "updatedAt": "2024-01-15T10:30:00Z"
    }
  }
}

Create Message in Conversation

POST /conversations/{external_id}/messages

Request Body

{
  "message": "Hello, I need help with my order",
  "sender": "contact"
}

Response Example

{
  "message": {
    "id": "abc12345-e89b-12d3-a456-426614174000",
    "conversationId": "456e7890-e89b-12d3-a456-426614174000",
    "message": "Hello, I need help with my order",
    "sender": "contact",
    "createdAt": "2024-01-15T10:35:00Z",
    "data": "{}"
  }
}

Get Message by ID

GET /conversations/{external_id}/messages/{id}

Path Parameters

  • external_id - Conversation external ID
  • id - Message UUID

Response Example

{
  "message": {
    "id": "abc12345-e89b-12d3-a456-426614174000",
    "conversationId": "456e7890-e89b-12d3-a456-426614174000",
    "message": "Hello, I need help with my order",
    "sender": "contact",
    "createdAt": "2024-01-15T10:35:00Z",
    "data": "{}"
  }
}

Update Message

PUT /conversations/{external_id}/messages/{id}

Update message content and sender. Only provided fields will be updated.

Request Body

{
  "message": "Updated message content",
  "sender": "contact"
}

Response Example

{
  "message": {
    "id": "abc12345-e89b-12d3-a456-426614174000",
    "conversationId": "456e7890-e89b-12d3-a456-426614174000",
    "message": "Updated message content",
    "sender": "contact",
    "createdAt": "2024-01-15T10:35:00Z",
    "data": "{}"
  }
}

Delete Message

DELETE /conversations/{external_id}/messages/{id}

⚠️ Warning: This will permanently delete the message from the conversation.

Path Parameters

  • external_id - Conversation external ID
  • id - Message UUID

Response Example

{
  "message": "Message deleted successfully",
  "deletedMessage": {
    "id": "abc12345-e89b-12d3-a456-426614174000",
    "conversationId": "456e7890-e89b-12d3-a456-426614174000",
    "message": "Hello, I need help with my order",
    "sender": "contact",
    "createdAt": "2024-01-15T10:35:00Z"
  }
}

Messages API Best Practices

Message Management

  • Messages are always scoped to conversations using external IDs
  • Sender field accepts 'contact' or 'persona' values only
  • Data field is returned as JSON string, not parsed object
  • Message field is used instead of 'content' field
Transcend the hype with MERCURY by Ratio Machina