curl -X POST "http://localhost:8000/api/v2/agents/my-agent/recall/recent" \
-H "X-Session-Token: your_session_token" \
-H "Content-Type: application/json" \
-d '{
"limit": 10,
"type": ["fact", "decision"]
}'
curl -X POST "http://localhost:8000/api/v2/agents/my-agent/recall/recent" \
-H "X-Session-Token: your_session_token" \
-H "Content-Type: application/json" \
-d '{}'
{
"agent_id": "my-agent",
"session_id": "sess_123abc",
"memories": [
{
"id": "3e681f12-a28c-4d1d-9632-b8dadf1f9d0c",
"title": "Latest Customer Feedback",
"content": "Customer prefers async communication on Slack.",
"text": "[PREFERENCE] Latest Customer Feedback\n\nCustomer prefers async communication on Slack.",
"type": "preference",
"confidence": 0.9,
"status": "active",
"expired_at": null,
"expired_by": null,
"tags": [],
"created_at": "2026-05-08T18:47:46Z",
"updated_at": "2026-05-08T18:47:46Z",
"actor_id": "my-agent",
"source": "agent",
"source_ref": null,
"agent_id": "my-agent",
"score": null,
"provenance": "explicit_statement"
}
],
"count": 1,
"total_available": 1,
"temporal_mode": "recent"
}
{
"detail": {
"error": "SessionExpired",
"message": "Session has expired",
"details": {}
}
}
{
"detail": {
"error": "k_too_large",
"message": "k exceeds maximum of 100",
"actual_k": 200,
"max_k": 100
}
}
{
"detail": {
"error": "InternalServerError",
"message": "An unexpected error occurred",
"details": {
"original_error": "Session is for agent 'other-agent', cannot access 'my-agent'"
}
}
}
Search & Discovery
Recall Recent
Return the most recently stored memories, sorted newest-first.
POST
/
api
/
v2
/
agents
/
{agent_id}
/
recall
/
recent
curl -X POST "http://localhost:8000/api/v2/agents/my-agent/recall/recent" \
-H "X-Session-Token: your_session_token" \
-H "Content-Type: application/json" \
-d '{
"limit": 10,
"type": ["fact", "decision"]
}'
curl -X POST "http://localhost:8000/api/v2/agents/my-agent/recall/recent" \
-H "X-Session-Token: your_session_token" \
-H "Content-Type: application/json" \
-d '{}'
{
"agent_id": "my-agent",
"session_id": "sess_123abc",
"memories": [
{
"id": "3e681f12-a28c-4d1d-9632-b8dadf1f9d0c",
"title": "Latest Customer Feedback",
"content": "Customer prefers async communication on Slack.",
"text": "[PREFERENCE] Latest Customer Feedback\n\nCustomer prefers async communication on Slack.",
"type": "preference",
"confidence": 0.9,
"status": "active",
"expired_at": null,
"expired_by": null,
"tags": [],
"created_at": "2026-05-08T18:47:46Z",
"updated_at": "2026-05-08T18:47:46Z",
"actor_id": "my-agent",
"source": "agent",
"source_ref": null,
"agent_id": "my-agent",
"score": null,
"provenance": "explicit_statement"
}
],
"count": 1,
"total_available": 1,
"temporal_mode": "recent"
}
{
"detail": {
"error": "SessionExpired",
"message": "Session has expired",
"details": {}
}
}
{
"detail": {
"error": "k_too_large",
"message": "k exceeds maximum of 100",
"actual_k": 200,
"max_k": 100
}
}
{
"detail": {
"error": "InternalServerError",
"message": "An unexpected error occurred",
"details": {
"original_error": "Session is for agent 'other-agent', cannot access 'my-agent'"
}
}
}
Overview
Returns memories sorted bycreated_at descending (newest first). Useful when you want the latest context without running a semantic query — for example, summarizing the most recent activity for an agent.
There is no query parameter for this endpoint; results are purely chronological.
count is the number of memories returned. total_available is how many memories matched the filters before limit was applied.
Authentication
API clients do not send an API key orAuthorization header.
string
required
Session token from Activate Agent. Must match
agent_id.string
required
Must be
application/jsonPath Parameters
string
required
The unique identifier of the agent.
Body
integer
Maximum number of results to return. Range
1–100. If omitted, the server default applies (RECALL_LIMIT).array
Optional list of memory type filters (e.g.
["fact", "preference"]).string
default:"all"
Lifecycle filter:
all (default) returns active and expired memories
together so callers can label them, active or expired narrows to one.
See Memory Lifecycle.curl -X POST "http://localhost:8000/api/v2/agents/my-agent/recall/recent" \
-H "X-Session-Token: your_session_token" \
-H "Content-Type: application/json" \
-d '{
"limit": 10,
"type": ["fact", "decision"]
}'
curl -X POST "http://localhost:8000/api/v2/agents/my-agent/recall/recent" \
-H "X-Session-Token: your_session_token" \
-H "Content-Type: application/json" \
-d '{}'
{
"agent_id": "my-agent",
"session_id": "sess_123abc",
"memories": [
{
"id": "3e681f12-a28c-4d1d-9632-b8dadf1f9d0c",
"title": "Latest Customer Feedback",
"content": "Customer prefers async communication on Slack.",
"text": "[PREFERENCE] Latest Customer Feedback\n\nCustomer prefers async communication on Slack.",
"type": "preference",
"confidence": 0.9,
"status": "active",
"expired_at": null,
"expired_by": null,
"tags": [],
"created_at": "2026-05-08T18:47:46Z",
"updated_at": "2026-05-08T18:47:46Z",
"actor_id": "my-agent",
"source": "agent",
"source_ref": null,
"agent_id": "my-agent",
"score": null,
"provenance": "explicit_statement"
}
],
"count": 1,
"total_available": 1,
"temporal_mode": "recent"
}
{
"detail": {
"error": "SessionExpired",
"message": "Session has expired",
"details": {}
}
}
{
"detail": {
"error": "k_too_large",
"message": "k exceeds maximum of 100",
"actual_k": 200,
"max_k": 100
}
}
{
"detail": {
"error": "InternalServerError",
"message": "An unexpected error occurred",
"details": {
"original_error": "Session is for agent 'other-agent', cannot access 'my-agent'"
}
}
}
Next Steps
- Recall for semantic search by query
- Recall As Of for point-in-time queries
- Recall Changed Since for differential retrieval
- Recall All to fetch every memory instead of the latest
100