Send a message to a debug chat session
Send a user turn into an existing debug chat session and return the agent’s response. Served from api..poly.ai.
POST
/
v1
/
agents
/
{agentId}
/
debug-chat
/
{conversationId}
Send a message to a debug chat session
curl --request POST \
--url https://api.us.poly.ai/v1/agents/{agentId}/debug-chat/{conversationId} \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"clientEnv": "<string>",
"asrLangCode": "<string>",
"ttsLangCode": "<string>",
"message": "",
"metadata": {}
}
'import requests
url = "https://api.us.poly.ai/v1/agents/{agentId}/debug-chat/{conversationId}"
payload = {
"clientEnv": "<string>",
"asrLangCode": "<string>",
"ttsLangCode": "<string>",
"message": "",
"metadata": {}
}
headers = {
"X-API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
clientEnv: '<string>',
asrLangCode: '<string>',
ttsLangCode: '<string>',
message: '',
metadata: {}
})
};
fetch('https://api.us.poly.ai/v1/agents/{agentId}/debug-chat/{conversationId}', 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.us.poly.ai/v1/agents/{agentId}/debug-chat/{conversationId}",
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([
'clientEnv' => '<string>',
'asrLangCode' => '<string>',
'ttsLangCode' => '<string>',
'message' => '',
'metadata' => [
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-KEY: <api-key>"
],
]);
$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.us.poly.ai/v1/agents/{agentId}/debug-chat/{conversationId}"
payload := strings.NewReader("{\n \"clientEnv\": \"<string>\",\n \"asrLangCode\": \"<string>\",\n \"ttsLangCode\": \"<string>\",\n \"message\": \"\",\n \"metadata\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-KEY", "<api-key>")
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.us.poly.ai/v1/agents/{agentId}/debug-chat/{conversationId}")
.header("X-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"clientEnv\": \"<string>\",\n \"asrLangCode\": \"<string>\",\n \"ttsLangCode\": \"<string>\",\n \"message\": \"\",\n \"metadata\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.us.poly.ai/v1/agents/{agentId}/debug-chat/{conversationId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-KEY"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"clientEnv\": \"<string>\",\n \"asrLangCode\": \"<string>\",\n \"ttsLangCode\": \"<string>\",\n \"message\": \"\",\n \"metadata\": {}\n}"
response = http.request(request)
puts response.read_body{
"conversationId": "<string>",
"userInput": "<string>",
"response": "<string>",
"metadata": {
"state": {},
"currentNode": "<string>",
"nodeTrace": [
"<string>"
],
"metrics": {},
"functionEvents": [
"<unknown>"
],
"handoffDestination": "<string>",
"retrievedTopics": [
"<string>"
],
"retrievedSources": [
"<string>"
],
"citedTopic": "<string>",
"inFlow": "<string>",
"inStep": "<string>",
"llmRequests": [
{}
],
"asrLangCode": "<string>",
"ttsLangCode": "<string>"
},
"conversationEnded": true,
"delayedResponse": true
}{
"success": false,
"error": "Chat session exceeded the timeout limit.",
"error_id": "550e8400-e29b-41d4-a716-446655440000",
"error_code": "CHAT_TIMEOUT",
"error_message": "Chat session exceeded the timeout limit.",
"data": null
}{
"success": false,
"error": "<string>",
"error_id": "<string>",
"error_code": "<string>",
"error_message": "<string>",
"data": "<unknown>"
}{
"success": false,
"error": "<string>",
"error_id": "<string>",
"error_code": "<string>",
"error_message": "<string>",
"data": "<unknown>"
}{
"success": false,
"error": "Conversation ID does not exist.",
"error_id": "550e8400-e29b-41d4-a716-446655440000",
"error_code": "CONVERSATIONS_NOT_FOUND",
"error_message": "Conversation ID does not exist.",
"data": null
}Authorizations
Body
application/json
A user turn sent into an existing debug chat session, with the runtime overrides that apply to this message.
Response
Successful response
A chat turn's result: the agent's reply text, the conversation's updated state, and whether the conversation has ended.
Last modified on July 13, 2026
Was this page helpful?
Previous
OverviewUse the Chat API to power webchat, in-browser widgets, web SDK implementations, and SMS conversations.
Next
⌘I
Send a message to a debug chat session
curl --request POST \
--url https://api.us.poly.ai/v1/agents/{agentId}/debug-chat/{conversationId} \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"clientEnv": "<string>",
"asrLangCode": "<string>",
"ttsLangCode": "<string>",
"message": "",
"metadata": {}
}
'import requests
url = "https://api.us.poly.ai/v1/agents/{agentId}/debug-chat/{conversationId}"
payload = {
"clientEnv": "<string>",
"asrLangCode": "<string>",
"ttsLangCode": "<string>",
"message": "",
"metadata": {}
}
headers = {
"X-API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
clientEnv: '<string>',
asrLangCode: '<string>',
ttsLangCode: '<string>',
message: '',
metadata: {}
})
};
fetch('https://api.us.poly.ai/v1/agents/{agentId}/debug-chat/{conversationId}', 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.us.poly.ai/v1/agents/{agentId}/debug-chat/{conversationId}",
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([
'clientEnv' => '<string>',
'asrLangCode' => '<string>',
'ttsLangCode' => '<string>',
'message' => '',
'metadata' => [
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-KEY: <api-key>"
],
]);
$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.us.poly.ai/v1/agents/{agentId}/debug-chat/{conversationId}"
payload := strings.NewReader("{\n \"clientEnv\": \"<string>\",\n \"asrLangCode\": \"<string>\",\n \"ttsLangCode\": \"<string>\",\n \"message\": \"\",\n \"metadata\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-KEY", "<api-key>")
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.us.poly.ai/v1/agents/{agentId}/debug-chat/{conversationId}")
.header("X-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"clientEnv\": \"<string>\",\n \"asrLangCode\": \"<string>\",\n \"ttsLangCode\": \"<string>\",\n \"message\": \"\",\n \"metadata\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.us.poly.ai/v1/agents/{agentId}/debug-chat/{conversationId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-KEY"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"clientEnv\": \"<string>\",\n \"asrLangCode\": \"<string>\",\n \"ttsLangCode\": \"<string>\",\n \"message\": \"\",\n \"metadata\": {}\n}"
response = http.request(request)
puts response.read_body{
"conversationId": "<string>",
"userInput": "<string>",
"response": "<string>",
"metadata": {
"state": {},
"currentNode": "<string>",
"nodeTrace": [
"<string>"
],
"metrics": {},
"functionEvents": [
"<unknown>"
],
"handoffDestination": "<string>",
"retrievedTopics": [
"<string>"
],
"retrievedSources": [
"<string>"
],
"citedTopic": "<string>",
"inFlow": "<string>",
"inStep": "<string>",
"llmRequests": [
{}
],
"asrLangCode": "<string>",
"ttsLangCode": "<string>"
},
"conversationEnded": true,
"delayedResponse": true
}{
"success": false,
"error": "Chat session exceeded the timeout limit.",
"error_id": "550e8400-e29b-41d4-a716-446655440000",
"error_code": "CHAT_TIMEOUT",
"error_message": "Chat session exceeded the timeout limit.",
"data": null
}{
"success": false,
"error": "<string>",
"error_id": "<string>",
"error_code": "<string>",
"error_message": "<string>",
"data": "<unknown>"
}{
"success": false,
"error": "<string>",
"error_id": "<string>",
"error_code": "<string>",
"error_message": "<string>",
"data": "<unknown>"
}{
"success": false,
"error": "Conversation ID does not exist.",
"error_id": "550e8400-e29b-41d4-a716-446655440000",
"error_code": "CONVERSATIONS_NOT_FOUND",
"error_message": "Conversation ID does not exist.",
"data": null
}
