List events
Events are the queryable history of significant call and engagement activity recognized by Peerlogic. Use this endpoint to reconcile webhook-driven workflows, build operational queues, or retrieve related call and opportunity context after receiving a notification.
Use subscriptions when your integration needs activity pushed to it as it occurs. Use this event collection when your integration needs to search, filter, or revisit recorded activity. practice_id is required and scopes the results to a practice your account can access.
An event can contain related call and opportunity summaries. Treat their identifiers as links to the corresponding API resources when you need the latest or more detailed representation.
curl --request GET \
--url https://api.prod.peerlogic.com/api/events/ \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.prod.peerlogic.com/api/events/"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.prod.peerlogic.com/api/events/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.prod.peerlogic.com/api/events/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.prod.peerlogic.com/api/events/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.prod.peerlogic.com/api/events/")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.prod.peerlogic.com/api/events/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"id": "<EVENT_ID>",
"created_at": "2026-09-15T19:18:09Z",
"modified_at": "2026-09-15T19:18:09Z",
"trigger_type": "missed_call",
"is_significant": true,
"is_followed_up": false,
"followed_up_at": null,
"is_open": true,
"significant_event_id": "<EVENT_ID>",
"call": {
"id": "<CALL_ID>",
"call_direction": "inbound",
"call_connection": "missed",
"call_start_time": "2026-09-15T19:17:31Z",
"call_end_time": "2026-09-15T19:18:02Z",
"caller_id": "+14805550123",
"callee_id": "+14805550100",
"went_to_voicemail": true,
"checked_voicemail": false,
"patients": []
},
"opportunity": null,
"first_follow_up_call": null
}
]
}{
"practice_id": "This parameter is required"
}{
"detail": "'Authorization' header is required"
}Authorizations
Bearer access token issued by Peerlogic.
Query Parameters
Return a specific event ID.
Return events associated with a specific call ID.
Legacy practice filter. Use practice_id for new integrations.
Return events for inbound, outbound, or internal calls.
inbound, outbound, internal Return events for missed or connected calls.
missed, connected Set to true or false to filter by whether the call reached voicemail.
Set to true or false to filter by whether the voicemail was checked.
Return events produced by this trigger type.
missed_call, missed_call_existing_patient, missed_call_cancellation_reschedule, missed_call_current_appointment, missed_call_non_business, missed_call_business, high_value_missed_call, connected_call, connected_call_existing_patient, connected_call_new_patient, connected_call_high_value, lost_opportunity, lost_opportunity_new_patient, lost_opportunity_existing_patient, lost_opportunity_high_value, aimee_escalation, aimee_booked, aimee_reschedule, aimee_cancellation, aimee_inbound_message, extracted_opportunity, care_task_handed_off, voip_integration_disconnect, ehr_integration_disconnect, fax_inbound_received, fax_outbound_failed Set to true or false to filter by whether Peerlogic marked the event as significant.
Limit results by call start time using the supported date or date-time range syntax.
Set to true or false to filter by whether the related opportunity has been followed up.
Set to true or false to filter by whether the related opportunity remains open.
Filter by the outcome status of the related opportunity.
success, failure, omitted Required. Return events for this practice ID.
Search caller, callee, contact, and patient names associated with the event.
Order results by a supported event field. Prefix a field with - for descending order.
Page number to return.
Maximum number of events to return on one page.
Response
Successful response for list events.
Was this page helpful?
curl --request GET \
--url https://api.prod.peerlogic.com/api/events/ \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.prod.peerlogic.com/api/events/"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.prod.peerlogic.com/api/events/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.prod.peerlogic.com/api/events/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.prod.peerlogic.com/api/events/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.prod.peerlogic.com/api/events/")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.prod.peerlogic.com/api/events/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"id": "<EVENT_ID>",
"created_at": "2026-09-15T19:18:09Z",
"modified_at": "2026-09-15T19:18:09Z",
"trigger_type": "missed_call",
"is_significant": true,
"is_followed_up": false,
"followed_up_at": null,
"is_open": true,
"significant_event_id": "<EVENT_ID>",
"call": {
"id": "<CALL_ID>",
"call_direction": "inbound",
"call_connection": "missed",
"call_start_time": "2026-09-15T19:17:31Z",
"call_end_time": "2026-09-15T19:18:02Z",
"caller_id": "+14805550123",
"callee_id": "+14805550100",
"went_to_voicemail": true,
"checked_voicemail": false,
"patients": []
},
"opportunity": null,
"first_follow_up_call": null
}
]
}{
"practice_id": "This parameter is required"
}{
"detail": "'Authorization' header is required"
}