canonical: https://jentic.com/apis/memoryplugin.com/memoryplugin

# MemoryPlugin

The MemoryPlugin API stores a user's memories and returns the most relevant ones to an AI assistant on demand. A search query returns the 5 most relevant memories, and memories can be organised into named buckets, edited, moved between buckets in batches of up to 100, or deleted from both the database and the vector store. A separate chat-history endpoint takes the user's current input and returns relevant context from past chats, capped by a maxTokens budget of up to 2000. All calls authenticate with a bearer token.

## For AI agents

Save user memories into buckets, search them by query to pull the 5 most relevant into a conversation, inject relevant chat-history context under a token budget, and edit, move, or delete memories.

## Scope

Does not generate text, host language models, or store files and documents. Use for saving, searching, and organising a user's text memories and chat-history context only.

## Capabilities

- Store a new memory with dated text in the default bucket or a chosen bucketId
- Search memories by query and get back the 5 most relevant, or page through the latest with count and skip
- Pull relevant context from past chat history for the user's current input, capped by maxTokens up to 2000
- Create named buckets and fetch memories and buckets together in one request filtered by bucketId
- Edit a memory's text or move up to 100 memories to another bucket, auto-creating it by bucketName
- Delete one memory or bulk delete a list of memoryIds from the database and vector store

## Use cases

### Persistent memory for your agent through Jentic

An assistant agent that forgets everything between sessions is less useful. Through Jentic it searches MemoryPlugin with the user's current topic at the start of a task, reads the 5 most relevant memories, and saves new facts back with a dated text field as the conversation goes. The bearer token stays in your own Jentic One instance, and your rules decide whether the agent may also delete memories.

Example prompt: Call GET `/api/memory` with query 'project deadlines' to read the most relevant memories, then call POST `/api/memory` with text '2026-11-09: Launch moved to December 4' to save the new fact

### Chat-history context injection

Before answering, a client can pull the slices of past chats that matter to the current message. The chat-history inject endpoint takes a required query, an optional conversationContext string, and a maxTokens budget that defaults to 600 and caps at 2000, so the injected context fits the model's prompt without overrunning it.

Example prompt: Call POST `/api/chat-history/inject` with query 'what hotel did we pick in Lisbon' and maxTokens 800, then use the returned context in the answer

### Organising memories into buckets

Memories grow messy over time. The API creates named buckets, lists them, and fetches memories and buckets together filtered by bucketId. The update endpoint moves up to 100 memoryIds into a target bucket in one call, creating the bucket by name if it does not exist yet, so an agent can tidy work, personal, and project memories apart.

Example prompt: Call GET `/api/v2/memory` with all true, pick the memories about work, then call POST `/api/v2/memory/update` with those memoryIds and bucketName 'Work'

### Memory clean-up

Stale or wrong memories mislead an assistant. A single memory can be deleted by id, and the bulk-delete endpoint removes a list of memoryIds in one request, taking them out of both the database and the vector store so they no longer surface in search.

Example prompt: Call GET `/api/memory` with query 'old address' to find outdated memories, then call POST `/api/memories/bulk-delete` with their memoryIds

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/api/memory` | Query or retrieve memories |
| POST | `/api/memory` | Store a new memory |
| POST | `/api/chat-history/inject` | Fetch context from chat history |
| GET | `/api/v2/memory` | Get memories and buckets together |
| POST | `/api/buckets` | Create a bucket |
| POST | `/api/v2/memory/update` | Edit or move memories |
| POST | `/api/memories/bulk-delete` | Bulk delete memories |

## Key resources

- **Memories** — Text memories with ids, searchable by relevance and stored in buckets
- **Buckets** — Named groups that organise memories
- **Chat history** — Past chats searched for context relevant to the current input

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 64 / 100
- **Maturity:** AI-Aware
- **Dimensions:**
  - Foundational Compliance: 90 / 100
  - Developer Experience & Jentic Compatibility: 68 / 100
  - AI-Readiness & Agent Experience: 48 / 100
  - Agent Usability: 94 / 100
  - Security: 60 / 100
  - AI Discoverability: 49 / 100
- **View full report:** https://jentic.com/apis/memoryplugin.com/memoryplugin/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring MemoryPlugin by hand means carrying a bearer token on every call, passing the v and source parameters, and choosing between the v1 and v2 memory routes. Through Jentic you install once, import MemoryPlugin from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** MemoryPlugin passes buckets and memory ids as query or body fields on most routes rather than in the URL path, so rules bound which operations your agent may call, not which bucket it touches. You choose the operations it may call, so destructive ones like bulk delete or single-memory delete are not included unless you add them.
- **Credential handling:** Your MemoryPlugin token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'search my memories' or 'save a memory', and Jentic returns the matching MemoryPlugin operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Memara API** — Long-term agent memory with scoped Memory Spaces and semantic search
- **Pinecone API** — Managed vector database for building your own semantic retrieval
- **OpenAI API** — Language models that consume the retrieved memories as prompt context

## FAQ

### What authentication does the MemoryPlugin API use?

Per its OpenAPI spec, every MemoryPlugin operation uses HTTP bearer auth: send your MemoryPlugin token in the Authorization header as a bearer token. Through Jentic the token is stored encrypted by your own Jentic One instance and injected at call time, so it never enters the agent's context.

### How does memory search work in the MemoryPlugin API?

Call GET `/api/memory` with a query parameter and the API returns the 5 most relevant memories. Without a query, set latest to true with a count, or all to true, and page with skip. GET `/api/v2/memory` does the same while also returning your buckets and accepting a bucketId filter.

### What are the rate limits for the MemoryPlugin API?

The OpenAPI spec does not specify rate limits. It does cap chat-history injection at 2000 tokens and bulk moves at 100 memories per request. Check https://www.memoryplugin.com for current limits.

### Is there a MemoryPlugin MCP server?

You don't need an MCP server to give your agent MemoryPlugin. Jentic connects it directly from the API Directory: import it, store your token once, and your agent calls the memory operations it needs on demand without loading another server's tool definitions into its context.

### How do I save a memory through Jentic?

Search Jentic for 'save a memory', load the POST `/api/memory` operation, and execute it with text that starts with the current date in YYYY-MM-DD format, plus an optional bucketId. Without a bucketId the memory lands in the default bucket. To run it on your own infrastructure, install Jentic One from its GitHub repo.

### Can I limit what my agent is allowed to do with the MemoryPlugin API?

Yes. Write a rule that allows only the memory search and chat-history inject operations, so the agent can recall what it needs but cannot save, move, or delete anything. If you later want it to remember new facts, add the store-memory operation alone. Every call is logged.
