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

install.shbash
# 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.

quickstart.pypython
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)
quickstart.tstypescript
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);
quickstart.shbash
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.

verify.pypython
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.