Skip to main content
POST
/
api
/
v1
/
memories
/
search
Python
from everos_cloud import EverOS

client = EverOS()
memories = client.v1.memories

response = memories.search(
    filters={"user_id": "<string>"},
    query="<string>",
    method="<string>",
    top_k=5
)
print(response)
curl --request POST \
  --url 'https://api.evermind.ai/api/v1/memories/search' \
  --header 'Authorization: Bearer <api_key>' \
  --header 'Content-Type: application/json' \
  --data '{}'
const options = {
  method: 'POST',
  headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
  body: JSON.stringify({
    query: '<string>',
    filters: {},
    method: 'hybrid',
    memory_types: ['episodic_memory', 'profile'],
    top_k: -1,
    radius: 0.5,
    include_original_data: false
  })
};

fetch('https://api.evermind.ai/api/v1/memories/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.evermind.ai/api/v1/memories/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' => '<string>',
    'filters' => [
        
    ],
    'method' => 'hybrid',
    'memory_types' => [
        'episodic_memory',
        'profile'
    ],
    'top_k' => -1,
    'radius' => 0.5,
    'include_original_data' => 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.evermind.ai/api/v1/memories/search"

	payload := strings.NewReader("{\n  \"query\": \"<string>\",\n  \"filters\": {},\n  \"method\": \"hybrid\",\n  \"memory_types\": [\n    \"episodic_memory\",\n    \"profile\"\n  ],\n  \"top_k\": -1,\n  \"radius\": 0.5,\n  \"include_original_data\": 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.evermind.ai/api/v1/memories/search")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"query\": \"<string>\",\n  \"filters\": {},\n  \"method\": \"hybrid\",\n  \"memory_types\": [\n    \"episodic_memory\",\n    \"profile\"\n  ],\n  \"top_k\": -1,\n  \"radius\": 0.5,\n  \"include_original_data\": false\n}")
  .asString();
require 'uri'
require 'net/http'

url = URI("https://api.evermind.ai/api/v1/memories/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\": \"<string>\",\n  \"filters\": {},\n  \"method\": \"hybrid\",\n  \"memory_types\": [\n    \"episodic_memory\",\n    \"profile\"\n  ],\n  \"top_k\": -1,\n  \"radius\": 0.5,\n  \"include_original_data\": false\n}"

response = http.request(request)
puts response.read_body
{ "data": { "query": { "text": "<string>", "method": "<string>", "filters_applied": {} }, "episodes": [], "profiles": [], "raw_messages": [], "agent_memory": { "cases": [], "skills": [] }, "original_data": {} } }
Retrieval Methods
  • keyword: BM25 keyword retrieval (Elasticsearch only)
  • vector: Vector semantic retrieval (Milvus only)
  • hybrid (default): Hybrid retrieval with rerank (ES + Milvus + Rerank)
  • agentic: LLM-guided multi-round intelligent retrieval
Memory Types
  • episodic_memory: Episodic memory (ES + Milvus)
  • profile: User profile (Milvus only)
  • raw_message: Raw unprocessed messages (ES only)
  • agent_memory: Agent memory - cases and skills (ES + Milvus)
Filters DSL Same syntax as the GET endpoint. Must contain at least one of user_id or group_id.

Authorizations

Authorization
string
header
default:Bearer <api_key>
required

Bearer authentication header of the form Bearer 'api_key', obtain your API key from everos.evermind.ai.

Body

application/json
query
string
required

Search query text

Example:

"What did Alice say about the project?"

filters
object
required

Filter conditions. Supported fields: user_id, group_id, session_id, timestamp. user_id and group_id are placed at the top level of the filters object. session_id and timestamp support operators (eq, in, gt, gte, lt, lte) and can be used inside AND/OR combinators.

method
enum<string>
default:hybrid

Retrieval method

Available options:
keyword,
vector,
hybrid,
agentic
memory_types
enum<string>[]

Memory types to search

Available options:
episodic_memory,
profile,
raw_message,
agent_memory
top_k
integer
default:-1

Max results. -1 = return all meeting threshold (up to 100)

Required range: -1 <= x <= 100
radius
number | null

COSINE similarity threshold (0.0-1.0) for vector methods

Required range: 0 <= x <= 1
include_original_data
boolean
default:false

Whether to return original data

Response

Search results returned

data
object