curl --request POST \
--url https://apigcp.trynia.ai/v2/search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"messages": [
{}
],
"repositories": [
"<string>"
],
"data_sources": [
"<string>"
],
"local_folders": [
"<string>"
],
"slack_workspaces": [
"<string>"
],
"slack_filters": {
"channels": [
"<string>"
],
"users": [
"<string>"
],
"date_from": "<string>",
"date_to": "<string>",
"include_threads": true
},
"category": "<string>",
"local_source_filters": {
"source_subtype": "<string>",
"db_type": "<string>",
"connector_type": "<string>",
"conversation_id": "<string>",
"contact_id": "<string>",
"sender_role": "<string>",
"time_after": "<string>",
"time_before": "<string>"
},
"source_trust_filter": {
"verified_only": false,
"require_overlay": false
},
"search_mode": "unified",
"stream": false,
"include_sources": true,
"fast_mode": true,
"skip_llm": false,
"reasoning_strategy": "vector",
"max_tokens": 50050,
"model": "<string>",
"semantic_cache_threshold": 0.92,
"bypass_semantic_cache": false,
"include_follow_ups": false,
"e2e_session_id": "<string>",
"mode": "query"
}
'import requests
url = "https://apigcp.trynia.ai/v2/search"
payload = {
"messages": [{}],
"repositories": ["<string>"],
"data_sources": ["<string>"],
"local_folders": ["<string>"],
"slack_workspaces": ["<string>"],
"slack_filters": {
"channels": ["<string>"],
"users": ["<string>"],
"date_from": "<string>",
"date_to": "<string>",
"include_threads": True
},
"category": "<string>",
"local_source_filters": {
"source_subtype": "<string>",
"db_type": "<string>",
"connector_type": "<string>",
"conversation_id": "<string>",
"contact_id": "<string>",
"sender_role": "<string>",
"time_after": "<string>",
"time_before": "<string>"
},
"source_trust_filter": {
"verified_only": False,
"require_overlay": False
},
"search_mode": "unified",
"stream": False,
"include_sources": True,
"fast_mode": True,
"skip_llm": False,
"reasoning_strategy": "vector",
"max_tokens": 50050,
"model": "<string>",
"semantic_cache_threshold": 0.92,
"bypass_semantic_cache": False,
"include_follow_ups": False,
"e2e_session_id": "<string>",
"mode": "query"
}
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({
messages: [{}],
repositories: ['<string>'],
data_sources: ['<string>'],
local_folders: ['<string>'],
slack_workspaces: ['<string>'],
slack_filters: {
channels: ['<string>'],
users: ['<string>'],
date_from: '<string>',
date_to: '<string>',
include_threads: true
},
category: '<string>',
local_source_filters: {
source_subtype: '<string>',
db_type: '<string>',
connector_type: '<string>',
conversation_id: '<string>',
contact_id: '<string>',
sender_role: '<string>',
time_after: '<string>',
time_before: '<string>'
},
source_trust_filter: {verified_only: false, require_overlay: false},
search_mode: 'unified',
stream: false,
include_sources: true,
fast_mode: true,
skip_llm: false,
reasoning_strategy: 'vector',
max_tokens: 50050,
model: '<string>',
semantic_cache_threshold: 0.92,
bypass_semantic_cache: false,
include_follow_ups: false,
e2e_session_id: '<string>',
mode: 'query'
})
};
fetch('https://apigcp.trynia.ai/v2/search', 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://apigcp.trynia.ai/v2/search",
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([
'messages' => [
[
]
],
'repositories' => [
'<string>'
],
'data_sources' => [
'<string>'
],
'local_folders' => [
'<string>'
],
'slack_workspaces' => [
'<string>'
],
'slack_filters' => [
'channels' => [
'<string>'
],
'users' => [
'<string>'
],
'date_from' => '<string>',
'date_to' => '<string>',
'include_threads' => true
],
'category' => '<string>',
'local_source_filters' => [
'source_subtype' => '<string>',
'db_type' => '<string>',
'connector_type' => '<string>',
'conversation_id' => '<string>',
'contact_id' => '<string>',
'sender_role' => '<string>',
'time_after' => '<string>',
'time_before' => '<string>'
],
'source_trust_filter' => [
'verified_only' => false,
'require_overlay' => false
],
'search_mode' => 'unified',
'stream' => false,
'include_sources' => true,
'fast_mode' => true,
'skip_llm' => false,
'reasoning_strategy' => 'vector',
'max_tokens' => 50050,
'model' => '<string>',
'semantic_cache_threshold' => 0.92,
'bypass_semantic_cache' => false,
'include_follow_ups' => false,
'e2e_session_id' => '<string>',
'mode' => 'query'
]),
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://apigcp.trynia.ai/v2/search"
payload := strings.NewReader("{\n \"messages\": [\n {}\n ],\n \"repositories\": [\n \"<string>\"\n ],\n \"data_sources\": [\n \"<string>\"\n ],\n \"local_folders\": [\n \"<string>\"\n ],\n \"slack_workspaces\": [\n \"<string>\"\n ],\n \"slack_filters\": {\n \"channels\": [\n \"<string>\"\n ],\n \"users\": [\n \"<string>\"\n ],\n \"date_from\": \"<string>\",\n \"date_to\": \"<string>\",\n \"include_threads\": true\n },\n \"category\": \"<string>\",\n \"local_source_filters\": {\n \"source_subtype\": \"<string>\",\n \"db_type\": \"<string>\",\n \"connector_type\": \"<string>\",\n \"conversation_id\": \"<string>\",\n \"contact_id\": \"<string>\",\n \"sender_role\": \"<string>\",\n \"time_after\": \"<string>\",\n \"time_before\": \"<string>\"\n },\n \"source_trust_filter\": {\n \"verified_only\": false,\n \"require_overlay\": false\n },\n \"search_mode\": \"unified\",\n \"stream\": false,\n \"include_sources\": true,\n \"fast_mode\": true,\n \"skip_llm\": false,\n \"reasoning_strategy\": \"vector\",\n \"max_tokens\": 50050,\n \"model\": \"<string>\",\n \"semantic_cache_threshold\": 0.92,\n \"bypass_semantic_cache\": false,\n \"include_follow_ups\": false,\n \"e2e_session_id\": \"<string>\",\n \"mode\": \"query\"\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://apigcp.trynia.ai/v2/search")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"messages\": [\n {}\n ],\n \"repositories\": [\n \"<string>\"\n ],\n \"data_sources\": [\n \"<string>\"\n ],\n \"local_folders\": [\n \"<string>\"\n ],\n \"slack_workspaces\": [\n \"<string>\"\n ],\n \"slack_filters\": {\n \"channels\": [\n \"<string>\"\n ],\n \"users\": [\n \"<string>\"\n ],\n \"date_from\": \"<string>\",\n \"date_to\": \"<string>\",\n \"include_threads\": true\n },\n \"category\": \"<string>\",\n \"local_source_filters\": {\n \"source_subtype\": \"<string>\",\n \"db_type\": \"<string>\",\n \"connector_type\": \"<string>\",\n \"conversation_id\": \"<string>\",\n \"contact_id\": \"<string>\",\n \"sender_role\": \"<string>\",\n \"time_after\": \"<string>\",\n \"time_before\": \"<string>\"\n },\n \"source_trust_filter\": {\n \"verified_only\": false,\n \"require_overlay\": false\n },\n \"search_mode\": \"unified\",\n \"stream\": false,\n \"include_sources\": true,\n \"fast_mode\": true,\n \"skip_llm\": false,\n \"reasoning_strategy\": \"vector\",\n \"max_tokens\": 50050,\n \"model\": \"<string>\",\n \"semantic_cache_threshold\": 0.92,\n \"bypass_semantic_cache\": false,\n \"include_follow_ups\": false,\n \"e2e_session_id\": \"<string>\",\n \"mode\": \"query\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://apigcp.trynia.ai/v2/search")
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 \"messages\": [\n {}\n ],\n \"repositories\": [\n \"<string>\"\n ],\n \"data_sources\": [\n \"<string>\"\n ],\n \"local_folders\": [\n \"<string>\"\n ],\n \"slack_workspaces\": [\n \"<string>\"\n ],\n \"slack_filters\": {\n \"channels\": [\n \"<string>\"\n ],\n \"users\": [\n \"<string>\"\n ],\n \"date_from\": \"<string>\",\n \"date_to\": \"<string>\",\n \"include_threads\": true\n },\n \"category\": \"<string>\",\n \"local_source_filters\": {\n \"source_subtype\": \"<string>\",\n \"db_type\": \"<string>\",\n \"connector_type\": \"<string>\",\n \"conversation_id\": \"<string>\",\n \"contact_id\": \"<string>\",\n \"sender_role\": \"<string>\",\n \"time_after\": \"<string>\",\n \"time_before\": \"<string>\"\n },\n \"source_trust_filter\": {\n \"verified_only\": false,\n \"require_overlay\": false\n },\n \"search_mode\": \"unified\",\n \"stream\": false,\n \"include_sources\": true,\n \"fast_mode\": true,\n \"skip_llm\": false,\n \"reasoning_strategy\": \"vector\",\n \"max_tokens\": 50050,\n \"model\": \"<string>\",\n \"semantic_cache_threshold\": 0.92,\n \"bypass_semantic_cache\": false,\n \"include_follow_ups\": false,\n \"e2e_session_id\": \"<string>\",\n \"mode\": \"query\"\n}"
response = http.request(request)
puts response.read_body{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Unified search
Single search endpoint with a mode discriminator.
curl --request POST \
--url https://apigcp.trynia.ai/v2/search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"messages": [
{}
],
"repositories": [
"<string>"
],
"data_sources": [
"<string>"
],
"local_folders": [
"<string>"
],
"slack_workspaces": [
"<string>"
],
"slack_filters": {
"channels": [
"<string>"
],
"users": [
"<string>"
],
"date_from": "<string>",
"date_to": "<string>",
"include_threads": true
},
"category": "<string>",
"local_source_filters": {
"source_subtype": "<string>",
"db_type": "<string>",
"connector_type": "<string>",
"conversation_id": "<string>",
"contact_id": "<string>",
"sender_role": "<string>",
"time_after": "<string>",
"time_before": "<string>"
},
"source_trust_filter": {
"verified_only": false,
"require_overlay": false
},
"search_mode": "unified",
"stream": false,
"include_sources": true,
"fast_mode": true,
"skip_llm": false,
"reasoning_strategy": "vector",
"max_tokens": 50050,
"model": "<string>",
"semantic_cache_threshold": 0.92,
"bypass_semantic_cache": false,
"include_follow_ups": false,
"e2e_session_id": "<string>",
"mode": "query"
}
'import requests
url = "https://apigcp.trynia.ai/v2/search"
payload = {
"messages": [{}],
"repositories": ["<string>"],
"data_sources": ["<string>"],
"local_folders": ["<string>"],
"slack_workspaces": ["<string>"],
"slack_filters": {
"channels": ["<string>"],
"users": ["<string>"],
"date_from": "<string>",
"date_to": "<string>",
"include_threads": True
},
"category": "<string>",
"local_source_filters": {
"source_subtype": "<string>",
"db_type": "<string>",
"connector_type": "<string>",
"conversation_id": "<string>",
"contact_id": "<string>",
"sender_role": "<string>",
"time_after": "<string>",
"time_before": "<string>"
},
"source_trust_filter": {
"verified_only": False,
"require_overlay": False
},
"search_mode": "unified",
"stream": False,
"include_sources": True,
"fast_mode": True,
"skip_llm": False,
"reasoning_strategy": "vector",
"max_tokens": 50050,
"model": "<string>",
"semantic_cache_threshold": 0.92,
"bypass_semantic_cache": False,
"include_follow_ups": False,
"e2e_session_id": "<string>",
"mode": "query"
}
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({
messages: [{}],
repositories: ['<string>'],
data_sources: ['<string>'],
local_folders: ['<string>'],
slack_workspaces: ['<string>'],
slack_filters: {
channels: ['<string>'],
users: ['<string>'],
date_from: '<string>',
date_to: '<string>',
include_threads: true
},
category: '<string>',
local_source_filters: {
source_subtype: '<string>',
db_type: '<string>',
connector_type: '<string>',
conversation_id: '<string>',
contact_id: '<string>',
sender_role: '<string>',
time_after: '<string>',
time_before: '<string>'
},
source_trust_filter: {verified_only: false, require_overlay: false},
search_mode: 'unified',
stream: false,
include_sources: true,
fast_mode: true,
skip_llm: false,
reasoning_strategy: 'vector',
max_tokens: 50050,
model: '<string>',
semantic_cache_threshold: 0.92,
bypass_semantic_cache: false,
include_follow_ups: false,
e2e_session_id: '<string>',
mode: 'query'
})
};
fetch('https://apigcp.trynia.ai/v2/search', 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://apigcp.trynia.ai/v2/search",
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([
'messages' => [
[
]
],
'repositories' => [
'<string>'
],
'data_sources' => [
'<string>'
],
'local_folders' => [
'<string>'
],
'slack_workspaces' => [
'<string>'
],
'slack_filters' => [
'channels' => [
'<string>'
],
'users' => [
'<string>'
],
'date_from' => '<string>',
'date_to' => '<string>',
'include_threads' => true
],
'category' => '<string>',
'local_source_filters' => [
'source_subtype' => '<string>',
'db_type' => '<string>',
'connector_type' => '<string>',
'conversation_id' => '<string>',
'contact_id' => '<string>',
'sender_role' => '<string>',
'time_after' => '<string>',
'time_before' => '<string>'
],
'source_trust_filter' => [
'verified_only' => false,
'require_overlay' => false
],
'search_mode' => 'unified',
'stream' => false,
'include_sources' => true,
'fast_mode' => true,
'skip_llm' => false,
'reasoning_strategy' => 'vector',
'max_tokens' => 50050,
'model' => '<string>',
'semantic_cache_threshold' => 0.92,
'bypass_semantic_cache' => false,
'include_follow_ups' => false,
'e2e_session_id' => '<string>',
'mode' => 'query'
]),
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://apigcp.trynia.ai/v2/search"
payload := strings.NewReader("{\n \"messages\": [\n {}\n ],\n \"repositories\": [\n \"<string>\"\n ],\n \"data_sources\": [\n \"<string>\"\n ],\n \"local_folders\": [\n \"<string>\"\n ],\n \"slack_workspaces\": [\n \"<string>\"\n ],\n \"slack_filters\": {\n \"channels\": [\n \"<string>\"\n ],\n \"users\": [\n \"<string>\"\n ],\n \"date_from\": \"<string>\",\n \"date_to\": \"<string>\",\n \"include_threads\": true\n },\n \"category\": \"<string>\",\n \"local_source_filters\": {\n \"source_subtype\": \"<string>\",\n \"db_type\": \"<string>\",\n \"connector_type\": \"<string>\",\n \"conversation_id\": \"<string>\",\n \"contact_id\": \"<string>\",\n \"sender_role\": \"<string>\",\n \"time_after\": \"<string>\",\n \"time_before\": \"<string>\"\n },\n \"source_trust_filter\": {\n \"verified_only\": false,\n \"require_overlay\": false\n },\n \"search_mode\": \"unified\",\n \"stream\": false,\n \"include_sources\": true,\n \"fast_mode\": true,\n \"skip_llm\": false,\n \"reasoning_strategy\": \"vector\",\n \"max_tokens\": 50050,\n \"model\": \"<string>\",\n \"semantic_cache_threshold\": 0.92,\n \"bypass_semantic_cache\": false,\n \"include_follow_ups\": false,\n \"e2e_session_id\": \"<string>\",\n \"mode\": \"query\"\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://apigcp.trynia.ai/v2/search")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"messages\": [\n {}\n ],\n \"repositories\": [\n \"<string>\"\n ],\n \"data_sources\": [\n \"<string>\"\n ],\n \"local_folders\": [\n \"<string>\"\n ],\n \"slack_workspaces\": [\n \"<string>\"\n ],\n \"slack_filters\": {\n \"channels\": [\n \"<string>\"\n ],\n \"users\": [\n \"<string>\"\n ],\n \"date_from\": \"<string>\",\n \"date_to\": \"<string>\",\n \"include_threads\": true\n },\n \"category\": \"<string>\",\n \"local_source_filters\": {\n \"source_subtype\": \"<string>\",\n \"db_type\": \"<string>\",\n \"connector_type\": \"<string>\",\n \"conversation_id\": \"<string>\",\n \"contact_id\": \"<string>\",\n \"sender_role\": \"<string>\",\n \"time_after\": \"<string>\",\n \"time_before\": \"<string>\"\n },\n \"source_trust_filter\": {\n \"verified_only\": false,\n \"require_overlay\": false\n },\n \"search_mode\": \"unified\",\n \"stream\": false,\n \"include_sources\": true,\n \"fast_mode\": true,\n \"skip_llm\": false,\n \"reasoning_strategy\": \"vector\",\n \"max_tokens\": 50050,\n \"model\": \"<string>\",\n \"semantic_cache_threshold\": 0.92,\n \"bypass_semantic_cache\": false,\n \"include_follow_ups\": false,\n \"e2e_session_id\": \"<string>\",\n \"mode\": \"query\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://apigcp.trynia.ai/v2/search")
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 \"messages\": [\n {}\n ],\n \"repositories\": [\n \"<string>\"\n ],\n \"data_sources\": [\n \"<string>\"\n ],\n \"local_folders\": [\n \"<string>\"\n ],\n \"slack_workspaces\": [\n \"<string>\"\n ],\n \"slack_filters\": {\n \"channels\": [\n \"<string>\"\n ],\n \"users\": [\n \"<string>\"\n ],\n \"date_from\": \"<string>\",\n \"date_to\": \"<string>\",\n \"include_threads\": true\n },\n \"category\": \"<string>\",\n \"local_source_filters\": {\n \"source_subtype\": \"<string>\",\n \"db_type\": \"<string>\",\n \"connector_type\": \"<string>\",\n \"conversation_id\": \"<string>\",\n \"contact_id\": \"<string>\",\n \"sender_role\": \"<string>\",\n \"time_after\": \"<string>\",\n \"time_before\": \"<string>\"\n },\n \"source_trust_filter\": {\n \"verified_only\": false,\n \"require_overlay\": false\n },\n \"search_mode\": \"unified\",\n \"stream\": false,\n \"include_sources\": true,\n \"fast_mode\": true,\n \"skip_llm\": false,\n \"reasoning_strategy\": \"vector\",\n \"max_tokens\": 50050,\n \"model\": \"<string>\",\n \"semantic_cache_threshold\": 0.92,\n \"bypass_semantic_cache\": false,\n \"include_follow_ups\": false,\n \"e2e_session_id\": \"<string>\",\n \"mode\": \"query\"\n}"
response = http.request(request)
puts response.read_body{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
API key must be provided in the Authorization header
Body
- QuerySearchRequest
- WebSearchRequestWithMode
- DeepResearchRequestWithMode
- UniversalSearchRequestWithMode
List of chat messages
1List of repositories to query. Can be strings (slug, display name) or dicts with a 'repository' field.
List of data sources to query. Can be strings (display_name, URL, or source_id) or dicts with 'source_id' or 'identifier' fields
List of local folders to query. Can be strings (display_name or local_folder_id) or dicts with 'local_folder_id' or 'identifier' fields. Local folders are private and user-scoped.
List of Slack installation IDs to include in search
Filters for Slack message results (channels, users, date range)
Show child attributes
Show child attributes
Filter local folder results by classification category (e.g., 'Work', 'Personal')
Filters for local/personal sources (messages, contacts, etc.)
Show child attributes
Show child attributes
Optional trust-aware filtering for curated source results
Show child attributes
Show child attributes
Search mode: 'repositories', 'sources', or 'unified'
Whether to stream the response
Whether to include source texts in the response
Skip LLM processing for faster results (100-500ms vs 2-8s). Set to false for deeper analysis.
Return raw search results without any LLM processing. Returns only sources with scores.
Retrieval strategy: 'vector' (default similarity search), 'tree' (LLM-guided tree navigation for PDFs), or 'hybrid' (both combined)
Maximum tokens in response. Results truncated when budget reached.
100 <= x <= 100000Synthesis model override. Allowed: claude-sonnet-4-5, gpt-5.2-2025-12-11, claude-haiku-4-5-20251001
Minimum similarity for semantic cache hit (non-streaming only)
0.8 <= x <= 1Skip semantic cache (L2) lookup
Generate follow-up questions (adds ~500-1000ms LLM latency). Disabled by default for speed.
Active E2E decrypt session ID. When provided, encrypted local folder results are decrypted through the desktop bridge before synthesis.
Search mode discriminator
"query"Response
Successful Response
Was this page helpful?

