Probe an agent’s retrieval
curl --request POST \
--url https://api.wondeya.com/v1/agents/{agentId}/query \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"query": "<string>",
"topics": [
"<array>"
],
"limit": 10.5
}
'import requests
url = "https://api.wondeya.com/v1/agents/{agentId}/query"
payload = {
"query": "<string>",
"topics": ["<array>"],
"limit": 10.5
}
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>', topics: ['<array>'], limit: 10.5})
};
fetch('https://api.wondeya.com/v1/agents/{agentId}/query', 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.wondeya.com/v1/agents/{agentId}/query",
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>',
'topics' => [
'<array>'
],
'limit' => 10.5
]),
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.wondeya.com/v1/agents/{agentId}/query"
payload := strings.NewReader("{\n \"query\": \"<string>\",\n \"topics\": [\n \"<array>\"\n ],\n \"limit\": 10.5\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.wondeya.com/v1/agents/{agentId}/query")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"query\": \"<string>\",\n \"topics\": [\n \"<array>\"\n ],\n \"limit\": 10.5\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.wondeya.com/v1/agents/{agentId}/query")
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 \"topics\": [\n \"<array>\"\n ],\n \"limit\": 10.5\n}"
response = http.request(request)
puts response.read_body{
"passages": [
{
"chunkId": "<string>",
"sourceId": "<string>",
"sourceKind": "upload",
"docTitle": "<string>",
"sectionPath": [
"<string>"
],
"text": "<string>",
"lang": "es",
"topics": [
"<string>"
],
"page": 123,
"sourceUrl": "<string>",
"score": 123
}
],
"strategies": {
"topics": 123,
"vector": 123
}
}Agents
Probe an agent’s retrieval
Runs the SAME hybrid retrieval a real conversation runs (the deterministic topic map plus the vector search, fused) and returns the passages the agent would have had, WITHOUT calling the model. Empty results mean the agent cannot answer that question yet.
POST
/
v1
/
agents
/
{agentId}
/
query
Probe an agent’s retrieval
curl --request POST \
--url https://api.wondeya.com/v1/agents/{agentId}/query \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"query": "<string>",
"topics": [
"<array>"
],
"limit": 10.5
}
'import requests
url = "https://api.wondeya.com/v1/agents/{agentId}/query"
payload = {
"query": "<string>",
"topics": ["<array>"],
"limit": 10.5
}
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>', topics: ['<array>'], limit: 10.5})
};
fetch('https://api.wondeya.com/v1/agents/{agentId}/query', 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.wondeya.com/v1/agents/{agentId}/query",
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>',
'topics' => [
'<array>'
],
'limit' => 10.5
]),
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.wondeya.com/v1/agents/{agentId}/query"
payload := strings.NewReader("{\n \"query\": \"<string>\",\n \"topics\": [\n \"<array>\"\n ],\n \"limit\": 10.5\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.wondeya.com/v1/agents/{agentId}/query")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"query\": \"<string>\",\n \"topics\": [\n \"<array>\"\n ],\n \"limit\": 10.5\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.wondeya.com/v1/agents/{agentId}/query")
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 \"topics\": [\n \"<array>\"\n ],\n \"limit\": 10.5\n}"
response = http.request(request)
puts response.read_body{
"passages": [
{
"chunkId": "<string>",
"sourceId": "<string>",
"sourceKind": "upload",
"docTitle": "<string>",
"sectionPath": [
"<string>"
],
"text": "<string>",
"lang": "es",
"topics": [
"<string>"
],
"page": 123,
"sourceUrl": "<string>",
"score": 123
}
],
"strategies": {
"topics": 123,
"vector": 123
}
}Authorizations
A workspace API key: wdy_live_… / wdy_test_…. Created at POST /workspaces/{tenantId}/keys and shown exactly once.
Path Parameters
Body
application/json
The question, phrased the way a visitor would ask it.
Required string length:
1 - 500Topics the classifier would have picked. Empty tests the vector half alone.
Maximum array length:
12Available options:
es, en How many passages to return.
Required range:
1 <= x <= 20