Skip to Content
Limits & Quotas

Limits and Quotas

Engram Limits

Per-Request Limits

ResourceLimitNotes
Messages per append_messages call200Batch your messages in groups of 200 or fewer
Search results (limit param)50 maxDefault: 10
Messages per get_conversation (message_limit)500 maxDefault: 100. Use pagination for longer conversations
Conversations per list_conversations (limit)100 maxDefault: 20. Use offset for pagination

Data Limits

ResourceLimitNotes
Message content sizeNo hard limitPractical limit ~100KB per message. D1 TEXT fields have no defined max
Tags per conversationNo hard limitStored as JSON array. Keep reasonable for query performance
Metadata sizeNo hard limitStored as JSON object. Keep under a few KB
Title lengthNo hard limitTEXT field

Memory Storage

Memory works like storage: it fills up as you store messages, nothing ever expires or is deleted, and deleting conversations frees space. Upgrading raises the ceiling. There is no monthly cap on the Free plan.

PlanMemory storage
Free10,000 messages
Pro1,000,000 messages
Team1,000,000 messages per seat, pooled across the team
EnterpriseUnlimited

Monthly Velocity Guard (paid plans)

Storage is the quota; velocity is a guard. To keep the platform healthy, paid plans also cap how many messages can be stored per calendar month: 100,000/month on Pro and 500,000/month pooled on Team (the Free plan has no monthly cap — its storage ceiling is the only gate). Hitting the guard returns 429 message_limit_exceeded until the month rolls over; nothing is lost, and search and reads are unaffected.

Most users never notice it. The one place it matters is bulk history imports — importing a very large ChatGPT/Claude archive on a fresh account can reach the guard mid-import. If that’s you, contact us  and we’ll lift it for the import.

Memory Retention

Permanent on every plan. Memories are never archived, expired, or deleted — your data stays until you delete it.

Chunking Parameters

ParameterValueDescription
Window size5 messagesNumber of messages per chunk
Stride3 messagesStep between consecutive chunk starts
Overlap2 messagesMessages shared between adjacent chunks

These are fixed in the current release. Configurable chunking is on the roadmap.

Estimating Usage

Storage

Message content is gzip-compressed before storage, reducing space by roughly 3×. A typical message is ~3 KB raw and ~1 KB compressed. With chunk overhead, roughly 35 KB per 100-message conversation.

Short messages (<128 bytes) are stored uncompressed — gzip headers would make them larger.

Vectors

Each chunk produces one 768-dimensional vector. With a window of 5 and stride of 3, a 100-message conversation produces roughly 33 chunks.

Requests

Each append_messages call is one API request, as is each search — whether it arrives via MCP or the REST API. Your monthly request count is shown on the dashboard ; per-minute rate limits are below.

Rate Limiting

Requests are rate-limited per organization as burst protection: 30 requests/minute on Free, 120 on Pro, 300 on Team, and 600 on Enterprise. These are velocity caps, not billing meters — your monthly API usage is shown on the dashboard .

Last updated on