FREE 2 requests/year
€0.004 + VAT
FREE requests
Send High Quality SMS worldwide, in single or multiple modes and with delivery reports.
SMS via API is the service that allows you to send certified, high-quality, and professional SMS messages worldwide, with a customized sender and delivery report.
SMS is the primary mobile communication channel, offering the certainty of message reception even in the absence of network coverage. For this reason, it is the ideal tool for real-time and secure communications such as alerts, transactional messages, two-factor authentication, and report availability.
The Openapi service allows you to quickly send the same message to one or more recipients.
The method POST/messages allows you to send one or more SMS messages directly from Openapi's gateway.
POST/messages
Here is an example of a request:
{
"test": false,
"sender": "alberto",
"body": "test invio",
"recipients": "+39-349xxxxx18"
}
POST/messages
The response returns the details of the just sent message:
{
"data": [
{
"test": false,
"sender": "alberto",
"body": "test invio",
"recipients": {
"valid": {
"count": 1
},
"invalid": {
"total": 0,
"list": []
}
},
"transaction": false,
"options": {
"flash": false,
"realtime": false,
"timestamp_send": "1564752494920"
},
"statistics": {
"error": 0,
"sent": 0,
"delivered": 0,
"total": 1,
"sms_total": 1
},
"base_price": 0.0315,
"timestamp": "1564752494920",
"last_update": "1564752494920",
"priority": 1,
"price": 0.0315,
"state": 0,
"id": "5d443a6e9f2725660f3db347"
}
],
"message": "Message Queued",
"credit": "90.90849999999988",
"success": true,
"error": null
}
GET /messages
Through the GET/messages endpoint, you can check the list of all sent SMS at any time.
{
"data": [
{
"sender": "alberto",
"timestamp": "1564411330117",
"id": "5d3f05c29f2725610c2b4e60"
},
{
"sender": "3939989741",
"timestamp": "1563554978976",
"id": "5d31f4a29f27257de166d960"
},
{
"sender": "3939989741",
"timestamp": "1562686328690",
"id": "5d24b3789f27257de1645bda"
},
{
"sender": "Sender's name",
"timestamp": "1562142688118",
"id": "5d1c67e09f27255e2f4079a3"
},
{
"sender": "Sender's name",
"timestamp": "1562142398400",
"id": "5d1c66be9f272563102e8045"
}
],
"success": true,
"message": "5 Results",
"credit": "91.00299999999986",
"error": null
}
GET /messages/{id}
The method GET /messages/{id} allows you to get information regarding the status of the sent message, such as delivery confirmation or eventual error.
{
"data": [
{
"test": false,
"sender": "Simone",
"body": "Production test 4 ",
"recipients": {
"valid": {
"count": 1
},
"invalid": {
"total": 0,
"list": []
}
},
"priority": 1,
"options": {
"flash": true,
"realtime": true,
"timestamp_send": "326152800000",
"custom": {
"test": 123,
"best": 321,
"trest": [
12,
3,
12,
3
]
},
"callback_url": "https://test.ws.messaggisms.com/callbackTest.php"
},
"transaction": false,
"statistics": {
"error": 0,
"sent": 1,
"delivered": 1,
"total": 1,
"sms_total": 1
},
"base_price": 0.03,
"timestamp": "1559743507600",
"last_update": "1559743510156",
"price": 0.036,
"state": 2,
"id": "5cf7cc139f272546624d3795"
}
],
"message": "1 Result",
"credit": "90.97149999999986",
"success": true,
"error": null
}
GET /messages/{id}/recipients
With GET /messages/{id}/recipients, starting from the message ID, you can retrieve the data of the SMS recipients, such as number, prefix, received text, sending status, and description.
{
"data": [
{
"number": "+39-3xxxxx5018",
"prefix": "+39",
"send_id": "5e5e65429f272510fb6adcc0_0",
"body": "test summary2",
"sms": 1,
"remaining_chr": 147,
"state": "DELIVERED",
"state_description": "DELIVERED_TO_HANDSET",
"price": 0.03,
"fields": [],
"message_id": "5e5e65429f272510fb6adcc0",
"i": 0,
"state_detail": "Message delivered to handset",
"timestamp_sent": {
"$date": {
"$numberLong": "1583244661371"
}
},
"real_cost": 0.03,
"report": {
"price": {
"pricePerMessage": 0.03,
"currency": "EUR"
},
"status": {
"id": 5,
"groupId": 3,
"groupName": "DELIVERED",
"name": "DELIVERED_TO_HANDSET",
"description": "Message delivered to handset"
},
"error": {
"id": 0,
"name": "NO_ERROR",
"description": "No Error",
"groupId": 0,
"groupName": "OK",
"permanent": false
},
"messageId": "5e5e65429f272510fb6adcc1",
"doneAt": "2020-03-03T15:11:03.168+0100",
"smsCount": 1,
"sentAt": "2020-03-03T15:11:01.467+0100",
"to": "393495155018"
},
"timestamp_delivery": {
"$date": {
"$numberLong": "1583244663000"
}
},
"id": "5e5e65429f272510fb6adcc1"
}
],
"message": "1 Result",
"credit": 90.20949999999985,
"success": true,
"error": null
}
GET /messages/{id}/recipients/{number}
The GET /messages/{id}/recipients/{number} method allows you to verify the same data but for a specific recipient.
{
"data": [
{
"number": "+39-3xxxxx5018",
"prefix": "+39",
"send_id": "5e5e65429f272510fb6adcc0_0",
"body": "test summary2",
"sms": 1,
"remaining_chr": 147,
"state": "DELIVERED",
"state_description": "DELIVERED_TO_HANDSET",
"price": 0.03,
"fields": [],
"message_id": "5e5e65429f272510fb6adcc0",
"i": 0,
"state_detail": "Message delivered to handset",
"timestamp_sent": {
"$date": {
"$numberLong": "1583244661371"
}
},
"real_cost": 0.03,
"report": {
"price": {
"pricePerMessage": 0.03,
"currency": "EUR"
},
"status": {
"id": 5,
"groupId": 3,
"groupName": "DELIVERED",
"name": "DELIVERED_TO_HANDSET",
"description": "Message delivered to handset"
},
"error": {
"id": 0,
"name": "NO_ERROR",
"description": "No Error",
"groupId": 0,
"groupName": "OK",
"permanent": false
},
"messageId": "5e5e65429f272510fb6adcc1",
"doneAt": "2020-03-03T15:11:03.168+0100",
"smsCount": 1,
"sentAt": "2020-03-03T15:11:01.467+0100",
"to": "393495155018"
},
"timestamp_delivery": {
"$date": {
"$numberLong": "1583244663000"
}
},
"id": "5e5e65429f272510fb6adcc1"
}
],
"message": "1 Result",
"credit": 90.20949999999985,
"success": true,
"error": null
}
Through the SMS API, it is also possible to modify the sending date of a scheduled SMS using the PUT/messages/{id} endpoint and the timestamp_send value. If the SMS has not yet been sent, it can be canceled through the DELETE/messages/{id} endpoint.
The SMS Gateway has often been integrated for appointment reminders or school communications, corporate, public utility, marketing, and onboarding flows/activations for platforms.
The service also allows you to send Flash SMS, messages that do not need to be opened but are displayed directly on the smartphone screen.
With the SMS API, it is also possible to make sending even more immediate by setting a higher priority or selecting the "realtime" option, which is very useful for sending OTPs. The realtime option incurs a 20% surcharge on the cost of each SMS, while the priority cost depends on the set value, which becomes a multiplier of the SMS cost.
The prices for sending SMS can vary depending on the destination country. For the complete list of costs, we invite you to consult the dedicated section in the Console.
Do you need help?
Haven't found the answer you're looking for?
Fill in all the details, we will get back to you as soon as possible!