curl --request POST \
--url https://api.honcho.dev/v3/workspaces/{workspace_id}/peers/{peer_id}/chat \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"query": "<string>",
"session_id": "<string>",
"filters": {},
"scope": "<string>",
"target": "<string>",
"stream": false,
"reasoning_level": "low",
"response_format": {},
"include_evidence": false
}
'import requests
url = "https://api.honcho.dev/v3/workspaces/{workspace_id}/peers/{peer_id}/chat"
payload = {
"query": "<string>",
"session_id": "<string>",
"filters": {},
"scope": "<string>",
"target": "<string>",
"stream": False,
"reasoning_level": "low",
"response_format": {},
"include_evidence": False
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
query: '<string>',
session_id: '<string>',
filters: {},
scope: '<string>',
target: '<string>',
stream: false,
reasoning_level: 'low',
response_format: {},
include_evidence: false
})
};
fetch('https://api.honcho.dev/v3/workspaces/{workspace_id}/peers/{peer_id}/chat', 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.honcho.dev/v3/workspaces/{workspace_id}/peers/{peer_id}/chat",
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([
'query' => '<string>',
'session_id' => '<string>',
'filters' => [
],
'scope' => '<string>',
'target' => '<string>',
'stream' => false,
'reasoning_level' => 'low',
'response_format' => [
],
'include_evidence' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.honcho.dev/v3/workspaces/{workspace_id}/peers/{peer_id}/chat"
payload := strings.NewReader("{\n \"query\": \"<string>\",\n \"session_id\": \"<string>\",\n \"filters\": {},\n \"scope\": \"<string>\",\n \"target\": \"<string>\",\n \"stream\": false,\n \"reasoning_level\": \"low\",\n \"response_format\": {},\n \"include_evidence\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.honcho.dev/v3/workspaces/{workspace_id}/peers/{peer_id}/chat")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"query\": \"<string>\",\n \"session_id\": \"<string>\",\n \"filters\": {},\n \"scope\": \"<string>\",\n \"target\": \"<string>\",\n \"stream\": false,\n \"reasoning_level\": \"low\",\n \"response_format\": {},\n \"include_evidence\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.honcho.dev/v3/workspaces/{workspace_id}/peers/{peer_id}/chat")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"query\": \"<string>\",\n \"session_id\": \"<string>\",\n \"filters\": {},\n \"scope\": \"<string>\",\n \"target\": \"<string>\",\n \"stream\": false,\n \"reasoning_level\": \"low\",\n \"response_format\": {},\n \"include_evidence\": false\n}"
response = http.request(request)
puts response.read_body{
"content": "<string>",
"evidence": {
"conclusions": [
{
"id": "<string>",
"level": "explicit",
"content": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"observer_id": "<string>",
"observed_id": "<string>",
"session_id": "<string>",
"source_ids": [
"<string>"
]
}
],
"messages": [
{
"id": "<string>",
"session_id": "<string>",
"peer_id": "<string>",
"created_at": "2023-11-07T05:31:56Z"
}
],
"tool_calls": [
{
"tool_name": "<string>",
"tool_input": {}
}
],
"reasoning_trace_id": "<string>"
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Peer Chat
Query a Peer’s representation using natural language. Performs agentic search and reasoning to comprehensively answer the query based on all latent knowledge gathered about the peer from their messages and conclusions.
curl --request POST \
--url https://api.honcho.dev/v3/workspaces/{workspace_id}/peers/{peer_id}/chat \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"query": "<string>",
"session_id": "<string>",
"filters": {},
"scope": "<string>",
"target": "<string>",
"stream": false,
"reasoning_level": "low",
"response_format": {},
"include_evidence": false
}
'import requests
url = "https://api.honcho.dev/v3/workspaces/{workspace_id}/peers/{peer_id}/chat"
payload = {
"query": "<string>",
"session_id": "<string>",
"filters": {},
"scope": "<string>",
"target": "<string>",
"stream": False,
"reasoning_level": "low",
"response_format": {},
"include_evidence": False
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
query: '<string>',
session_id: '<string>',
filters: {},
scope: '<string>',
target: '<string>',
stream: false,
reasoning_level: 'low',
response_format: {},
include_evidence: false
})
};
fetch('https://api.honcho.dev/v3/workspaces/{workspace_id}/peers/{peer_id}/chat', 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.honcho.dev/v3/workspaces/{workspace_id}/peers/{peer_id}/chat",
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([
'query' => '<string>',
'session_id' => '<string>',
'filters' => [
],
'scope' => '<string>',
'target' => '<string>',
'stream' => false,
'reasoning_level' => 'low',
'response_format' => [
],
'include_evidence' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.honcho.dev/v3/workspaces/{workspace_id}/peers/{peer_id}/chat"
payload := strings.NewReader("{\n \"query\": \"<string>\",\n \"session_id\": \"<string>\",\n \"filters\": {},\n \"scope\": \"<string>\",\n \"target\": \"<string>\",\n \"stream\": false,\n \"reasoning_level\": \"low\",\n \"response_format\": {},\n \"include_evidence\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.honcho.dev/v3/workspaces/{workspace_id}/peers/{peer_id}/chat")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"query\": \"<string>\",\n \"session_id\": \"<string>\",\n \"filters\": {},\n \"scope\": \"<string>\",\n \"target\": \"<string>\",\n \"stream\": false,\n \"reasoning_level\": \"low\",\n \"response_format\": {},\n \"include_evidence\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.honcho.dev/v3/workspaces/{workspace_id}/peers/{peer_id}/chat")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"query\": \"<string>\",\n \"session_id\": \"<string>\",\n \"filters\": {},\n \"scope\": \"<string>\",\n \"target\": \"<string>\",\n \"stream\": false,\n \"reasoning_level\": \"low\",\n \"response_format\": {},\n \"include_evidence\": false\n}"
response = http.request(request)
puts response.read_body{
"content": "<string>",
"evidence": {
"conclusions": [
{
"id": "<string>",
"level": "explicit",
"content": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"observer_id": "<string>",
"observed_id": "<string>",
"session_id": "<string>",
"source_ids": [
"<string>"
]
}
],
"messages": [
{
"id": "<string>",
"session_id": "<string>",
"peer_id": "<string>",
"created_at": "2023-11-07T05:31:56Z"
}
],
"tool_calls": [
{
"tool_name": "<string>",
"tool_input": {}
}
],
"reasoning_trace_id": "<string>"
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
Dialectic API Prompt
1 - 10000ID of the session to scope the representation to
Optional filters to scope recall. This endpoint supports only the 'session_id' key: a session id, a list of session ids, or {"in": [...]}. Recall (conclusions and messages) is restricted to the allowlist; unsupported keys are rejected. When session_id is also set, it must be included in the allowlist.
Optional (unprefixed) scope name(s) to confine recall. A single scope answers from the scope's own representation of the target peer: conclusion recall is confined to what the scope observed and message recall to the scope's member sessions. A list of scopes restricts recall to the union of the scopes' member sessions (explicit allowlist, fail-closed: an empty union recalls nothing). Mutually exclusive with filters and session_id. Requires a workspace- or admin-level key.
Optional peer to get the representation for, from the perspective of this peer
Level of reasoning to apply: minimal, low, medium, high, or max
minimal, low, medium, high, max Optional JSON Schema (root type 'object') the response must conform to. When provided, content is a JSON string matching this schema. Only a conservative subset of JSON Schema is supported; unsupported schemas are rejected with 422. Constraint keywords (minItems, maxLength, ...) are hints to the model, not enforced server-side.
When true, the response includes an evidence object listing the conclusions and messages the agent read while answering, plus the tool calls it made. Evidence is collated from what the agent accessed; the model is never asked to cite anything, so evidence may over-report (accessed is not the same as used).
Was this page helpful?