Skip to content

§ 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
1Step

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.

2Step

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.
3Step

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.

install.sh
Shell
# Python
pip install octamem

# JavaScript
npm install octamem

# Set the key in your shell
export OCTA_API_KEY="oct_live_..."
4Step

Run your first remember + recall

The same code shape works in any runtime. Pick the snippet that matches your stack.

quickstart.py
Python
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)
quickstart.ts
TypeScript
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);
quickstart.sh
Shell
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"
  }'
5Step

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.

verify.py
Python
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.

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.