Beever Atlas v0.1 has launched! Star us on GitHub

Memories API

Overview

Access and query extracted atomic facts (memories) from team communications.

GET /api/memories

List all memories/facts with filtering and pagination.

Query Parameters

ParameterTypeRequiredDescription
channel_idstringYesChannel identifier
pageintNoPage number (default: 1)
limitintNoResults per page (default: 20, max: 100)
topicstringNoFilter by topic tag
entitystringNoFilter by entity tag
importancestringNoFilter by importance (low, medium, high)
sincestringNoISO 8601 timestamp - facts since this date
untilstringNoISO 8601 timestamp - facts until this date
fact_typestringNoFilter by type (decision, opinion, observation, action_item, question)

Response

{
  "memories": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "memory_text": "The team decided to use JWT tokens for authentication.",
      "quality_score": 0.85,
      "tier": "atomic",
      "channel_id": "C12345",
      "author_name": "Jane Smith",
      "message_ts": "2026-04-13T10:30:00Z",
      "topic_tags": ["authentication", "security"],
      "entity_tags": ["JWT", "OAuth"],
      "importance": "high",
      "fact_type": "decision",
      "source_message_id": "1234567890.123456",
      "permalink": "https://slack.com/archives/..."
    }
  ],
  "total": 856,
  "page": 1,
  "pages": 43
}

GET /api/memories/{memory_id}

Get a specific memory by ID.

Parameters

ParameterTypeRequiredDescription
memory_idstringYesMemory UUID

Response

{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "memory_text": "The team decided to use JWT tokens for authentication.",
  "quality_score": 0.85,
  "tier": "atomic",
  "cluster_id": "topic_123",
  "channel_id": "C12345",
  "platform": "slack",
  "author_id": "U12345",
  "author_name": "Jane Smith",
  "message_ts": "2026-04-13T10:30:00Z",
  "thread_ts": null,
  "source_message_id": "1234567890.123456",
  "topic_tags": ["authentication", "security"],
  "entity_tags": ["JWT", "OAuth"],
  "action_tags": [],
  "importance": "high",
  "graph_entity_ids": ["entity_jwt_decision"],
  "fact_type": "decision",
  "thread_context_summary": "After discussing trade-offs...",
  "valid_at": "2026-04-13T10:30:00Z",
  "invalid_at": null,
  "superseded_by": null,
  "potential_contradiction": false,
  "source_lang": "en"
}

POST /api/memories/search

Advanced search across memories with filters.

Request Body

{
  "channel_id": "C12345",
  "query": "authentication security",
  "filters": {
    "importance": ["high", "medium"],
    "fact_types": ["decision"],
    "entities": ["JWT"],
    "date_range": {
      "start": "2026-01-01T00:00:00Z",
      "end": "2026-04-13T23:59:59Z"
    }
  },
  "sort": "relevance",
  "limit": 20
}

Response

{
  "results": [
    {
      "memory": {...},
      "score": 0.95,
      "highlights": ["The team decided to use <mark>JWT</mark> tokens..."]
    }
  ],
  "total": 15,
  "query_time_ms": 45
}

GET /api/memories/topics

List all topic tags across memories.

Parameters

ParameterTypeRequiredDescription
channel_idstringYesChannel identifier

Response

{
  "topics": [
    {"tag": "authentication", "count": 45},
    {"tag": "deployment", "count": 32},
    {"tag": "api", "count": 28}
  ]
}

GET /api/memories/entities

List all entity tags across memories.

Response

{
  "entities": [
    {"name": "JWT", "count": 23},
    {"name": "PostgreSQL", "count": 18},
    {"name": "Redis", "count": 15}
  ]
}

Memory Quality Scores

Memories are scored 0.0 to 1.0 based on:

  • Information Density: Specific vs. general content
  • Actionability: Contains decisions or action items
  • Specificity: Concrete details vs. vague statements
  • Recency: Adjusted for staleness over time

Quality Bands

ScoreQualityDescription
0.8-1.0HighDecisions, concrete action items, specific technical details
0.5-0.8MediumOpinions, observations, contextual information
0.0-0.5LowGeneral statements, ambiguous content

Memory Types

TypeDescriptionExamples
decisionDecisions made, conclusions reached"We chose PostgreSQL over MongoDB"
opinionOpinions, preferences, suggestions"I think we should use TypeScript"
observationObservations, facts noted"The API response time increased"
action_itemTasks to be done"Need to update the documentation"
questionQuestions asked"What's the token expiration time?"

On this page