Getting Started

Quickstart

Sign up, install Memsy, and run your first ingest + search in under five minutes.

Five minutes to your first memory. This page walks you through dashboard → install → ingest → search end-to-end. Code blocks below are tabbed for Python, Node, and cURL — pick your stack.

Get your API key

Open app.memsy.io, create an account, and create an org (or pick an existing one).

Then in Settings → API Keys:

  1. Click Create key and give it a label (local-dev works).
  2. Copy the key — it's shown once and looks like memsy_live_xxxxxxxxxxxx.
  3. While you're there, copy your API base URL (e.g. https://api.memsy.io/v1).

Info

Screenshots coming soon. For the detailed walkthrough (verification, teammates, rotation) see Sign Up.

Install the SDK

pip install memsy

Python 3.10, 3.11, 3.12, or 3.13 required.

See Installation for uv, poetry, pnpm, yarn, and dev extras.

Set your credentials

export MEMSY_BASE_URL="https://api.memsy.io/v1"
export MEMSY_API_KEY="memsy_live_xxxxxxxxxxxx"

Tip

Put these in a .env file for local dev — and keep .env in .gitignore.

Remember something

Send a batch of events. The call returns immediately; processing happens server-side.

import os
from memsy import MemsyClient, EventPayload

client = MemsyClient(
    base_url=os.environ["MEMSY_BASE_URL"],
    api_key=os.environ["MEMSY_API_KEY"],
)

result = client.ingest([
    EventPayload(
        actor_id="user_42",
        session_id="session_1",
        kind="user_message",
        content="I prefer dark mode in all apps.",
    ),
    EventPayload(
        actor_id="user_42",
        session_id="session_1",
        kind="assistant_message",
        content="Got it — I'll use dark mode by default.",
    ),
])

print(result.event_ids)
# ['01JK...', '01JK...']

For an async variant (AsyncMemsyClient) see Async Client.

Recall it

Ask in plain English. The SDK returns ranked memories.

results = client.search("user preferences", actor_id="user_42")

for r in results.results:
    print(f"{r.score:.2f}  {r.content}")
# 0.84  User prefers dark mode across apps.

What just happened?

In three calls you:

  1. Ingested raw events over HTTPS with Bearer-token auth.
  2. Memsy queued them and ran extraction → embeddings → indexing on its worker pool.
  3. Searched a semantic index and got back ranked results.

And as a bonus:

  • Every authenticated response has usage (X-Usage-*) and rateLimit / rate_limit (X-RateLimit-Limit/-Remaining/-Reset) populated — you already know how much of your plan you've used and how many calls remain.
  • Rate-limited calls (HTTP 429) are retried automatically with exponential backoff. No code to write.
  • HTTP errors come back as typed exceptions in both SDKs (AuthenticationError/MemsyAuthError, UsageLimitExceeded, MemsyRateLimitError, …).

What's next