Python SDK

Official Python SDK for Memoid. Install, configure, and use the client to add AI memory, search, and knowledge graphs to your apps.

Installation

pip install memoid

Quick Start

from memoid import MemoryClient

client = MemoryClient("your-api-key")

# Add a memory
client.add(
    messages=[
        {"role": "user", "content": "I love hiking and Italian food"},
        {"role": "assistant", "content": "Great! I'll remember that."}
    ],
    user_id="user_123"
)

# Search memories
results = client.search("What food does the user like?", user_id="user_123")

# Recall context (memories + graph in one call)
context = client.recall("Tell me about the user", user_id="user_123", include_graph=True)

Configuration

client = MemoryClient(
    api_key="your-api-key",
    base_url="https://api.memoid.dev"  # default
)

Memories

Add Memories

result = client.add(
    messages=[
        {"role": "user", "content": "My manager Sarah works at TechCorp"}
    ],
    user_id="user_123",
    project_id="proj_abc",
    metadata={"source": "chat"},
    extract_graph=True
)

Get & List

memory = client.get("memory_id")
memories = client.get_all(user_id="user_123", limit=50)

Update & Delete

client.update("memory_id", "Updated text")
client.delete("memory_id")
client.delete_all(user_id="user_123")

History

history = client.history("memory_id")

Search

results = client.search(
    "food preferences",
    user_id="user_123",
    limit=5,
    threshold=0.7
)

for r in results:
    print(f"{r['memory']} (score: {r['score']:.2f})")

Recall

Unified context retrieval for agents — memories + graph in one call.

context = client.recall(
    "What do I know about John?",
    user_id="user_123",
    include_graph=True,
    memory_limit=10
)

print(context["memories"])        # relevant memories
print(context["entities"])        # related graph entities
print(context["relationships"])   # entity relationships

User Context

Get all memories and graph data for a user — ideal for UI visualization.

context = client.get_user_context(user_id="user_123")

print(context["memories"])        # all memories
print(context["entities"])        # all graph entities
print(context["relationships"])   # all relationships
print(context["stats"])           # totals

Or via REST:

response = requests.get(
    "https://api.memoid.dev/v1/context",
    headers=headers,
    params={"user_id": "user_123"}
)
context = response.json()

Knowledge Graph

Extract Knowledge

result = client.extract_knowledge(
    "Sarah is the CEO of TechCorp. She founded it with Mike."
)
# result["entities"]: [{"name": "Sarah", "type": "person"}, ...]
# result["relationships"]: [{"subject": "Sarah", "predicate": "ceo_of", "object": "TechCorp"}, ...]

Add Entity & Relationship

client.add_entity("Acme Corp", "organization")
client.add_relationship("John", "person", "works_at", "Acme Corp", "organization")

Query & Search

related = client.graph_query("John", depth=2)
found = client.graph_search("tech companies")

Delete Entity

client.delete_entity("John")  # also removes relationships

REST API

All SDK methods map directly to REST endpoints. You can also use requests directly:

import requests

headers = {"Authorization": "Bearer YOUR_API_KEY"}

# Search
response = requests.post(
    "https://api.memoid.dev/v1/search",
    headers=headers,
    json={"query": "food preferences", "user_id": "user_123"}
)
results = response.json()["results"]

# Recall
response = requests.post(
    "https://api.memoid.dev/v1/recall",
    headers=headers,
    json={"query": "Tell me about John", "include_graph": True}
)
context = response.json()