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:
- Click Create key and give it a label (
local-devworks). - Copy the key — it's shown once and looks like
memsy_live_xxxxxxxxxxxx. - 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 memsyPython 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:
- Ingested raw events over HTTPS with Bearer-token auth.
- Memsy queued them and ran extraction → embeddings → indexing on its worker pool.
- Searched a semantic index and got back ranked results.
And as a bonus:
- Every authenticated response has
usage(X-Usage-*) andrateLimit/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, …).