[
{
"handle": "sms",
"meta": {
"short": "SMS",
"description": "Send and receive SMS messages"
},
"endpoint": {
"value": "/v1/sms"
},
"fields": [
{
"name": "id",
"type": "String",
"selector": ["id"],
"meta": {
"description": "Unique identifier for the SMS message"
}
},
{
"name": "body",
"type": "String",
"selector": ["body"],
"meta": {
"description": "Content of the SMS message"
}
},
{
"name": "to",
"type": "String",
"selector": ["to", "number"],
"meta": {
"description": "Recipient phone number"
}
},
{
"name": "from",
"type": "String",
"selector": ["from", "number"],
"meta": {
"description": "Sender phone number"
}
},
{
"name": "status",
"type": "String",
"selector": ["status", "code"],
"meta": {
"description": "Delivery status of the SMS"
}
}
],
"operations": {
"list": {
"method": "GET",
"path": {
"value": "/"
},
"queryParams": {
"limit": {
"value": "{{limit}}",
"placeholders": [
{
"name": "limit",
"type": "Integer",
"description": "Number of SMS messages to retrieve",
"required": false,
"default": "10"
}
]
}
}
},
"read": {
"method": "GET",
"path": {
"value": "/{{id}}",
"placeholders": [
{
"name": "id",
"type": "String",
"description": "ID of the SMS message",
"required": true
}
]
}
},
"create": {
"method": "POST",
"path": {
"value": "/"
},
"bodyTemplate": {
"value": "{\"to\": [{\"number\": \"{{to}}\"}], \"body\": \"{{body}}\", \"from\": \"{{from}}\"}",
"placeholders": [
{
"name": "to",
"type": "String",
"description": "Recipient phone number",
"required": true
},
{
"name": "body",
"type": "String",
"description": "Content of the SMS message",
"required": true
},
{
"name": "from",
"type": "String",
"description": "Sender phone number",
"required": true
}
]
}
}
},
"webhooks": [
{
"event": "delivered",
"path": "/webhooks/sinch/sms/delivered",
"payload": [
{
"name": "messageId",
"type": "String",
"selector": ["message_id"],
"meta": {
"description": "ID of the delivered SMS message"
}
},
{
"name": "status",
"type": "String",
"selector": ["status", "code"],
"meta": {
"description": "Delivery status code"
}
}
]
}
]
},
{
"handle": "voice",
"meta": {
"short": "Voice",
"description": "Manage voice calls"
},
"endpoint": {
"value": "/v1/calls"
},
"fields": [
{
"name": "id",
"type": "String",
"selector": ["id"],
"meta": {
"description": "Unique identifier for the call"
}
},
{
"name": "status",
"type": "String",
"selector": ["status"],
"meta": {
"description": "Current status of the call"
}
},
{
"name": "direction",
"type": "String",
"selector": ["direction"],
"meta": {
"description": "Direction of the call (inbound/outbound)"
}
},
{
"name": "from",
"type": "String",
"selector": ["from", "number"],
"meta": {
"description": "Caller phone number"
}
},
{
"name": "to",
"type": "String",
"selector": ["to", "number"],
"meta": {
"description": "Callee phone number"
}
}
],
"operations": {
"list": {
"method": "GET",
"path": {
"value": "/"
}
},
"read": {
"method": "GET",
"path": {
"value": "/{{id}}",
"placeholders": [
{
"name": "id",
"type": "String",
"description": "ID of the call",
"required": true
}
]
}
},
"create": {
"method": "POST",
"path": {
"value": "/"
},
"bodyTemplate": {
"value": "{\"destination\": {\"number\": \"{{to}}\"}, \"cli\": \"{{from}}\"}",
"placeholders": [
{
"name": "to",
"type": "String",
"description": "Callee phone number",
"required": true
},
{
"name": "from",
"type": "String",
"description": "Caller phone number",
"required": true
}
]
}
}
},
"webhooks": [
{
"event": "answered",
"path": "/webhooks/sinch/voice/answered",
"payload": [
{
"name": "callId",
"type": "String",
"selector": ["call_id"],
"meta": {
"description": "ID of the answered call"
}
},
{
"name": "status",
"type": "String",
"selector": ["status"],
"meta": {
"description": "Call status"
}
}
]
}
]
},
{
"handle": "verify",
"meta": {
"short": "Verify",
"description": "Phone number verification service"
},
"endpoint": {
"value": "/v1/verifications"
},
"fields": [
{
"name": "id",
"type": "String",
"selector": ["id"],
"meta": {
"description": "Unique identifier for the verification"
}
},
{
"name": "number",
"type": "String",
"selector": ["number"],
"meta": {
"description": "Phone number being verified"
}
},
{
"name": "status",
"type": "String",
"selector": ["status"],
"meta": {
"description": "Verification status"
}
},
{
"name": "method",
"type": "String",
"selector": ["method"],
"meta": {
"description": "Verification method (sms/flashcall)"
}
}
],
"operations": {
"create": {
"method": "POST",
"path": {
"value": "/"
},
"bodyTemplate": {
"value": "{\"identity\": {\"type\": \"number\", \"endpoint\": \"{{number}}\"}, \"method\": \"{{method}}\"}",
"placeholders": [
{
"name": "number",
"type": "String",
"description": "Phone number to verify",
"required": true
},
{
"name": "method",
"type": "String",
"description": "Verification method",
"required": false,
"default": "sms",
"options": ["sms", "flashcall"]
}
]
}
},
"read": {
"method": "GET",
"path": {
"value": "/{{id}}",
"placeholders": [
{
"name": "id",
"type": "String",
"description": "Verification ID",
"required": true
}
]
}
}
}
},
{
"handle": "conversation",
"meta": {
"short": "Conversation",
"description": "Omni-channel messaging via the Conversation API"
},
"endpoint": {
"value": "/v1/projects/{{project_id}}/messages"
},
"fields": [
{
"name": "id",
"type": "String",
"selector": ["id"],
"meta": {
"description": "Unique identifier for the message"
}
},
{
"name": "project_id",
"type": "String",
"selector": ["project_id"],
"meta": {
"description": "Project ID for the conversation"
}
},
{
"name": "app_id",
"type": "String",
"selector": ["app_id"],
"meta": {
"description": "App ID for the conversation"
}
},
{
"name": "contact_id",
"type": "String",
"selector": ["contact_id"],
"meta": {
"description": "ID of the contact"
}
},
{
"name": "direction",
"type": "String",
"selector": ["direction"],
"meta": {
"description": "Direction of the message (TO_CONTACT or FROM_CONTACT)"
}
},
{
"name": "text",
"type": "String",
"selector": ["message", "text_message", "text"],
"meta": {
"description": "Text content of the message"
}
}
],
"operations": {
"read": {
"method": "GET",
"path": {
"value": "/{{id}}",
"placeholders": [
{
"name": "id",
"type": "String",
"description": "ID of the message",
"required": true
}
]
}
},
"list": {
"method": "GET",
"path": {
"value": "/"
}
},
"send": {
"method": "POST",
"path": {
"value": ":send"
},
"bodyTemplate": {
"value": "{\"app_id\": \"{{app_id}}\", \"recipient\": {\"contact_id\": \"{{contact_id}}\"}, \"message\": {\"text_message\": {\"text\": \"{{text}}\"}}, \"channel_priority_order\": [\"{{channel}}\"]}",
"placeholders": [
{
"name": "app_id",
"type": "String",
"description": "The ID of the conversaton app",
"required": true
},
{
"name": "contact_id",
"type": "String",
"description": "ID of the recipient contact.",
"required": true
},
{
"name": "text",
"type": "String",
"description": "Text content to send",
"required": true
},
{
"name": "channel",
"type": "String",
"description": "Channel priority order (e.g. SMS, WHATSAPP)",
"required": true
}
]
}
}
}
},
{
"handle": "contact",
"meta": {
"short": "Contact",
"description": "Manage contacts for the Conversation API"
},
"endpoint": {
"value": "/v1/projects/{{project_id}}/contacts"
},
"fields": [
{
"name": "id",
"type": "String",
"selector": ["id"],
"meta": {
"description": "Unique identifier for the contact"
}
},
{
"name": "display_name",
"type": "String",
"selector": ["display_name"],
"meta": {
"description": "Display name of the contact"
}
},
{
"name": "email",
"type": "String",
"selector": ["email"],
"meta": {
"description": "Email address of the contact"
}
},
{
"name": "external_id",
"type": "String",
"selector": ["external_id"],
"meta": {
"description": "External reference ID for the contact"
}
},
{
"name": "language",
"type": "String",
"selector": ["language"],
"meta": {
"description": "Language preference of the contact"
}
}
],
"operations": {
"read": {
"method": "GET",
"path": {
"value": "/{{id}}",
"placeholders": [
{
"name": "id",
"type": "String",
"description": "ID of the contact",
"required": true
}
]
}
},
"list": {
"method": "GET",
"path": {
"value": "/"
}
},
"create": {
"method": "POST",
"path": {
"value": "/"
},
"bodyTemplate": {
"value": "{\"channel_identities\": [{\"channel\": \"{{channel}}\", \"identity\": \"{{identity}}\"}], \"display_name\": \"{{display_name}}\", \"language\": \"{{language}}\"}",
"placeholders": [
{
"name": "channel",
"type": "String",
"description": "Communication channel (e.g., SMS, WHATSAPP)",
"required": true
},
{
"name": "identity",
"type": "String",
"description": "Channel identity alias (e.g., phone number)",
"required": true
},
{
"name": "display_name",
"type": "String",
"description": "Display name for the contact",
"required": false
},
{
"name": "language",
"type": "String",
"description": "Language preference of the contact",
"required": false
}
]
}
}
}
}
]