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

Name
Type
Description

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

Name
Type
Description

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

Name
Type
Description

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

Name
Type
Description

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

Name
Type
Description

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

Name
Type
Description

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

Name
Type
Description

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

Name
Type
Description

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

Name
Type
Description

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

Name
Type
Description

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

Name
Type
Description

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