# Memory

## Get workspace-level memory analytics

> Get workspace-level memory analytics.\
> \
> Returns aggregate stats about the memory extraction pipeline:\
> per-dimension fact counts, coverage rates, source intelligence,\
> and recent activity. Cached in Valkey (60s TTL). Uses 4 concurrent\
> Lakebase queries on cache miss.\
> \
> Permissions: authenticated (any role).

```json
{"openapi":"3.1.0","info":{"title":"Platform API","version":"1.0.0"},"servers":[{"url":"https://api.platform.amigo.ai","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"API key issued via `POST /v1/{workspace_id}/api-keys`. Pass the returned `api_key` value as a Bearer token."}},"schemas":{"MemoryAnalyticsResponse":{"properties":{"total_entities_with_memory":{"type":"integer","title":"Total Entities With Memory"},"total_entities_in_workspace":{"type":"integer","title":"Total Entities In Workspace"},"coverage_rate":{"type":"number","title":"Coverage Rate"},"total_facts":{"type":"integer","title":"Total Facts"},"dimensions":{"items":{"$ref":"#/components/schemas/DimensionAnalytics"},"type":"array","title":"Dimensions"},"top_sources":{"items":{"$ref":"#/components/schemas/TopSource"},"type":"array","title":"Top Sources"},"facts_last_24h":{"type":"integer","title":"Facts Last 24H"},"facts_last_7d":{"type":"integer","title":"Facts Last 7D"},"facts_last_30d":{"type":"integer","title":"Facts Last 30D"},"active_dimensions":{"type":"integer","title":"Active Dimensions"},"builtin_dimensions":{"type":"integer","title":"Builtin Dimensions"},"custom_dimensions":{"type":"integer","title":"Custom Dimensions"},"llm_dimensions":{"type":"integer","title":"Llm Dimensions"}},"type":"object","required":["total_entities_with_memory","total_entities_in_workspace","coverage_rate","total_facts","dimensions","top_sources","facts_last_24h","facts_last_7d","facts_last_30d","active_dimensions","builtin_dimensions","custom_dimensions","llm_dimensions"],"title":"MemoryAnalyticsResponse"},"DimensionAnalytics":{"properties":{"dimension":{"type":"string","title":"Dimension"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"weight":{"type":"number","title":"Weight"},"extraction_mode":{"type":"string","title":"Extraction Mode"},"active":{"type":"boolean","title":"Active"},"builtin":{"type":"boolean","title":"Builtin"},"entity_count":{"type":"integer","title":"Entity Count"},"total_facts":{"type":"integer","title":"Total Facts"},"avg_facts_per_entity":{"type":"number","title":"Avg Facts Per Entity"},"avg_confidence":{"type":"number","title":"Avg Confidence"},"source_breakdown":{"additionalProperties":{"type":"integer"},"type":"object","title":"Source Breakdown"},"latest_fact_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Latest Fact At"},"sample_facts":{"items":{"$ref":"#/components/schemas/SampleFact"},"type":"array","title":"Sample Facts","default":[]}},"type":"object","required":["dimension","name","description","weight","extraction_mode","active","builtin","entity_count","total_facts","avg_facts_per_entity","avg_confidence","source_breakdown","latest_fact_at"],"title":"DimensionAnalytics","description":"Per-dimension aggregate stats across all entities."},"SampleFact":{"properties":{"entity_id":{"type":"string","title":"Entity Id"},"extracted_text":{"type":"string","title":"Extracted Text"},"confidence":{"type":"number","title":"Confidence"}},"type":"object","required":["entity_id","extracted_text","confidence"],"title":"SampleFact","description":"Representative fact snippet for a dimension (quality inspection / demos)."},"TopSource":{"properties":{"source":{"type":"string","title":"Source"},"fact_count":{"type":"integer","title":"Fact Count"},"entity_count":{"type":"integer","title":"Entity Count"}},"type":"object","required":["source","fact_count","entity_count"],"title":"TopSource"}}},"paths":{"/v1/{workspace_id}/memory/analytics":{"get":{"tags":["Memory"],"summary":"Get workspace-level memory analytics","description":"Get workspace-level memory analytics.\n\nReturns aggregate stats about the memory extraction pipeline:\nper-dimension fact counts, coverage rates, source intelligence,\nand recent activity. Cached in Valkey (60s TTL). Uses 4 concurrent\nLakebase queries on cache miss.\n\nPermissions: authenticated (any role).","operationId":"get-memory-analytics","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MemoryAnalyticsResponse"}}}},"429":{"description":"Rate limited"}}}}}}
```

## Get memory dimension scores for an entity

> Get dimension completeness scores for an entity.\
> \
> Reads pre-computed aggregates from \`\`memory.patient\_dimensions\`\`.\
> All 6 built-in dimensions are always returned (0 facts for empty ones).\
> \
> Permissions: authenticated (any role).

```json
{"openapi":"3.1.0","info":{"title":"Platform API","version":"1.0.0"},"servers":[{"url":"https://api.platform.amigo.ai","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"API key issued via `POST /v1/{workspace_id}/api-keys`. Pass the returned `api_key` value as a Bearer token."}},"schemas":{"DimensionScoresResponse":{"properties":{"entity_id":{"type":"string","title":"Entity Id"},"dimensions":{"items":{"$ref":"#/components/schemas/DimensionScore"},"type":"array","title":"Dimensions"},"total_facts":{"type":"integer","title":"Total Facts"}},"type":"object","required":["entity_id","dimensions","total_facts"],"title":"DimensionScoresResponse"},"DimensionScore":{"properties":{"dimension":{"type":"string","title":"Dimension"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"weight":{"type":"number","title":"Weight"},"fact_count":{"type":"integer","title":"Fact Count"},"avg_confidence":{"type":"number","title":"Avg Confidence"},"source_count":{"type":"integer","title":"Source Count"},"latest_fact_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Latest Fact At"}},"type":"object","required":["dimension","name","description","weight","fact_count","avg_confidence","source_count","latest_fact_at"],"title":"DimensionScore"}}},"paths":{"/v1/{workspace_id}/memory/{entity_id}/dimensions":{"get":{"tags":["Memory"],"summary":"Get memory dimension scores for an entity","description":"Get dimension completeness scores for an entity.\n\nReads pre-computed aggregates from ``memory.patient_dimensions``.\nAll 6 built-in dimensions are always returned (0 facts for empty ones).\n\nPermissions: authenticated (any role).","operationId":"get-entity-dimension-scores","parameters":[{"name":"entity_id","in":"path","required":true,"schema":{"type":"string","description":"Entity UUID","title":"Entity Id"},"description":"Entity UUID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DimensionScoresResponse"}}}},"422":{"description":"Invalid entity_id"},"429":{"description":"Rate limited"}}}}}}
```

## Get memory facts for an entity

> Get extracted facts for an entity, optionally filtered by dimension.\
> \
> Reads pre-computed facts from \`\`memory.patient\_memory\`\`. Each row\
> includes the pre-extracted \`\`extracted\_text\`\` — no inline JSONB\
> extraction at query time.\
> \
> Permissions: authenticated (any role).

```json
{"openapi":"3.1.0","info":{"title":"Platform API","version":"1.0.0"},"servers":[{"url":"https://api.platform.amigo.ai","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"API key issued via `POST /v1/{workspace_id}/api-keys`. Pass the returned `api_key` value as a Bearer token."}},"schemas":{"MemoryFactsResponse":{"properties":{"entity_id":{"type":"string","title":"Entity Id"},"dimension":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dimension"},"facts":{"items":{"$ref":"#/components/schemas/MemoryFact"},"type":"array","title":"Facts"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["entity_id","dimension","facts","total"],"title":"MemoryFactsResponse"},"MemoryFact":{"properties":{"dimension":{"type":"string","title":"Dimension"},"event_type":{"type":"string","title":"Event Type"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"},"confidence":{"type":"number","title":"Confidence"},"extracted_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Extracted Text"},"data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Data"},"ingested_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ingested At"}},"type":"object","required":["dimension","event_type","source","confidence","extracted_text","ingested_at"],"title":"MemoryFact"}}},"paths":{"/v1/{workspace_id}/memory/{entity_id}/facts":{"get":{"tags":["Memory"],"summary":"Get memory facts for an entity","description":"Get extracted facts for an entity, optionally filtered by dimension.\n\nReads pre-computed facts from ``memory.patient_memory``. Each row\nincludes the pre-extracted ``extracted_text`` — no inline JSONB\nextraction at query time.\n\nPermissions: authenticated (any role).","operationId":"get-entity-memory-facts","parameters":[{"name":"entity_id","in":"path","required":true,"schema":{"type":"string","description":"Entity UUID","title":"Entity Id"},"description":"Entity UUID"},{"name":"dimension","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by dimension key (clinical, behavioral, etc.)","title":"Dimension"},"description":"Filter by dimension key (clinical, behavioral, etc.)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"description":"Max facts to return","default":50,"title":"Limit"},"description":"Max facts to return"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MemoryFactsResponse"}}}},"422":{"description":"Invalid entity_id or dimension key"},"429":{"description":"Rate limited"}}}}}}
```
