Download OpenAPI specification:Download
OpenAPI Specification that contains all public endpoints and webhooks.
Ask for your Api Key to the icomm Customer Success Team, and include it in the Authorization header.
Authorization: App {{Api Key}}
With this API method, you can do anything from sending a basic message to one person, all the way to sending customized messages to thousands of recipients in one go. It comes with a range of useful features like transliteration, scheduling, and tracking in a unified way.
If utilizing Message Delivery Reports webhook, please consult the documentation provided at Receive outbound SMS message reports.
This endpoint is the successor of Send SMS message and Send binary SMS message.
required | Array of objects (schema.SmsMessage) An array of message objects of a single message or multiple messages sent under one bulk ID. |
object (schema.SmsMessageRequestOptions) Options applicable to all messages in the request. |
{- "messages": [
- {
- "sender": "InfoSMS",
- "destinations": [
- {
- "to": "41793026727"
}
], - "content": {
- "text": "This is a sample message"
}
}
]
}
{- "bulkId": "2034072219640523072",
- "messages": [
- {
- "messageId": "2250be2d4219-3af1-78856-aabe-1362af1edfd2",
- "status": {
- "groupId": 1,
- "groupName": "PENDING",
- "id": 26,
- "name": "PENDING_ACCEPTED",
- "description": "Message sent to next instance"
}, - "destination": "41793026727",
- "details": {
- "messageCount": 1
}
}
]
}
If you are unable to receive real-time message delivery reports towards your endpoint for various reasons, we offer you an API method to fetch batches of message reports to confirm whether specific messages have been delivered. Each request towards this endpoint will return batches of the latest message reports. Please note they will be returned only once.
bulkId | string The ID that uniquely identifies the request. Bulk ID will be received only when you send a message to more than one destination address. |
messageId | string The ID that uniquely identifies the message sent. |
limit | integer <int32> <= 1000 Default: 50 Example: limit=1 Maximum number of delivery reports to be returned. If not set, the latest 50 records are returned. Maximum limit value is 1000 and you can only access reports for the last 48h |
entityId | string Example: entityId=promotional-traffic-entity Entity id used to send the message. For more details, see our documentation. |
applicationId | string Example: applicationId=marketing-automation-application Application id used to send the message. For more details, see our documentation. |
campaignReferenceId | string Example: campaignReferenceId=summersale ID of a campaign that was sent in the message. |
{- "results": [
- {
- "bulkId": "BULK-ID-123-xyz",
- "price": {
- "pricePerMessage": 0.01,
- "currency": "EUR"
}, - "status": {
- "groupId": 3,
- "groupName": "DELIVERED",
- "id": 5,
- "name": "DELIVERED_TO_HANDSET",
- "description": "Message delivered to handset"
}, - "error": {
- "groupId": 0,
- "groupName": "OK",
- "id": 0,
- "name": "NO_ERROR",
- "description": "No Error",
- "permanent": false
}, - "messageId": "MESSAGE-ID-123-xyz",
- "to": "41793026727",
- "sender": "InfoSMS",
- "sentAt": "2019-11-09T16:00:00.000+0100",
- "doneAt": "2019-11-09T16:00:00.000+0100",
- "messageCount": 1,
- "platform": {
- "entityId": "promotional-traffic-entity",
- "applicationId": "marketing-automation-application"
}
}, - {
- "bulkId": "BULK-ID-123-xyz",
- "price": {
- "pricePerMessage": 0.01,
- "currency": "EUR"
}, - "status": {
- "groupId": 3,
- "groupName": "DELIVERED",
- "id": 5,
- "name": "DELIVERED_TO_HANDSET",
- "description": "Message delivered to handset"
}, - "error": {
- "groupId": 0,
- "groupName": "OK",
- "id": 0,
- "name": "NO_ERROR",
- "description": "No Error",
- "permanent": false
}, - "messageId": "12db39c3-7822-4e72-a3ec-c87442c0ffc5",
- "to": "41793026834",
- "sender": "InfoSMS",
- "sentAt": "2019-11-09T17:00:00.000+0100",
- "doneAt": "2019-11-09T17:00:00.000+0100",
- "messageCount": 1,
- "platform": {
- "entityId": "promotional-traffic-entity",
- "applicationId": "marketing-automation-application"
}
}
]
}
Use this method for displaying logs, for example, in the user interface. Available are the logs for the last 48 hours and you can only retrieve maximum of 1000 logs per call. See message delivery reports if your use case is to verify message delivery.
mcc | string Mobile Country Code. |
mnc | string Mobile Network Code. Mobile Country Code is required if this property is used. |
sender | string The sender ID which can be alphanumeric or numeric. |
destination | string Message destination address. |
bulkId | Array of strings Example: bulkId=BULK-ID-123-xyz Unique ID assigned to the request if messaging multiple recipients or sending multiple messages via a single API request. May contain multiple comma-separated values. Maximum length 2048 characters. |
messageId | Array of strings Example: messageId=MESSAGE-ID-123-xyz,MESSAGE-ID-124-xyz Unique message ID for which a log is requested. May contain multiple comma-separated values. Maximum length 2048 characters. |
generalStatus | string (schema.MessageGeneralStatus) Enum: "ACCEPTED" "PENDING" "UNDELIVERABLE" "DELIVERED" "EXPIRED" "REJECTED" Status group name that describes which category the status code belongs to, i.e., [PENDING](. |
sentSince | string <datetime> Example: sentSince=2020-02-22T17:42:05.390+01:00 The logs will only include messages sent after this date. Use it together with sentUntil to return a time range or if you want to fetch more than 1000 logs allowed per call. Has the following format: yyyy-MM-dd'T'HH:mm:ss.SSSZ. |
sentUntil | string <datetime> Example: sentUntil=2020-02-23T17:42:05.390+01:00 The logs will only include messages sent before this date. Use it together with sentSince to return a time range or if you want to fetch more than 1000 logs allowed per call. Has the following format: yyyy-MM-dd'T'HH:mm:ss.SSSZ. |
limit | integer <int32> <= 1000 Default: 50 Maximum number of messages to include in logs. If not set, the latest 50 records are returned. Maximum limit value is 1000 and you can only access logs for the last 48h. If you want to fetch more than 1000 logs allowed per call, use sentBefore and sentUntil to retrieve them in pages. |
entityId | string Example: entityId=promotional-traffic-entity Entity id used to send the message. For more details, see our documentation. |
applicationId | string Example: applicationId=marketing-automation-application Application id used to send the message. For more details, see our documentation. |
campaignReferenceId | Array of strings Example: campaignReferenceId=summersale ID of a campaign that was sent in the message. May contain multiple comma-separated values. |
{- "results": [
- {
- "destination": "41793026727",
- "bulkId": "BULK-ID-123-xyz",
- "messageId": "MESSAGE-ID-123-xyz",
- "sentAt": "2019-11-09T16:00:00.000+0100",
- "doneAt": "2019-11-09T16:00:00.000+0100",
- "messageCount": 1,
- "price": {
- "pricePerMessage": 0.01,
- "currency": "EUR"
}, - "status": {
- "groupId": 3,
- "groupName": "DELIVERED",
- "id": 5,
- "name": "DELIVERED_TO_HANDSET",
- "description": "Message delivered to handset"
}, - "error": {
- "groupId": 0,
- "groupName": "OK",
- "id": 0,
- "name": "NO_ERROR",
- "description": "No Error",
- "permanent": false
}, - "platform": {
- "entityId": "promotional-traffic-entity",
- "applicationId": "marketing-automation-application"
}, - "content": {
- "text": "This is a sample message"
}, - "mccMnc": "22801"
}, - {
- "destination": "41793026834",
- "bulkId": "BULK-ID-123-xyz",
- "messageId": "12db39c3-7822-4e72-a3ec-c87442c0ffc5",
- "sentAt": "2019-11-09T17:00:00.000+0100",
- "doneAt": "2019-11-09T17:00:00.000+0100",
- "messageCount": 1,
- "price": {
- "pricePerMessage": 0.01,
- "currency": "EUR"
}, - "status": {
- "groupId": 3,
- "groupName": "DELIVERED",
- "id": 5,
- "name": "DELIVERED_TO_HANDSET",
- "description": "Message delivered to handset"
}, - "error": {
- "groupId": 0,
- "groupName": "OK",
- "id": 0,
- "name": "NO_ERROR",
- "description": "No Error",
- "permanent": false
}, - "platform": {
- "entityId": "promotional-traffic-entity",
- "applicationId": "marketing-automation-application"
}, - "content": {
- "text": "This is a sample message"
}, - "mccMnc": "22801"
}
]
}
For every message you send, we offer the option to receive a delivery report. To use this feature, you should set up an endpoint to receive these reports. You can specify the endpoint URL using the webhooks > delivery > url parameter. .
You'll receive this type of payload for messages sent using Send SMS message.
Array of objects (schema.DeliveryReport) Collection of reports, one per every message. |
{- "results": [
- {
- "bulkId": "BULK-ID-123-xyz",
- "price": {
- "pricePerMessage": 0.01,
- "currency": "EUR"
}, - "status": {
- "groupId": 3,
- "groupName": "DELIVERED",
- "id": 5,
- "name": "DELIVERED_TO_HANDSET",
- "description": "Message delivered to handset"
}, - "error": {
- "groupId": 0,
- "groupName": "OK",
- "id": 0,
- "name": "NO_ERROR",
- "description": "No Error",
- "permanent": false
}, - "messageId": "MESSAGE-ID-123-xyz",
- "to": "41793026727",
- "sender": "InfoSMS",
- "sentAt": "2019-11-09T16:00:00.000+0100",
- "doneAt": "2019-11-09T16:00:00.000+0100",
- "messageCount": 1,
- "platform": {
- "entityId": "promotional-traffic-entity",
- "applicationId": "marketing-automation-application"
}
}, - {
- "bulkId": "BULK-ID-123-xyz",
- "price": {
- "pricePerMessage": 0.01,
- "currency": "EUR"
}, - "status": {
- "groupId": 3,
- "groupName": "DELIVERED",
- "id": 5,
- "name": "DELIVERED_TO_HANDSET",
- "description": "Message delivered to handset"
}, - "error": {
- "groupId": 0,
- "groupName": "OK",
- "id": 0,
- "name": "NO_ERROR",
- "description": "No Error",
- "permanent": false
}, - "messageId": "12db39c3-7822-4e72-a3ec-c87442c0ffc5",
- "to": "41793026834",
- "sender": "InfoSMS",
- "sentAt": "2019-11-09T17:00:00.000+0100",
- "doneAt": "2019-11-09T17:00:00.000+0100",
- "messageCount": 1,
- "platform": {
- "entityId": "promotional-traffic-entity",
- "applicationId": "marketing-automation-application"
}
}
]
}