Skip to main content

Memory Management API

The Memory Management API provides comprehensive operations for creating, retrieving, updating, and deleting memories in the Hystersis system. All memory operations include automatic processing with LLM-based fact extraction, entity linking, and compression.

Authentication

All memory endpoints require authentication with API key:

Rate Limits

Basic Operations

Create Memory

Create a new memory with automatic LLM processing. Endpoint: POST /memories Request Body:
Parameters:
  • content (string, required): The memory content to store
  • user_id (string, optional): User identifier for personalization
  • category (string, optional): Memory category for organization
  • metadata (object, optional): Additional metadata
  • type (string, optional): Memory type (preference, fact, conversation, etc.)
  • expire_at (string, optional): ISO 8601 timestamp for expiration
Response:
Example:

List Memories

Retrieve memories with optional filtering and pagination. Endpoint: GET /memories Query Parameters:
  • user_id (string): Filter by user ID
  • category (string): Filter by category
  • type (string): Filter by memory type
  • created_after (string): Filter memories created after timestamp
  • created_before (string): Filter memories created before timestamp
  • limit (integer, default: 20, max: 100): Number of results per page
  • offset (integer, default: 0): Offset for pagination
  • sort (string, default: “created_at desc”): Sort field and direction
Response:
Example:

Get Memory

Retrieve a specific memory by ID. Endpoint: GET /memories/{id} Response:
Example:

Update Memory

Update an existing memory’s content and metadata. Endpoint: PUT /memories/{id} Request Body:
Response:
Example:

Delete Memory

Permanently delete a memory. Endpoint: DELETE /memories/{id} Response:
Example:

Advanced Memory Operations

Process Memory

Process memory with specific options for extraction and compression. Endpoint: POST /memories/process Request Body:
Parameters:
  • content (string, required): Memory content to process
  • options (object): Processing options
    • extract_facts (boolean): Extract facts from content
    • extract_entities (boolean): Extract and link entities
    • compress (boolean): Apply compression
    • compression_mode (string): “balanced”, “aggressive”, “conservative”
    • skip_duplicates (boolean): Skip duplicate content detection
Response:

Infer Memory Content

Use LLM to infer additional content and context from existing memories. Endpoint: POST /memories/infer Request Body:
Parameters:
  • memory_id (string, required): Memory ID to infer from
  • prompt (string, required): Inference prompt
  • context_limit (integer): Maximum context tokens
Response:

Batch Create Memories

Create multiple memories in a single request. Endpoint: POST /memories/batch Request Body:
Response:

Batch Update Memories

Update multiple memories in a single request. Endpoint: PUT /memories/batch-update Request Body:

Batch Delete Memories

Delete multiple memories by IDs or filters. Endpoint: DELETE /memories/batch-delete Request Body (by IDs):
Request Body (by filters):

Bulk Delete by Filters

Delete memories matching complex filter criteria. Endpoint: DELETE /memories/bulk-delete Request Body:

Get Memory Statistics

Retrieve comprehensive statistics about memories. Endpoint: GET /memories/stats Response:

Memory Versioning

Get Memory History

Retrieve version history of a memory. Endpoint: GET /memories/{id}/history Response:

Get Memory Versions

List all available versions of a memory. Endpoint: GET /memories/{id}/versions

Restore Memory Version

Restore a memory to a previous version. Endpoint: POST /memories/{id}/restore Request Body:

Set Memory Expiration

Set or update expiration time for a memory. Endpoint: POST /memories/{id}/expire Request Body:

Memory Relationships

Create a relationship between memory and entity. Endpoint: POST /memories/{id}/link/{entityID} Request Body:

Get Memory Entities

Retrieve entities associated with a memory. Endpoint: GET /memories/{id}/entities

Memory Feedback

Add Memory Feedback

Provide feedback on memory quality and relevance. Endpoint: POST /memories/{id}/feedback Request Body:

Error Handling

Common Error Responses

Error Codes

Best Practices

Memory Content Guidelines

  1. Be Specific: Use precise language rather than vague statements
  2. Include Context: Add relevant metadata for better recall
  3. Use Categories: Organize memories by category for better search
  4. Set Expiration: Use expiration for time-sensitive information
  5. Avoid PII: Remove personally identifiable information

Performance Optimization

  1. Batch Operations: Use batch endpoints for multiple operations
  2. Pagination: Use proper pagination for large result sets
  3. Filtering: Use filters to reduce data transfer
  4. Compression: Enable compression for large memories
  5. Caching: Cache frequently accessed memories locally

Security Considerations

  1. API Key Management: Rotate API keys regularly
  2. Access Control: Implement proper RBAC for memory access
  3. Data Encryption: Ensure sensitive memories are encrypted
  4. Audit Logging: Enable audit logging for all memory operations
  5. Rate Limiting: Implement appropriate rate limiting