Send GET request to session
curl --request GET \
--url https://api.pipecat.daily.co/v1/public/{serviceName}/sessions/{sessionId}/{path} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.pipecat.daily.co/v1/public/{serviceName}/sessions/{sessionId}/{path}"
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/public/{serviceName}/sessions/{sessionId}/{path}', 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/public/{serviceName}/sessions/{sessionId}/{path}",
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/public/{serviceName}/sessions/{sessionId}/{path}"
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/public/{serviceName}/sessions/{sessionId}/{path}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.pipecat.daily.co/v1/public/{serviceName}/sessions/{sessionId}/{path}")
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{
"status": "active",
"message_count": 5,
"user_name": "Alice"
}{
"error": "Attempt to start agent when deployment is not in ready state. Is your image pull secret valid?",
"code": "PCC-1001"
}{
"error": "Unauthorized / token expired",
"code": "401"
}{
"error": "Service not found",
"code": "404"
}{
"error": "Internal server error. Please check logs for more information or contact support.",
"code": "500"
}Agents
Session API
Send HTTP requests directly to your running Pipecat Cloud agent sessions.
GET
/
{serviceName}
/
sessions
/
{sessionId}
/
{path}
Send GET request to session
curl --request GET \
--url https://api.pipecat.daily.co/v1/public/{serviceName}/sessions/{sessionId}/{path} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.pipecat.daily.co/v1/public/{serviceName}/sessions/{sessionId}/{path}"
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/public/{serviceName}/sessions/{sessionId}/{path}', 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/public/{serviceName}/sessions/{sessionId}/{path}",
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/public/{serviceName}/sessions/{sessionId}/{path}"
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/public/{serviceName}/sessions/{sessionId}/{path}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.pipecat.daily.co/v1/public/{serviceName}/sessions/{sessionId}/{path}")
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{
"status": "active",
"message_count": 5,
"user_name": "Alice"
}{
"error": "Attempt to start agent when deployment is not in ready state. Is your image pull secret valid?",
"code": "PCC-1001"
}{
"error": "Unauthorized / token expired",
"code": "401"
}{
"error": "Service not found",
"code": "404"
}{
"error": "Internal server error. Please check logs for more information or contact support.",
"code": "500"
}Send HTTP requests to endpoints defined in your running bot. Supports
GET, POST, PUT, PATCH, DELETE, OPTIONS, and HEAD methods.
Request Headers
Headers are forwarded to your bot with these exceptions:host- Excludedcontent-length- Excludedauthorization- Excluded (authentication is handled by the API gateway)
Requires base image version
0.1.2 or later. See the Session API
guide for setup instructions
and examples.Authorizations
Authentication using a Pipecat Cloud public API key.
Generate a public API key from your Dashboard (Settings > API Keys > Public > Create key) and include it as a Bearer token in the Authorization header.
Path Parameters
Name of the deployed agent
Session ID returned from the start endpoint
The endpoint path defined in your bot using the @app decorator
Response
Successful response from the bot
Response from your bot endpoint. The schema depends on what your bot returns.