{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/sinch/main/json-schema/sinch-send-message-request-schema.json", "title": "SendMessageRequest", "x-generated": "2026-10-03", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/sinch-messages-api-openapi.yml#/components/schemas/SendMessageRequest", "type": "object", "required": [ "app_id", "message", "recipient" ], "properties": { "app_id": { "type": "string", "description": "The ID of the Conversation API app" }, "recipient": { "type": "object", "description": "The message recipient", "properties": { "contact_id": { "type": "string", "description": "The contact ID to send to" }, "identified_by": { "type": "object", "description": "Channel identity to address", "properties": { "channel_identities": { "type": "array", "items": { "$ref": "#/$defs/ChannelIdentity" } } } } } }, "message": { "$ref": "#/$defs/AppMessage" }, "message_metadata": { "type": "string", "description": "Metadata to associate with the message" }, "conversation_metadata": { "type": "string", "description": "Metadata to associate with the conversation" }, "channel_priority_order": { "type": "array", "description": "Ordered list of channels to try", "items": { "type": "string" } }, "queue": { "type": "string", "enum": [ "NORMAL_PRIORITY", "HIGH_PRIORITY" ], "description": "The message queue priority" }, "ttl": { "type": "integer", "description": "Time-to-live in seconds for the message" } }, "$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" } } } } }