# Open Memory Protocol ## Docs - [GET /audit — retrieve the memory audit log](https://docs.openmem.blog/api/audit.md): Query parameters, response schema, and examples for the OMP audit log endpoint, which records every memory operation by user and app. - [GET /capabilities — query provider feature support](https://docs.openmem.blog/api/capabilities.md): Full response schema, field reference, and a complete JSON example for the OMP capabilities and GET /healthz health check endpoints. - [POST /context — get a prompt-ready memory block](https://docs.openmem.blog/api/context.md): Request body, response schema, and LLM integration examples for the OMP context endpoint that returns ranked, citation-tagged memory text. - [OMP API error codes and HTTP status mapping](https://docs.openmem.blog/api/error-model.md): Complete reference for every OMP error code, its HTTP status, type category, and guidance on correlating errors with server-side logs. - [REST API endpoints for memory CRUD operations](https://docs.openmem.blog/api/memories.md): Full reference for POST, GET, PATCH, DELETE, and list /memories — request bodies, path and query parameters, and response shapes. - [OMP HTTP API overview and authentication](https://docs.openmem.blog/api/overview.md): Base URL, content type, authentication, request body limits, error envelope format, versioning, and a full route reference for the OMP HTTP API. - [GET /memories/search — semantic memory search](https://docs.openmem.blog/api/search.md): Query parameters, response schema, and request examples for the OMP semantic and keyword search endpoint, including min_score threshold filtering. - [Provider capabilities and feature negotiation](https://docs.openmem.blog/concepts/capabilities.md): Capabilities let your app discover what features a provider supports at runtime, so you can degrade gracefully across different backends. - [What is a memory? The OMP data model explained](https://docs.openmem.blog/concepts/memory-model.md): A memory is an atomic unit of information the OMP schema stores. Learn every field, how extension fields work, and the full memory lifecycle. - [Memory providers and adapters in OMP](https://docs.openmem.blog/concepts/providers.md): Learn how OMP connects to any memory backend through translation and passthrough adapters, and how to instantiate each supported provider. - [Scopes: organizing and controlling memory access](https://docs.openmem.blog/concepts/scopes.md): Scopes are slash-delimited namespaces that group memories hierarchically and power OMP's fine-grained access control and filtering grammar. - [Async memory operations with AsyncMemory](https://docs.openmem.blog/guides/async-usage.md): AsyncMemory is the async/await mirror of Memory. Every verb is awaitable and the Postgres and passthrough providers use native async clients. - [Run omp-server: self-hosted OMP HTTP endpoint](https://docs.openmem.blog/guides/http-server.md): omp-server is a FastAPI HTTP server that exposes the full OMP verb set over HTTP, letting any language or framework use OMP without the Python SDK. - [Inject memory into LLM prompts with context blocks](https://docs.openmem.blog/guides/llm-integration.md): mem.context() returns a pre-ranked, citation-tagged text block ready to prepend to an LLM system prompt, within a configurable token budget. - [Switch memory providers without changing app code](https://docs.openmem.blog/guides/switch-providers.md): OMP separates provider choice from application logic. Change a single constructor argument to move between Postgres, Mem0, Supermemory, and Letta. - [Install and configure the openmem Python SDK](https://docs.openmem.blog/installation.md): Install openmem, select extras for your backend, configure credentials, and connect Memory to Postgres, Mem0, Supermemory, Letta, or a native OMP server. - [Open Memory Protocol: vendor-neutral AI memory SDK](https://docs.openmem.blog/introduction.md): Learn what OMP is, the vendor lock-in problem it solves, how its adapter architecture works, and which providers are ready to use. - [Get started with Open Memory Protocol](https://docs.openmem.blog/quickstart.md): Add, search, retrieve context, update, and delete a memory against a local Postgres backend using the openmem Python SDK in five steps. - [AsyncMemory: async/await OMP client](https://docs.openmem.blog/sdk/async-memory.md): AsyncMemory is the async counterpart to Memory. Every method is a coroutine, making it suitable for FastAPI, asyncio, and other async Python frameworks. - [Error handling in the openmem SDK](https://docs.openmem.blog/sdk/errors.md): All OMP exceptions inherit from OMPError. Learn the full error hierarchy, standard codes, and how to write consistent error-handling logic across any provider. - [Memory class: the OMP synchronous client](https://docs.openmem.blog/sdk/memory.md): The Memory class is the main entry point for the OMP Python SDK. It wraps any supported provider behind a single, consistent interface. - [OMP Python SDK type reference](https://docs.openmem.blog/sdk/types.md): Reference for all Pydantic v2 models returned by the openmem SDK, including MemoryRecord, SearchResult, ContextBlock, Capabilities, and AuditEntry.