curl --request POST \
--url https://api.anam.ai/v1/knowledge/groups/{id}/search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"query": "How do I reset my password?",
"limit": 5
}
'import requests
url = "https://api.anam.ai/v1/knowledge/groups/{id}/search"
payload = {
"query": "How do I reset my password?",
"limit": 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: 'How do I reset my password?', limit: 5})
};
fetch('https://api.anam.ai/v1/knowledge/groups/{id}/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://api.anam.ai/v1/knowledge/groups/{id}/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([
'query' => 'How do I reset my password?',
'limit' => 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.anam.ai/v1/knowledge/groups/{id}/search"
payload := strings.NewReader("{\n \"query\": \"How do I reset my password?\",\n \"limit\": 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.anam.ai/v1/knowledge/groups/{id}/search")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"query\": \"How do I reset my password?\",\n \"limit\": 5\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.anam.ai/v1/knowledge/groups/{id}/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 \"query\": \"How do I reset my password?\",\n \"limit\": 5\n}"
response = http.request(request)
puts response.read_body[
{
"documentId": "00000000-0000-0000-0000-000000000000",
"filename": "getting-started.pdf",
"content": "To reset your password, visit the account settings page and click \"Reset password\".",
"score": 0.87,
"chunkIndex": 3,
"metadata": {
"section": "Account"
}
}
]{
"error": "Knowledge search rate limit exceeded. Try again later."
}{
"error": "Service temporarily unavailable",
"message": "We could not check your API key. Please retry shortly."
}search knowledge group
Search for similar content in a knowledge folder using vector similarity. Limited to 60 valid search requests per UTC minute per organization, shared across API keys and groups. Requests are allowed if the rate-limit store is unavailable.
curl --request POST \
--url https://api.anam.ai/v1/knowledge/groups/{id}/search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"query": "How do I reset my password?",
"limit": 5
}
'import requests
url = "https://api.anam.ai/v1/knowledge/groups/{id}/search"
payload = {
"query": "How do I reset my password?",
"limit": 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: 'How do I reset my password?', limit: 5})
};
fetch('https://api.anam.ai/v1/knowledge/groups/{id}/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://api.anam.ai/v1/knowledge/groups/{id}/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([
'query' => 'How do I reset my password?',
'limit' => 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.anam.ai/v1/knowledge/groups/{id}/search"
payload := strings.NewReader("{\n \"query\": \"How do I reset my password?\",\n \"limit\": 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.anam.ai/v1/knowledge/groups/{id}/search")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"query\": \"How do I reset my password?\",\n \"limit\": 5\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.anam.ai/v1/knowledge/groups/{id}/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 \"query\": \"How do I reset my password?\",\n \"limit\": 5\n}"
response = http.request(request)
puts response.read_body[
{
"documentId": "00000000-0000-0000-0000-000000000000",
"filename": "getting-started.pdf",
"content": "To reset your password, visit the account settings page and click \"Reset password\".",
"score": 0.87,
"chunkIndex": 3,
"metadata": {
"section": "Account"
}
}
]{
"error": "Knowledge search rate limit exceeded. Try again later."
}{
"error": "Service temporarily unavailable",
"message": "We could not check your API key. Please retry shortly."
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Knowledge folder ID, from GET /v1/knowledge/groups
Body
Query string to search the group's documents, plus an optional cap on how many chunks to return. Only READY documents are included in the results.
Response
Successfully retrieved search results
ID of the document the chunk was extracted from.
Filename of the source document.
Text content of the matching chunk.
Similarity score for this chunk against the query, higher is more similar.
Zero-based index of the chunk within the source document.
Free-form metadata attached to the chunk at ingest time.

