Sent messages logs
This method allows you to get logs for sent SMS.
Resource
https://api.infobip.com/sms/1/logs
Parameters
| Property name | Type | Description |
|---|---|---|
| from | string | Sender ID that can be alphanumeric or numeric. |
| to | string | The message destination address. |
| 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. |
| generalStatus | string | Sent SMS status group. Indicates whether the message is successfully sent, not sent, delivered, not delivered, waiting for delivery or any other possible status. |
| sentSince | datetime | Lower limit on date and time of sending SMS. |
| sentUntil | datetime | Upper limit on date and time of sending SMS. |
| limit | int | Maximal number of messages in returned logs. Default value is 50. Maximum value is 1000. |
| mcc | string | Mobile country code. The mobile country code consists of 3 decimal digits. Complete list of mcc codes can be found here. |
| mnc | string | Mobile network code. The mobile network code consists of 2 or 3 decimal digits. Complete list of mnc codes can be found here. |
Request Example
GET /sms/1/logs HTTP/1.1
Host: api.infobip.com
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Accept: application/json
Response
{
"results":[
{
"bulkId":"06479ba3-5977-47f6-9346-fee0369bc76b",
"messageId":"1f21d8d7-f306-4f53-9f6e-eddfce9849ea",
"to":"41793026727",
"from":"InfoSMS",
"text":"Test SMS.",
"sentAt":"2015-02-23T17:40:31.773+0100",
"doneAt":"2015-02-23T17:40:31.787+0100",
"smsCount":1,
"mccmnc":"22801",
"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
}
}
]
}
Important:
SMS logs are available for the last 48 hours!
Response format
If successful, the response header HTTP status code will be 200 OK and the message logs will be returned.
If you try to send a message without authorization, you will get a response with the HTTP status code 401 Unauthorized.
If you use this method too many times in a short period of time, you will get status code 429 Too Many Requests. This prevents misusing logs in cases where reports would be more appropriate. For more information about when to use logs, please see the documentation.
SMS Logs Response
| Parameter | Type | Description |
|---|---|---|
| results | SentSMSLog | Collection of logs. |
Sent SMS Log
| Parameter | Type | Description |
|---|---|---|
| bulkId | String | The ID that uniquely identifies the request. |
| messageId | String | The ID that uniquely identifies the message sent. |
| to | String | The message destination address. |
| from | String | Sender ID that can be alphanumeric or numeric. |
| text | String | Text of the message that was sent. |
| sentAt | Date | Tells when the SMS was sent. Has the following format: yyyy-MM-dd'T'HH:mm:ss.SSSZ. |
| doneAt | Date | Tells when the SMS was finished processing by Infobip (ie. delivered to the destination, delivered to the destination network, etc.) |
| smsCount | int | The number of sent message segments. |
| mccmnc | String | Mobile country and network codes. |
| price | Price | Sent SMS price. |
| status | Status | Indicates whether the message is successfully sent, not sent, delivered, not delivered, waiting for delivery or any other possible status. |
| error | Error | Indicates whether the error occurred during the query execution. |
Price
| Parameter | Type | Description |
|---|---|---|
| pricePerMessage | BigDecimal | Price per one SMS. |
| currency | String | The currency in which the price is expressed. |
Status
| Parameter | Type | Description |
|---|---|---|
| groupId | int | Status group ID. |
| groupName | String | Status group name. |
| id | int | Status ID. |
| name | String | Status name. |
| description | String | Human-readable description of the status. |
| action | String | Action that should be taken to eliminate the error. |
Error
| Parameter | Type | Description |
|---|---|---|
| groupId | int | Error group ID. |
| groupName | String | Error group name. |
| id | int | Error ID. |
| name | String | Error name. |
| description | String | Human-readable description of the error. |
| permanent | boolean | Tells if the error is permanent. |
Additional examples
Getting logs without any query parameter
This request will return last 50 message logs from the last 48h by default.
Request:
GET /sms/1/logs HTTP/1.1
Host: api.infobip.com
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Accept: application/json
GET /sms/1/logs HTTP/1.1
Host: api.infobip.com
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Accept: application/xmlcurl -X GET
-H 'Accept: application/json'
-H 'Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=='
https://api.infobip.com/sms/1/logs<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "http://api.infobip.com/sms/1/logs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"accept: application/json",
"authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=="
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}require 'uri'
require 'net/http'
url = URI("https://api.infobip.com/sms/1/logs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Get.new(url)
request["authorization"] = 'Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=='
request["accept"] = 'application/json'
response = http.request(request)
puts response.read_bodyimport http.client
conn = http.client.HTTPSConnection("api.infobip.com")
headers = {
'authorization': "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==",
'accept': "application/json"
}
conn.request("GET", "/sms/1/logs", headers=headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))HttpResponse<String> response = Unirest.get("https://api.infobip.com/sms/1/logs")
.header("authorization", "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==")
.header("accept", "application/json")
.asString();var client = new RestClient("https://api.infobip.com/sms/1/logs");
var request = new RestRequest(Method.GET);
request.AddHeader("accept", "application/json");
request.AddHeader("authorization", "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==");
IRestResponse response = client.Execute(request);var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});
xhr.open("GET", "https://api.infobip.com/sms/1/logs");
xhr.setRequestHeader("authorization", "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==");
xhr.setRequestHeader("accept", "application/json");
xhr.send(data);Response:
HTTP/1.1 200 OK
Content-Type: application/json
{
"results":[
{
"bulkId":"bafdeb3d-719b-4cce-8762-54d47b40f3c5",
"messageId":"07e03aae-fabc-44ad-b1ce-222e14094d70",
"to":"41793026727",
"from":"InfoSMS",
"text":"Test SMS.",
"sentAt":"2015-02-23T17:41:11.833+0100",
"doneAt":"2015-02-23T17:41:11.843+0100",
"smsCount":1,
"mccmnc":"22801",
"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
}
},
{
"bulkId":"06479ba3-5977-47f6-9346-fee0369bc76b",
"messageId":"1f21d8d7-f306-4f53-9f6e-eddfce9849ea",
"to":"41793026727",
"from":"InfoSMS",
"text":"Test SMS.",
"sentAt":"2015-02-23T17:40:31.773+0100",
"doneAt":"2015-02-23T17:40:31.787+0100",
"smsCount":1,
"mccmnc":"22801",
"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
}
}
]
}
HTTP/1.1 200 OK
Content-Type: application/xml
<smsLogsResponse>
<results>
<result>
<bulkId>7944c32d-bf77-4f41-a752-c3aa89027adc</bulkId>
<messageId>f97d3b99-fab2-468e-8acf-c8c8792b8ce6</messageId>
<to>41793026727</to>
<from>InfoSMS</from>
<text>Test SMS.</text>
<sentAt>2015-02-23T17:41:18.020+0100</sentAt>
<doneAt>2015-02-23T17:41:18.027+0100</doneAt>
<smsCount>1</smsCount>
<mccmnc>22801</mccmnc>
<price>
<pricePerMessage>0.0100</pricePerMessage>
<currency>EUR</currency>
</price>
<status>
<groupId>3</groupId>
<groupName>DELIVERED</groupName>
<id>5</id>
<name>DELIVERED_TO_HANDSET</name>
<description>Message delivered to handset</description>
</status>
<error>
<groupId>0</groupId>
<groupName>Ok</groupName>
<id>0</id>
<name>NO_ERROR</name>
<description>No Error</description>
<permanent>false</permanent>
</error>
</result>
<result>
<bulkId>bafdeb3d-719b-4cce-8762-54d47b40f3c5</bulkId>
<messageId>07e03aae-fabc-44ad-b1ce-222e14094d70</messageId>
<to>41793026727</to>
<from>InfoSMS</from>
<text>Test SMS.</text>
<sentAt>2015-02-23T17:41:11.833+0100</sentAt>
<doneAt>2015-02-23T17:41:11.843+0100</doneAt>
<smsCount>1</smsCount>
<mccmnc>22801</mccmnc>
<price>
<pricePerMessage>0.0100</pricePerMessage>
<currency>EUR</currency>
</price>
<status>
<groupId>3</groupId>
<groupName>DELIVERED</groupName>
<id>5</id>
<name>DELIVERED_TO_HANDSET</name>
<description>Message delivered to handset</description>
</status>
<error>
<groupId>0</groupId>
<groupName>Ok</groupName>
<id>0</id>
<name>NO_ERROR</name>
<description>No Error</description>
<permanent>false</permanent>
</error>
</result>
</results>
</smsLogsResponse>Getting logs with `from`, `to` and `limit` as filters
This request will filter last messages according to rule - of all messages sent from from, return last limit messages with destinations to.
Request:
GET /sms/1/logs?from=InfoSMS&to=41793026727&limit=1 HTTP/1.1
Host: api.infobip.com
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Accept: application/json
GET /sms/1/logs?from=InfoSMS&to=41793026727&limit=1 HTTP/1.1
Host: api.infobip.com
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Accept: application/xmlcurl -X GET \
-H 'Accept: application/json' \
-H 'Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==' \
https://api.infobip.com/sms/1/logs?from=InfoSMS&to=41793026727&limit=1<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "http://api.infobip.com/sms/1/logs?from=InfoSMS&to=41793026727&limit=1",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"accept: application/json",
"authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=="
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}require 'uri'
require 'net/http'
url = URI("https://api.infobip.com/sms/1/logs?from=InfoSMS&to=41793026727&limit=1")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Get.new(url)
request["authorization"] = 'Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=='
request["accept"] = 'application/json'
response = http.request(request)
puts response.read_bodyimport http.client
conn = http.client.HTTPSConnection("api.infobip.com")
headers = {
'authorization': "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==",
'accept': "application/json"
}
conn.request("GET", "/sms/1/logs?from=InfoSMS&to=41793026727&limit=1", headers=headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))HttpResponse<String> response = Unirest.get("https://api.infobip.com/sms/1/logs?from=InfoSMS&to=41793026727&limit=1")
.header("authorization", "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==")
.header("accept", "application/json")
.asString();var client = new RestClient("https://api.infobip.com/sms/1/logs?from=InfoSMS&to=41793026727&limit=1");
var request = new RestRequest(Method.GET);
request.AddHeader("accept", "application/json");
request.AddHeader("authorization", "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==");
IRestResponse response = client.Execute(request);var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});
xhr.open("GET", "https://api.infobip.com/sms/1/logs?from=InfoSMS&to=41793026727&limit=1");
xhr.setRequestHeader("authorization", "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==");
xhr.setRequestHeader("accept", "application/json");
xhr.send(data);Response:
HTTP/1.1 200 OK
Content-Type: application/json
{
"results":[
{
"bulkId":"82d1d36e-e4fb-4194-8b93-caeb053bd327",
"messageId":"fc0cbfb8-7a72-40da-a76d-e2c2d9400835",
"to":"41793026727",
"from":"InfoSMS",
"text":"Test SMS.",
"sentAt":"2015-02-23T17:42:05.390+0100",
"doneAt":"2015-02-23T17:42:05.390+0100",
"smsCount":1,
"mccmnc":"22801",
"price":{
"pricePerMessage":0,
"currency":"EUR"
},
"status":{
"groupId":5,
"groupName":"REJECTED",
"id":6,
"name":"REJECTED_NETWORK",
"description":"Network is forbidden",
"action":"Contact account manager"
},
"error":{
"groupId":0,
"groupName":"OK",
"id":0,
"name":"NO_ERROR",
"description":"No Error",
"permanent":false
}
}
]
}
HTTP/1.1 200 OK
Content-Type: application/xml
<smsLogsResponse>
<results>
<result>
<bulkId>82d1d36e-e4fb-4194-8b93-caeb053bd327</bulkId>
<messageId>fc0cbfb8-7a72-40da-a76d-e2c2d9400835</messageId>
<to>41793026727</to>
<from>InfoSMS</from>
<text>Test SMS.</text>
<sentAt>2015-02-23T17:42:05.390+0100</sentAt>
<doneAt>2015-02-23T17:42:05.390+0100</doneAt>
<smsCount>1</smsCount>
<mccmnc>22801</mccmnc>
<price>
<pricePerMessage>0.0000</pricePerMessage>
<currency>EUR</currency>
</price>
<status>
<groupId>5</groupId>
<groupName>REJECTED</groupName>
<id>6</id>
<name>REJECTED_NETWORK</name>
<description>Network is forbidden</description>
<action>Contact account manager</action>
</status>
<error>
<groupId>0</groupId>
<groupName>OK</groupName>
<id>0</id>
<name>NO_ERROR</name>
<description>No Error</description>
<permanent>false</permanent>
</error>
</result>
</results>
</smsLogsResponse>Getting logs with multiple `bulkIds` as filters
This request will return messages that have bulkId among the specified bulkIds in the filter.
Request:
GET /sms/1/logs?bulkId=1dece649-6c8f-404e-8c6e-c7e073be509a,bafdeb3d-719b-4cce-8762-54d47b40f3c5 HTTP/1.1
Host: api.infobip.com
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Accept: application/json
GET /sms/1/logs?bulkId=1dece649-6c8f-404e-8c6e-c7e073be509a,bafdeb3d-719b-4cce-8762-54d47b40f3c5 HTTP/1.1
Host: api.infobip.com
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Accept: application/xmlcurl -X GET
-H 'Accept: application/json'
-H 'Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=='
https://api.infobip.com/sms/1/logs?bulkId=1dece649-6c8f-404e-8c6e-c7e073be509a,bafdeb3d-719b-4cce-8762-54d47b40f3c5<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "http://api.infobip.com/sms/1/logs?bulkId=1dece649-6c8f-404e-8c6e-c7e073be509a%2Cbafdeb3d-719b-4cce-8762-54d47b40f3c5",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"accept: application/json",
"authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=="
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}require 'uri'
require 'net/http'
url = URI("https://api.infobip.com/sms/1/logs?bulkId=1dece649-6c8f-404e-8c6e-c7e073be509a%2Cbafdeb3d-719b-4cce-8762-54d47b40f3c5")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Get.new(url)
request["authorization"] = 'Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=='
request["accept"] = 'application/json'
response = http.request(request)
puts response.read_bodyimport http.client
conn = http.client.HTTPSConnection("api.infobip.com")
headers = {
'authorization': "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==",
'accept': "application/json"
}
conn.request("GET", "/sms/1/logs?bulkId=1dece649-6c8f-404e-8c6e-c7e073be509a%2Cbafdeb3d-719b-4cce-8762-54d47b40f3c5", headers=headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))HttpResponse<String> response = Unirest.get("https://api.infobip.com/sms/1/logs?bulkId=1dece649-6c8f-404e-8c6e-c7e073be509a%2Cbafdeb3d-719b-4cce-8762-54d47b40f3c5")
.header("authorization", "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==")
.header("accept", "application/json")
.asString();var client = new RestClient("https://api.infobip.com/sms/1/logs?bulkId=1dece649-6c8f-404e-8c6e-c7e073be509a%2Cbafdeb3d-719b-4cce-8762-54d47b40f3c5");
var request = new RestRequest(Method.GET);
request.AddHeader("accept", "application/json");
request.AddHeader("authorization", "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==");
IRestResponse response = client.Execute(request);var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});
xhr.open("GET", "https://api.infobip.com/sms/1/logs?bulkId=1dece649-6c8f-404e-8c6e-c7e073be509a%2Cbafdeb3d-719b-4cce-8762-54d47b40f3c5");
xhr.setRequestHeader("authorization", "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==");
xhr.setRequestHeader("accept", "application/json");
xhr.send(data);Response:
HTTP/1.1 200 OK
Content-Type: application/json
{
"results":[
{
"bulkId":"bafdeb3d-719b-4cce-8762-54d47b40f3c5",
"messageId":"07e03aae-fabc-44ad-b1ce-222e14094d70",
"to":"41793026727",
"from":"InfoSMS",
"text":"Test SMS.",
"sentAt":"2015-02-23T17:41:11.833+0100",
"doneAt":"2015-02-23T17:41:11.843+0100",
"smsCount":1,
"mccmnc":"22801",
"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
}
},
{
"bulkId":"1dece649-6c8f-404e-8c6e-c7e073be509a",
"messageId":"faa48fe6-fe2c-4f36-a43b-a070e2906ecb",
"to":"41793026727",
"from":"InfoSMS",
"text":"Test SMS.",
"sentAt":"2015-02-23T16:22:37.413+0100",
"doneAt":"2015-02-23T16:22:37.437+0100",
"smsCount":1,
"mccmnc":"22801",
"price":{
"pricePerMessage":0,
"currency":"EUR"
},
"status":{
"groupId":2,
"groupName":"UNDELIVERABLE",
"id":9,
"name":"UNDELIVERABLE_NOT_DELIVERED",
"description":"Message sent not delivered"
},
"error":{
"groupId":0,
"groupName":"OK",
"id":0,
"name":"NO_ERROR",
"description":"No Error",
"permanent":false
}
}
]
}
HTTP/1.1 200 OK
Content-Type: application/xml
<smsLogsResponse>
<results>
<result>
<bulkId>bafdeb3d-719b-4cce-8762-54d47b40f3c5</bulkId>
<messageId>07e03aae-fabc-44ad-b1ce-222e14094d70</messageId>
<to>41793026727</to>
<from>InfoSMS</from>
<text>Test SMS.</text>
<sentAt>2015-02-23T17:41:11.833+0100</sentAt>
<doneAt>2015-02-23T17:41:11.843+0100</doneAt>
<smsCount>1</smsCount>
<mccmnc>22801</mccmnc>
<price>
<pricePerMessage>0.0100</pricePerMessage>
<currency>EUR</currency>
</price>
<status>
<groupId>3</groupId>
<groupName>DELIVERED</groupName>
<id>5</id>
<name>DELIVERED_TO_HANDSET</name>
<description>Message delivered to handset</description>
</status>
<error>
<groupId>0</groupId>
<groupName>OK</groupName>
<id>0</id>
<name>NO_ERROR</name>
<description>No Error</description>
<permanent>false</permanent>
</error>
</result>
<result>
<bulkId>1dece649-6c8f-404e-8c6e-c7e073be509a</bulkId>
<messageId>faa48fe6-fe2c-4f36-a43b-a070e2906ecb</messageId>
<to>41793026727</to>
<from>InfoSMS</from>
<text>Test SMS.</text>
<sentAt>2015-02-23T16:22:37.413+0100</sentAt>
<doneAt>2015-02-23T16:22:37.437+0100</doneAt>
<smsCount>1</smsCount>
<mccmnc>22801</mccmnc>
<price>
<pricePerMessage>0.0000</pricePerMessage>
<currency>EUR</currency>
</price>
<status>
<groupId>2</groupId>
<groupName>UNDELIVERABLE</groupName>
<id>9</id>
<name>UNDELIVERABLE_NOT_DELIVERED</name>
<description>Message sent not delivered</description>
</status>
<error>
<groupId>0</groupId>
<groupName>OK</groupName>
<id>0</id>
<name>NO_ERROR</name>
<description>No Error</description>
<permanent>false</permanent>
</error>
</result>
</results>
</smsLogsResponse>Getting logs with `date range` and `general status` as filters
This request will return messages with status that matches the generalStatus parameter (see Response codes) and have been sent between sentSince and current time.
Request:
GET /sms/1/logs?sentSince=2015-02-22T17:42:05.390%2b01:00&generalStatus=DELIVERED HTTP/1.1
Host: api.infobip.com
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Accept: application/json
GET /sms/1/logs?sentSince=2015-02-22T17:42:05.390%2b01:00&generalStatus=DELIVERED HTTP/1.1
Host: api.infobip.com
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Accept: application/xmlcurl -X GET
-H 'Accept: application/json'
-H 'Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=='
https://api.infobip.com/sms/1/logs?sentSince=2015-02-22T17:42:05.390%2b01:00&generalStatus=DELIVERED<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "http://api.infobip.com/sms/1/logs?sentSince=2015-02-22T17%3A42%3A05.390%252b01%3A00&generalStatus=DELIVERED",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"accept: application/json",
"authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=="
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}require 'uri'
require 'net/http'
url = URI("https://api.infobip.com/sms/1/logs?sentSince=2015-02-22T17%3A42%3A05.390%2B01%3A00&generalStatus=DELIVERED")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Get.new(url)
request["authorization"] = 'Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=='
request["accept"] = 'application/json'
response = http.request(request)
puts response.read_bodyimport http.client
conn = http.client.HTTPSConnection("api.infobip.com")
headers = {
'authorization': "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==",
'accept': "application/json"
}
conn.request("GET", "/sms/1/logs?sentSince=2015-02-22T17%3A42%3A05.390%2B01%3A00&generalStatus=DELIVERED", headers=headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))HttpResponse<String> response = Unirest.get("https://api.infobip.com/sms/1/logs?sentSince=2015-02-22T17%3A42%3A05.390%2B01%3A00&generalStatus=DELIVERED")
.header("authorization", "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==")
.header("accept", "application/json")
.asString();var client = new RestClient("https://api.infobip.com/sms/1/logs?sentSince=2015-02-22T17%3A42%3A05.390%2B01%3A00&generalStatus=DELIVERED");
var request = new RestRequest(Method.GET);
request.AddHeader("accept", "application/json");
request.AddHeader("authorization", "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==");
IRestResponse response = client.Execute(request);var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});
xhr.open("GET", "https://api.infobip.com/sms/1/logs?sentSince=2015-02-22T17%3A42%3A05.390%2B01%3A00&generalStatus=DELIVERED");
xhr.setRequestHeader("authorization", "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==");
xhr.setRequestHeader("accept", "application/json");
xhr.send(data);Response:
HTTP/1.1 200 OK
Content-Type: application/json
{
"results":[
{
"bulkId":"ce166d0e-bac7-4639-a094-52c406852afd",
"messageId":"fdf71ada-3308-4cd1-9962-31f2b937a1d0",
"to":"41793026727",
"from":"InfoSMS",
"text":"Test SMS.",
"sentAt":"2015-02-24T10:34:56.463+0100",
"doneAt":"2015-02-24T10:34:56.480+0100",
"smsCount":1,
"mccmnc":"22801",
"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
}
}
]
}
HTTP/1.1 200 OK
Content-Type: application/xml
<smsLogsResponse>
<results>
<result>
<bulkId>ce166d0e-bac7-4639-a094-52c406852afd</bulkId>
<messageId>fdf71ada-3308-4cd1-9962-31f2b937a1d0</messageId>
<to>41793026727</to>
<from>InfoSMS</from>
<text>Test SMS.</text>
<sentAt>2015-02-24T10:34:56.463+0100</sentAt>
<doneAt>2015-02-24T10:34:56.480+0100</doneAt>
<smsCount>1</smsCount>
<mccmnc>22801</mccmnc>
<price>
<pricePerMessage>0.0100</pricePerMessage>
<currency>EUR</currency>
</price>
<status>
<groupId>3</groupId>
<groupName>DELIVERED</groupName>
<id>5</id>
<name>DELIVERED_TO_HANDSET</name>
<description>Message delivered to handset</description>
</status>
<error>
<groupId>0</groupId>
<groupName>OK</groupName>
<id>0</id>
<name>NO_ERROR</name>
<description>No Error</description>
<permanent>false</permanent>
</error>
</result>
</results>
</smsLogsResponse>