# Everything captured, and who captured it.

> Mnemo Memory Inbox is the newest-first stream of everything written into your memory — by you, an API key, an MCP client, a connector, or WhatsApp — with who wrote it on every row. Filter by source, edit inline, merge duplicates, restore deletes. POST /v1/memories/merge.

Canonical URL: https://mnemohq.com/inbox

The Inbox is the one place where every memory lands — typed by you, saved by the extension, extracted from a connector, written by an agent over MCP, or sent from your phone — newest first, with the author printed on the row. Triage it like mail: edit, merge, file under a person, delete, undo.

REST API: every memory record now carries createdBy { kind, id, label } stamped server-side (api_key, mcp, user, connector, inbound, system; null for rows written before this release) and dueAt. GET /v1/memories gains since, until, createdByKind, and memoryType filters (always on, no flag). POST /v1/memories/merge (memories:write and memories:delete, both) combines 2–20 memories from one container into a survivor without losing history.

## Stamp, filter, merge

- Every write is stamped — createdBy is recorded from the authenticated principal and is never client-settable.
- The list learned to filter — source chips from real counts, a container select, and 24h · 7d · 30d, all in the URL so a filtered view is shareable.
- Merge without losing anything — keep one memory as the survivor (into) or write the merged text; the sources are soft-deleted with mergedIntoId written on each. Same ids twice returns the same result with replayed: true. 400 MERGE_CROSS_CONTAINER, 403 MERGE_PROTECTED.

## Nothing here is destructive

- Provenance you cannot forge — a request body that says it came from a person is ignored; the key or session that sent it is what gets recorded.
- Merge keeps the trail — the survivor records mergedFromIds, each source records mergedIntoId, the event stream keeps every original write, and an audit entry names the merge.
- One-hour undo, always — delete from the Inbox is the same soft delete as everywhere else.
- Protected memories stay protected — a privileged memory cannot be merged away by an ordinary key.
- Idempotent under retries — a merge carries a mergeKey; retrying converges on the same survivor.
- Behind a flag — the merge route and the dashboard Inbox answer 503 FEATURE_DISABLED until enabled; the list filters do not need a flag.

## Explore Mnemo

- [Mnemo API documentation](https://mnemohq.com/docs)
- [Pricing](https://mnemohq.com/pricing)
- [Benchmarks](https://mnemohq.com/benchmarks)
- [Company Brain for Slack](https://mnemohq.com/brain)
- [Ask Mnemo widget](https://mnemohq.com/widget)
- [People — one memory container per person](https://mnemohq.com/people)
- [Daily Brief](https://mnemohq.com/brief)
- [Memory Inbox](https://mnemohq.com/inbox)
- [Timeline](https://mnemohq.com/timeline)
- [Meeting Memory](https://mnemohq.com/meetings)
- [Chrome extension](https://mnemohq.com/extension)
- [WhatsApp and voice-note capture](https://mnemohq.com/capture)
- [Data-source connectors](https://mnemohq.com/connectors)
- [Framework integrations](https://mnemohq.com/integrations)
- [Trust and security](https://mnemohq.com/trust)
- [Contact](https://mnemohq.com/contact)
- [llms.txt](https://mnemohq.com/llms.txt)
- [OpenAPI 3.1 specification](https://mnemohq.com/openapi.json)

---

This is the Markdown representation of https://mnemohq.com/inbox, served by content negotiation on `Accept: text/markdown`. Machine-readable index: https://mnemohq.com/llms.txt · https://mnemohq.com/openapi.json · https://mnemohq.com/sitemap.xml
