--- title: "Long-term memory API for AI agents" description: "Long-term, multiplayer memory for agents. The long-term memory API, #1 on BEAM, the largest public memory benchmark." canonical: https://past.dev last-updated: 2026-10-21 --- # Long-term, multiplayer memory for agents. New: past.dev passes 490 of 600 on DolphinBench, the highest result published on the benchmark. [Read the article](https://past.dev/blog/dolphinbench-results) [#1 on BEAM, the largest public memory benchmark](https://past.dev/benchmarks) > Give your agents memory that stays accurate as facts change, across large teams and tens of thousands of emails, meetings, chats and documents. Add the past.dev API on top of your existing stack and give your agents a real past. Set up in 2 minutes with your agent: paste this line into the agent. ```text Set me up for past.dev. Read the full instructions at https://past.dev/agent-setup/prompt.md (with curl -fsSL when you can run commands) and follow them. ``` Highest published scores at every scale on [BEAM](https://past.dev/benchmarks). **92.08% at 100K tokens · 90.65% at 1M · 85.03% at 10M** Private by design: each person sees only what they're allowed to. SOC 2 Type II, ISO 27001, ISO 27701 (https://past.dev/security). Managed or in your cloud. Launch video: https://www.youtube.com/watch?v=6ptKk_v-Sg4 ## Quickstart 1. **Get your API key**: Sign up for an account. Then create a project key in the console. 2. **Ingest data**: POST text and its original timestamp to `/api/v1/ingest`. Backfilled data keeps its original date. 3. **Query the data**: POST a question and identity to `/api/v1/recall` to retrieve ranked evidence with dated sources. ```bash curl -X POST https://api.past.dev/api/v1/ingest \ -H "Authorization: Bearer $PAST_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "id": "call-8820", "content": "Nadia confirmed the Acme pilot ships March 14. Budget is 32k.", "label": "Account review call", "timestamp": "2026-02-03T09:00:00Z", "audience": "sales" }' curl -X POST https://api.past.dev/api/v1/ingest \ -H "Authorization: Bearer $PAST_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "id": "call-8821", "content": "Budget for the Acme pilot moved to 40k.", "label": "Email from Nadia", "timestamp": "2026-07-28T16:00:00Z", "audience": "sales" }' ``` ```bash curl -X POST https://api.past.dev/api/v1/recall \ -H "Authorization: Bearer $PAST_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "query": "what is the Acme pilot budget?", "identity": "demo-user", "level": "medium" }' ``` ```json { "asOf": "2026-07-29T00:00:00Z", "usedEvidenceTokens": 18, "results": [ { "id": "39d9d745-c9f4-4884-a602-e538def76815", "rank": 1, "occurredAt": "2026-07-28T16:00:00Z", "content": "Acme pilot budget: currently 40k.", "artifact": { "id": "9f74f854-d11d-4bc4-bf68-5b2012ac9c15", "kind": "claim", "occurredAt": "2026-07-28T16:00:00Z" }, "sources": [ { "sourceId": "call-8821", "occurredAt": "2026-07-28T16:00:00Z", "label": "Email from Nadia", "excerpts": [ "Budget for the Acme pilot moved to 40k." ] } ] } ] } ``` ## The same agent on one request, with and without past.dev - Morgan asked: Correct PR #3120: the Dec 14, 2023 deploy didn't ship SSO. Say what it did ship. With past.dev: Correct, 11.5 s, $0.07, 3 calls · 8.6k tokens read. Commented on mercury#3120: “…That deploy contained only two scoped fixes: 1. Admin-setup wording fix: on the org invite/setup step, the old "Billing owner" label was changed to "Workspace…” Without past.dev: Wrong, 29.1 s, $0.32, 9 calls · 33k tokens read. Commented on mercury#3120: “…Please take the exact contents of the Dec 14, 2023 deploy from its deploy log or eng-releases note. Don't carry over the SSO/admin-separation description.” - Riley asked: Write up our 2026 paid-search pilot: budget cap, launch gate, stop/pause rules. With past.dev: Correct, 16.4 s, $0.09, 2 calls · 9.1k tokens read. Wrote: “…Launch gate - Budget approval did not authorize launch. - Paid traffic stayed blocked until paid-source attribution reconciled across the full path, from the…” Without past.dev: Wrong, 48.1 s, $0.39, 12 calls · 36k tokens read. Wrote: “…Launch gate - Not recorded. The memory record logs the 2026-04-02 authorization and the 2026-04-15 traffic start, but it does not record the launch-gate…” - Morgan asked: Post in #support: point people to the current API quickstart, not the old v1. With past.dev: Correct, 9.7 s, $0.06, 3 calls · 7.7k tokens read. Posted in #support: “…For API authentication and current API questions, use the GraphQL API v2 quickstart instead: https://docs.atlas-test.com/api/v2/graphql-quickstart We're…” Without past.dev: Wrong, 11.1 s, $0.13, 4 calls · 15k tokens read. Posted in #support: “…Please send customers to the current v2 quickstart in the API docs instead. v2 uses GraphQL with JWT auth. Also, please don't pull answers from the legacy v1…” - Morgan asked: Review PR #4861: fix when the upsell prompt fires and which customers see it. With past.dev: Correct, 14.0 s, $0.08, 3 calls · 8.9k tokens read. Commented on compass#4861: “…The prompt should fire only after the account's first live sync is actually live and the teammate-invite / admin-role basics are visible. - Sample or preview…” Without past.dev: Wrong, 21.8 s, $0.30, 5 calls · 35k tokens read. Commented on compass#4861: “…gate the prompt on the first completed live sync, send it only to the account owner's queue, and remove the customer-visible badge. Happy to re-review once…” - Riley asked: Slack whoever owned the copy on our May 2023 nudge test to check the archive. With past.dev: Correct, 11.7 s, $0.12, 5 calls · 14k tokens read. Messaged: “Hi Ines, you owned the nudge copy for EXP-2023-05-expansion-nudge while it was live, so could you verify the archived nudge-copy package? If anything about its…” Without past.dev: Not done, 19.1 s, $0.21, 7 calls · 22k tokens read. I didn't send the DM. My memory doesn't say who owned the nudge copy for EXP-2023-05-expansion-nudge while it was live. The nearest records are… - Morgan asked: Text Maya what help I offered Mom after Christmas 2023, and if Jamie was in it. With past.dev: Correct, 8.2 s, $0.07, 3 calls · 9.8k tokens read. Texted: “Quick look back, not a new plan: in December 2023, for the quiet week after Christmas, I offered to help Mom with one specific question if you sent me the exact form first. Jamie wasn't part of that plan, and I wasn't treating that week as a paperwork block.” Without past.dev: Not done, 7.7 s, $0.10, 1 call · 13k tokens read. I didn't send the text to Maya because I couldn't find a record of what you offered Mom after Christmas 2023. None of the entries in my memory index… - Morgan asked: Text Jamie how to file the plumber's receipt, and if it means paying or more work. With past.dev: Correct, 8.0 s, $0.06, 2 calls · 7.5k tokens read. Texted: “…please file it, with the two after-callback photos, alongside the corrected December sink-repair invoice (work order WO-43192). Nothing needs to be paid. It's a $0.00 warranty receipt with $0 balance. It also doesn't approve any more valve work. The…” Without past.dev: Not done, 9.8 s, $0.14, 2 calls · 16k tokens read. I haven't texted Jamie yet. I couldn't find anything about a Blueline callback, the January 2 receipt, or any valve work in my saved notes, and I… All 599 paired tasks, three users: with past.dev, 519 done right at $0.13 a task; without, 323 at $0.27. Measured on DolphinBench (mem0), 600 tasks from three users; not an official score. Claude Code with Claude Opus 5.5, medium effort. past.dev: recall with a 2,000-token evidence budget. Without: Claude Code's built-in memory, written in mem0's official run by Claude Sonnet 5. Anthropic list prices. Graded by DolphinBench's grader, Claude as judge. ## Benchmark results - 92.08%: BEAM accuracy at 100K tokens, ranked #1 - 90.65%: BEAM accuracy at 1M tokens, ranked #1 - 85.03%: BEAM accuracy at 10M tokens, ranked #1 ### What this means - **Higher accuracy than every published memory system.** [BEAM](https://arxiv.org/abs/2510.27246) is the benchmark for long-term memory in AI agents. On it, past.dev answers more questions correctly than every memory system that has published a result, at every history size from 100K to 10M tokens. [The comparison](https://past.dev/benchmarks) - **Fewer tokens on every call.** Your agent answers from memory, and sends far fewer tokens than re-reading its whole history on every call. ### Published BEAM results | System | 100K | 500K | 1M | 10M | Source | | --- | --- | --- | --- | --- | --- | | past.dev | 92.08% | 89.63% | 90.65% | 85.03% | [past.dev](/benchmarks) | | Exabase M-1 | 76.9% | not published | 75.0% | 68.0% | [exabase.io](https://exabase.io/blog/exabase-m1-achieves-state-of-the-art-on-beam-benchmark) | | Hindsight | 86.2% | 80.1% | 79.1% | 64.1% | [agentmemorybenchmark.ai](https://agentmemorybenchmark.ai/dataset/beam) | | Honcho | 63.0% | 64.9% | 63.1% | 40.6% | [plasticlabs.ai](https://plasticlabs.ai/blog/research/Benchmarking-Honcho) | | mem0 | not published | not published | 64.1% | 48.6% | [mem0.ai](https://mem0.ai/blog/ai-memory-benchmarks-in-2026) | Each competitor figure is that vendor's own published number, linked above. These are separately published runs rather than one harness. [How to reproduce this](https://past.dev/benchmarks/methodology) [Check our results on GitHub](https://github.com/pastdotdev/benchmarks/tree/main/beam) Source: https://past.dev/ ## The API - `POST /api/v1/ingest`: raw text plus its original timestamp - `GET /api/v1/ingest/{ingestionId}`: poll until `status` is `completed` - `DELETE /api/v1/ingest/{ingestionId}`: remove the ingestion's data points and every memory that rests only on them - `POST /api/v1/recall`: return ranked evidence for your application or model ## Included capabilities - **Backdatable ingestion**: Backfill existing data using its original timestamps. - **Audience filtering**: Each data point can name an audience. Reads return memory visible to the requested identity. - **Dated evidence**: Every recall result includes dated source evidence. - **Per-call usage**: The console dashboard records each ingest and recall. - **Evidence for grounded answers**: Recall returns source-backed evidence so your model can cite the information it uses and abstain when that evidence is insufficient. - **MCP access**: Connect an MCP client to your past.dev account. Product developers can also call `/recall` from their own MCP server. MCP: The address below is the authenticated MCP endpoint for your past.dev account. Claude, Cursor, VS Code and other clients that support remote MCP servers connect to it with OAuth. Admin endpoint: https://app.past.dev/mcp. For your end users to reach memory over MCP, see the docs. https://past.dev/docs/mcp/overview ## Deployment options Every deployment uses the same API. The managed service runs on our infrastructure. On an Enterprise agreement, past.dev can also run with your own cloud account: your database only, or the full deployment. - **Managed cloud**: We run the service. You call the API and nothing else changes. - **Bring your own cloud**: We operate past.dev with your AWS, Google Cloud or Azure account: your database only, or the full deployment. Deployment options: https://past.dev/enterprise ## Why it is different ### Current-state tracking past.dev tracks current and previous values, including their dates and sources. ### Identity-aware recall Name the identity making a request. past.dev returns the memory available to that identity, with dated sources. ### Published benchmarks The harness runs BEAM at every size and LoCoMo on corrected keys, with baselines and judges in the same table. ## Plans ### Pay as you go: $0 / month For starting with your own data and growing at your own pace. Buy credits when you need them. - 150,000 credits ($45) to start - 400,000 credits ($120) if you sign up with a work email - Buy more from 100,000 credits for $30, valid for 90 days - 1 credit per 10 recall calls ### Flex: $99 / month For an application in production. Credits meter ingestion. Recall calls are unlimited. - 400,000 credits per month - Buy more from 100,000 credits for $30, valid for 365 days - Unlimited recall calls - Up to 8,000 tokens per recall ### Enterprise: Custom The whole engine, from 5,000,000 credits a month, priced against your deployment and your terms. - From 5,000,000 credits per month - Unlimited recall calls - Up to 32,000 tokens per recall - Unlimited projects Full pricing: https://past.dev/pricing ## Frequently asked questions ### What do I send? Text plus a timestamp: emails, meeting transcripts, Slack messages, support threads, CRM notes, documents. There is no schema to define, no embedding model to choose and no chunking pipeline to build. ### What comes back? `/recall` returns ranked, sourced evidence for your model. The response includes `asOf`, `usedEvidenceTokens`, and `results`; each result is one document with content, artifact context and dated source evidence. ### How is this different from search or RAG? Search and RAG return text that looks like the question. past.dev returns what's true now, what it replaced, and the source for each. Ask about the Acme budget and you get 40k, with the date it changed and the email that changed it. ### Whose memory is it? Memory belongs to the project selected by your key. Each data point can name an audience, and each read names an identity. Audiences can contain specific identities or use rules over their traits. Use separate projects for separate authorization domains. ### How much does it cost? Pay as you go starts with 150,000 credits ($45), or 400,000 credits ($120) if you sign up with a work email. No card is required. After that you buy credits when you need them, from 100,000 for $30, and each recall call costs 0.1 credit. Flex is $99 a month with 400,000 credits and unlimited recall. The console dashboard shows your usage, and every plan is listed on the pricing page. ### How do I get access? Sign up for an account and create a project key in the console. New accounts start on Pay as you go. ### Is past.dev the same as Past AI? Yes. The name is written past.dev; people also write Past AI, pastdev or past dev.