Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.openmem.blog/llms.txt

Use this file to discover all available pages before exploring further.

The OMP HTTP API exposes every standard memory verb — add, search, list, context, audit, and more — as plain JSON-over-HTTP endpoints. Any language or framework can use it without the Python SDK. This page covers the conventions that apply to every endpoint.

Base URL

http://<your-omp-server-host>:<port>
The default port when running omp-server is 8080. All examples on this site use http://localhost:8080.

Content type

All requests and responses use application/json. Set Content-Type: application/json on every request that includes a body.

Authentication

The server is designed for trusted-network deployment. Authentication is deferred to a future release. When your provider configuration requires an API key, pass it in the Authorization header:
Authorization: Bearer <your-api-key>
If your provider does not require authentication, you can omit the Authorization header entirely. The /capabilities and /healthz endpoints are always unauthenticated.

Request limits

The default request body limit is 1 MiB. Requests that exceed this limit receive a 413 Payload Too Large response. If you need to store large content, split it across multiple memory records.

Standard response format

Successful responses return the resource object directly at the top level. There is no wrapper envelope on success — a POST /memories response is a Memory object, a GET /memories response is a MemoryPage object, and so on.

Error response format

All errors use a consistent envelope regardless of which provider raised them:
{
  "error": {
    "code": "not_found",
    "message": "Memory mem_abc123 not found",
    "type": "not_found",
    "provider": "postgres",
    "request_id": "req_xyz"
  }
}
See Error codes and HTTP status mapping for the full reference.

Versioning

OMP follows SemVer. The current version is 0.1. Each provider declares the OMP spec version it implements in the omp_version field returned by GET /capabilities. A v0.2 client must be able to talk to a v0.1 server by degrading gracefully; a v0.1 client talking to a v0.2 server must ignore unknown fields.
While OMP is below v1.0, breaking changes between minor versions are possible. They are announced at least 60 days in advance via the spec repository and accompanied by SDK migration helpers.

Quick route reference

MethodPathDescription
POST/memoriesAdd a memory
GET/memoriesList memories
GET/memories/{id}Get a memory by ID
PATCH/memories/{id}Update a memory
DELETE/memories/{id}Delete a memory
GET/memories/searchSemantic and keyword search
POST/contextGet a prompt-ready context block
GET/auditRetrieve the audit log
GET/capabilitiesQuery provider feature support
GET/healthzHealth check