OMNI logs

This method allows you to get logs for sent messages.

Resource

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

Parameters

Property name Type Description
from string Sender 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 message 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 messages.
sentUntil datetime Upper limit on date and time of sending messages.
limit int Maximal number of messages in returned logs. Default value is 50. Maximum value is 1000.
mcc string Mobile country code.
mnc string Mobile network code.
channel string Channel that was used for message delivering. Possible values are: SMS, VOICE, VIBERWHATSAPPPUSHEMAIL.

Request Example

					GET /omni/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":"1234",
         "text":"Test SMS.",
         "sentAt":"2015-02-23T17:40:31.773+0100",
         "doneAt":"2015-02-23T17:40:31.787+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"
         },
         "channel": "SMS",
      }
   ]
}
					
				

Important:

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

If you use this method too many times in a short period, 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.

OmniLogsResponse

Parameter Type Description
results OmniLog Collection of logs.

OmniLog

Parameter Type Description
bulkId String The ID that uniquely identifies the request.
messageId String The ID that uniquely identifies the message sent.
channel String Channel that was used for message delivering. Possible values are: SMS, VIBER,EMAIL,PUSH.
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 message was sent. It has the following format: yyyy-MM-dd'T'HH:mm:ss.SSSZ.
doneAt Date Tells when the message was finished processing by Infobip (ie. delivered to destination, delivered to destination network, etc.)
messageCount int The number of sent message segments.
mccmnc String Mobile country and network codes.
price Price Sent message 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 message.
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 the last 50 message logs from the last 48h by default.

Request:

GET /omni/1/logs HTTP/1.1
Host: api.infobip.com
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Accept: application/json
GET /omni/1/logs 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/omni/1/logs
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "http://api.infobip.com/omni/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_POSTFIELDS => "",
  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/omni/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_body
import http.client

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

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

conn.request("GET", "/omni/1/logs", headers=headers)

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

print(data.decode("utf-8"))
HttpResponse<String> response = Unirest.get("https://api.infobip.com/omni/1/logs")
  .header("authorization", "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==")
  .header("accept", "application/json")
  .asString();
var client = new RestClient("https://api.infobip.com/omni/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/omni/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.",
         "messageCount": 1,
         "sentAt":"2015-02-23T17:41:11.833+0100",
         "doneAt":"2015-02-23T17:41:11.843+0100",
         "mccmnc":"22801",
         "price":{  
            "pricePerMessage":0.01,
            "currency":"EUR"
         },
         "status":{  
            "groupId":3,
            "groupName":"DELIVERED",
            "id":5,
            "name":"DELIVERED_TO_HANDSET",
            "description":"Message delivered to handset"
         },
         "channel": "SMS",
      },
      {  
         "bulkId":"06479ba3-5977-47f6-9346-fee0369bc76b",
         "messageId":"1f21d8d7-f306-4f53-9f6e-eddfce9849ea",
         "to":"41793026727",
         "from":"Demo PUSH Application",
         "text":"Test PUSH message.",
         "sentAt":"2015-02-23T17:40:31.773+0100",
         "doneAt":"2015-02-23T17:40:31.787+0100",
         "messageCount":1,
         "mccmnc":"22801",
         "price":{  
            "pricePerMessage":0,
            "currency":"EUR"
         },
         "status":{  
            "groupId":3,
            "groupName":"DELIVERED",
            "id":5,
            "name":"DELIVERED_TO_HANDSET",
            "description":"Message delivered to handset"
         },
        "channel": "PUSH",
      }
   ]
}
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>
                <channel>SMS</channel>
            <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>
            <messageCount>1</messageCount>
            <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>
        </result>
        <result>
            <bulkId>bafdeb3d-719b-4cce-8762-54d47b40f3c5</bulkId>
            <messageId>07e03aae-fabc-44ad-b1ce-222e14094d70</messageId>
            <channel>PUSH</channel>
            <to>41793026727</to>
            <from>Demo PUSH Application</from>
            <text>Test PUSH message.</text>
            <sentAt>2015-02-23T17:41:11.833+0100</sentAt>
            <doneAt>2015-02-23T17:41:11.843+0100</doneAt>
            <messageCount>1</messageCount>
            <mccmnc>22801</mccmnc>
            <price>
                <pricePerMessage>0</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>
        </result>
    </results>
</smsLogsResponse>

Getting logs with from, to and limit as filters

This request will filter last messages by the rule - all messages sent from from, return last limit messages with destinations to.

Request:

GET /omni/1/logs?from=DemoViberApp&to=41793026727&limit=1 HTTP/1.1
Host: api.infobip.com
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Accept: application/json
GET /omni/1/logs?from=DemoViberApp&to=41793026727&limit=1 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/omni/1/logs?from=DemoViberApp&to=41793026727&limit=1
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "http://api.infobip.com/omni/1/logs?from=DemoViberApp&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_POSTFIELDS => "",
  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/omni/1/logs?from=DemoViberApp&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_body
import http.client

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

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

conn.request("GET", "/omni/1/logs?from=DemoViberApp&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/omni/1/logs?from=DemoViberApp&to=41793026727&limit=1")
  .header("authorization", "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==")
  .header("accept", "application/json")
  .asString();
var client = new RestClient("https://api.infobip.com/omni/1/logs?from=DemoViberApp&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/omni/1/logs?from=DemoViberApp&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":"DemoViberApp",
         "text":"Test Viber message.",
         "sentAt":"2015-02-23T17:42:05.390+0100",
         "doneAt":"2015-02-23T17:42:05.390+0100",
         "messageCount":1,
         "mccmnc":"22801",
         "price":{  
            "pricePerMessage":0.0104,
            "currency":"EUR"
         },
         "status":{  
            "groupId":3,
            "groupName":"DELIVERED",
            "id":5,
            "name":"DELIVERED_TO_HANDSET",
            "description":"Message delivered to handset"
         },
         "channel": "VIBER",
      }
   ]
}
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>
         <channel>VIBER</channel>
         <to>41793026727</to>
         <from>DemoViberApp</from>
         <text>Test Viber message.</text>
         <sentAt>2015-02-23T17:42:05.390+0100</sentAt>
         <doneAt>2015-02-23T17:42:05.390+0100</doneAt>
         <messageCount>1</messageCount>
         <mccmnc>22801</mccmnc>
         <price>
            <pricePerMessage>0.0104</pricePerMessage>
            <currency>EUR</currency>
         </price>
         <status>
            <groupId>3</groupId>
            <groupName>DELIVERED</groupName>
            <id>6</id>
            <name>DELIVERED_TO_HANDSET</name>
            <description>Message delivered to handset</description>
         </status>
        </result>
   </results>
</smsLogsResponse>

Getting logs with multiple bulkIds as filters

This request will return the messages that have bulkId among the specified bulkIds in a filter.

Request:

GET /omni/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
POST /omni/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/xml
curl -X GET 
-H 'Accept: application/json' 
-H 'Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==' 
https://api.infobip.com/omni/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/omni/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_POSTFIELDS => "",
  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/omni/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_body
import http.client

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

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

conn.request("GET", "/omni/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/omni/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/omni/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/omni/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",
         "messageCount":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"
         },
         "channel": "SMS",
      },
      {  
         "bulkId":"1dece649-6c8f-404e-8c6e-c7e073be509a",
         "messageId":"faa48fe6-fe2c-4f36-a43b-a070e2906ecb",
         "to":"41793026727",
         "from":"41793026726",
         "text":"Test Voice Message.",
         "sentAt":"2015-02-23T16:22:37.413+0100",
         "doneAt":"2015-02-23T16:22:37.437+0100",
         "messageCount":1,
         "mccmnc":"22801",
         "price":{  
            "pricePerMessage":0,
            "currency":"EUR"
         },
         "status":{  
            "groupId":2,
            "groupName":"UNDELIVERABLE",
            "id":9,
            "name":"UNDELIVERABLE_NOT_DELIVERED",
            "description":"Message sent not delivered"
         },
        "channel": "VOICE",
      }
   ]
}
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>
         <channel>SMS</channel>
         <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>
         <messageCount>1</messageCount>
         <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>
      </result>
      <result>
         <bulkId>1dece649-6c8f-404e-8c6e-c7e073be509a</bulkId>
         <messageId>faa48fe6-fe2c-4f36-a43b-a070e2906ecb</messageId>
         <channel>VOICE</channel>
         <to>41793026727</to>
         <from>41793026726</from>
         <text>Test Voice message.</text>
         <sentAt>2015-02-23T16:22:37.413+0100</sentAt>
         <doneAt>2015-02-23T16:22:37.437+0100</doneAt>
         <messageCount>1</messageCount>
         <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>
      </result>
   </results>
</smsLogsResponse>

Getting logs with date range and general status as filters

This request will return messages with a status that matches the generalStatus parameter (see Response codes) which were sent between sentSince and the current time.

Request:

GET /omni/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
POST /omni/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/xml
curl -X GET 
-H 'Accept: application/json' 
-H 'Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==' 
https://api.infobip.com/omni/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/omni/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_POSTFIELDS => "",
  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/omni/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_body
import http.client

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

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

conn.request("GET", "/omni/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/omni/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/omni/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/omni/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":"DemoViberApp",
         "text":"Test Viber message.",
         "sentAt":"2016-02-24T10:34:56.463+0100",
         "doneAt":"2016-02-24T10:34:56.480+0100",
         "messageCount":1,
         "mccmnc":"22801",
         "price":{  
            "pricePerMessage":0.0104,
            "currency":"EUR"
         },
         "status":{  
            "groupId":3,
            "groupName":"DELIVERED",
            "id":5,
            "name":"DELIVERED_TO_HANDSET",
            "description":"Message delivered to handset"
         },
        "channel": "VIBER"
      }
   ]
}
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>
         <channel>VIBER</channel>
         <to>41793026727</to>
         <from>DemoViberApp</from>
         <text>Test Viber message.</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.0104</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>
      </result>
   </results>
</smsLogsResponse>

Getting logs with channel as filter

This request will return messages sent over the specified omni channel.

Request:

GET /omni/1/logs?channel=PUSH HTTP/1.1
Host: api.infobip.com
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Accept: application/json
GET /omni/1/logs?channel=PUSH 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/omni/1/logs?channel=PUSH
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "http://api.infobip.com/omni/1/logs?channel=PUSH",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_POSTFIELDS => "",
  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/omni/1/logs?channel=PUSH")

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", "/omni/1/logs?channel=PUSH", headers=headers)

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

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

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/omni/1/logs?channel=PUSH");
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":"Demo PUSH application",
         "text":"PUSH message nr. 1",
         "sentAt":"2015-02-23T17:41:11.833+0100",
         "doneAt":"2015-02-23T17:41:11.843+0100",
         "messageCount":1,
         "mccmnc":"22801",
         "price":{  
            "pricePerMessage":0,
            "currency":"EUR"
         },
         "status":{  
            "groupId":3,
            "groupName":"DELIVERED",
            "id":5,
            "name":"DELIVERED_TO_HANDSET",
            "description":"Message delivered to handset"
         },
        "channel": "PUSH"
      },
      {  
         "bulkId":"1dece649-6c8f-404e-8c6e-c7e073be509a",
         "messageId":"faa48fe6-fe2c-4f36-a43b-a070e2906ecb",
         "to":"41793026727",
         "from":"Demo PUSH application",
         "text":"Test message nr. 2",
         "sentAt":"2015-02-23T16:22:37.413+0100",
         "doneAt":"2015-02-23T16:22:37.437+0100",
         "messageCount":1,
         "mccmnc":"22801",
         "price":{  
            "pricePerMessage":0,
            "currency":"EUR"
         },
         "status":{  
            "groupId":2,
            "groupName":"UNDELIVERABLE",
            "id":9,
            "name":"UNDELIVERABLE_NOT_DELIVERED",
            "description":"Message sent not delivered"
         },
        "channel": "PUSH"
      }
   ]
}
<?xml version="1.0" encoding="UTF-8"?>
<omniLogsResponse>
   <results>
      <bulkId>bafdeb3d-719b-4cce-8762-54d47b40f3c5</bulkId>
      <messageId>07e03aae-fabc-44ad-b1ce-222e14094d70</messageId>
      <channel>PUSH</channel>
      <to>41793026727</to>
      <from>Demo PUSH application</from>
      <text>PUSH message nr. 1</text>
      <sentAt>2015-02-23T17:41:11.833+0100</sentAt>
      <doneAt>2015-02-23T17:41:11.843+0100</doneAt>
      <messageCount>1</messageCount>
      <mccmnc>22801</mccmnc>
      <price>
         <pricePerMessage>0</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>
   </results>
   <results>
      <bulkId>1dece649-6c8f-404e-8c6e-c7e073be509a</bulkId>
      <messageId>faa48fe6-fe2c-4f36-a43b-a070e2906ecb</messageId>
      <channel>PUSH</channel>
      <to>41793026727</to>
      <from>Demo PUSH application</from>
      <text>PUSH message nr. 2</text>
      <sentAt>2015-02-23T16:22:37.413+0100</sentAt>
      <doneAt>2015-02-23T16:22:37.437+0100</doneAt>
      <messageCount>1</messageCount>
      <mccmnc>22801</mccmnc>
      <price>
         <pricePerMessage>0</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>
   </results>
</omniLogsResponse>