§ Get started
Five minutes to your first persistent memory.
Sign up, install an SDK (or hit the REST API directly), and run your first remember + recall. The free tier is 2 GB. We don't ask for a card until you outgrow it.
Auth
Bearer API key
Host
platform.octamem.com
MCP
mcp.octamem.com
Step 1
Get an API key
Sign up at platform.octamem.com/signup. Verify your email, create an account, and copy your API key from Settings → API keys. Keys are scoped to a single account and can be rotated at any time.
Step 2
Choose an interface
OctaMem speaks four interfaces. They’re functionally equivalent, pick whichever fits your runtime.
- REST API. Direct HTTP at
https://platform.octamem.com. The right choice when you can’t install an SDK or you’re scripting in bash. - Python SDK.
pip install octamem. Sync and async clients, fully typed. - JavaScript SDK.
npm install @octamem/octamem-js. Node, browsers, Deno, and Bun. - MCP server. Remote MCP at
https://mcp.octamem.com. The fastest path if you’re inside Claude Desktop, Cursor, or any MCP client.
Step 3
Install or set OCTAMEM_API_KEY
For SDKs, install the package and set OCTAMEM_API_KEY in your environment. For REST, just set the env var.
# Python
pip install octamem
# JavaScript
npm install @octamem/octamem-js
# Set the key in your shell
export OCTAMEM_API_KEY="sk-om-live-..."Step 4
Run your first add + search
The same code shape works in any runtime. Pick the snippet that matches your stack.
from octamem import OctaMem
# Your API key from platform.octamem.com.
client = OctaMem(api_key="sk-om-live-...")
# Capture a memory.
client.add(
content="Beta opens March 20.",
previous_context="Q1 product launch",
)
# Recall it later, possibly from a different agent.
results = client.get(
query="When does beta open?",
previous_context="Q1 product launch",
)
print(results)import { OctaMem } from "@octamem/octamem-js";
const memory = new OctaMem(process.env.OCTAMEM_API_KEY!);
await memory.add({
content: "Beta opens March 20.",
previousContext: "Q1 product launch",
});
const results = await memory.search({
query: "When does beta open?",
previousContext: "Q1 product launch",
});
console.log(results);curl -X POST 'https://platform.octamem.com/api/memory/add' \
-H "Authorization: Bearer $OCTAMEM_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"content": "Beta opens March 20.",
"previousContext": "Q1 product launch"
}'
curl -X POST 'https://platform.octamem.com/api/memory/search' \
-H "Authorization: Bearer $OCTAMEM_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "When does beta open?",
"previousContext": "Q1 product launch"
}'Step 5
Verify it stuck
The single most common quickstart mistake is calling get with a different previous_context than the one you wrote with. Verify by reading from a fresh process, memory persists the moment add returns.
from octamem import OctaMem
client = OctaMem(api_key="sk-om-live-...")
# Recall by question against the same previous_context label.
results = client.get(
query="beta",
previous_context="Q1 product launch",
)
print(results)
print(results.model_dump())See the Verify setup page for a full sanity-check checklist.
What to read next
Now that the loop works, the next thing you’ll want is the actual API surface — endpoints, request and response shapes, and how to scope memory to a conversation or topic with previousContext.