Get agent logs
curl --request GET \
--url https://api.pipecat.daily.co/v1/agents/{agentName}/logs \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.pipecat.daily.co/v1/agents/{agentName}/logs"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.pipecat.daily.co/v1/agents/{agentName}/logs', 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.pipecat.daily.co/v1/agents/{agentName}/logs",
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.pipecat.daily.co/v1/agents/{agentName}/logs"
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.pipecat.daily.co/v1/agents/{agentName}/logs")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.pipecat.daily.co/v1/agents/{agentName}/logs")
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{
"total": {
"value": 79,
"relation": "eq"
},
"logs": [
{
"log": "INFO: Finished server process [1]",
"timestamp": "2025-04-18T20:34:17.153744602Z"
},
{
"log": "INFO: Application shutdown complete.",
"timestamp": "2025-04-18T20:34:17.153706059Z"
},
{
"log": "INFO: Waiting for application shutdown.",
"timestamp": "2025-04-18T20:34:17.153611029Z"
},
{
"log": "INFO: Uvicorn running on http://0.0.0.0:8080 (Press CTRL+C to quit)",
"timestamp": "2025-04-18T20:32:42.246099974Z"
},
{
"log": "INFO: Application startup complete.",
"timestamp": "2025-04-18T20:32:42.245760327Z"
}
]
}{
"error": "Invalid timestamp format",
"code": "GENERIC_BAD_REQUEST"
}{
"error": "Not found",
"code": "NOT_FOUND"
}{
"error": "Internal server error",
"code": "INTERNAL_SERVER_ERROR"
}Agents
Retrieve Agent Logs
Get execution logs for an agent with filtering and pagination options.
GET
/
agents
/
{agentName}
/
logs
Get agent logs
curl --request GET \
--url https://api.pipecat.daily.co/v1/agents/{agentName}/logs \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.pipecat.daily.co/v1/agents/{agentName}/logs"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.pipecat.daily.co/v1/agents/{agentName}/logs', 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.pipecat.daily.co/v1/agents/{agentName}/logs",
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.pipecat.daily.co/v1/agents/{agentName}/logs"
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.pipecat.daily.co/v1/agents/{agentName}/logs")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.pipecat.daily.co/v1/agents/{agentName}/logs")
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{
"total": {
"value": 79,
"relation": "eq"
},
"logs": [
{
"log": "INFO: Finished server process [1]",
"timestamp": "2025-04-18T20:34:17.153744602Z"
},
{
"log": "INFO: Application shutdown complete.",
"timestamp": "2025-04-18T20:34:17.153706059Z"
},
{
"log": "INFO: Waiting for application shutdown.",
"timestamp": "2025-04-18T20:34:17.153611029Z"
},
{
"log": "INFO: Uvicorn running on http://0.0.0.0:8080 (Press CTRL+C to quit)",
"timestamp": "2025-04-18T20:32:42.246099974Z"
},
{
"log": "INFO: Application startup complete.",
"timestamp": "2025-04-18T20:32:42.245760327Z"
}
]
}{
"error": "Invalid timestamp format",
"code": "GENERIC_BAD_REQUEST"
}{
"error": "Not found",
"code": "NOT_FOUND"
}{
"error": "Internal server error",
"code": "INTERNAL_SERVER_ERROR"
}Authorizations
Authentication requires a Pipecat Cloud Private API token.
Generate a Private API key from your Dashboard (Settings > API Keys > Private > Create key) and include it as a Bearer token in the Authorization header.
Path Parameters
Name of the agent to retrieve logs for
Query Parameters
Maximum number of log entries to return
Number of log entries to skip
Filter logs to a specific deployment ID
Filter logs to a specific session ID
Free-text search query to filter logs
Sort order for logs
Available options:
asc, desc Filter logs to those after this Unix timestamp
Filter logs to those before this Unix timestamp