Search Memory API
Introduced 3.3
Use this API to search for memories of a specific type within a memory container. This unified API supports searching sessions, working, long-term, and history memory types.
Endpoints
GET /_plugins/_ml/memory_containers/<memory_container_id>/memories/<type>/_search
Path parameters
The following table lists the available path parameters.
| Parameter | Data type | Required/Optional | Description |
|---|---|---|---|
memory_container_id | String | Required | The ID of the memory container. |
type | String | Required | The memory type. Valid values are sessions, working, long-term, and history. |
Request fields
The request body supports standard OpenSearch query domain-specific language (DSL). For more information, see Query DSL.
Example request: Search sessions
GET /_plugins/_ml/memory_containers/HudqiJkB1SltqOcZusVU/memories/sessions/_search
{
"query": {
"match_all": {}
},
"sort": [
{
"created_time": {
"order": "desc"
}
}
]
}
Example request: Search long-term memories
GET /_plugins/_ml/memory_containers/HudqiJkB1SltqOcZusVU/memories/long-term/_search
{
"query": {
"bool": {
"must": [
{
"term": {
"namespace.user_id": "bob"
}
}
]
}
},
"sort": [
{
"created_time": {
"order": "desc"
}
}
]
}
Example request: Search a history memory
GET /_plugins/_ml/memory_containers/HudqiJkB1SltqOcZusVU/memories/history/_search
{
"query": {
"match_all": {}
},
"sort": [
{
"created_time": {
"order": "desc"
}
}
]
}
Example request: Search working memories with a namespace filter
GET /_plugins/_ml/memory_containers/HudqiJkB1SltqOcZusVU/memories/working/_search
{
"query": {
"bool": {
"must": [
{
"term": {
"namespace.user_id": "bob"
}
}
],
"must_not": [
{
"exists": {
"field": "tags.parent_memory_id"
}
}
]
}
},
"sort": [
{
"created_time": {
"order": "desc"
}
}
]
}
Example request: Search trace data by session
GET /_plugins/_ml/memory_containers/HudqiJkB1SltqOcZusVU/memories/working/_search
{
"query": {
"term": {
"namespace.session_id": "123"
}
},
"sort": [
{
"created_time": {
"order": "desc"
}
}
]
}
Example response
{
"took": 5,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 1,
"relation": "eq"
},
"max_score": null,
"hits": [
{
"_index": "test1-session",
"_id": "CcxjTpkBvwXRq366A1aE",
"_score": null,
"_source": {
"memory_container_id": "HudqiJkB1SltqOcZusVU",
"namespace": {
"user_id": "bob"
},
"created_time": "2025-09-15T17:18:55.881276939Z",
"last_updated_time": "2025-09-15T17:18:55.881276939Z"
},
"sort": ["2025-09-15T17:18:55.881276939Z"]
}
]
}
}
Response fields
The response fields vary depending on the memory type being searched. For field descriptions, see Get memory.