§ 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. Builder includes 5,000 MOps and 10 GB of memory for $49 a month.
- Base URL
- platform.octamem.com
- Auth
- Bearer API key
- Primitives
- details / search / add
Get an API key
Sign up at platform.octamem.com/auth/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.
Choose an interface
OctaMem speaks four interfaces. They’re functionally equivalent, pick whichever fits your runtime.
- REST API.Direct HTTP. The right choice when you can’t install an SDK or you’re scripting in bash.
- Python SDK.
pip install octamem. Async-first and fully typed. - JavaScript SDK.
npm install octamem. Edge-runtime compatible (Vercel, Cloudflare Workers). - MCP server. Remote MCP at
https://mcp.octamem.com. The fastest path if you’re inside Claude Desktop, Cursor, or any MCP client.
Install or set OCTA_API_KEY
For SDKs, install the package and set OCTA_API_KEY in your environment. For REST, just set the env var.
# Python
pip install octamem
# JavaScript
npm install octamem
# Set the key in your shell
export OCTA_API_KEY="oct_live_..."Run your first remember + recall
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="oct_live_...")
# Capture a memory.
client.add(
content="Beta opens March 20.",
previous_context="Q1 launch planning",
)
# Recall it later, possibly from a different agent.
results = client.get(
query="When does beta open?",
previous_context="Q1 launch planning",
)
print(results)import { OctaMem } from "octamem";
const memory = new OctaMem(process.env.OCTAMEM_API_KEY!);
await memory.add({
content: "Beta opens March 20.",
previousContext: "Q1 launch planning",
});
const results = await memory.search({
query: "When does beta open?",
previousContext: "Q1 launch planning",
});
console.log(results);curl https://platform.octamem.com/api/memory/add \
-H "Authorization: Bearer $OCTAMEM_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"content": "Beta opens March 20.",
"previous_context": "Q1 launch planning"
}'
curl https://platform.octamem.com/api/memory/search \
-H "Authorization: Bearer $OCTAMEM_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "When does beta open?",
"previous_context": "Q1 launch planning"
}'Verify it stuck
The single most common quickstart mistake is calling recall with a different scope than the one you wrote with. Verify by reading from a fresh process, memory persists the moment remember returns.
from octamem import OctaMem
octa = OctaMem(api_key="oct_live_...")
# Recall by content keyword instead of full query.
ctx = octa.recall(query="beta", scope="acme/launch", limit=5)
for r in ctx.records:
print(r.id, r.created_at, r.content)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, types, scopes, time-bounded recall, and how memory becomes structured context for your model calls.