{"openapi":"3.0.3","info":{"title":"AgentMemo API","version":"1.0.0","description":"Persistent memory infrastructure for AI agents — semantic, episodic, procedural, working, and emotional memory.","contact":{"name":"AgentMemo","url":"https://agentmemo.dev"}},"servers":[{"url":"https://agentmemo.dev"}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"am_sk"}}},"paths":{"/signup":{"post":{"summary":"Self-serve: create a free API key","responses":{"201":{"description":"Success","content":{"application/json":{}}}}}},"/usage":{"get":{"summary":"Usage + quota for the calling key","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{}}},"201":{"description":"Success","content":{"application/json":{}}}}}},"/health":{"get":{"summary":"Health check","responses":{"200":{"description":"Success","content":{"application/json":{}}}}}},"/memory/store":{"post":{"summary":"Store a memory (semantic). Supports importance, ttl_seconds, tags, namespace, outcome, detect_conflicts.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{}}},"201":{"description":"Success","content":{"application/json":{}}}}}},"/memory/retrieve":{"get":{"summary":"Semantic search with composite scoring + filters","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{}}},"201":{"description":"Success","content":{"application/json":{}}}}}},"/memory/forget":{"delete":{"summary":"Delete a memory by id or scope","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{}}},"201":{"description":"Success","content":{"application/json":{}}}}}},"/memory/context":{"get":{"summary":"Memories formatted for LLM system-prompt injection","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{}}},"201":{"description":"Success","content":{"application/json":{}}}}}},"/memory/batch":{"post":{"summary":"Store up to 100 memories","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{}}},"201":{"description":"Success","content":{"application/json":{}}}}}},"/memory/feedback":{"post":{"summary":"Update a memory's outcome (EMA)","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{}}},"201":{"description":"Success","content":{"application/json":{}}}}}},"/memory/stale":{"get":{"summary":"Memories not verified in 30+ days","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{}}},"201":{"description":"Success","content":{"application/json":{}}}}}},"/memory/verify/{id}":{"post":{"summary":"Mark a memory still valid","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{}}},"201":{"description":"Success","content":{"application/json":{}}}}}},"/memory/stats":{"get":{"summary":"Comprehensive memory statistics + quality score","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{}}},"201":{"description":"Success","content":{"application/json":{}}}}}},"/memory/conflicts":{"get":{"summary":"List detected contradictions","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{}}},"201":{"description":"Success","content":{"application/json":{}}}}}},"/memory/timeline":{"get":{"summary":"Fact evolution over time for a topic","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{}}},"201":{"description":"Success","content":{"application/json":{}}}}}},"/memory/expired":{"delete":{"summary":"Delete all expired memories","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{}}},"201":{"description":"Success","content":{"application/json":{}}}}}},"/memory/compress":{"post":{"summary":"Summarize/merge old memories","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{}}},"201":{"description":"Success","content":{"application/json":{}}}}}},"/memory/export":{"get":{"summary":"Export memories (json/markdown)","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{}}},"201":{"description":"Success","content":{"application/json":{}}}}}},"/memory/import":{"post":{"summary":"Import memories","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{}}},"201":{"description":"Success","content":{"application/json":{}}}}}},"/memory/episodes/start":{"post":{"summary":"Begin a session episode","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{}}},"201":{"description":"Success","content":{"application/json":{}}}}}},"/memory/episodes/event":{"post":{"summary":"Append an event to an episode","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{}}},"201":{"description":"Success","content":{"application/json":{}}}}}},"/memory/episodes/end":{"post":{"summary":"Close + auto-summarize an episode","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{}}},"201":{"description":"Success","content":{"application/json":{}}}}}},"/memory/episodes":{"get":{"summary":"List/replay episodes","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{}}},"201":{"description":"Success","content":{"application/json":{}}}}}},"/memory/procedures":{"post":{"summary":"Store a procedure","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{}}},"201":{"description":"Success","content":{"application/json":{}}}}}},"/memory/procedures/match":{"get":{"summary":"Find a procedure for a task","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{}}},"201":{"description":"Success","content":{"application/json":{}}}}}},"/memory/working":{"post":{"summary":"Store working memory","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{}}},"201":{"description":"Success","content":{"application/json":{}}}}},"get":{"summary":"Get working memory","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{}}},"201":{"description":"Success","content":{"application/json":{}}}}},"delete":{"summary":"Clear working memory","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{}}},"201":{"description":"Success","content":{"application/json":{}}}}}},"/memory/emotional":{"post":{"summary":"Record interaction sentiment","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{}}},"201":{"description":"Success","content":{"application/json":{}}}}}},"/memory/emotional/profile":{"get":{"summary":"User emotional profile + trust score","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{}}},"201":{"description":"Success","content":{"application/json":{}}}}}},"/memory/graph/link":{"post":{"summary":"Link two memories","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{}}},"201":{"description":"Success","content":{"application/json":{}}}}}},"/memory/graph/explore":{"get":{"summary":"Traverse the memory graph","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{}}},"201":{"description":"Success","content":{"application/json":{}}}}}},"/memory/graph/conflicts":{"get":{"summary":"Contradicting memory pairs","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{}}},"201":{"description":"Success","content":{"application/json":{}}}}}},"/memory/health":{"get":{"summary":"Memory quality report","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{}}},"201":{"description":"Success","content":{"application/json":{}}}}}},"/memory/insights":{"get":{"summary":"Surfaced insights","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{}}},"201":{"description":"Success","content":{"application/json":{}}}}}},"/memory/predict":{"get":{"summary":"Predicted likely-needed memories","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{}}},"201":{"description":"Success","content":{"application/json":{}}}}}},"/memory/transfer":{"post":{"summary":"Transfer memories between agents","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{}}},"201":{"description":"Success","content":{"application/json":{}}}}}},"/memory/subscribe":{"post":{"summary":"Subscribe to memory events","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{}}},"201":{"description":"Success","content":{"application/json":{}}}}}},"/agents/register":{"post":{"summary":"Register a named agent","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{}}},"201":{"description":"Success","content":{"application/json":{}}}}}},"/agents/{id}":{"get":{"summary":"Agent profile","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{}}},"201":{"description":"Success","content":{"application/json":{}}}}}},"/agents/{id}/memories":{"get":{"summary":"Agent memories","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{}}},"201":{"description":"Success","content":{"application/json":{}}}}}},"/agents/{id}/stats":{"get":{"summary":"Agent stats","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{}}},"201":{"description":"Success","content":{"application/json":{}}}}}},"/analytics/daily":{"get":{"summary":"Daily usage","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{}}},"201":{"description":"Success","content":{"application/json":{}}}}}},"/analytics/agents":{"get":{"summary":"Per-agent usage","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{}}},"201":{"description":"Success","content":{"application/json":{}}}}}},"/analytics/patterns":{"get":{"summary":"Access patterns","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{}}},"201":{"description":"Success","content":{"application/json":{}}}}}},"/users/{id}/memories":{"get":{"summary":"GDPR export","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{}}},"201":{"description":"Success","content":{"application/json":{}}}}},"delete":{"summary":"GDPR forget","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{}}},"201":{"description":"Success","content":{"application/json":{}}}}}},"/templates":{"get":{"summary":"List memory templates","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{}}},"201":{"description":"Success","content":{"application/json":{}}}}}},"/mcp":{"post":{"summary":"MCP JSON-RPC endpoint","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{}}}}}}}}