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

NameTypeDescription

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

NameTypeDescription

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

NameTypeDescription

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

NameTypeDescription

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

NameTypeDescription

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

NameTypeDescription

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

NameTypeDescription

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

NameTypeDescription

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] test@login.com 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

NameTypeDescription

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

NameTypeDescription

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

NameTypeDescription

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