curl --request POST \
--url 'https://api.flashcat.cloud/safari/session/list?app_key=' \
--header 'Content-Type: application/json' \
--data '
{
"app_name": "ai-sre",
"limit": 2,
"orderby": "updated_at",
"scope": "all"
}
'import requests
url = "https://api.flashcat.cloud/safari/session/list?app_key="
payload = {
"app_name": "ai-sre",
"limit": 2,
"orderby": "updated_at",
"scope": "all"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({app_name: 'ai-sre', limit: 2, orderby: 'updated_at', scope: 'all'})
};
fetch('https://api.flashcat.cloud/safari/session/list?app_key=', 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.flashcat.cloud/safari/session/list?app_key=",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'app_name' => 'ai-sre',
'limit' => 2,
'orderby' => 'updated_at',
'scope' => 'all'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.flashcat.cloud/safari/session/list?app_key="
payload := strings.NewReader("{\n \"app_name\": \"ai-sre\",\n \"limit\": 2,\n \"orderby\": \"updated_at\",\n \"scope\": \"all\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.flashcat.cloud/safari/session/list?app_key=")
.header("Content-Type", "application/json")
.body("{\n \"app_name\": \"ai-sre\",\n \"limit\": 2,\n \"orderby\": \"updated_at\",\n \"scope\": \"all\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.flashcat.cloud/safari/session/list?app_key=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"app_name\": \"ai-sre\",\n \"limit\": 2,\n \"orderby\": \"updated_at\",\n \"scope\": \"all\"\n}"
response = http.request(request)
puts response.read_body{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"data": {
"total": 988,
"sessions": [
{
"session_id": "sess_f8oDvqiG64uur6sBNsTc4u",
"session_name": "Investigate cloud-assistant first heartbeat",
"app_name": "ai-sre",
"entry_kind": "web",
"person_id": "3790925372131",
"team_id": 0,
"is_mine": false,
"can_manage": true,
"status": "enabled",
"incognito": false,
"created_at": 1780367971228,
"updated_at": 1780367993457,
"token_usage": {
"input_tokens": 14948,
"cached_tokens": 11520,
"output_tokens": 888,
"reasoning_tokens": 351
},
"current_context_tokens": 14948,
"context_window": 0,
"archived_at": 0,
"pinned_at": 0,
"last_event_at": 1780367992649,
"is_running": false,
"has_unread": true
}
]
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "InvalidParameter",
"message": "The specified parameter skill_id is not valid."
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "Unauthorized",
"message": "You are unauthorized."
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "RequestTooFrequently",
"message": "Request too frequently."
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "InternalError",
"message": "We encountered an internal error, and it has been reported. Please try again later."
}
}List sessions
List agent sessions visible to the caller, filtered by app, surface, archive status, and team.
curl --request POST \
--url 'https://api.flashcat.cloud/safari/session/list?app_key=' \
--header 'Content-Type: application/json' \
--data '
{
"app_name": "ai-sre",
"limit": 2,
"orderby": "updated_at",
"scope": "all"
}
'import requests
url = "https://api.flashcat.cloud/safari/session/list?app_key="
payload = {
"app_name": "ai-sre",
"limit": 2,
"orderby": "updated_at",
"scope": "all"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({app_name: 'ai-sre', limit: 2, orderby: 'updated_at', scope: 'all'})
};
fetch('https://api.flashcat.cloud/safari/session/list?app_key=', 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.flashcat.cloud/safari/session/list?app_key=",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'app_name' => 'ai-sre',
'limit' => 2,
'orderby' => 'updated_at',
'scope' => 'all'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.flashcat.cloud/safari/session/list?app_key="
payload := strings.NewReader("{\n \"app_name\": \"ai-sre\",\n \"limit\": 2,\n \"orderby\": \"updated_at\",\n \"scope\": \"all\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.flashcat.cloud/safari/session/list?app_key=")
.header("Content-Type", "application/json")
.body("{\n \"app_name\": \"ai-sre\",\n \"limit\": 2,\n \"orderby\": \"updated_at\",\n \"scope\": \"all\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.flashcat.cloud/safari/session/list?app_key=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"app_name\": \"ai-sre\",\n \"limit\": 2,\n \"orderby\": \"updated_at\",\n \"scope\": \"all\"\n}"
response = http.request(request)
puts response.read_body{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"data": {
"total": 988,
"sessions": [
{
"session_id": "sess_f8oDvqiG64uur6sBNsTc4u",
"session_name": "Investigate cloud-assistant first heartbeat",
"app_name": "ai-sre",
"entry_kind": "web",
"person_id": "3790925372131",
"team_id": 0,
"is_mine": false,
"can_manage": true,
"status": "enabled",
"incognito": false,
"created_at": 1780367971228,
"updated_at": 1780367993457,
"token_usage": {
"input_tokens": 14948,
"cached_tokens": 11520,
"output_tokens": 888,
"reasoning_tokens": 351
},
"current_context_tokens": 14948,
"context_window": 0,
"archived_at": 0,
"pinned_at": 0,
"last_event_at": 1780367992649,
"is_running": false,
"has_unread": true
}
]
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "InvalidParameter",
"message": "The specified parameter skill_id is not valid."
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "Unauthorized",
"message": "You are unauthorized."
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "RequestTooFrequently",
"message": "Request too frequently."
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "InternalError",
"message": "We encountered an internal error, and it has been reported. Please try again later."
}
}Restrictions
| Aspect | Value |
|---|---|
| Rate limits | 1,000 requests/minute; 50 requests/second per account |
| Permissions | None — any valid app_key can call this operation |
Usage
- Pagination uses
p/limit(max 100);scopedefaults toall(own + member-of-team rows). is_runningreflects the live run-set;has_unreadis computed per calling user.
Authorizations
App key issued from the Flashduty console. Required on every public API call. Keep it secret — it grants the same access as the owning account.
Body
Filters for listing agent sessions. Reads are scoped to the resolved account and the caller's visible teams.
Agent app whose sessions to list.
ask-ai, support, support-website, support-flashcat, ai-sre, template-assistant, swe Page number, 1-based.
x >= 1Page size, 1–100.
1 <= x <= 100Sort field.
created_at, updated_at Ascending order when true; applies only when orderby is set.
Include subagent-dispatched sessions in the list.
Filter by session-name keyword.
64Visibility scope: all (own + member-of-team rows, default), personal, or team.
all, personal, team Optional explicit team filter; intersects with scope.
Restrict to sessions produced by these surfaces; empty returns every kind.
web, im, api, automation Archive bucket: active (default) returns un-archived, archived returns archived, all returns both.
active, archived, all Response
Success
Standard response envelope used by every Flashduty public API. On success data contains the endpoint-specific payload and error is absent. On failure error is present and data is absent. request_id is always present and is also mirrored in the Flashcat-Request-Id response header.
Unique ID for this request. Mirrored in the Flashcat-Request-Id header. Include it when reporting issues.
"01HK8XQE3Z7JM2NTFQ5YJ8P9R4"
Error payload inside the response envelope. Present only on non-2xx responses.
Show child attributes
Show child attributes
A page of agent sessions.
Show child attributes
Show child attributes
Was this page helpful?