Email messages logs

This method allows you to get logs for email messages.

Resource

https://api.infobip.com/email/1/logs

Parameters

Property name Type Description
from string Sender ID that can be alphanumeric or numeric.
to string The message destination address.
bulkId int The ID uniquely identifies a group of Email requests. This filter will enable you to query delivery reports for all the messages with the same bulk id using just one request.
messageId string The ID that uniquely identifies the message sent.
generalStatus datetime Sent email status group. Indicates whether the message is successfully sent, not sent, delivered, not delivered, waiting for delivery or any other possible status.
sentSince string 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.

Request Example

					GET /email/1/logs HTTP/1.1
Host: api.infobip.com
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Accept: application/json
					
				

Response

					{
  "results": [
    {
      "messageId": "64c98929-f160-4e2c-b156-ca88cc733547",
      "to": "recipient@infobip.com",
      "from": "sender@infobip.com",
      "text": "Test text",
      "sentAt": "2016-09-01T10:29:00.440+0000",
      "doneAt": "2016-09-01T10:29:01.130+0000",
      "price": {
        "pricePerMessage": 0.0005,
        "currency": "EUR"
      },
      "status": {
        "groupId": 3,
        "groupName": "DELIVERED",
        "id": 5,
        "name": "DELIVERED_TO_HANDSET",
        "description": "Message delivered to handset"
      },
      "channel": "EMAIL"
    }
  ]
}
					
				

None of the query parameters is mandatory for this request. Any combination of parameters can be used to filter results. Some examples are shown below.

IMPORTANT

Email 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 HTTP status code 401 Unauthorized.

If you use this method too many times in a short period of time, you will get the 429 Too Many Requests status code. This prevents misusing logs in cases where reports would be more appropriate. For more information about when to use logs, please see the documentation.

SMSLogsResponse

Parameter Type Description
results SentEmailLog Collection of logs.

SentEmailLog

Parameter Type Description
messageId String The ID that uniquely identifies the message sent.
to String The message destination address.
from String Sender email address.
text String Text of the message that was sent.
sentAt Date Tells when the email was sent. Has the following format: yyyy-MM-dd'T'HH:mm:ss.SSSZ.
doneAt Date Tells when the email was finished processing by Infobip (i.e. delivered to destination).
messageCount int Indicates how many parts the message was split into. It will always will be one for email.
price Price Sent email 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 email.
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.

Get logs with multiple messageId filter

GET /email/1/logs?messageId=64c98929-f160-4e2c-b156-ca88cc733547,60d586a1-6448-4c5f-860d-be3ddbea16da HTTP/1.1
Host: api.infobip.com
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Accept: application/json
GET /email/1/logs?messageId=64c98929-f160-4e2c-b156-ca88cc733547,60d586a1-6448-4c5f-860d-be3ddbea16da HTTP/1.1
Host: api.infobip.com
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Accept: application/xml
curl -X GET 
-H 'Accept: application/json' 
-H 'Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=='
https://api.infobip.com/email/1/logs?messageId=64c98929-f160-4e2c-b156-ca88cc733547,60d586a1-6448-4c5f-860d-be3ddbea16da
<?php

$request = new HttpRequest();
$request->setUrl('https://api.infobip.com/email/1/logs?messageId=64c98929-f160-4e2c-b156-ca88cc733547,60d586a1-6448-4c5f-860d-be3ddbea16da');
$request->setMethod(HTTP_METH_GET);

$request->setHeaders(array(
  'accept' => 'application/json',
  'authorization' => 'Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=='
));

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}
?>
require 'uri'
require 'net/http'

url = URI("https://api.infobip.com/email/1/logs?messageId=64c98929-f160-4e2c-b156-ca88cc733547,60d586a1-6448-4c5f-860d-be3ddbea16da")

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_body
import http.client

conn = http.client.HTTPSConnection("api.infobip.com")

headers = {
    'authorization': "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==",
    'accept': "application/json"
    }

conn.request("GET", "/email/1/logs?messageId=64c98929-f160-4e2c-b156-ca88cc733547,60d586a1-6448-4c5f-860d-be3ddbea16da", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
HttpResponse<String> response = Unirest.get("https://api.infobip.com/email/1/logs?messageId=64c98929-f160-4e2c-b156-ca88cc733547,60d586a1-6448-4c5f-860d-be3ddbea16da")
  .header("authorization", "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==")
  .header("accept", "application/json")
  .asString();
var client = new RestClient("https://api.infobip.com/email/1/logs?messageId=64c98929-f160-4e2c-b156-ca88cc733547,60d586a1-6448-4c5f-860d-be3ddbea16da");

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/email/1/logs?messageId=64c98929-f160-4e2c-b156-ca88cc733547,60d586a1-6448-4c5f-860d-be3ddbea16da");
xhr.setRequestHeader("authorization", "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==");
xhr.setRequestHeader("accept", "application/json");

xhr.send(data);

Response:

{
  "results": [
    {
      "messageId": "64c98929-f160-4e2c-b156-ca88cc733547",
      "to": "recipient@infobip.com",
      "from": "sender@infobip.com",
      "text": "Test text",
      "sentAt": "2016-09-01T10:29:00.440+0000",
      "doneAt": "2016-09-01T10:29:01.130+0000",
      "price": {
        "pricePerMessage": 0.0005,
        "currency": "EUR"
      },
      "status": {
        "groupId": 3,
        "groupName": "DELIVERED",
        "id": 5,
        "name": "DELIVERED_TO_HANDSET",
        "description": "Message delivered to handset"
      },
      "channel": "EMAIL"
    },
    {
      "messageId": "60d586a1-6448-4c5f-860d-be3ddbea16da",
      "to": "recipient@infobip.com",
      "from": "sender@infobip.com",
      "text": "Test text",
      "sentAt": "2016-09-01T10:29:00.317+0000",
      "doneAt": "2016-09-01T10:29:00.807+0000",
      "price": {
        "pricePerMessage": 0.0005,
        "currency": "EUR"
      },
      "status": {
        "groupId": 3,
        "groupName": "DELIVERED",
        "id": 5,
        "name": "DELIVERED_TO_HANDSET",
        "description": "Message delivered to handset"
      },
      "channel": "EMAIL"
    }
  ]
}
<?xml version='1.0' encoding='UTF-8'?>
<LogsResponse>
    <results>
        <result>
            <messageId>64c98929-f160-4e2c-b156-ca88cc733547</messageId>
            <to>recipient@infobip.com</to>
            <from>sender@infobip.com</from>
            <text>Test text</text>
            <sentAt>2016-09-01T10:29:00.440+0000</sentAt>
            <doneAt>2016-09-01T10:29:01.130+0000</doneAt>
            <price>
                <pricePerMessage>0.0005000000</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>
            <channel>EMAIL</channel>
        </result>
        <result>
            <messageId>60d586a1-6448-4c5f-860d-be3ddbea16da</messageId>
            <to>recipient@infobip.com</to>
            <from>sender@infobip.com</from>
            <text>Test text</text>
            <sentAt>2016-09-01T10:29:00.317+0000</sentAt>
            <doneAt>2016-09-01T10:29:00.807+0000</doneAt>
            <price>
                <pricePerMessage>0.0005000000</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>
            <channel>EMAIL</channel>
        </result>
    </results>
</LogsResponse>

Get logs with from, to and limit filters

from, to and limit accept a single parameter which will be used to filter response message logs.

Request:

GET /email/1/logs?from=sender@infobip.com&to=recipient@infobip.com&limit=1
Host: api.infobip.com
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Accept: application/json
GET /email/1/logs?from=sender@infobip.com&to=recipient@infobip.com&limit=1
Host: api.infobip.com
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Accept: application/xml
curl -X GET 
-H 'Accept: application/json' 
-H 'Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=='
https://api.infobip.com/email/1/logs?from=sender@infobip.com&to=recipient@infobip.com&limit=1
<?php

$request = new HttpRequest();
$request->setUrl('https://api.infobip.com/email/1/logs?from=sender@infobip.com&to=recipient@infobip.com&limit=1');
$request->setMethod(HTTP_METH_GET);

$request->setHeaders(array(
  'accept' => 'application/json',
  'authorization' => 'Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=='
));

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}
?>
require 'uri'
require 'net/http'

url = URI("https://api.infobip.com/email/1/logs?from=sender@infobip.com&to=recipient@infobip.com&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_body
import http.client

conn = http.client.HTTPSConnection("api.infobip.com")

headers = {
    'authorization': "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==",
    'accept': "application/json"
    }

conn.request("GET", "/email/1/logs?from=sender@infobip.com&to=recipient@infobip.com&limit=1", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
HttpResponse<String> response = Unirest.get("https://api.infobip.com/email/1/logs?from=sender@infobip.com&to=recipient@infobip.com&limit=1")
  .header("authorization", "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==")
  .header("accept", "application/json")
  .asString();
var client = new RestClient("https://api.infobip.com/email/1/logs?from=sender@infobip.com&to=recipient@infobip.com&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/email/1/logs?from=sender@infobip.com&to=recipient@infobip.com&limit=1");
xhr.setRequestHeader("authorization", "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==");
xhr.setRequestHeader("accept", "application/json");

xhr.send(data);

Response:

{
  "results": [
    {
      "messageId": "54ddb941-2566-46e0-802a-22bea5cf94bc",
      "to": "recipient@infobip.com",
      "from": "sender@infobip.com",
      "text": "Test text",
      "sentAt": "2016-09-01T11:14:44.453+0000",
      "doneAt": "2016-09-01T11:14:45.050+0000",
      "price": {
        "pricePerMessage": 0.0005,
        "currency": "EUR"
      },
      "status": {
        "groupId": 3,
        "groupName": "DELIVERED",
        "id": 5,
        "name": "DELIVERED_TO_HANDSET",
        "description": "Message delivered to handset"
      },
      "channel": "EMAIL"
    }
  ]
}
<?xml version='1.0' encoding='UTF-8'?>
<LogsResponse>
    <results>
        <result>
            <messageId>54ddb941-2566-46e0-802a-22bea5cf94bc</messageId>
            <to>recipient@infobip.com</to>
            <from>sender@infobip.com</from>
            <text>Test text</text>
            <sentAt>2016-09-01T11:14:44.453+0000</sentAt>
            <doneAt>2016-09-01T11:14:45.050+0000</doneAt>
            <price>
                <pricePerMessage>0.0005000000</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>
            <channel>EMAIL</channel>
        </result>
    </results>
</LogsResponse>

Get logs with date range and general status filters

sentSince and generalStatus accept a single parameter which will be used to filter response message logs.

Request:

GET /email/1/logs?sentSince=2016-08-22T17:42:05.390%2b01:00&generalStatus=DELIVERED HTTP/1.1
Host: api.infobip.com
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Accept: application/json
GET /email/1/logs?sentSince=2016-08-22T17:42:05.390%2b01:00&generalStatus=DELIVERED HTTP/1.1
Host: api.infobip.com
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Accept: application/xml
curl -X GET 
-H 'Accept: application/json' 
-H 'Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=='
https://api.infobip.com/email/1/logs?sentSince=2016-08-22T17:42:05.390%2b01:00&generalStatus=DELIVERED
<?php

$request = new HttpRequest();
$request->setUrl('https://api.infobip.com/email/1/logs?sentSince=2016-08-22T17:42:05.390%2b01:00&generalStatus=DELIVERED');
$request->setMethod(HTTP_METH_GET);

$request->setHeaders(array(
  'accept' => 'application/json',
  'authorization' => 'Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=='
));

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}
?>
require 'uri'
require 'net/http'

url = URI("https://api.infobip.com/email/1/logs?sentSince=2016-08-22T17:42:05.390%2b01:00&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_body
import http.client

conn = http.client.HTTPSConnection("api.infobip.com")

headers = {
    'authorization': "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==",
    'accept': "application/json"
    }

conn.request("GET", "/email/1/logs?sentSince=2016-08-22T17:42:05.390%2b01:00&generalStatus=DELIVERED", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
HttpResponse<String> response = Unirest.get("https://api.infobip.com/email/1/logs?sentSince=2016-08-22T17:42:05.390%2b01:00&generalStatus=DELIVERED")
  .header("authorization", "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==")
  .header("accept", "application/json")
  .asString();
var client = new RestClient("https://api.infobip.com/email/1/logs?sentSince=2016-08-22T17:42:05.390%2b01:00&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/email/1/logs?sentSince=2016-08-22T17:42:05.390%2b01:00&generalStatus=DELIVERED");
xhr.setRequestHeader("authorization", "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==");
xhr.setRequestHeader("accept", "application/json");

xhr.send(data);

Response:

{
  "results": [
    {
      "messageId": "54ddb941-2566-46e0-802a-22bea5cf94bc",
      "to": "recipient@infobip.com",
      "from": "sender@infobip.com",
      "text": "Test text",
      "sentAt": "2016-09-01T11:14:44.453+0000",
      "doneAt": "2016-09-01T11:14:45.050+0000",
      "price": {
        "pricePerMessage": 0.0005,
        "currency": "EUR"
      },
      "status": {
        "groupId": 3,
        "groupName": "DELIVERED",
        "id": 5,
        "name": "DELIVERED_TO_HANDSET",
        "description": "Message delivered to handset"
      },
      "channel": "EMAIL"
    }
  ]
}
<?xml version='1.0' encoding='UTF-8'?>
<LogsResponse>
    <results>
        <result>
            <messageId>54ddb941-2566-46e0-802a-22bea5cf94bc</messageId>
            <to>recipient@infobip.com</to>
            <from>sender@infobip.com</from>
            <text>Test text</text>
            <sentAt>2016-09-01T11:14:44.453+0000</sentAt>
            <doneAt>2016-09-01T11:14:45.050+0000</doneAt>
            <price>
                <pricePerMessage>0.0005000000</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>
            <channel>EMAIL</channel>
        </result>
    </results>
</LogsResponse>

Get logs by Bulk ID

Request:

GET /email/1/logs?bulkId=lrzkq6gatdkxouhrkgni HTTP/1.1
Host: api.infobip.com
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Accept: application/json
GET /email/1/logs?bulkId=lrzkq6gatdkxouhrkgni HTTP/1.1
Host: api.infobip.com
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Accept: application/xml
curl -X GET \
-H 'Accept: application/json' \
-H "Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==" \
https://api.infobip.com/email/1/logs?bulkId=lrzkq6gatdkxouhrkgni
<?php

$request = new HttpRequest();
$request->setUrl('https://api.infobip.com/email/1/logs');
$request->setMethod(HTTP_METH_GET);

$request->setQueryData(array(
  'bulkId' => 'lrzkq6gatdkxouhrkgni'
));

$request->setHeaders(array(
  'accept' => 'application/json',
  'authorization' => 'Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=='
));

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}
require 'uri'
require 'net/http'

url = URI("https://api.infobip.com/email/1/logs?bulkId=lrzkq6gatdkxouhrkgni")

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_body
import http.client

conn = http.client.HTTPSConnection("api.infobip.com")

headers = {
    'authorization': "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==",
    'accept': "application/json"
    }

conn.request("GET", "/email/1/logs?bulkId=lrzkq6gatdkxouhrkgni", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
HttpResponse<String> response = Unirest.get("https://api.infobip.com/email/1/logs?bulkId=lrzkq6gatdkxouhrkgni")
  .header("authorization", "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==")
  .header("accept", "application/json")
  .asString();
var client = new RestClient("https://api.infobip.com/email/1/logs?bulkId=lrzkq6gatdkxouhrkgni");

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/email/1/logs?bulkId=lrzkq6gatdkxouhrkgni");
xhr.setRequestHeader("authorization", "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==");
xhr.setRequestHeader("accept", "application/json");

xhr.send(data);

Response:

{
  "results": [
    {
      "bulkId": "lrzkq6gatdkxouhrkgni",
      "messageId": "64c98929-f160-4e2c-b156-ca88cc733547",
      "to": "recipient@infobip.com",
      "from": "sender@infobip.com",
      "text": "Test text",
      "sentAt": "2016-09-01T10:29:00.440+0000",
      "doneAt": "2016-09-01T10:29:01.130+0000",
      "price": {
        "pricePerMessage": 0.0005,
        "currency": "EUR"
      },
      "status": {
        "groupId": 3,
        "groupName": "DELIVERED",
        "id": 5,
        "name": "DELIVERED_TO_HANDSET",
        "description": "Message delivered to handset"
      },
      "channel": "EMAIL"
    },
    {
      "bulkId": "lrzkq6gatdkxouhrkgni",
      "messageId": "60d586a1-6448-4c5f-860d-be3ddbea16da",
      "to": "recipient@infobip.com",
      "from": "sender@infobip.com",
      "text": "Test text",
      "sentAt": "2016-09-01T10:29:00.317+0000",
      "doneAt": "2016-09-01T10:29:00.807+0000",
      "price": {
        "pricePerMessage": 0.0005,
        "currency": "EUR"
      },
      "status": {
        "groupId": 3,
        "groupName": "DELIVERED",
        "id": 5,
        "name": "DELIVERED_TO_HANDSET",
        "description": "Message delivered to handset"
      },
      "channel": "EMAIL"
    }
  ]
}
<?xml version='1.0' encoding='UTF-8'?>
<LogsResponse>
    <results>
        <result>
            <bulkId>lrzkq6gatdkxouhrkgni</bulkId>
            <messageId>64c98929-f160-4e2c-b156-ca88cc733547</messageId>
            <to>recipient@infobip.com</to>
            <from>sender@infobip.com</from>
            <text>Test text</text>
            <sentAt>2016-09-01T10:29:00.440+0000</sentAt>
            <doneAt>2016-09-01T10:29:01.130+0000</doneAt>
            <price>
                <pricePerMessage>0.0005000000</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>
            <channel>EMAIL</channel>
        </result>
        <result>
            <bulkId>lrzkq6gatdkxouhrkgni</bulkId>
            <messageId>60d586a1-6448-4c5f-860d-be3ddbea16da</messageId>
            <to>recipient@infobip.com</to>
            <from>sender@infobip.com</from>
            <text>Test text</text>
            <sentAt>2016-09-01T10:29:00.317+0000</sentAt>
            <doneAt>2016-09-01T10:29:00.807+0000</doneAt>
            <price>
                <pricePerMessage>0.0005000000</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>
            <channel>EMAIL</channel>
        </result>
    </results>
</LogsResponse>