{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/sinch/main/json-schema/sinch-conversation-message-schema.json", "title": "ConversationMessage", "x-generated": "2026-10-03", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/sinch-messages-api-openapi.yml#/components/schemas/ConversationMessage", "type": "object", "properties": { "id": { "type": "string", "description": "The unique message identifier" }, "direction": { "type": "string", "enum": [ "TO_APP", "TO_CONTACT" ], "description": "The message direction" }, "app_message": { "$ref": "#/$defs/AppMessage" }, "contact_message": { "type": "object", "description": "The inbound contact message" }, "channel_identity": { "$ref": "#/$defs/ChannelIdentity" }, "conversation_id": { "type": "string", "description": "The conversation this message belongs to" }, "contact_id": { "type": "string", "description": "The contact who sent or received the message" }, "metadata": { "type": "string", "description": "Message metadata" }, "accept_time": { "type": "string", "format": "date-time", "description": "When the message was accepted" } }, "$defs": { "AppMessage": { "type": "object", "properties": { "text_message": { "type": "object", "description": "A text message", "properties": { "text": { "type": "string", "description": "The message text" } } }, "media_message": { "type": "object", "description": "A media message", "properties": { "url": { "type": "string", "format": "uri", "description": "The media URL" }, "thumbnail_url": { "type": "string", "format": "uri", "description": "The thumbnail URL" } } }, "template_message": { "type": "object", "description": "A template message", "properties": { "omni_template": { "type": "object", "description": "The template reference", "properties": { "template_id": { "type": "string", "description": "The template identifier" }, "version": { "type": "string", "description": "The template version" }, "language_code": { "type": "string", "description": "The language code" }, "parameters": { "type": "object", "description": "Template parameter values" } } } } }, "card_message": { "type": "object", "description": "A card message with title, description, and media", "properties": { "title": { "type": "string", "description": "The card title" }, "description": { "type": "string", "description": "The card description" }, "media_message": { "type": "object", "description": "The card media", "properties": { "url": { "type": "string", "format": "uri", "description": "The media URL" } } }, "choices": { "type": "array", "description": "Action choices on the card", "items": { "$ref": "#/$defs/Choice" } } } }, "list_message": { "type": "object", "description": "A list message with sections", "properties": { "title": { "type": "string", "description": "The list title" }, "description": { "type": "string", "description": "The list description" }, "sections": { "type": "array", "description": "List sections", "items": { "type": "object", "properties": { "title": { "type": "string", "description": "Section title" }, "items": { "type": "array", "description": "Section items", "items": { "$ref": "#/$defs/Choice" } } } } } } } } }, "ChannelIdentity": { "type": "object", "properties": { "channel": { "type": "string", "enum": [ "SMS", "RCS", "WHATSAPP", "MESSENGER", "INSTAGRAM", "VIBER", "VIBERBM", "TELEGRAM", "KAKAOTALK", "LINE", "MMS" ], "description": "The channel type" }, "identity": { "type": "string", "description": "The channel-specific identity" }, "app_id": { "type": "string", "description": "The app ID for the channel" } } }, "Choice": { "type": "object", "properties": { "text_message": { "type": "object", "description": "Text choice", "properties": { "text": { "type": "string", "description": "The choice text" } } }, "postback_data": { "type": "string", "description": "Data sent back when the choice is selected" } } } } }