Skip to main content

MemoryIntelligence API

Memory without meaning is just storage.

This API turns raw content (text, conversations, images) into structured meaning. Searchable, explainable, provenance-tracked. No black box. No hallucinations.

For Python backends: FastAPI, Django, Flask, Lambda, Cloud Functions.


What's new in 0.1.2

  • ask() and list() are fixed. They previously returned empty results (hit.summary/hit.id as None, list() as []) because the client read the wrong response shape. Upgrade with pip install -U memoryintelligence.
  • Now Apache-2.0 licensed (was a custom MIT-with-restrictions).

Full history in CHANGELOG.md.


Installation

pip install memoryintelligence

Get your API key: memoryintelligence.io/beta


Quick Start

from memoryintelligence import MemoryIntelligence

mi = MemoryIntelligence.from_env()          # reads MI_API_KEY

# Turn content into a structured, verifiable memory
note = mi.capture(
    "Discussed pricing with ACME. They prefer quarterly billing.",
    source="sales_call",
)

# Ask by meaning, not keywords
for hit in mi.ask("what did ACME say about billing?"):
    print(f"{hit.score:.2f}  {hit.summary}")

# Every memory has a receipt
if mi.verify(note.id):
    print("intact")

Upgrading from MemoryClient? The flat MemoryIntelligence client above is the recommended surface. The older MemoryClient (the mi.umo.* namespace, with multi-tenant user_ulid) still works for advanced use, and EdgeClient still serves regulated on-premise deployments, but MemoryClient is deprecated and will be removed in a future major. See Core Operations for the full eight-verb surface.


What It Does

  • Processes → Extracts entities, topics, relationships, sentiment
  • Searches → Returns ranked results with explainability
  • Matches → Compares memories for relevance/similarity
  • Explains → Shows why results matched (semantic, temporal, graph)
  • Deletes → GDPR-compliant data removal with audit trail

No vector database setup. No chunking strategies. No embedding models to manage.


Security: API Keys Are Server-Only

Your API key grants full account access. Keep it server-side.

✅ Backend (environment variable):

mi = MemoryIntelligence.from_env()   # reads MI_API_KEY

❌ Never hardcoded:

# Don't - visible in logs/code
mi = MemoryIntelligence(api_key='mi_sk_beta_...')

For web apps: Use your API key in the backend, build your own endpoints with your auth, let your frontend call those.


What Makes This Different

Others MemoryIntelligence
Store text, embed, hope Extract meaning first
"Here are similar chunks" "Here's why this matched"
No audit trail Cryptographic provenance
Your data = their model training We never train on your data

Setting the standard for memory.


Core Operations

Eight verbs, mapped one-to-one onto the public API:

note    = mi.capture(content, source="notes")   # POST   /v1/process
hits    = mi.ask(query, limit=5)                 # POST   /v1/memories/query
note    = mi.get(umo_id)                          # GET    /v1/memories/{id}
notes   = mi.list(limit=20)                       # GET    /v1/memories
proof   = mi.verify(umo_id)                        # GET    /v1/memories/{id}/proof
why     = mi.explain(umo_id)                        # GET    /v1/memories/{id}/explain
receipt = mi.forget(umo_id)                        # DELETE /v1/memories/{id}
notes   = mi.batch(["note one", "note two"])       # POST   /v1/batch
note    = mi.upload("meeting.mp3")                 # POST   /v1/upload

Results come back as small typed objects (Memory, Match, Proof, Receipt), each with a .raw escape hatch and item access, so note.id when it is clean and note["quality_score"] when you need a field we did not surface.


Async Support

An async twin of the flat client (AsyncMemoryIntelligence) is on the roadmap. Until then, the async surface is the older AsyncMemoryClient (the mi.umo.* namespace, deprecated alongside MemoryClient):

from memoryintelligence import AsyncMemoryClient

async with AsyncMemoryClient.from_env() as mi:
    results = await mi.umo.search(query, user_ulid="01ABC...")

Error Handling

from memoryintelligence import (
    MIError, AuthenticationError, NotFoundError, RateLimitError, ValidationError,
)

try:
    hits = mi.ask(query)
except AuthenticationError:
    ...                       # API key invalid or expired
except NotFoundError:
    ...                       # no memory with that id
except RateLimitError:
    ...                       # the client already retried with backoff
except ValidationError as e:
    ...                       # request shape was wrong
except MIError as e:
    print(e.status, e)        # any API error carries its status

Typed Everywhere

Full Pydantic models. Type hints on every method. No dict soup.

from memoryintelligence import Memory, Match, Proof

Examples & Docs


Support


MemoryIntelligence™ — Setting the standard for memory.

Built by somewhere

Metadata

Release files for memoryintelligence 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for memoryintelligence 0.1.2
File Size Uploaded
memoryintelligence-0.1.2.tar.gz 22.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for memoryintelligence 0.1.2
File Interpreter ABI Platform
memoryintelligence-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 44.1 kB

Release files / memoryintelligence-0.1.2.tar.gz

Download URL memoryintelligence-0.1.2.tar.gz
Size 22.9 kB
Tags Source
SHA-256 checksum
How to use checksums
dfbf475a46205c7d6fda832a88d0809a3e448324b024338c012452a8da12b895
BLAKE2b-256 checksum
How to use checksums
78f790dc85d8b3ca89e922bf4419fc0b493ea926808443be291765767ca9e435
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / memoryintelligence-0.1.2-py3-none-any.whl

Download URL memoryintelligence-0.1.2-py3-none-any.whl
Size 21.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
081af339f00e6a75b6bf2ac55c167b1e6c6be57de60aef2ef85fd37d6390cc10
BLAKE2b-256 checksum
How to use checksums
812ca3d79f730856c7494cb74c203a799ddbfd91c045c8a0113bc661709451b2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page