REST API
HTTP endpoints for ingest, recall, and digest operations.
Base URL: https://api.neuromem.cloud
Authentication
All API requests require an API key passed as a Bearer token in the Authorization header. API keys are created in the Dashboard and use the nm_sk_ prefix.
Authorization: Bearer nm_sk_your_api_key_here
/api/v1/ingest
Store a conversation message. Automatically extracts facts, episodes, and knowledge graph triples.
Request Body
Request
curl -X POST https://api.neuromem.cloud/api/v1/ingest \
-H "Authorization: Bearer nm_sk_..." \
-H "Content-Type: application/json" \
-d '{
"content": "User prefers dark mode and uses TypeScript daily",
"user_id": "user-123",
"role": "user"
}'Response
{
"id": "mem_abc123",
"user_id": "default",
"role": "user",
"extraction_required": false,
"extraction_prompt": null
}extraction_required will be true and extraction_prompt will contain the prompt for client-side extraction. Submit the result via /api/v1/ingest_extracted./api/v1/ingest_extracted
Submit client-extracted data for a previously ingested memory (ONE LLM mode).
Request Body
data object structure
Request
curl -X POST https://api.neuromem.cloud/api/v1/ingest_extracted \
-H "Authorization: Bearer nm_sk_..." \
-H "Content-Type: application/json" \
-d '{
"memory_id": "mem_abc123",
"user_id": "user-123",
"data": {
"facts": [
{"content": "User prefers dark mode"},
{"content": "User uses TypeScript daily"}
],
"episodes": [
{"content": "User discussed UI preferences on 2026-03-10"}
],
"triples": [
{"subject": "User", "predicate": "prefers", "object": "dark mode"},
{"subject": "User", "predicate": "uses", "object": "TypeScript"},
{"subject": "User", "predicate": "uses_frequency", "object": "daily"}
]
}
}'Response
{
"memory_id": "mem_abc123",
"user_id": "user-123",
"facts_stored": 2,
"episodes_stored": 1,
"triples_stored": 3
}/api/v1/recall
Search memories with natural language. Hybrid retrieval combines vector similarity, BM25 full-text search, and knowledge graph traversal.
Request Body
Request
curl -X POST https://api.neuromem.cloud/api/v1/recall \
-H "Authorization: Bearer nm_sk_..." \
-H "Content-Type: application/json" \
-d '{
"query": "user preferences",
"user_id": "user-123",
"limit": 5
}'Response
{
"query": "user preferences",
"user_id": "user-123",
"memories": [
{
"content": "User prefers dark mode and TypeScript",
"score": 0.92,
"memory_type": "fact",
"source": "vector",
"created_at": "2026-03-10T08:30:00Z"
}
],
"total": 5,
"inferred_context": "technology preferences",
"context_confidence": 0.85
}/api/v1/digest
Trigger behavioral pattern analysis. Discovers traits and preferences from accumulated memories.
Request Body
Request
curl -X POST https://api.neuromem.cloud/api/v1/digest \
-H "Authorization: Bearer nm_sk_..." \
-H "Content-Type: application/json" \
-d '{
"user_id": "user-123"
}'Response (normal mode)
{
"user_id": "user-123",
"traits_generated": 3
}Response (ONE LLM mode)
{
"user_id": "user-123",
"one_llm_mode": true,
"memories": ["..."],
"existing_traits": ["..."],
"unreflected_count": 15,
"reflection_prompt": "Based on these memories, identify behavioral patterns..."
}reflection_prompt for client-side trait extraction. Submit the result via /api/v1/digest_extracted./api/v1/digest_extracted
Submit client-extracted traits from digest analysis (ONE LLM mode).
Request Body
data object structure
Request
curl -X POST https://api.neuromem.cloud/api/v1/digest_extracted \
-H "Authorization: Bearer nm_sk_..." \
-H "Content-Type: application/json" \
-d '{
"user_id": "user-123",
"data": {
"traits": [
{
"content": "Strongly prefers functional programming patterns",
"category": "behavior",
"importance": 8
},
{
"content": "Values code readability over cleverness",
"category": "preference",
"importance": 9
}
]
}
}'Response
{
"user_id": "user-123",
"traits_stored": 2
}importance >= 7 are persisted. Lower-importance traits are silently discarded./api/v1/memories
List stored memories with pagination and optional type filtering.
Query Parameters
Request
curl "https://api.neuromem.cloud/api/v1/memories?user_id=user-123&memory_type=fact&limit=20&offset=0" \ -H "Authorization: Bearer nm_sk_..."
Response
{
"memories": [
{
"id": "mem_abc123",
"content": "User prefers dark mode and TypeScript",
"memory_type": "fact",
"importance": 7,
"access_count": 3,
"created_at": "2026-03-10T08:30:00Z",
"updated_at": null,
"metadata": {}
}
],
"total": 42,
"limit": 20,
"offset": 0
}/api/v1/memories/{memory_id}
Update a memory's content or type. Changing content automatically re-generates the embedding vector.
Request Body
Request
curl -X PATCH https://api.neuromem.cloud/api/v1/memories/mem_abc123 \
-H "Authorization: Bearer nm_sk_..." \
-H "Content-Type: application/json" \
-d '{
"user_id": "user-123",
"content": "User strongly prefers dark mode across all applications"
}'Response
{
"status": "updated",
"memory_id": "mem_abc123"
}/api/v1/memories/{memory_id}
Permanently delete a specific memory by ID.
Query Parameters
Request
curl -X DELETE "https://api.neuromem.cloud/api/v1/memories/mem_abc123?user_id=user-123" \ -H "Authorization: Bearer nm_sk_..."
Response
{
"status": "deleted",
"memory_id": "mem_abc123"
}/api/v1/memories/batch-delete
Delete multiple memories in a single request. Supports dry-run mode for previewing the operation.
Request Body
Request
curl -X POST https://api.neuromem.cloud/api/v1/memories/batch-delete \
-H "Authorization: Bearer nm_sk_..." \
-H "Content-Type: application/json" \
-d '{
"user_id": "user-123",
"memory_ids": ["mem_abc123", "mem_def456", "mem_ghi789"],
"dry_run": false
}'Response
{
"deleted": 3,
"dry_run": false,
"count": 3
}