curl --request GET \
--url https://api.assistable.ai/v3/alerts \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.assistable.ai/v3/alerts"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.assistable.ai/v3/alerts', 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.assistable.ai/v3/alerts",
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.assistable.ai/v3/alerts"
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.assistable.ai/v3/alerts")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.assistable.ai/v3/alerts")
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{
"data": [
{
"id": "<string>",
"category": "COMPLIANCE",
"status": "OPEN",
"severity": "LOW",
"triggered": true,
"assistantId": "<string>",
"subAccountId": "<string>",
"monitorRuleId": "<string>",
"ruleName": "<string>",
"callId": "<string>",
"conversationId": "<string>",
"contact": {
"id": "<string>",
"name": "<string>",
"email": "<string>",
"phone": "<string>"
},
"reason": "<string>",
"evalTimeMs": 0,
"transcript": "<string>",
"extractedData": null,
"toolCalls": null,
"evaluatorOutput": null,
"resolutionNote": "<string>",
"resolvedAt": "<string>",
"createdAt": "<string>"
}
],
"request_id": "<string>",
"error": null
}{
"error": {
"code": "<string>",
"message": "<string>"
},
"request_id": "<string>",
"data": null
}{
"error": {
"code": "<string>",
"message": "<string>"
},
"request_id": "<string>",
"data": null
}{
"error": {
"code": "<string>",
"message": "<string>"
},
"request_id": "<string>",
"data": null
}{
"error": {
"code": "<string>",
"message": "<string>"
},
"request_id": "<string>",
"data": null
}{
"error": {
"code": "<string>",
"message": "<string>"
},
"request_id": "<string>",
"data": null
}List alerts
Requires scope alerts:list.
curl --request GET \
--url https://api.assistable.ai/v3/alerts \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.assistable.ai/v3/alerts"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.assistable.ai/v3/alerts', 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.assistable.ai/v3/alerts",
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.assistable.ai/v3/alerts"
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.assistable.ai/v3/alerts")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.assistable.ai/v3/alerts")
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{
"data": [
{
"id": "<string>",
"category": "COMPLIANCE",
"status": "OPEN",
"severity": "LOW",
"triggered": true,
"assistantId": "<string>",
"subAccountId": "<string>",
"monitorRuleId": "<string>",
"ruleName": "<string>",
"callId": "<string>",
"conversationId": "<string>",
"contact": {
"id": "<string>",
"name": "<string>",
"email": "<string>",
"phone": "<string>"
},
"reason": "<string>",
"evalTimeMs": 0,
"transcript": "<string>",
"extractedData": null,
"toolCalls": null,
"evaluatorOutput": null,
"resolutionNote": "<string>",
"resolvedAt": "<string>",
"createdAt": "<string>"
}
],
"request_id": "<string>",
"error": null
}{
"error": {
"code": "<string>",
"message": "<string>"
},
"request_id": "<string>",
"data": null
}{
"error": {
"code": "<string>",
"message": "<string>"
},
"request_id": "<string>",
"data": null
}{
"error": {
"code": "<string>",
"message": "<string>"
},
"request_id": "<string>",
"data": null
}{
"error": {
"code": "<string>",
"message": "<string>"
},
"request_id": "<string>",
"data": null
}{
"error": {
"code": "<string>",
"message": "<string>"
},
"request_id": "<string>",
"data": null
}Authorizations
Your v3 API key, e.g. ask_live_…
Headers
Target subaccount for the request. Required unless the API key is authorized for exactly one subaccount (then it defaults to that one). Omitting it on a multi-subaccount key returns 400 subaccount_required.
Query Parameters
Max rows to return (1–100, default 50).
1 <= x <= 100Filter by resolution status.
OPEN, ACKNOWLEDGED, RESOLVED, DISMISSED Filter by assistant id.
Filter by the rule that produced the alert.
Filter by local contact id (observations created after ASSIST-420).
Filter by GoHighLevel contact id (observations created after ASSIST-420).
Alert category: COMPLIANCE, QUALITY, SAFETY, ESCALATION, or CUSTOM.
COMPLIANCE, QUALITY, SAFETY, ESCALATION, CUSTOM Severity: LOW, MEDIUM, HIGH, or CRITICAL.
LOW, MEDIUM, HIGH, CRITICAL Filter by whether the rule actually triggered. Defaults to true (only triggered alerts).
ISO-8601 lower bound on creation time (inclusive).
ISO-8601 upper bound on creation time (inclusive).
