Call Logs API
- NEW! - Interactive API docs, now live!
Visit api-docs.plumvoice.com to read Plum API documentation, build and test requests in our interactive API sandbox, review the responses, and share it all with your team.
IMPORTANT: Logging is not available on demo accounts.
Demo accounts provide only limited access to DEV's product features. You'll need a standard account for full access to logging and more.
Using a demo account? Contact us if interested in upgrading to a standard account.
Overview
Plum offers four services for its Call Log REST API:
Please note that each of these Call Log REST APIs use HTTP AUTH for authentication. The username/password to be used for authentication are the same as your standard Plum DEV login credentials.
All of the Call Log REST APIs have the same return format that includes a status (success or failure), error message and the result data.
Sample Responses
{
"status":"success",
"error":"",
"result": {
// SAMPLE RESULT DATA
}
}
Recent Call Logs
GET
https://hosting.plumvoice.com/ws/calls/logs/{start_timestamp}/{end_timstamp}
Returns a filtered list of recent calls for which logs exist. Call logs are only retained for the previous 5 days.
Path Parameters
start_timestamp
integer
UNIX timestamp filters the list of call logs for all calls starting on or after this timestamp Note: The start_timestamp must be within the last year.
end_timestamp
integer
UNIX timestamp filters the list of call logs for all calls starting before this timestamp Note: The end_timestamp must be after the start_timestamp.
Query Parameters
number
string
Filters the list of call logs for only calls to this phone number.
offset
integer
Number of call logs to skip before returning results. Default: 0
limit
integer
Maximum number of call logs to return. Default: 1000, Minimum: 1, Maximum: 10000
Headers
content-type
string
application/x-www-form-urlencoded
accept
string
application/json (default), application/xml
{
"status":"success",
"error":"",
"result":{
"total_logs":"1234",
"logs":[
{
"log_id":"421752831",
"session_id":"400050;000;1510159646",
"dest":"6177123000",
"type":"inbound",
"src":"2125551234",
"start":"1510159657",
"end":"1510159689"
},
{
"log_id":"421627729",
"session_id":"300025;000;1510142108",
"dest":"6177123000",
"type":"inbound",
"src":"7185551234",
"start":"1510142148",
"end":"1510142215"
}
]
}
}
Sample Code
The following code sample is written in PHP but any language that can connect to a JSON or XML REST service can utilize this API.
<?php
header("Content-type: text/xml");
// initialize curl
$ch = curl_init();
// set necessary curl options
curl_setopt($ch, CURLOPT_URL, "https://hosting.plumvoice.com/ws/calls/logs/1509681600/1510203600?number=6177123000&offset=0&limit=2");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/xml'));
curl_setopt($ch, CURLOPT_USERPWD, "username:password");
echo(curl_exec($ch));
curl_close($ch);
?>
Call Log
GET
https://hosting.plumvoice.com/ws/calls/log/{log_id}
Returns a recent call log using a log_id
returned in the calls/logs response. To fetch all logs for your account you should call calls/logs to get the list of calls then loop through those results calling calls/log/{log_id}
to fetch each individual call log.
Path Parameters
log_id
integer
The ID of the log we are fetching. The log_id value is provided in the response from the calls?logs REST service.
Headers
content-type
string
application/x-www-form-urlencoded
accept
string
application/json (default), application/xml
{
"status":"success",
"error":"",
"result":{
"dest":"6177123000",
"src":"2125551234",
"type":"inbound",
"timestamp":"1510142148",
"location":"Boston",
"log":"...log data string..."
}
}
Sample Code
The following code sample is written in PHP but any language that can connect to a JSON or XML REST service can utilize this API.
<?php
header("Content-type: text/xml");
// initialize curl
$ch = curl_init();
// set necessary curl options
curl_setopt($ch, CURLOPT_URL, "https://hosting.plumvoice.com/ws/calls/log/421627729");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/xml'));
curl_setopt($ch, CURLOPT_USERPWD, "username:password");
echo(curl_exec($ch));
curl_close($ch);
?>
Session Logs
GET
https://hosting.plumvoice.com/ws/calls/sessions/{start_timestamp}/{end_timstamp}
Returns a filtered list of session logs. Unlike call logs, session logs are stored for up to 1 year.
Path Parameters
start_timestamp
integer
UNIX timestamp filters the list of call logs for all calls starting on or after this timestamp Note: The start_timestamp must be within the last year.
end_timestamp
integer
UNIX timestamp filters the list of call logs for all calls starting before this timestamp Note: The end_timestamp must be after the start_timestamp.
Query Parameters
number
string
Filters the list of call logs for only calls to this phone number.
offset
integer
Number of call logs to skip before returning results. Default: 0
limit
integer
Maximum number of call logs to return. Default: 1000, Minimum: 1, Maximum: 10000
Headers
content-type
string
application/x-www-form-urlencoded
accept
string
application/json (default), application/xml
{
"status":"success",
"error":"",
"result":{
"total_sessions":"8",
"sessions":[
"outbound 12125551234 26 [03\/Nov\/2017:00:10:42 -0500] [email protected] 300024;026;1509673023 1509682242 1509682255 00:00:13",
"inbound 7185551234 3 [03\/Nov\/2017:14:38:30 -0500] 6177123000 200035;003;1509734279 1509734310 1509734339 00:00:29",
"inbound 6175551234 1 [03\/Nov\/2017:18:11:07 -0500] 8009957586 400050;001;1509747051 1509747067 1509747180 00:01:53"
]
}
}
Sample Code
The following code sample is written in PHP but any language that can connecting to a JSON or XML REST service can utilize this API.
<?php
header("Content-type: text/xml");
// initialize curl
$ch = curl_init();
// set necessary curl options
curl_setopt($ch, CURLOPT_URL, "https://hosting.plumvoice.com/ws/calls/sessions/1509681600/1510203600?number=6177123000&offset=0&limit=2");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/xml'));
curl_setopt($ch, CURLOPT_USERPWD, "username:password");
echo(curl_exec($ch));
curl_close($ch);
?>
Error Logs
GET
https://hosting.plumvoice.com/ws/calls/errors/{start_timestamp}/{end_timstamp}
Returns a filtered list of error logs. Error logs are stored for up to 1 year.
Path Parameters
start_timestamp
integer
UNIX timestamp filters the list of call logs for all calls starting on or after this timestamp Note: The start_timestamp must be within the last year.
end_timestamp
integer
UNIX timestamp filters the list of call logs for all calls starting before this timestamp Note: The end_timestamp must be after the start_timestamp.
Query Parameters
number
string
Filters the list of call logs for only calls to this phone number.
offset
integer
Number of call logs to skip before returning results. Default: 0
limit
integer
Maximum number of call logs to return. Default: 1000, Minimum: 1, Maximum: 10000
Headers
content-type
string
application/x-www-form-urlencoded
accept
string
application/json (default), application/xml
{
"status":"success",
"error":"",
"result":{
"total_errors":"3",
"errors":[
"error 2125551234 6 [17\/Nov\/2016:14:40:46 -0400] 6177123000 100025;006;1479411625 Max Disconnect Count Exceeded",
"error 7185551234 1 [20\/Nov\/2016:21:28:46 -0400] 8009957586 100037;001;1479692314 errno: 210 message Maximum loop count exceeded",
"error 6175551234 0 [09\/Jan\/2017:08:33:31 -0400] 8009957586 000020;000;1483968637 ReferenceError: d is not defined line 1"
]
}
}
Sample Code
The following code sample is written in PHP but any language that can connect to a JSON or XML REST service can utilize this API.
<?php
header("Content-type: text/xml");
// initialize curl
$ch = curl_init();
// set necessary curl options
curl_setopt($ch, CURLOPT_URL, "https://hosting.plumvoice.com/ws/calls/errors/1509681600/1510203600?number=6177123000&offset=0&limit=2");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/xml'));
curl_setopt($ch, CURLOPT_USERPWD, "username:password");
echo(curl_exec($ch));
curl_close($ch);
?>
Last updated