# Get A Detailed Call Log

{% hint style="success" %}
**-** **NEW! -  Interactive API docs, now live!**

Visit [api-docs.plumvoice.com](https://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.
{% endhint %}

{% hint style="warning" %}
**Only for the last 5 days:**

Detailed call logs are only available for calls made within the last 5 days.
{% endhint %}

## Getting a Call Log

<mark style="color:blue;">`GET`</mark> `https://fuse.plumvoice.com/api/call/{session_id}`

Retrieve a call log for the defined call.

#### Path Parameters

| Name        | Type   | Description       |
| ----------- | ------ | ----------------- |
| session\_id | string | Session ID number |

{% tabs %}
{% tab title="200 Example: Call was queued and then canceled." %}
{% tabs %}
{% tab title="JSON" %}

```javascript
[
  {
    "event":{
      "line":"Executing application \"email test\" version \"0.2\"",
      "data":{
        "module_type":"start",
        "result_variable":"start"
      }
    },
    "class":"info",
    "timestamp":1529552692
  },
  {
    "event":{
      "line":"Sending email",
      "data":{
        "type":"static",
        "has_audio":false,
        "revision_id":"52691",
        "prompt_id_type":"module",
        "prompt_id":"845617",
        "language":"en-US",
        "module_type":"prompt",
        "result_variable":"var_0"
      }
    },
    "class":"prompt",
    "timestamp":1529552692
  },
  {
    "event":{
      "line":"Sending",
      "data":{
        "module_type":"email",
        "result_variable":"var_1"
      }
    },
    "class":"info",
    "timestamp":1529552694
  },
  {
    "event":{
      "line":"Sent",
      "data":{
        "to":"tests@plumgroup.com",
        "subject":"This is the subject",
        "body":"This is the body.",
        "module_type":"email",
        "result_variable":"var_1"
      }
    },
    "class":"debug",
    "timestamp":1529552694
  },
  {
    "event":{
      "line":"message sent! goodbye!",
      "data":{
        "type":"static",
        "has_audio":false,
        "revision_id":"52691",
        "prompt_id_type":"module",
        "prompt_id":"845618",
        "language":"en-US",
        "module_type":"prompt",
        "result_variable":"var_2"
      }
    },
    "class":"prompt",
    "timestamp":1529552694
  },
  {
    "event":{
      "line":"Exiting application",
      "data":{
        "module_type":"exit",
        "result_variable":"hangup"
      }
    },
    "class":"info",
    "timestamp":1529552696
  },
  {
    "event":{
      "line":"Disconnecting call",
      "data":{
        "module_type":"exit",
        "result_variable":"hangup"
      }
    },
    "class":"event",
    "timestamp":1529552697
  }
]
```

{% endtab %}

{% tab title="XML" %}

```markup
<?xml version="1.0"?>
<result>
  <item>
    <event>
      <line>Executing application "email test" version "0.2"</line>
      <data>
        <module_type>start</module_type>
        <result_variable>start</result_variable>
      </data>
    </event>
    <class>info</class>
    <timestamp>1529552692</timestamp>
  </item>
  <item>
    <event>
      <line>Sending email</line>
      <data>
        <type>static</type>
        <has_audio>false</has_audio>
        <revision_id>52691</revision_id>
        <prompt_id_type>module</prompt_id_type>
        <prompt_id>845617</prompt_id>
        <language>en-US</language>
        <module_type>prompt</module_type>
        <result_variable>var_0</result_variable>
      </data>
    </event>
    <class>prompt</class>
    <timestamp>1529552692</timestamp>
  </item>
  <item>
    <event>
      <line>Sending</line>
      <data>
        <module_type>email</module_type>
        <result_variable>var_1</result_variable>
      </data>
    </event>
    <class>info</class>
    <timestamp>1529552694</timestamp>
  </item>
  <item>
    <event>
      <line>Sent</line>
      <data>
        <to>test@plumgroup.com</to>
        <subject>This is the subject</subject>
        <body>This is the body.</body>
        <module_type>email</module_type>
        <result_variable>var_1</result_variable>
      </data>
    </event>
    <class>debug</class>
    <timestamp>1529552694</timestamp>
  </item>
  <item>
    <event>
      <line>message sent! goodbye!</line>
      <data>
        <type>static</type>
        <has_audio>false</has_audio>
        <revision_id>52691</revision_id>
        <prompt_id_type>module</prompt_id_type>
        <prompt_id>845618</prompt_id>
        <language>en-US</language>
        <module_type>prompt</module_type>
        <result_variable>var_2</result_variable>
      </data>
    </event>
    <class>prompt</class>
    <timestamp>1529552694</timestamp>
  </item>
  <item>
    <event>
      <line>Exiting application</line>
      <data>
        <module_type>exit</module_type>
        <result_variable>hangup</result_variable>
      </data>
    </event>
    <class>info</class>
    <timestamp>1529552696</timestamp>
  </item>
  <item>
    <event>
      <line>Disconnecting call</line>
      <data>
        <module_type>exit</module_type>
        <result_variable>hangup</result_variable>
      </data>
    </event>
    <class>event</class>
    <timestamp>1529552697</timestamp>
  </item>
</result>
```

{% endtab %}
{% endtabs %}
{% endtab %}

{% tab title="404 Example: Session ID not found" %}
{% tabs %}
{% tab title="JSON" %}

```javascript
{"error": "No call log was found."}
```

{% endtab %}

{% tab title="XML" %}

```markup
<?xml version="1.0"?>
<result>
  <error>No call log was found.</error>
</result>
```

{% endtab %}
{% endtabs %}
{% endtab %}
{% endtabs %}

### **Possible Response Codes**

* **200**: success
* **401**: authentication headers invalid or the account is inactive
* **404**: call log not found
* **405**: invalid HTTP method supplied (only GET allowed)
* **500**: database error

### Response Data Definitions

The return structure contains an array of log entries

#### Single Call Log Entry

| Name      | Data Type | Value                                                           |
| --------- | --------- | --------------------------------------------------------------- |
| event     | object    | The details for this entry.                                     |
| class     | string    | The class for this entry (info, event, debug, prompt or error). |
| timestamp | int       | UNIX timestamp for this entry.                                  |

#### Single Call Event

| Name | Data Type | Value                               |
| ---- | --------- | ----------------------------------- |
| line | string    | The log event string                |
| data | object    | Additional details about this event |

Call log data structure consistency is not guaranteed and can change at any time. Currently, there are two values that will always appear in the event data: module\_type and result\_variable. All other values are subject to developer discovery and could change at any time:

| Name             | Data Type | Value                                                                                            |
| ---------------- | --------- | ------------------------------------------------------------------------------------------------ |
| module\_type     | string    | The type name for the module that was executed, this will determine the other values in the data |
| result\_variable | string    | The variable name provided for this module in the callflow editor                                |

\
\
The following will be returned if the call was made more than 5 days ago

```javascript
{
    "error": "There are no call log details available for this call."
}
```

**Sample Code**

This sample PHP code makes a request to this method:

```php
<?php
// account and application settings
$email = '<your_email_address>';
$developer_key = '<your_developer_key>';
$session_id = '300060;001;1529552581'; // returned by a previous call to https://fuse.plumvoice.com/api/calls

// build the URL
$url = 'https://fuse.plumvoice.com/api/call/'.urlencode($session_id);

$ch = curl_init();
curl_setopt($ch, CURLOPT_USERPWD, $email.':'.$developer_key);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Accept: application/json"));
$result = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
var_dump($result);
var_dump($http_code);
```
