Base URL
For mem9.ai, use `https://api.mem9.ai`. For self-hosting, replace it with your deployment origin; runtime memory calls live under `/v1alpha2/mem9s/...`.
API
Use the mem9 API to provision a space, write or search memory, isolate sub-spaces with appId, import existing files, and inspect captured session messages. The examples use mem9.ai; self-hosted deployments use the same routes under your own base URL.
Prefer `v1alpha2` for day-to-day usage. `v1alpha1` stays available for key provisioning and tenant-scoped compatibility.
For mem9.ai, use `https://api.mem9.ai`. For self-hosting, replace it with your deployment origin; runtime memory calls live under `/v1alpha2/mem9s/...`.
Send the space API key in `X-API-Key` for `v1alpha2` runtime calls. mem9.ai keys can be provisioned with `POST /v1alpha1/mem9s`; self-hosted deployments use keys from their own control plane.
`X-Mnemo-Agent-Id` is optional. Use it to attribute writes and imports to a specific agent; request body `agent_id` takes precedence when both are present.
`appId` partitions memories and raw sessions under the same API key. Omit `appId` to search all appIds, pass a value for exact scope, or pass `null`/empty for default global memory.
A minimal mem9.ai flow is: provision a key, export it into your shell, then create and search memories. For self-hosting, keep the same paths and replace the base URL.
Provision key
curl -sX POST https://api.mem9.ai/v1alpha1/mem9s Export env vars
export API_KEY="your-api-key"
export API="https://api.mem9.ai/v1alpha2/mem9s" Create memory
curl -sX POST "$API/memories" \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-H "X-Mnemo-Agent-Id: openclaw-main" \
-d '{"appId":"docs","content":"Project uses PostgreSQL 15","tags":["tech","database"],"metadata":{"source":"setup-note"}}' Search memories
curl -s -H "X-API-Key: $API_KEY" "$API/memories?q=postgres&appId=docs&limit=5" Create the initial key you will reuse for mem9.ai API access.
/v1alpha1/mem9s Provision a new mem9 API key.
No auth or request body is required. The mem9.ai service returns `201` with an `id` field, and that `id` is the key you store and reuse.
id Required Provision key
curl -sX POST https://api.mem9.ai/v1alpha1/mem9s Validate whether a Space key or Space Chain key is currently usable before making runtime calls.
/v1alpha2/status Check API key status.
Send either a normal mem9 Space key or a Space Chain key in `X-API-Key`. The response is `active` or `inactive`; unknown keys return `404`.
X-API-Key Required status Required Check Space key
curl -s -H "X-API-Key: $API_KEY" https://api.mem9.ai/v1alpha2/status Check Space Chain key
curl -s -H "X-API-Key: $CHAIN_API_KEY" https://api.mem9.ai/v1alpha2/status Create, search, read, update, and delete stored memories in your mem9 space. The optional `appId` field lets one API key host multiple isolated application sub-spaces.
/v1alpha2/mem9s/memories Create a memory or ingest messages.
Use `content` for direct writes or `messages` for ingest-driven writes. Do not send both in the same request. `appId` is optional; omitted, null, empty, and whitespace values are stored as the default/global appId.
X-API-Key Required Content-Type Required X-Mnemo-Agent-Id content messages appId memory_type agent_id session_id tags metadata mode sync disableSessionSave status Required Create memory
curl -sX POST "$API/memories" \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-H "X-Mnemo-Agent-Id: openclaw-main" \
-d '{"appId":"docs","content":"Project uses PostgreSQL 15","tags":["tech","database"],"metadata":{"source":"setup-note"}}' Smart ingest
curl -sX POST "$API/memories" \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-H "X-Mnemo-Agent-Id: openclaw-main" \
-d '{"appId":"docs","session_id":"ses-001","mode":"smart","sync":true,"messages":[{"role":"user","content":"We use PostgreSQL 15"},{"role":"assistant","content":"Noted."}]}' /v1alpha2/mem9s/memories List or search memories.
When `q` is present, the handler runs recall search by default. Use `search_mode=keyword` for direct content substring matching. `appId` has three-state query semantics: omit it to search all appIds, pass a non-empty value for exact isolation, or pass `appId=null` / `appId=` for the default/global appId.
X-API-Key Required X-Mnemo-Agent-Id q search_mode tags source state memory_type agent_id session_id appId limit offset sort_by sort_dir scanAll memories Required total Required limit Required offset Required Search memories
curl -s -H "X-API-Key: $API_KEY" "$API/memories?q=postgres&appId=docs&limit=5" Filter by tags / source
curl -s -H "X-API-Key: $API_KEY" "$API/memories?tags=tech&source=openclaw-main&appId=null&limit=10" Direct content keyword search
curl -s -H "X-API-Key: $API_KEY" "$API/memories?q=postgres&search_mode=keyword&appId=docs&limit=10&sort_by=updated_at&sort_dir=desc" /v1alpha2/mem9s/memories/{id} Read one memory by id.
Fetch a single stored memory object from the mem9 API.
X-API-Key Required X-Mnemo-Agent-Id id Required content Required memory_type Required appId source tags metadata agent_id session_id updated_by superseded_by state Required version Required created_at Required updated_at Required score confidence relative_age Get memory
curl -s -H "X-API-Key: $API_KEY" "$API/memories/{id}" /v1alpha2/mem9s/memories/{id} Update one memory.
Update content, tags, or metadata. Send `If-Match` when you want optimistic version checks.
X-API-Key Required Content-Type Required X-Mnemo-Agent-Id If-Match content tags metadata id Required content Required memory_type Required appId source tags metadata agent_id session_id updated_by superseded_by state Required version Required created_at Required updated_at Required score confidence relative_age Update memory
curl -sX PUT "$API/memories/{id}" \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-H "If-Match: 3" \
-d '{"content":"Project uses PostgreSQL 16","tags":["tech","database"]}' /v1alpha2/mem9s/memories/{id} Delete one memory.
Deletes the selected memory row and returns `204 No Content` on success.
X-API-Key Required X-Mnemo-Agent-Id Delete memory
curl -sX DELETE -H "X-API-Key: $API_KEY" "$API/memories/{id}" /v1alpha2/mem9s/memories/batch-delete Delete multiple memories.
Deletes the provided memory ids in one request. When authenticated with a Space Chain key, the handler resolves each id to the node that owns it.
X-API-Key Required Content-Type Required X-Mnemo-Agent-Id ids Required Batch delete memories
curl -sX POST "$API/memories/batch-delete" \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-d '{"ids":["memory-id-1","memory-id-2"]}' Create and manage ordered chains of Spaces. Runtime memory endpoints accept a Space Chain key and search the chain in node order, or all nodes when `scanAll=true`.
/v1alpha2/space-chains Create a Space Chain.
Creates a Space Chain and returns its first plaintext chain key once. Store `chain_api_key` securely; later list responses only expose masked or bound key records.
Content-Type Required name Required project_id description created_by_user_id chain Required chain_api_key Required binding_id Required key_prefix Required key_preview Required Create Space Chain
curl -sX POST https://api.mem9.ai/v1alpha2/space-chains \
-H "Content-Type: application/json" \
-d '{"name":"Team Knowledge Chain","description":"Ordered recall across team spaces"}' Export Space Chain env vars
export CHAIN_API_KEY="your-chain-api-key"
export API="https://api.mem9.ai/v1alpha2/mem9s"
export CHAIN_API="https://api.mem9.ai/v1alpha2/space-chains" /v1alpha2/space-chains/by-key Read the Space Chain for a key.
Looks up the active Space Chain associated with the `X-API-Key` chain key.
X-API-Key Required id Required project_id name Required description bindings nodes created_at Required updated_at Required Get by key
curl -s -H "X-API-Key: $CHAIN_API_KEY" "$CHAIN_API/by-key" /v1alpha2/space-chains/{chain_id} Read one Space Chain.
Returns chain metadata, nodes, and bindings for a chain key authorized to manage this Space Chain.
X-API-Key Required id Required project_id name Required description bindings nodes created_at Required updated_at Required Get Space Chain
curl -s -H "X-API-Key: $CHAIN_API_KEY" "$CHAIN_API/{chain_id}" /v1alpha2/space-chains/{chain_id} Update Space Chain details.
Updates the display name and description for a Space Chain.
X-API-Key Required Content-Type Required name Required description id Required project_id name Required description bindings nodes created_at Required updated_at Required Update Space Chain
curl -sX PATCH "$CHAIN_API/{chain_id}" \
-H "Content-Type: application/json" \
-H "X-API-Key: $CHAIN_API_KEY" \
-d '{"name":"Team Knowledge Chain","description":"Updated description"}' /v1alpha2/space-chains/{chain_id} Delete a Space Chain.
Soft-deletes the Space Chain. A successful delete returns `204 No Content`.
X-API-Key Required Content-Type Required deleted_by_user_id Delete Space Chain
curl -sX DELETE "$CHAIN_API/{chain_id}" \
-H "Content-Type: application/json" \
-H "X-API-Key: $CHAIN_API_KEY" \
-d '{"deleted_by_user_id":"user-123"}' /v1alpha2/space-chains/{chain_id}/nodes List Space Chain nodes.
Returns the ordered node list. Node positions are zero-based and define sequential recall order.
X-API-Key Required nodes Required List nodes
curl -s -H "X-API-Key: $CHAIN_API_KEY" "$CHAIN_API/{chain_id}/nodes" /v1alpha2/space-chains/{chain_id}/nodes Replace Space Chain nodes.
Replaces the entire ordered node list. Each node must reference a normal Space key / tenant id, not another Space Chain key.
X-API-Key Required Content-Type Required nodes Required nodes[].tenant_id Required nodes[].external_space_id nodes[].display_name nodes Required Replace nodes
curl -sX PUT "$CHAIN_API/{chain_id}/nodes" \
-H "Content-Type: application/json" \
-H "X-API-Key: $CHAIN_API_KEY" \
-d '{"nodes":[{"tenant_id":"space_key_a","display_name":"Team"},{"tenant_id":"space_key_b","display_name":"Company"}]}' /v1alpha2/space-chains/{chain_id}/bindings List Space Chain key bindings.
Returns all key bindings visible to the management key for this Space Chain.
X-API-Key Required bindings Required List bindings
curl -s -H "X-API-Key: $CHAIN_API_KEY" "$CHAIN_API/{chain_id}/bindings" /v1alpha2/space-chains/{chain_id}/bindings Create a Space Chain key binding.
Creates another chain key. Omit `chain_api_key` to let mem9 generate a key.
X-API-Key Required Content-Type Required chain_api_key created_by_user_id id Required chain_id Required chain_api_key Required disabled Required created_at Required Create binding
curl -sX POST "$CHAIN_API/{chain_id}/bindings" \
-H "Content-Type: application/json" \
-H "X-API-Key: $CHAIN_API_KEY" \
-d '{}' /v1alpha2/space-chains/{chain_id}/bindings/{binding_id} Disable a Space Chain key binding.
Disables an active binding. The API rejects disabling the last active key for a chain.
X-API-Key Required Content-Type Required disabled Required disabled_by_user_id Disable binding
curl -sX PATCH "$CHAIN_API/{chain_id}/bindings/{binding_id}" \
-H "Content-Type: application/json" \
-H "X-API-Key: $CHAIN_API_KEY" \
-d '{"disabled":true,"disabled_by_user_id":"user-123"}' /v1alpha2/mem9s/memories Recall across a Space Chain.
Use the normal memory search endpoint with a Space Chain key. By default recall visits nodes in order and stops early on high confidence; pass `scanAll=true` to search every node and globally rerank.
X-API-Key Required q search_mode tags source state memory_type agent_id session_id appId limit offset sort_by sort_dir scanAll memories Required total Required limit Required offset Required Recall with scanAll
curl -s -H "X-API-Key: $CHAIN_API_KEY" "$API/memories?q=postgres&scanAll=true&limit=10" Upload memory or session files and poll their background task status. Imported memories and raw sessions can carry `appId` at the file, memory, or session level.
/v1alpha2/mem9s/imports Create an import task.
Upload a file as `memory` or `session`. The handler queues asynchronous processing and returns a task id immediately.
X-API-Key Required Content-Type Required X-Mnemo-Agent-Id file Required file_type Required agent_id session_id file.appId file.memories[].appId file.sessions[].appId id Required status Required Import memory file
curl -sX POST "$API/imports" \
-H "X-API-Key: $API_KEY" \
-F "file=@memory.json" \
-F "file_type=memory" \
-F "agent_id=openclaw-main"
# memory.json may include:
# {"appId":"docs","memories":[{"content":"Project uses PostgreSQL 15","appId":"docs"}]} Import session file
curl -sX POST "$API/imports" \
-H "X-API-Key: $API_KEY" \
-F "file=@session.json" \
-F "file_type=session" \
-F "session_id=ses-001" \
-F "agent_id=openclaw-main"
# session.json may include:
# {"appId":"docs","session_id":"ses-001","messages":[{"role":"user","content":"..."}]} /v1alpha2/mem9s/imports List import tasks.
Return all import tasks visible in the current mem9 space.
X-API-Key Required X-Mnemo-Agent-Id status Required tasks Required List import tasks
curl -s -H "X-API-Key: $API_KEY" "$API/imports" /v1alpha2/mem9s/imports/{id} Read one import task.
Poll a single task until it becomes `done` or `failed`.
X-API-Key Required X-Mnemo-Agent-Id id Required file Required status Required total Required done Required error Get import task
curl -s -H "X-API-Key: $API_KEY" "$API/imports/{id}" Inspect raw captured conversation rows that were stored during ingest. `appId` uses the same omitted / exact / default-global filtering behavior as memory search.
/v1alpha2/mem9s/session-messages List session messages by session id.
Repeat `session_id` in the query string for each session you want to fetch. Use `limit_per_session` to cap rows per session. If different appIds reused the same session id, pass `appId` to prevent cross-app raw session mixing.
X-API-Key Required X-Mnemo-Agent-Id session_id Required appId limit_per_session messages Required messages[].id Required messages[].session_id messages[].agent_id messages[].appId messages[].seq Required messages[].role Required messages[].content Required messages[].content_type Required messages[].tags Required messages[].state Required messages[].created_at Required messages[].updated_at Required limit_per_session Required Read session messages
curl -s -H "X-API-Key: $API_KEY" "$API/session-messages?session_id=ses-001&session_id=ses-002&appId=docs&limit_per_session=20" Use `/healthz` for liveness checks. Legacy tenant-scoped routes still exist under `/v1alpha1/mem9s/{tenantID}/...`, but most clients should prefer `v1alpha2` plus `X-API-Key`.
/healthz Check service health.
Useful before onboarding or when debugging network reachability.
status Required Health check
curl -s https://api.mem9.ai/healthz /versionz Check server version metadata.
Returns runtime metadata that is useful for support and deployment verification.
go_version Required started_at Required Version check
curl -s https://api.mem9.ai/versionz Next
If you are onboarding OpenClaw rather than building a direct integration, start from the public SKILL.md. Use the same API key later in Your Memory.
API
使用 mem9 API 创建 space、写入或搜索记忆、通过 appId 隔离同一 API key 下的子空间、导入已有文件,并查看捕获到的 session messages。示例使用 mem9.ai;自托管部署可以使用自己的 base URL 调用同一组路径。
日常调用优先使用 `v1alpha2`。`v1alpha1` 继续保留给 key provision 和 tenant-scoped 兼容路径。
使用 mem9.ai 时 base URL 是 `https://api.mem9.ai`;自托管时替换成自己的服务地址。runtime memory 接口路径仍是 `/v1alpha2/mem9s/...`。
`v1alpha2` 调用把 space API key 放在 `X-API-Key`。mem9.ai 可通过 `POST /v1alpha1/mem9s` 创建 key;自托管则使用自己控制面生成的 key。
`X-Mnemo-Agent-Id` 可选,用来标记写入或导入来自哪个 agent;如果请求体同时传了 `agent_id`,以请求体为准。
`appId` 用来在同一个 API key 下隔离 memory 和 raw session 子空间。不传 `appId` 表示搜索全部子空间;传具体值表示精确隔离;传 `null` 或空值表示 default/global 记忆。
最小 mem9.ai 流程是:先 provision 一个 key,把它导出到 shell,然后创建并搜索记忆。自托管时保留相同路径,只替换 base URL。
创建 key
curl -sX POST https://api.mem9.ai/v1alpha1/mem9s 导出环境变量
export API_KEY="your-api-key"
export API="https://api.mem9.ai/v1alpha2/mem9s" 写入记忆
curl -sX POST "$API/memories" \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-H "X-Mnemo-Agent-Id: openclaw-main" \
-d '{"appId":"docs","content":"Project uses PostgreSQL 15","tags":["tech","database"],"metadata":{"source":"setup-note"}}' 搜索记忆
curl -s -H "X-API-Key: $API_KEY" "$API/memories?q=postgres&appId=docs&limit=5" 创建你后续会重复使用的 mem9.ai API 访问 key。
/v1alpha1/mem9s 创建新的 mem9 API key。
不需要认证,也不需要请求体。mem9.ai 服务会返回 `201` 和一个 `id` 字段,这个 `id` 就是你要保存和复用的 key。
id 必填 创建 key
curl -sX POST https://api.mem9.ai/v1alpha1/mem9s 在发起 runtime 调用前,验证 Space key 或 Space Chain key 当前是否可用。
/v1alpha2/status 检查 API key 状态。
在 `X-API-Key` 中发送普通 mem9 Space key 或 Space Chain key。响应为 `active` 或 `inactive`;未知 key 返回 `404`。
X-API-Key 必填 status 必填 检查 Space key
curl -s -H "X-API-Key: $API_KEY" https://api.mem9.ai/v1alpha2/status 检查 Space Chain key
curl -s -H "X-API-Key: $CHAIN_API_KEY" https://api.mem9.ai/v1alpha2/status 在你的 mem9 space 中创建、搜索、读取、更新和删除记忆。可选的 `appId` 让同一个 API key 拥有多个相互隔离的应用子记忆空间。
/v1alpha2/mem9s/memories 创建记忆或执行 message ingest。
直接写入时使用 `content`;走 ingest 时使用 `messages`。同一个请求里不要同时发送这两个字段。`appId` 可选;省略、null、空字符串和纯空白都会写入默认/global appId。
X-API-Key 必填 Content-Type 必填 X-Mnemo-Agent-Id content messages appId memory_type agent_id session_id tags metadata mode sync disableSessionSave status 必填 创建记忆
curl -sX POST "$API/memories" \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-H "X-Mnemo-Agent-Id: openclaw-main" \
-d '{"appId":"docs","content":"Project uses PostgreSQL 15","tags":["tech","database"],"metadata":{"source":"setup-note"}}' Smart ingest
curl -sX POST "$API/memories" \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-H "X-Mnemo-Agent-Id: openclaw-main" \
-d '{"appId":"docs","session_id":"ses-001","mode":"smart","sync":true,"messages":[{"role":"user","content":"We use PostgreSQL 15"},{"role":"assistant","content":"Noted."}]}' /v1alpha2/mem9s/memories 列出或搜索记忆。
带 `q` 时默认走 recall search;`search_mode=keyword` 用于直接按 content 子串搜索。`appId` 是三态语义:不传表示跨全部 appId 搜索,传非空值表示精确隔离,传 `appId=null` 或 `appId=` 表示只查默认/global appId。
X-API-Key 必填 X-Mnemo-Agent-Id q search_mode tags source state memory_type agent_id session_id appId limit offset sort_by sort_dir scanAll memories 必填 total 必填 limit 必填 offset 必填 搜索记忆
curl -s -H "X-API-Key: $API_KEY" "$API/memories?q=postgres&appId=docs&limit=5" 按标签 / source 过滤
curl -s -H "X-API-Key: $API_KEY" "$API/memories?tags=tech&source=openclaw-main&appId=null&limit=10" 直接内容关键词搜索
curl -s -H "X-API-Key: $API_KEY" "$API/memories?q=postgres&search_mode=keyword&appId=docs&limit=10&sort_by=updated_at&sort_dir=desc" /v1alpha2/mem9s/memories/{id} 按 id 读取单条记忆。
从 mem9 API 拉取一条完整的记忆对象。
X-API-Key 必填 X-Mnemo-Agent-Id id 必填 content 必填 memory_type 必填 appId source tags metadata agent_id session_id updated_by superseded_by state 必填 version 必填 created_at 必填 updated_at 必填 score confidence relative_age 读取记忆
curl -s -H "X-API-Key: $API_KEY" "$API/memories/{id}" /v1alpha2/mem9s/memories/{id} 更新单条记忆。
更新内容、tags 或 metadata。若需要版本保护,请同时发送 `If-Match`。
X-API-Key 必填 Content-Type 必填 X-Mnemo-Agent-Id If-Match content tags metadata id 必填 content 必填 memory_type 必填 appId source tags metadata agent_id session_id updated_by superseded_by state 必填 version 必填 created_at 必填 updated_at 必填 score confidence relative_age 更新记忆
curl -sX PUT "$API/memories/{id}" \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-H "If-Match: 3" \
-d '{"content":"Project uses PostgreSQL 16","tags":["tech","database"]}' /v1alpha2/mem9s/memories/{id} 删除单条记忆。
删除目标记忆,成功时返回 `204 No Content`。
X-API-Key 必填 X-Mnemo-Agent-Id 删除记忆
curl -sX DELETE -H "X-API-Key: $API_KEY" "$API/memories/{id}" /v1alpha2/mem9s/memories/batch-delete 批量删除 memories。
在一个请求中删除给定的 memory ids。使用 Space Chain key 认证时,handler 会将每个 id 解析到拥有它的节点。
X-API-Key 必填 Content-Type 必填 X-Mnemo-Agent-Id ids 必填 批量删除 memories
curl -sX POST "$API/memories/batch-delete" \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-d '{"ids":["memory-id-1","memory-id-2"]}' 创建和管理有序 Space 链。Runtime memory endpoint 可接受 Space Chain key,并按节点顺序搜索 chain;`scanAll=true` 时搜索所有节点。
/v1alpha2/space-chains 创建 Space Chain。
创建 Space Chain,并且只返回一次首个明文 chain key。请安全保存 `chain_api_key`;后续列表响应只会暴露脱敏或绑定记录。
Content-Type 必填 name 必填 project_id description created_by_user_id chain 必填 chain_api_key 必填 binding_id 必填 key_prefix 必填 key_preview 必填 创建 Space Chain
curl -sX POST https://api.mem9.ai/v1alpha2/space-chains \
-H "Content-Type: application/json" \
-d '{"name":"Team Knowledge Chain","description":"Ordered recall across team spaces"}' 导出 Space Chain 环境变量
export CHAIN_API_KEY="your-chain-api-key"
export API="https://api.mem9.ai/v1alpha2/mem9s"
export CHAIN_API="https://api.mem9.ai/v1alpha2/space-chains" /v1alpha2/space-chains/by-key 读取某个 key 对应的 Space Chain。
查找与 `X-API-Key` chain key 关联的 active Space Chain。
X-API-Key 必填 id 必填 project_id name 必填 description bindings nodes created_at 必填 updated_at 必填 按 key 获取
curl -s -H "X-API-Key: $CHAIN_API_KEY" "$CHAIN_API/by-key" /v1alpha2/space-chains/{chain_id} 读取单个 Space Chain。
返回该管理 key 有权管理的 Space Chain metadata、nodes 和 bindings。
X-API-Key 必填 id 必填 project_id name 必填 description bindings nodes created_at 必填 updated_at 必填 获取 Space Chain
curl -s -H "X-API-Key: $CHAIN_API_KEY" "$CHAIN_API/{chain_id}" /v1alpha2/space-chains/{chain_id} 更新 Space Chain 详情。
更新 Space Chain 的显示名称和描述。
X-API-Key 必填 Content-Type 必填 name 必填 description id 必填 project_id name 必填 description bindings nodes created_at 必填 updated_at 必填 更新 Space Chain
curl -sX PATCH "$CHAIN_API/{chain_id}" \
-H "Content-Type: application/json" \
-H "X-API-Key: $CHAIN_API_KEY" \
-d '{"name":"Team Knowledge Chain","description":"Updated description"}' /v1alpha2/space-chains/{chain_id} 删除 Space Chain。
软删除 Space Chain。删除成功时返回 `204 No Content`。
X-API-Key 必填 Content-Type 必填 deleted_by_user_id 删除 Space Chain
curl -sX DELETE "$CHAIN_API/{chain_id}" \
-H "Content-Type: application/json" \
-H "X-API-Key: $CHAIN_API_KEY" \
-d '{"deleted_by_user_id":"user-123"}' /v1alpha2/space-chains/{chain_id}/nodes 列出 Space Chain 节点。
返回有序节点列表。节点 position 从 0 开始,并定义顺序 recall 的访问顺序。
X-API-Key 必填 nodes 必填 列出节点
curl -s -H "X-API-Key: $CHAIN_API_KEY" "$CHAIN_API/{chain_id}/nodes" /v1alpha2/space-chains/{chain_id}/nodes 替换 Space Chain 节点。
替换整个有序节点列表。每个节点必须引用普通 Space key / tenant id,不能引用另一个 Space Chain key。
X-API-Key 必填 Content-Type 必填 nodes 必填 nodes[].tenant_id 必填 nodes[].external_space_id nodes[].display_name nodes 必填 替换节点
curl -sX PUT "$CHAIN_API/{chain_id}/nodes" \
-H "Content-Type: application/json" \
-H "X-API-Key: $CHAIN_API_KEY" \
-d '{"nodes":[{"tenant_id":"space_key_a","display_name":"Team"},{"tenant_id":"space_key_b","display_name":"Company"}]}' /v1alpha2/space-chains/{chain_id}/bindings 列出 Space Chain key bindings。
返回该 Space Chain 管理 key 可见的全部 key bindings。
X-API-Key 必填 bindings 必填 列出 bindings
curl -s -H "X-API-Key: $CHAIN_API_KEY" "$CHAIN_API/{chain_id}/bindings" /v1alpha2/space-chains/{chain_id}/bindings 创建 Space Chain key binding。
创建另一个 chain key。省略 `chain_api_key` 时由 mem9 生成 key。
X-API-Key 必填 Content-Type 必填 chain_api_key created_by_user_id id 必填 chain_id 必填 chain_api_key 必填 disabled 必填 created_at 必填 创建 binding
curl -sX POST "$CHAIN_API/{chain_id}/bindings" \
-H "Content-Type: application/json" \
-H "X-API-Key: $CHAIN_API_KEY" \
-d '{}' /v1alpha2/space-chains/{chain_id}/bindings/{binding_id} 禁用 Space Chain key binding。
禁用一个 active binding。API 会拒绝禁用某条 chain 的最后一个 active key。
X-API-Key 必填 Content-Type 必填 disabled 必填 disabled_by_user_id 禁用 binding
curl -sX PATCH "$CHAIN_API/{chain_id}/bindings/{binding_id}" \
-H "Content-Type: application/json" \
-H "X-API-Key: $CHAIN_API_KEY" \
-d '{"disabled":true,"disabled_by_user_id":"user-123"}' /v1alpha2/mem9s/memories 跨 Space Chain recall。
使用普通 memory search endpoint,但传入 Space Chain key。默认 recall 会按顺序访问节点,并在高置信结果处提前停止;传 `scanAll=true` 时搜索所有节点并全局 rerank。
X-API-Key 必填 q search_mode tags source state memory_type agent_id session_id appId limit offset sort_by sort_dir scanAll memories 必填 total 必填 limit 必填 offset 必填 使用 scanAll recall
curl -s -H "X-API-Key: $CHAIN_API_KEY" "$API/memories?q=postgres&scanAll=true&limit=10" 上传 memory / session 文件,并轮询后台任务状态。导入的 memory 和 raw session 可以在文件级、memory 级或 session 级携带 `appId`。
/v1alpha2/mem9s/imports 创建导入任务。
把文件作为 `memory` 或 `session` 上传。handler 会排队异步处理,并立刻返回 task id。
X-API-Key 必填 Content-Type 必填 X-Mnemo-Agent-Id file 必填 file_type 必填 agent_id session_id file.appId file.memories[].appId file.sessions[].appId id 必填 status 必填 导入 memory 文件
curl -sX POST "$API/imports" \
-H "X-API-Key: $API_KEY" \
-F "file=@memory.json" \
-F "file_type=memory" \
-F "agent_id=openclaw-main"
# memory.json may include:
# {"appId":"docs","memories":[{"content":"Project uses PostgreSQL 15","appId":"docs"}]} 导入 session 文件
curl -sX POST "$API/imports" \
-H "X-API-Key: $API_KEY" \
-F "file=@session.json" \
-F "file_type=session" \
-F "session_id=ses-001" \
-F "agent_id=openclaw-main"
# session.json may include:
# {"appId":"docs","session_id":"ses-001","messages":[{"role":"user","content":"..."}]} /v1alpha2/mem9s/imports 列出导入任务。
返回当前 mem9 space 下可见的全部导入任务。
X-API-Key 必填 X-Mnemo-Agent-Id status 必填 tasks 必填 列出导入任务
curl -s -H "X-API-Key: $API_KEY" "$API/imports" /v1alpha2/mem9s/imports/{id} 读取单个导入任务。
轮询某个 task,直到它变成 `done` 或 `failed`。
X-API-Key 必填 X-Mnemo-Agent-Id id 必填 file 必填 status 必填 total 必填 done 必填 error 读取导入任务
curl -s -H "X-API-Key: $API_KEY" "$API/imports/{id}" 查看在 ingest 过程中被保存下来的原始对话消息。`appId` 使用和 memory 搜索一致的不传 / 精确值 / 默认 global 三态过滤。
/v1alpha2/mem9s/session-messages 按 session id 读取 session messages。
为每个要查询的 session 重复传 `session_id` 参数;用 `limit_per_session` 控制每个 session 的返回上限。如果不同 appId 复用了同一个 session id,传入 `appId` 可以避免 raw session 串到其它应用。
X-API-Key 必填 X-Mnemo-Agent-Id session_id 必填 appId limit_per_session messages 必填 messages[].id 必填 messages[].session_id messages[].agent_id messages[].appId messages[].seq 必填 messages[].role 必填 messages[].content 必填 messages[].content_type 必填 messages[].tags 必填 messages[].state 必填 messages[].created_at 必填 messages[].updated_at 必填 limit_per_session 必填 读取 session messages
curl -s -H "X-API-Key: $API_KEY" "$API/session-messages?session_id=ses-001&session_id=ses-002&appId=docs&limit_per_session=20" 用 `/healthz` 做存活检查。旧的 tenant-scoped 路由仍存在于 `/v1alpha1/mem9s/{tenantID}/...` 下,但大多数客户端应优先使用 `v1alpha2` + `X-API-Key`。
/healthz 检查服务健康状态。
适合在 onboarding 前或排查网络可达性问题时使用。
status 必填 健康检查
curl -s https://api.mem9.ai/healthz /versionz 检查 server 版本 metadata。
返回对支持和部署验证有用的 runtime metadata。
go_version 必填 started_at 必填 版本检查
curl -s https://api.mem9.ai/versionz 下一步
如果你的目标是接入 OpenClaw,而不是自己写一个直接集成,请从公开的 SKILL.md 开始。之后在 Your Memory 中继续使用同一个 API key。
API
使用 mem9 API 建立 space、寫入或搜尋記憶、匯入既有檔案,並查看捕捉到的 session messages。
日常呼叫優先使用 `v1alpha2`。`v1alpha1` 持續保留給 key provision 與 tenant-scoped 相容路徑。
使用 `https://api.mem9.ai`。一般客戶端請求應發送到 `https://api.mem9.ai/v1alpha2/mem9s/...`。
把 mem9 API key 放進 `X-API-Key`。這是 `v1alpha2` 的預設驗證模式。
當你希望寫入或匯入歸屬到特定 agent 時,再額外送出 `X-Mnemo-Agent-Id`。舊的 tenant-scoped 路由仍保留在 `v1alpha1` 下。
最小 mem9.ai 流程是:先 provision 一個 key,把它 export 到 shell,然後建立並搜尋記憶。
建立 key
curl -sX POST https://api.mem9.ai/v1alpha1/mem9s 匯出環境變數
export API_KEY="your-api-key"
export API="https://api.mem9.ai/v1alpha2/mem9s" 寫入記憶
curl -sX POST "$API/memories" \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-H "X-Mnemo-Agent-Id: openclaw-main" \
-d '{"appId":"docs","content":"Project uses PostgreSQL 15","tags":["tech","database"],"metadata":{"source":"setup-note"}}' 搜尋記憶
curl -s -H "X-API-Key: $API_KEY" "$API/memories?q=postgres&appId=docs&limit=5" 建立後續會重複使用的 hosted mem9 存取 key。
/v1alpha1/mem9s 建立新的 mem9 API key。
不需要驗證,也不需要 request body。hosted 服務會回傳 `201` 與一個 `id` 欄位,這個 `id` 就是你要保存與重用的 key。
id 必填 建立 key
curl -sX POST https://api.mem9.ai/v1alpha1/mem9s Validate whether a Space key or Space Chain key is currently usable before making runtime calls.
/v1alpha2/status Check API key status.
Send either a normal mem9 Space key or a Space Chain key in `X-API-Key`. The response is `active` or `inactive`; unknown keys return `404`.
X-API-Key 必填 status 必填 Check Space key
curl -s -H "X-API-Key: $API_KEY" https://api.mem9.ai/v1alpha2/status Check Space Chain key
curl -s -H "X-API-Key: $CHAIN_API_KEY" https://api.mem9.ai/v1alpha2/status 在你的 mem9 space 中建立、搜尋、讀取、更新與刪除記憶。
/v1alpha2/mem9s/memories 建立記憶或執行 message ingest。
直接寫入時使用 `content`;走 ingest 時使用 `messages`。同一個 request 不要同時送這兩個欄位。
X-API-Key 必填 Content-Type 必填 X-Mnemo-Agent-Id content messages appId memory_type agent_id session_id tags metadata mode sync disableSessionSave status 必填 建立記憶
curl -sX POST "$API/memories" \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-H "X-Mnemo-Agent-Id: openclaw-main" \
-d '{"appId":"docs","content":"Project uses PostgreSQL 15","tags":["tech","database"],"metadata":{"source":"setup-note"}}' Smart ingest
curl -sX POST "$API/memories" \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-H "X-Mnemo-Agent-Id: openclaw-main" \
-d '{"appId":"docs","session_id":"ses-001","mode":"smart","sync":true,"messages":[{"role":"user","content":"We use PostgreSQL 15"},{"role":"assistant","content":"Noted."}]}' /v1alpha2/mem9s/memories 列出或搜尋記憶。
帶 `q` 時走 recall search;不帶 `q` 時更像帶過濾條件的列表 API。
X-API-Key 必填 X-Mnemo-Agent-Id q search_mode tags source state memory_type agent_id session_id appId limit offset sort_by sort_dir scanAll memories 必填 total 必填 limit 必填 offset 必填 搜尋記憶
curl -s -H "X-API-Key: $API_KEY" "$API/memories?q=postgres&appId=docs&limit=5" 依 tag / source 過濾
curl -s -H "X-API-Key: $API_KEY" "$API/memories?tags=tech&source=openclaw-main&appId=null&limit=10" /v1alpha2/mem9s/memories/{id} 依 id 讀取單筆記憶。
從 hosted 服務中抓取一個完整的記憶物件。
X-API-Key 必填 X-Mnemo-Agent-Id id 必填 content 必填 memory_type 必填 appId source tags metadata agent_id session_id updated_by superseded_by state 必填 version 必填 created_at 必填 updated_at 必填 score confidence relative_age 讀取記憶
curl -s -H "X-API-Key: $API_KEY" "$API/memories/{id}" /v1alpha2/mem9s/memories/{id} 更新單筆記憶。
更新內容、tags 或 metadata。若需要版本保護,請一併送出 `If-Match`。
X-API-Key 必填 Content-Type 必填 X-Mnemo-Agent-Id If-Match content tags metadata id 必填 content 必填 memory_type 必填 appId source tags metadata agent_id session_id updated_by superseded_by state 必填 version 必填 created_at 必填 updated_at 必填 score confidence relative_age 更新記憶
curl -sX PUT "$API/memories/{id}" \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-H "If-Match: 3" \
-d '{"content":"Project uses PostgreSQL 16","tags":["tech","database"]}' /v1alpha2/mem9s/memories/{id} 刪除單筆記憶。
刪除目標記憶,成功時回傳 `204 No Content`。
X-API-Key 必填 X-Mnemo-Agent-Id 刪除記憶
curl -sX DELETE -H "X-API-Key: $API_KEY" "$API/memories/{id}" /v1alpha2/mem9s/memories/batch-delete Delete multiple memories.
Deletes the provided memory ids in one request. When authenticated with a Space Chain key, the handler resolves each id to the node that owns it.
X-API-Key 必填 Content-Type 必填 X-Mnemo-Agent-Id ids 必填 Batch delete memories
curl -sX POST "$API/memories/batch-delete" \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-d '{"ids":["memory-id-1","memory-id-2"]}' Create and manage ordered chains of Spaces. Runtime memory endpoints accept a Space Chain key and search the chain in node order, or all nodes when `scanAll=true`.
/v1alpha2/space-chains Create a Space Chain.
Creates a Space Chain and returns its first plaintext chain key once. Store `chain_api_key` securely; later list responses only expose masked or bound key records.
Content-Type 必填 name 必填 project_id description created_by_user_id chain 必填 chain_api_key 必填 binding_id 必填 key_prefix 必填 key_preview 必填 Create Space Chain
curl -sX POST https://api.mem9.ai/v1alpha2/space-chains \
-H "Content-Type: application/json" \
-d '{"name":"Team Knowledge Chain","description":"Ordered recall across team spaces"}' Export Space Chain env vars
export CHAIN_API_KEY="your-chain-api-key"
export API="https://api.mem9.ai/v1alpha2/mem9s"
export CHAIN_API="https://api.mem9.ai/v1alpha2/space-chains" /v1alpha2/space-chains/by-key Read the Space Chain for a key.
Looks up the active Space Chain associated with the `X-API-Key` chain key.
X-API-Key 必填 id 必填 project_id name 必填 description bindings nodes created_at 必填 updated_at 必填 Get by key
curl -s -H "X-API-Key: $CHAIN_API_KEY" "$CHAIN_API/by-key" /v1alpha2/space-chains/{chain_id} Read one Space Chain.
Returns chain metadata, nodes, and bindings for a chain key authorized to manage this Space Chain.
X-API-Key 必填 id 必填 project_id name 必填 description bindings nodes created_at 必填 updated_at 必填 Get Space Chain
curl -s -H "X-API-Key: $CHAIN_API_KEY" "$CHAIN_API/{chain_id}" /v1alpha2/space-chains/{chain_id} Update Space Chain details.
Updates the display name and description for a Space Chain.
X-API-Key 必填 Content-Type 必填 name 必填 description id 必填 project_id name 必填 description bindings nodes created_at 必填 updated_at 必填 Update Space Chain
curl -sX PATCH "$CHAIN_API/{chain_id}" \
-H "Content-Type: application/json" \
-H "X-API-Key: $CHAIN_API_KEY" \
-d '{"name":"Team Knowledge Chain","description":"Updated description"}' /v1alpha2/space-chains/{chain_id} Delete a Space Chain.
Soft-deletes the Space Chain. A successful delete returns `204 No Content`.
X-API-Key 必填 Content-Type 必填 deleted_by_user_id Delete Space Chain
curl -sX DELETE "$CHAIN_API/{chain_id}" \
-H "Content-Type: application/json" \
-H "X-API-Key: $CHAIN_API_KEY" \
-d '{"deleted_by_user_id":"user-123"}' /v1alpha2/space-chains/{chain_id}/nodes List Space Chain nodes.
Returns the ordered node list. Node positions are zero-based and define sequential recall order.
X-API-Key 必填 nodes 必填 List nodes
curl -s -H "X-API-Key: $CHAIN_API_KEY" "$CHAIN_API/{chain_id}/nodes" /v1alpha2/space-chains/{chain_id}/nodes Replace Space Chain nodes.
Replaces the entire ordered node list. Each node must reference a normal Space key / tenant id, not another Space Chain key.
X-API-Key 必填 Content-Type 必填 nodes 必填 nodes[].tenant_id 必填 nodes[].external_space_id nodes[].display_name nodes 必填 Replace nodes
curl -sX PUT "$CHAIN_API/{chain_id}/nodes" \
-H "Content-Type: application/json" \
-H "X-API-Key: $CHAIN_API_KEY" \
-d '{"nodes":[{"tenant_id":"space_key_a","display_name":"Team"},{"tenant_id":"space_key_b","display_name":"Company"}]}' /v1alpha2/space-chains/{chain_id}/bindings List Space Chain key bindings.
Returns all key bindings visible to the management key for this Space Chain.
X-API-Key 必填 bindings 必填 List bindings
curl -s -H "X-API-Key: $CHAIN_API_KEY" "$CHAIN_API/{chain_id}/bindings" /v1alpha2/space-chains/{chain_id}/bindings Create a Space Chain key binding.
Creates another chain key. Omit `chain_api_key` to let mem9 generate a key.
X-API-Key 必填 Content-Type 必填 chain_api_key created_by_user_id id 必填 chain_id 必填 chain_api_key 必填 disabled 必填 created_at 必填 Create binding
curl -sX POST "$CHAIN_API/{chain_id}/bindings" \
-H "Content-Type: application/json" \
-H "X-API-Key: $CHAIN_API_KEY" \
-d '{}' /v1alpha2/space-chains/{chain_id}/bindings/{binding_id} Disable a Space Chain key binding.
Disables an active binding. The API rejects disabling the last active key for a chain.
X-API-Key 必填 Content-Type 必填 disabled 必填 disabled_by_user_id Disable binding
curl -sX PATCH "$CHAIN_API/{chain_id}/bindings/{binding_id}" \
-H "Content-Type: application/json" \
-H "X-API-Key: $CHAIN_API_KEY" \
-d '{"disabled":true,"disabled_by_user_id":"user-123"}' /v1alpha2/mem9s/memories Recall across a Space Chain.
Use the normal memory search endpoint with a Space Chain key. By default recall visits nodes in order and stops early on high confidence; pass `scanAll=true` to search every node and globally rerank.
X-API-Key 必填 q search_mode tags source state memory_type agent_id session_id appId limit offset sort_by sort_dir scanAll memories 必填 total 必填 limit 必填 offset 必填 Recall with scanAll
curl -s -H "X-API-Key: $CHAIN_API_KEY" "$API/memories?q=postgres&scanAll=true&limit=10" 上傳 memory / session 檔案,並輪詢背景任務狀態。
/v1alpha2/mem9s/imports 建立匯入任務。
把檔案作為 `memory` 或 `session` 上傳。handler 會排入非同步處理,並立即回傳 task id。
X-API-Key 必填 Content-Type 必填 X-Mnemo-Agent-Id file 必填 file_type 必填 agent_id session_id file.appId file.memories[].appId file.sessions[].appId id 必填 status 必填 匯入 memory 檔
curl -sX POST "$API/imports" \
-H "X-API-Key: $API_KEY" \
-F "file=@memory.json" \
-F "file_type=memory" \
-F "agent_id=openclaw-main"
# memory.json may include:
# {"appId":"docs","memories":[{"content":"Project uses PostgreSQL 15","appId":"docs"}]} 匯入 session 檔
curl -sX POST "$API/imports" \
-H "X-API-Key: $API_KEY" \
-F "file=@session.json" \
-F "file_type=session" \
-F "session_id=ses-001" \
-F "agent_id=openclaw-main"
# session.json may include:
# {"appId":"docs","session_id":"ses-001","messages":[{"role":"user","content":"..."}]} /v1alpha2/mem9s/imports 列出匯入任務。
回傳目前 mem9 space 內可見的所有匯入任務。
X-API-Key 必填 X-Mnemo-Agent-Id status 必填 tasks 必填 列出匯入任務
curl -s -H "X-API-Key: $API_KEY" "$API/imports" /v1alpha2/mem9s/imports/{id} 讀取單個匯入任務。
輪詢某個 task,直到它變成 `done` 或 `failed`。
X-API-Key 必填 X-Mnemo-Agent-Id id 必填 file 必填 status 必填 total 必填 done 必填 error 讀取匯入任務
curl -s -H "X-API-Key: $API_KEY" "$API/imports/{id}" 查看在 ingest 流程中被保存下來的原始對話訊息。
/v1alpha2/mem9s/session-messages 依 session id 讀取 session messages。
對每個要查詢的 session 重複傳 `session_id`;用 `limit_per_session` 控制每個 session 的回傳上限。
X-API-Key 必填 X-Mnemo-Agent-Id session_id 必填 appId limit_per_session messages 必填 messages[].id 必填 messages[].session_id messages[].agent_id messages[].appId messages[].seq 必填 messages[].role 必填 messages[].content 必填 messages[].content_type 必填 messages[].tags 必填 messages[].state 必填 messages[].created_at 必填 messages[].updated_at 必填 limit_per_session 必填 讀取 session messages
curl -s -H "X-API-Key: $API_KEY" "$API/session-messages?session_id=ses-001&session_id=ses-002&appId=docs&limit_per_session=20" 使用 `/healthz` 進行存活檢查。舊的 tenant-scoped 路由仍存在於 `/v1alpha1/mem9s/{tenantID}/...` 下,但 hosted client 應優先使用 `v1alpha2` + `X-API-Key`。
/healthz 檢查服務健康狀態。
適合在 onboarding 前或排查網路可達性問題時使用。
status 必填 健康檢查
curl -s https://api.mem9.ai/healthz /versionz Check server version metadata.
Returns runtime metadata that is useful for support and deployment verification.
go_version 必填 started_at 必填 Version check
curl -s https://api.mem9.ai/versionz 下一步
如果你的目標是接入 OpenClaw,而不是自己實作直接整合,請先從公開的 SKILL.md 開始。之後在 Your Memory 繼續使用同一個 API key。
API
mem9 API を使って space を発行し、memory を書き込み / 検索し、既存ファイルを import し、保存済み session messages を確認できます。
日常利用では `v1alpha2` を優先してください。`v1alpha1` は key の provision と tenant-scoped な互換ルート向けに残っています。
`https://api.mem9.ai` を使います。通常のクライアント通信は `https://api.mem9.ai/v1alpha2/mem9s/...` に送ってください。
mem9 API key は `X-API-Key` に送ります。これが `v1alpha2` の標準的な認証です。
write や import を特定 agent に紐付けたい場合は `X-Mnemo-Agent-Id` も送ります。tenant-scoped な旧ルートは `v1alpha1` に残っています。
最小の mem9.ai フローは、key を provision して shell に export し、その後 memory を作成して検索することです。
Key を発行
curl -sX POST https://api.mem9.ai/v1alpha1/mem9s 環境変数を export
export API_KEY="your-api-key"
export API="https://api.mem9.ai/v1alpha2/mem9s" Memory を作成
curl -sX POST "$API/memories" \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-H "X-Mnemo-Agent-Id: openclaw-main" \
-d '{"appId":"docs","content":"Project uses PostgreSQL 15","tags":["tech","database"],"metadata":{"source":"setup-note"}}' Memory を検索
curl -s -H "X-API-Key: $API_KEY" "$API/memories?q=postgres&appId=docs&limit=5" hosted mem9 にアクセスするための初期 key を発行します。
/v1alpha1/mem9s 新しい mem9 API key を発行する。
認証も request body も不要です。service は `201` と `id` を返し、その `id` が保存して再利用する key になります。
id 必須 Key を発行
curl -sX POST https://api.mem9.ai/v1alpha1/mem9s Validate whether a Space key or Space Chain key is currently usable before making runtime calls.
/v1alpha2/status Check API key status.
Send either a normal mem9 Space key or a Space Chain key in `X-API-Key`. The response is `active` or `inactive`; unknown keys return `404`.
X-API-Key 必須 status 必須 Check Space key
curl -s -H "X-API-Key: $API_KEY" https://api.mem9.ai/v1alpha2/status Check Space Chain key
curl -s -H "X-API-Key: $CHAIN_API_KEY" https://api.mem9.ai/v1alpha2/status mem9 space 内の memory を作成、検索、取得、更新、削除します。
/v1alpha2/mem9s/memories memory を作成する、または message ingest を実行する。
直接書き込む場合は `content`、ingest ベースの場合は `messages` を使います。同じ request で両方は送らないでください。
X-API-Key 必須 Content-Type 必須 X-Mnemo-Agent-Id content messages appId memory_type agent_id session_id tags metadata mode sync disableSessionSave status 必須 Memory を作成
curl -sX POST "$API/memories" \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-H "X-Mnemo-Agent-Id: openclaw-main" \
-d '{"appId":"docs","content":"Project uses PostgreSQL 15","tags":["tech","database"],"metadata":{"source":"setup-note"}}' Smart ingest
curl -sX POST "$API/memories" \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-H "X-Mnemo-Agent-Id: openclaw-main" \
-d '{"appId":"docs","session_id":"ses-001","mode":"smart","sync":true,"messages":[{"role":"user","content":"We use PostgreSQL 15"},{"role":"assistant","content":"Noted."}]}' /v1alpha2/mem9s/memories memory を一覧または検索する。
`q` がある場合は recall search、それ以外は filter 付き list API として動作します。
X-API-Key 必須 X-Mnemo-Agent-Id q search_mode tags source state memory_type agent_id session_id appId limit offset sort_by sort_dir scanAll memories 必須 total 必須 limit 必須 offset 必須 Memory を検索
curl -s -H "X-API-Key: $API_KEY" "$API/memories?q=postgres&appId=docs&limit=5" tag / source で絞り込む
curl -s -H "X-API-Key: $API_KEY" "$API/memories?tags=tech&source=openclaw-main&appId=null&limit=10" /v1alpha2/mem9s/memories/{id} id で 1 件の memory を取得する。
mem9 API から単一の memory object を取得します。
X-API-Key 必須 X-Mnemo-Agent-Id id 必須 content 必須 memory_type 必須 appId source tags metadata agent_id session_id updated_by superseded_by state 必須 version 必須 created_at 必須 updated_at 必須 score confidence relative_age Memory を取得
curl -s -H "X-API-Key: $API_KEY" "$API/memories/{id}" /v1alpha2/mem9s/memories/{id} 1 件の memory を更新する。
content、tags、metadata を更新できます。楽観的な version check が必要なら `If-Match` を送ってください。
X-API-Key 必須 Content-Type 必須 X-Mnemo-Agent-Id If-Match content tags metadata id 必須 content 必須 memory_type 必須 appId source tags metadata agent_id session_id updated_by superseded_by state 必須 version 必須 created_at 必須 updated_at 必須 score confidence relative_age Memory を更新
curl -sX PUT "$API/memories/{id}" \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-H "If-Match: 3" \
-d '{"content":"Project uses PostgreSQL 16","tags":["tech","database"]}' /v1alpha2/mem9s/memories/{id} 1 件の memory を削除する。
対象の memory を削除し、成功時は `204 No Content` を返します。
X-API-Key 必須 X-Mnemo-Agent-Id Memory を削除
curl -sX DELETE -H "X-API-Key: $API_KEY" "$API/memories/{id}" /v1alpha2/mem9s/memories/batch-delete Delete multiple memories.
Deletes the provided memory ids in one request. When authenticated with a Space Chain key, the handler resolves each id to the node that owns it.
X-API-Key 必須 Content-Type 必須 X-Mnemo-Agent-Id ids 必須 Batch delete memories
curl -sX POST "$API/memories/batch-delete" \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-d '{"ids":["memory-id-1","memory-id-2"]}' Create and manage ordered chains of Spaces. Runtime memory endpoints accept a Space Chain key and search the chain in node order, or all nodes when `scanAll=true`.
/v1alpha2/space-chains Create a Space Chain.
Creates a Space Chain and returns its first plaintext chain key once. Store `chain_api_key` securely; later list responses only expose masked or bound key records.
Content-Type 必須 name 必須 project_id description created_by_user_id chain 必須 chain_api_key 必須 binding_id 必須 key_prefix 必須 key_preview 必須 Create Space Chain
curl -sX POST https://api.mem9.ai/v1alpha2/space-chains \
-H "Content-Type: application/json" \
-d '{"name":"Team Knowledge Chain","description":"Ordered recall across team spaces"}' Export Space Chain env vars
export CHAIN_API_KEY="your-chain-api-key"
export API="https://api.mem9.ai/v1alpha2/mem9s"
export CHAIN_API="https://api.mem9.ai/v1alpha2/space-chains" /v1alpha2/space-chains/by-key Read the Space Chain for a key.
Looks up the active Space Chain associated with the `X-API-Key` chain key.
X-API-Key 必須 id 必須 project_id name 必須 description bindings nodes created_at 必須 updated_at 必須 Get by key
curl -s -H "X-API-Key: $CHAIN_API_KEY" "$CHAIN_API/by-key" /v1alpha2/space-chains/{chain_id} Read one Space Chain.
Returns chain metadata, nodes, and bindings for a chain key authorized to manage this Space Chain.
X-API-Key 必須 id 必須 project_id name 必須 description bindings nodes created_at 必須 updated_at 必須 Get Space Chain
curl -s -H "X-API-Key: $CHAIN_API_KEY" "$CHAIN_API/{chain_id}" /v1alpha2/space-chains/{chain_id} Update Space Chain details.
Updates the display name and description for a Space Chain.
X-API-Key 必須 Content-Type 必須 name 必須 description id 必須 project_id name 必須 description bindings nodes created_at 必須 updated_at 必須 Update Space Chain
curl -sX PATCH "$CHAIN_API/{chain_id}" \
-H "Content-Type: application/json" \
-H "X-API-Key: $CHAIN_API_KEY" \
-d '{"name":"Team Knowledge Chain","description":"Updated description"}' /v1alpha2/space-chains/{chain_id} Delete a Space Chain.
Soft-deletes the Space Chain. A successful delete returns `204 No Content`.
X-API-Key 必須 Content-Type 必須 deleted_by_user_id Delete Space Chain
curl -sX DELETE "$CHAIN_API/{chain_id}" \
-H "Content-Type: application/json" \
-H "X-API-Key: $CHAIN_API_KEY" \
-d '{"deleted_by_user_id":"user-123"}' /v1alpha2/space-chains/{chain_id}/nodes List Space Chain nodes.
Returns the ordered node list. Node positions are zero-based and define sequential recall order.
X-API-Key 必須 nodes 必須 List nodes
curl -s -H "X-API-Key: $CHAIN_API_KEY" "$CHAIN_API/{chain_id}/nodes" /v1alpha2/space-chains/{chain_id}/nodes Replace Space Chain nodes.
Replaces the entire ordered node list. Each node must reference a normal Space key / tenant id, not another Space Chain key.
X-API-Key 必須 Content-Type 必須 nodes 必須 nodes[].tenant_id 必須 nodes[].external_space_id nodes[].display_name nodes 必須 Replace nodes
curl -sX PUT "$CHAIN_API/{chain_id}/nodes" \
-H "Content-Type: application/json" \
-H "X-API-Key: $CHAIN_API_KEY" \
-d '{"nodes":[{"tenant_id":"space_key_a","display_name":"Team"},{"tenant_id":"space_key_b","display_name":"Company"}]}' /v1alpha2/space-chains/{chain_id}/bindings List Space Chain key bindings.
Returns all key bindings visible to the management key for this Space Chain.
X-API-Key 必須 bindings 必須 List bindings
curl -s -H "X-API-Key: $CHAIN_API_KEY" "$CHAIN_API/{chain_id}/bindings" /v1alpha2/space-chains/{chain_id}/bindings Create a Space Chain key binding.
Creates another chain key. Omit `chain_api_key` to let mem9 generate a key.
X-API-Key 必須 Content-Type 必須 chain_api_key created_by_user_id id 必須 chain_id 必須 chain_api_key 必須 disabled 必須 created_at 必須 Create binding
curl -sX POST "$CHAIN_API/{chain_id}/bindings" \
-H "Content-Type: application/json" \
-H "X-API-Key: $CHAIN_API_KEY" \
-d '{}' /v1alpha2/space-chains/{chain_id}/bindings/{binding_id} Disable a Space Chain key binding.
Disables an active binding. The API rejects disabling the last active key for a chain.
X-API-Key 必須 Content-Type 必須 disabled 必須 disabled_by_user_id Disable binding
curl -sX PATCH "$CHAIN_API/{chain_id}/bindings/{binding_id}" \
-H "Content-Type: application/json" \
-H "X-API-Key: $CHAIN_API_KEY" \
-d '{"disabled":true,"disabled_by_user_id":"user-123"}' /v1alpha2/mem9s/memories Recall across a Space Chain.
Use the normal memory search endpoint with a Space Chain key. By default recall visits nodes in order and stops early on high confidence; pass `scanAll=true` to search every node and globally rerank.
X-API-Key 必須 q search_mode tags source state memory_type agent_id session_id appId limit offset sort_by sort_dir scanAll memories 必須 total 必須 limit 必須 offset 必須 Recall with scanAll
curl -s -H "X-API-Key: $CHAIN_API_KEY" "$API/memories?q=postgres&scanAll=true&limit=10" memory / session ファイルをアップロードし、バックグラウンド task の状態を確認します。
/v1alpha2/mem9s/imports import task を作成する。
ファイルを `memory` または `session` として upload します。handler は非同期処理をキューし、すぐに task id を返します。
X-API-Key 必須 Content-Type 必須 X-Mnemo-Agent-Id file 必須 file_type 必須 agent_id session_id file.appId file.memories[].appId file.sessions[].appId id 必須 status 必須 memory file を import
curl -sX POST "$API/imports" \
-H "X-API-Key: $API_KEY" \
-F "file=@memory.json" \
-F "file_type=memory" \
-F "agent_id=openclaw-main"
# memory.json may include:
# {"appId":"docs","memories":[{"content":"Project uses PostgreSQL 15","appId":"docs"}]} session file を import
curl -sX POST "$API/imports" \
-H "X-API-Key: $API_KEY" \
-F "file=@session.json" \
-F "file_type=session" \
-F "session_id=ses-001" \
-F "agent_id=openclaw-main"
# session.json may include:
# {"appId":"docs","session_id":"ses-001","messages":[{"role":"user","content":"..."}]} /v1alpha2/mem9s/imports import task を一覧する。
現在の mem9 space で見えるすべての import task を返します。
X-API-Key 必須 X-Mnemo-Agent-Id status 必須 tasks 必須 Import task を一覧
curl -s -H "X-API-Key: $API_KEY" "$API/imports" /v1alpha2/mem9s/imports/{id} 1 件の import task を取得する。
task が `done` または `failed` になるまで polling します。
X-API-Key 必須 X-Mnemo-Agent-Id id 必須 file 必須 status 必須 total 必須 done 必須 error Import task を取得
curl -s -H "X-API-Key: $API_KEY" "$API/imports/{id}" ingest 中に保存された raw conversation row を確認します。
/v1alpha2/mem9s/session-messages session id 単位で session messages を取得する。
取得したい session ごとに `session_id` を繰り返して渡します。`limit_per_session` で各 session の上限を設定します。
X-API-Key 必須 X-Mnemo-Agent-Id session_id 必須 appId limit_per_session messages 必須 messages[].id 必須 messages[].session_id messages[].agent_id messages[].appId messages[].seq 必須 messages[].role 必須 messages[].content 必須 messages[].content_type 必須 messages[].tags 必須 messages[].state 必須 messages[].created_at 必須 messages[].updated_at 必須 limit_per_session 必須 Session messages を読む
curl -s -H "X-API-Key: $API_KEY" "$API/session-messages?session_id=ses-001&session_id=ses-002&appId=docs&limit_per_session=20" `/healthz` は liveness check 用です。旧 tenant-scoped route は `/v1alpha1/mem9s/{tenantID}/...` に残っていますが、hosted client は `v1alpha2` + `X-API-Key` を優先してください。
/healthz service health を確認する。
onboarding 前の確認や network reachability の切り分けに便利です。
status 必須 Health check
curl -s https://api.mem9.ai/healthz /versionz Check server version metadata.
Returns runtime metadata that is useful for support and deployment verification.
go_version 必須 started_at 必須 Version check
curl -s https://api.mem9.ai/versionz Next
直接 integration を作るのではなく OpenClaw をつなぎたいなら、まず公開 SKILL.md から始めてください。その後、同じ API key を Your Memory でも使えます。
API
mem9 API 로 space 를 만들고, memory 를 쓰고 검색하고, 기존 파일을 import 하고, 저장된 session messages 를 확인할 수 있습니다.
일상적인 사용은 `v1alpha2` 를 우선하세요. `v1alpha1` 은 key provision 과 tenant-scoped 호환 경로를 위해 남아 있습니다.
`https://api.mem9.ai` 를 사용합니다. 일반적인 클라이언트 트래픽은 `https://api.mem9.ai/v1alpha2/mem9s/...` 로 보내세요.
mem9 API key 는 `X-API-Key` 로 보냅니다. 이것이 `v1alpha2` 의 기본 인증 방식입니다.
write 나 import 를 특정 agent 에 귀속시키고 싶다면 `X-Mnemo-Agent-Id` 도 함께 보내세요. 기존 tenant-scoped 경로는 `v1alpha1` 아래에 남아 있습니다.
가장 작은 mem9.ai 흐름은 key 를 provision 하고 shell 에 export 한 뒤, memory 를 생성하고 검색하는 것입니다.
Key 발급
curl -sX POST https://api.mem9.ai/v1alpha1/mem9s 환경 변수 export
export API_KEY="your-api-key"
export API="https://api.mem9.ai/v1alpha2/mem9s" Memory 생성
curl -sX POST "$API/memories" \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-H "X-Mnemo-Agent-Id: openclaw-main" \
-d '{"appId":"docs","content":"Project uses PostgreSQL 15","tags":["tech","database"],"metadata":{"source":"setup-note"}}' Memory 검색
curl -s -H "X-API-Key: $API_KEY" "$API/memories?q=postgres&appId=docs&limit=5" hosted mem9 접근에 사용할 초기 key 를 발급합니다.
/v1alpha1/mem9s 새 mem9 API key 를 발급합니다.
인증도 request body 도 필요 없습니다. service 는 `201` 과 `id` 를 반환하며, 이 `id` 가 저장하고 재사용할 key 입니다.
id 필수 Key 발급
curl -sX POST https://api.mem9.ai/v1alpha1/mem9s Validate whether a Space key or Space Chain key is currently usable before making runtime calls.
/v1alpha2/status Check API key status.
Send either a normal mem9 Space key or a Space Chain key in `X-API-Key`. The response is `active` or `inactive`; unknown keys return `404`.
X-API-Key 필수 status 필수 Check Space key
curl -s -H "X-API-Key: $API_KEY" https://api.mem9.ai/v1alpha2/status Check Space Chain key
curl -s -H "X-API-Key: $CHAIN_API_KEY" https://api.mem9.ai/v1alpha2/status mem9 space 안의 memory 를 생성, 검색, 조회, 수정, 삭제합니다.
/v1alpha2/mem9s/memories memory 를 생성하거나 message ingest 를 실행합니다.
직접 쓰기에는 `content`, ingest 기반 처리에는 `messages` 를 사용합니다. 같은 request 에 둘 다 보내지 마세요.
X-API-Key 필수 Content-Type 필수 X-Mnemo-Agent-Id content messages appId memory_type agent_id session_id tags metadata mode sync disableSessionSave status 필수 Memory 생성
curl -sX POST "$API/memories" \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-H "X-Mnemo-Agent-Id: openclaw-main" \
-d '{"appId":"docs","content":"Project uses PostgreSQL 15","tags":["tech","database"],"metadata":{"source":"setup-note"}}' Smart ingest
curl -sX POST "$API/memories" \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-H "X-Mnemo-Agent-Id: openclaw-main" \
-d '{"appId":"docs","session_id":"ses-001","mode":"smart","sync":true,"messages":[{"role":"user","content":"We use PostgreSQL 15"},{"role":"assistant","content":"Noted."}]}' /v1alpha2/mem9s/memories memory 를 목록 조회하거나 검색합니다.
`q` 가 있으면 recall search, 없으면 filter 가 적용된 list API 처럼 동작합니다.
X-API-Key 필수 X-Mnemo-Agent-Id q search_mode tags source state memory_type agent_id session_id appId limit offset sort_by sort_dir scanAll memories 필수 total 필수 limit 필수 offset 필수 Memory 검색
curl -s -H "X-API-Key: $API_KEY" "$API/memories?q=postgres&appId=docs&limit=5" tag / source 로 필터링
curl -s -H "X-API-Key: $API_KEY" "$API/memories?tags=tech&source=openclaw-main&appId=null&limit=10" /v1alpha2/mem9s/memories/{id} id 로 단일 memory 를 조회합니다.
mem9 API 에서 하나의 memory object 를 가져옵니다.
X-API-Key 필수 X-Mnemo-Agent-Id id 필수 content 필수 memory_type 필수 appId source tags metadata agent_id session_id updated_by superseded_by state 필수 version 필수 created_at 필수 updated_at 필수 score confidence relative_age Memory 조회
curl -s -H "X-API-Key: $API_KEY" "$API/memories/{id}" /v1alpha2/mem9s/memories/{id} 단일 memory 를 수정합니다.
content, tags, metadata 를 수정할 수 있습니다. 낙관적 version check 가 필요하면 `If-Match` 를 함께 보내세요.
X-API-Key 필수 Content-Type 필수 X-Mnemo-Agent-Id If-Match content tags metadata id 필수 content 필수 memory_type 필수 appId source tags metadata agent_id session_id updated_by superseded_by state 필수 version 필수 created_at 필수 updated_at 필수 score confidence relative_age Memory 수정
curl -sX PUT "$API/memories/{id}" \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-H "If-Match: 3" \
-d '{"content":"Project uses PostgreSQL 16","tags":["tech","database"]}' /v1alpha2/mem9s/memories/{id} 단일 memory 를 삭제합니다.
대상 memory 를 삭제하고 성공 시 `204 No Content` 를 반환합니다.
X-API-Key 필수 X-Mnemo-Agent-Id Memory 삭제
curl -sX DELETE -H "X-API-Key: $API_KEY" "$API/memories/{id}" /v1alpha2/mem9s/memories/batch-delete Delete multiple memories.
Deletes the provided memory ids in one request. When authenticated with a Space Chain key, the handler resolves each id to the node that owns it.
X-API-Key 필수 Content-Type 필수 X-Mnemo-Agent-Id ids 필수 Batch delete memories
curl -sX POST "$API/memories/batch-delete" \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-d '{"ids":["memory-id-1","memory-id-2"]}' Create and manage ordered chains of Spaces. Runtime memory endpoints accept a Space Chain key and search the chain in node order, or all nodes when `scanAll=true`.
/v1alpha2/space-chains Create a Space Chain.
Creates a Space Chain and returns its first plaintext chain key once. Store `chain_api_key` securely; later list responses only expose masked or bound key records.
Content-Type 필수 name 필수 project_id description created_by_user_id chain 필수 chain_api_key 필수 binding_id 필수 key_prefix 필수 key_preview 필수 Create Space Chain
curl -sX POST https://api.mem9.ai/v1alpha2/space-chains \
-H "Content-Type: application/json" \
-d '{"name":"Team Knowledge Chain","description":"Ordered recall across team spaces"}' Export Space Chain env vars
export CHAIN_API_KEY="your-chain-api-key"
export API="https://api.mem9.ai/v1alpha2/mem9s"
export CHAIN_API="https://api.mem9.ai/v1alpha2/space-chains" /v1alpha2/space-chains/by-key Read the Space Chain for a key.
Looks up the active Space Chain associated with the `X-API-Key` chain key.
X-API-Key 필수 id 필수 project_id name 필수 description bindings nodes created_at 필수 updated_at 필수 Get by key
curl -s -H "X-API-Key: $CHAIN_API_KEY" "$CHAIN_API/by-key" /v1alpha2/space-chains/{chain_id} Read one Space Chain.
Returns chain metadata, nodes, and bindings for a chain key authorized to manage this Space Chain.
X-API-Key 필수 id 필수 project_id name 필수 description bindings nodes created_at 필수 updated_at 필수 Get Space Chain
curl -s -H "X-API-Key: $CHAIN_API_KEY" "$CHAIN_API/{chain_id}" /v1alpha2/space-chains/{chain_id} Update Space Chain details.
Updates the display name and description for a Space Chain.
X-API-Key 필수 Content-Type 필수 name 필수 description id 필수 project_id name 필수 description bindings nodes created_at 필수 updated_at 필수 Update Space Chain
curl -sX PATCH "$CHAIN_API/{chain_id}" \
-H "Content-Type: application/json" \
-H "X-API-Key: $CHAIN_API_KEY" \
-d '{"name":"Team Knowledge Chain","description":"Updated description"}' /v1alpha2/space-chains/{chain_id} Delete a Space Chain.
Soft-deletes the Space Chain. A successful delete returns `204 No Content`.
X-API-Key 필수 Content-Type 필수 deleted_by_user_id Delete Space Chain
curl -sX DELETE "$CHAIN_API/{chain_id}" \
-H "Content-Type: application/json" \
-H "X-API-Key: $CHAIN_API_KEY" \
-d '{"deleted_by_user_id":"user-123"}' /v1alpha2/space-chains/{chain_id}/nodes List Space Chain nodes.
Returns the ordered node list. Node positions are zero-based and define sequential recall order.
X-API-Key 필수 nodes 필수 List nodes
curl -s -H "X-API-Key: $CHAIN_API_KEY" "$CHAIN_API/{chain_id}/nodes" /v1alpha2/space-chains/{chain_id}/nodes Replace Space Chain nodes.
Replaces the entire ordered node list. Each node must reference a normal Space key / tenant id, not another Space Chain key.
X-API-Key 필수 Content-Type 필수 nodes 필수 nodes[].tenant_id 필수 nodes[].external_space_id nodes[].display_name nodes 필수 Replace nodes
curl -sX PUT "$CHAIN_API/{chain_id}/nodes" \
-H "Content-Type: application/json" \
-H "X-API-Key: $CHAIN_API_KEY" \
-d '{"nodes":[{"tenant_id":"space_key_a","display_name":"Team"},{"tenant_id":"space_key_b","display_name":"Company"}]}' /v1alpha2/space-chains/{chain_id}/bindings List Space Chain key bindings.
Returns all key bindings visible to the management key for this Space Chain.
X-API-Key 필수 bindings 필수 List bindings
curl -s -H "X-API-Key: $CHAIN_API_KEY" "$CHAIN_API/{chain_id}/bindings" /v1alpha2/space-chains/{chain_id}/bindings Create a Space Chain key binding.
Creates another chain key. Omit `chain_api_key` to let mem9 generate a key.
X-API-Key 필수 Content-Type 필수 chain_api_key created_by_user_id id 필수 chain_id 필수 chain_api_key 필수 disabled 필수 created_at 필수 Create binding
curl -sX POST "$CHAIN_API/{chain_id}/bindings" \
-H "Content-Type: application/json" \
-H "X-API-Key: $CHAIN_API_KEY" \
-d '{}' /v1alpha2/space-chains/{chain_id}/bindings/{binding_id} Disable a Space Chain key binding.
Disables an active binding. The API rejects disabling the last active key for a chain.
X-API-Key 필수 Content-Type 필수 disabled 필수 disabled_by_user_id Disable binding
curl -sX PATCH "$CHAIN_API/{chain_id}/bindings/{binding_id}" \
-H "Content-Type: application/json" \
-H "X-API-Key: $CHAIN_API_KEY" \
-d '{"disabled":true,"disabled_by_user_id":"user-123"}' /v1alpha2/mem9s/memories Recall across a Space Chain.
Use the normal memory search endpoint with a Space Chain key. By default recall visits nodes in order and stops early on high confidence; pass `scanAll=true` to search every node and globally rerank.
X-API-Key 필수 q search_mode tags source state memory_type agent_id session_id appId limit offset sort_by sort_dir scanAll memories 필수 total 필수 limit 필수 offset 필수 Recall with scanAll
curl -s -H "X-API-Key: $CHAIN_API_KEY" "$API/memories?q=postgres&scanAll=true&limit=10" memory / session 파일을 업로드하고 백그라운드 task 상태를 확인합니다.
/v1alpha2/mem9s/imports import task 를 생성합니다.
파일을 `memory` 또는 `session` 으로 업로드합니다. handler 는 비동기 처리를 큐에 넣고 즉시 task id 를 반환합니다.
X-API-Key 필수 Content-Type 필수 X-Mnemo-Agent-Id file 필수 file_type 필수 agent_id session_id file.appId file.memories[].appId file.sessions[].appId id 필수 status 필수 memory 파일 import
curl -sX POST "$API/imports" \
-H "X-API-Key: $API_KEY" \
-F "file=@memory.json" \
-F "file_type=memory" \
-F "agent_id=openclaw-main"
# memory.json may include:
# {"appId":"docs","memories":[{"content":"Project uses PostgreSQL 15","appId":"docs"}]} session 파일 import
curl -sX POST "$API/imports" \
-H "X-API-Key: $API_KEY" \
-F "file=@session.json" \
-F "file_type=session" \
-F "session_id=ses-001" \
-F "agent_id=openclaw-main"
# session.json may include:
# {"appId":"docs","session_id":"ses-001","messages":[{"role":"user","content":"..."}]} /v1alpha2/mem9s/imports import task 목록을 조회합니다.
현재 mem9 space 에서 보이는 모든 import task 를 반환합니다.
X-API-Key 필수 X-Mnemo-Agent-Id status 필수 tasks 필수 Import task 목록
curl -s -H "X-API-Key: $API_KEY" "$API/imports" /v1alpha2/mem9s/imports/{id} 단일 import task 를 조회합니다.
task 가 `done` 또는 `failed` 가 될 때까지 polling 합니다.
X-API-Key 필수 X-Mnemo-Agent-Id id 필수 file 필수 status 필수 total 필수 done 필수 error Import task 조회
curl -s -H "X-API-Key: $API_KEY" "$API/imports/{id}" ingest 동안 저장된 raw conversation row 를 확인합니다.
/v1alpha2/mem9s/session-messages session id 기준으로 session messages 를 조회합니다.
조회할 각 session 마다 `session_id` 를 반복해서 넘깁니다. `limit_per_session` 으로 각 session 의 최대 row 수를 제한합니다.
X-API-Key 필수 X-Mnemo-Agent-Id session_id 필수 appId limit_per_session messages 필수 messages[].id 필수 messages[].session_id messages[].agent_id messages[].appId messages[].seq 필수 messages[].role 필수 messages[].content 필수 messages[].content_type 필수 messages[].tags 필수 messages[].state 필수 messages[].created_at 필수 messages[].updated_at 필수 limit_per_session 필수 Session messages 조회
curl -s -H "X-API-Key: $API_KEY" "$API/session-messages?session_id=ses-001&session_id=ses-002&appId=docs&limit_per_session=20" `/healthz` 는 liveness check 용입니다. 기존 tenant-scoped route 는 `/v1alpha1/mem9s/{tenantID}/...` 아래에 남아 있지만, hosted client 는 `v1alpha2` + `X-API-Key` 를 우선해야 합니다.
/healthz 서비스 health 를 확인합니다.
onboarding 전 확인이나 네트워크 reachability 문제를 진단할 때 유용합니다.
status 필수 Health check
curl -s https://api.mem9.ai/healthz /versionz Check server version metadata.
Returns runtime metadata that is useful for support and deployment verification.
go_version 필수 started_at 필수 Version check
curl -s https://api.mem9.ai/versionz 다음
직접 integration 을 만드는 것이 아니라 OpenClaw 를 연결하려는 목적이라면 공개 SKILL.md 부터 시작하세요. 이후 같은 API key 를 Your Memory 에서도 사용할 수 있습니다.
API
Gunakan mem9 API untuk membuat space, menulis atau mencari memory, mengimpor file yang sudah ada, dan melihat session messages yang tersimpan.
Gunakan `v1alpha2` untuk pemakaian harian. `v1alpha1` tetap tersedia untuk provision key dan kompatibilitas tenant-scoped.
Gunakan `https://api.mem9.ai`. Untuk trafik client normal, kirim request ke `https://api.mem9.ai/v1alpha2/mem9s/...`.
Kirim mem9 API key Anda di `X-API-Key`. Ini adalah model auth default untuk `v1alpha2`.
Kirim `X-Mnemo-Agent-Id` jika Anda ingin write atau import diatribusikan ke agent tertentu. Rute tenant-scoped lama masih tersedia di bawah `v1alpha1`.
Alur mem9.ai paling kecil adalah: provision key, export ke shell, lalu buat dan cari memory.
Provision key
curl -sX POST https://api.mem9.ai/v1alpha1/mem9s Export env vars
export API_KEY="your-api-key"
export API="https://api.mem9.ai/v1alpha2/mem9s" Buat memory
curl -sX POST "$API/memories" \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-H "X-Mnemo-Agent-Id: openclaw-main" \
-d '{"appId":"docs","content":"Project uses PostgreSQL 15","tags":["tech","database"],"metadata":{"source":"setup-note"}}' Cari memory
curl -s -H "X-API-Key: $API_KEY" "$API/memories?q=postgres&appId=docs&limit=5" Buat key awal yang akan dipakai ulang untuk akses hosted mem9.
/v1alpha1/mem9s Provision mem9 API key baru.
Tidak memerlukan auth maupun request body. Hosted service mengembalikan `201` dengan field `id`, dan nilai itulah key yang Anda simpan dan pakai ulang.
id Wajib Provision key
curl -sX POST https://api.mem9.ai/v1alpha1/mem9s Validate whether a Space key or Space Chain key is currently usable before making runtime calls.
/v1alpha2/status Check API key status.
Send either a normal mem9 Space key or a Space Chain key in `X-API-Key`. The response is `active` or `inactive`; unknown keys return `404`.
X-API-Key Wajib status Wajib Check Space key
curl -s -H "X-API-Key: $API_KEY" https://api.mem9.ai/v1alpha2/status Check Space Chain key
curl -s -H "X-API-Key: $CHAIN_API_KEY" https://api.mem9.ai/v1alpha2/status Buat, cari, baca, ubah, dan hapus memory yang tersimpan di mem9 space Anda.
/v1alpha2/mem9s/memories Buat memory atau jalankan message ingest.
Gunakan `content` untuk write langsung atau `messages` untuk ingest. Jangan kirim keduanya sekaligus dalam request yang sama.
X-API-Key Wajib Content-Type Wajib X-Mnemo-Agent-Id content messages appId memory_type agent_id session_id tags metadata mode sync disableSessionSave status Wajib Buat memory
curl -sX POST "$API/memories" \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-H "X-Mnemo-Agent-Id: openclaw-main" \
-d '{"appId":"docs","content":"Project uses PostgreSQL 15","tags":["tech","database"],"metadata":{"source":"setup-note"}}' Smart ingest
curl -sX POST "$API/memories" \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-H "X-Mnemo-Agent-Id: openclaw-main" \
-d '{"appId":"docs","session_id":"ses-001","mode":"smart","sync":true,"messages":[{"role":"user","content":"We use PostgreSQL 15"},{"role":"assistant","content":"Noted."}]}' /v1alpha2/mem9s/memories List atau search memory.
Saat `q` ada, handler menjalankan recall search. Tanpa `q`, endpoint berperilaku seperti API list dengan filter.
X-API-Key Wajib X-Mnemo-Agent-Id q search_mode tags source state memory_type agent_id session_id appId limit offset sort_by sort_dir scanAll memories Wajib total Wajib limit Wajib offset Wajib Cari memory
curl -s -H "X-API-Key: $API_KEY" "$API/memories?q=postgres&appId=docs&limit=5" Filter by tag / source
curl -s -H "X-API-Key: $API_KEY" "$API/memories?tags=tech&source=openclaw-main&appId=null&limit=10" /v1alpha2/mem9s/memories/{id} Baca satu memory berdasarkan id.
Ambil satu memory object dari mem9 API.
X-API-Key Wajib X-Mnemo-Agent-Id id Wajib content Wajib memory_type Wajib appId source tags metadata agent_id session_id updated_by superseded_by state Wajib version Wajib created_at Wajib updated_at Wajib score confidence relative_age Ambil memory
curl -s -H "X-API-Key: $API_KEY" "$API/memories/{id}" /v1alpha2/mem9s/memories/{id} Perbarui satu memory.
Perbarui content, tags, atau metadata. Kirim `If-Match` bila Anda ingin version check optimistis.
X-API-Key Wajib Content-Type Wajib X-Mnemo-Agent-Id If-Match content tags metadata id Wajib content Wajib memory_type Wajib appId source tags metadata agent_id session_id updated_by superseded_by state Wajib version Wajib created_at Wajib updated_at Wajib score confidence relative_age Perbarui memory
curl -sX PUT "$API/memories/{id}" \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-H "If-Match: 3" \
-d '{"content":"Project uses PostgreSQL 16","tags":["tech","database"]}' /v1alpha2/mem9s/memories/{id} Hapus satu memory.
Menghapus row memory terpilih dan mengembalikan `204 No Content` saat sukses.
X-API-Key Wajib X-Mnemo-Agent-Id Hapus memory
curl -sX DELETE -H "X-API-Key: $API_KEY" "$API/memories/{id}" /v1alpha2/mem9s/memories/batch-delete Delete multiple memories.
Deletes the provided memory ids in one request. When authenticated with a Space Chain key, the handler resolves each id to the node that owns it.
X-API-Key Wajib Content-Type Wajib X-Mnemo-Agent-Id ids Wajib Batch delete memories
curl -sX POST "$API/memories/batch-delete" \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-d '{"ids":["memory-id-1","memory-id-2"]}' Create and manage ordered chains of Spaces. Runtime memory endpoints accept a Space Chain key and search the chain in node order, or all nodes when `scanAll=true`.
/v1alpha2/space-chains Create a Space Chain.
Creates a Space Chain and returns its first plaintext chain key once. Store `chain_api_key` securely; later list responses only expose masked or bound key records.
Content-Type Wajib name Wajib project_id description created_by_user_id chain Wajib chain_api_key Wajib binding_id Wajib key_prefix Wajib key_preview Wajib Create Space Chain
curl -sX POST https://api.mem9.ai/v1alpha2/space-chains \
-H "Content-Type: application/json" \
-d '{"name":"Team Knowledge Chain","description":"Ordered recall across team spaces"}' Export Space Chain env vars
export CHAIN_API_KEY="your-chain-api-key"
export API="https://api.mem9.ai/v1alpha2/mem9s"
export CHAIN_API="https://api.mem9.ai/v1alpha2/space-chains" /v1alpha2/space-chains/by-key Read the Space Chain for a key.
Looks up the active Space Chain associated with the `X-API-Key` chain key.
X-API-Key Wajib id Wajib project_id name Wajib description bindings nodes created_at Wajib updated_at Wajib Get by key
curl -s -H "X-API-Key: $CHAIN_API_KEY" "$CHAIN_API/by-key" /v1alpha2/space-chains/{chain_id} Read one Space Chain.
Returns chain metadata, nodes, and bindings for a chain key authorized to manage this Space Chain.
X-API-Key Wajib id Wajib project_id name Wajib description bindings nodes created_at Wajib updated_at Wajib Get Space Chain
curl -s -H "X-API-Key: $CHAIN_API_KEY" "$CHAIN_API/{chain_id}" /v1alpha2/space-chains/{chain_id} Update Space Chain details.
Updates the display name and description for a Space Chain.
X-API-Key Wajib Content-Type Wajib name Wajib description id Wajib project_id name Wajib description bindings nodes created_at Wajib updated_at Wajib Update Space Chain
curl -sX PATCH "$CHAIN_API/{chain_id}" \
-H "Content-Type: application/json" \
-H "X-API-Key: $CHAIN_API_KEY" \
-d '{"name":"Team Knowledge Chain","description":"Updated description"}' /v1alpha2/space-chains/{chain_id} Delete a Space Chain.
Soft-deletes the Space Chain. A successful delete returns `204 No Content`.
X-API-Key Wajib Content-Type Wajib deleted_by_user_id Delete Space Chain
curl -sX DELETE "$CHAIN_API/{chain_id}" \
-H "Content-Type: application/json" \
-H "X-API-Key: $CHAIN_API_KEY" \
-d '{"deleted_by_user_id":"user-123"}' /v1alpha2/space-chains/{chain_id}/nodes List Space Chain nodes.
Returns the ordered node list. Node positions are zero-based and define sequential recall order.
X-API-Key Wajib nodes Wajib List nodes
curl -s -H "X-API-Key: $CHAIN_API_KEY" "$CHAIN_API/{chain_id}/nodes" /v1alpha2/space-chains/{chain_id}/nodes Replace Space Chain nodes.
Replaces the entire ordered node list. Each node must reference a normal Space key / tenant id, not another Space Chain key.
X-API-Key Wajib Content-Type Wajib nodes Wajib nodes[].tenant_id Wajib nodes[].external_space_id nodes[].display_name nodes Wajib Replace nodes
curl -sX PUT "$CHAIN_API/{chain_id}/nodes" \
-H "Content-Type: application/json" \
-H "X-API-Key: $CHAIN_API_KEY" \
-d '{"nodes":[{"tenant_id":"space_key_a","display_name":"Team"},{"tenant_id":"space_key_b","display_name":"Company"}]}' /v1alpha2/space-chains/{chain_id}/bindings List Space Chain key bindings.
Returns all key bindings visible to the management key for this Space Chain.
X-API-Key Wajib bindings Wajib List bindings
curl -s -H "X-API-Key: $CHAIN_API_KEY" "$CHAIN_API/{chain_id}/bindings" /v1alpha2/space-chains/{chain_id}/bindings Create a Space Chain key binding.
Creates another chain key. Omit `chain_api_key` to let mem9 generate a key.
X-API-Key Wajib Content-Type Wajib chain_api_key created_by_user_id id Wajib chain_id Wajib chain_api_key Wajib disabled Wajib created_at Wajib Create binding
curl -sX POST "$CHAIN_API/{chain_id}/bindings" \
-H "Content-Type: application/json" \
-H "X-API-Key: $CHAIN_API_KEY" \
-d '{}' /v1alpha2/space-chains/{chain_id}/bindings/{binding_id} Disable a Space Chain key binding.
Disables an active binding. The API rejects disabling the last active key for a chain.
X-API-Key Wajib Content-Type Wajib disabled Wajib disabled_by_user_id Disable binding
curl -sX PATCH "$CHAIN_API/{chain_id}/bindings/{binding_id}" \
-H "Content-Type: application/json" \
-H "X-API-Key: $CHAIN_API_KEY" \
-d '{"disabled":true,"disabled_by_user_id":"user-123"}' /v1alpha2/mem9s/memories Recall across a Space Chain.
Use the normal memory search endpoint with a Space Chain key. By default recall visits nodes in order and stops early on high confidence; pass `scanAll=true` to search every node and globally rerank.
X-API-Key Wajib q search_mode tags source state memory_type agent_id session_id appId limit offset sort_by sort_dir scanAll memories Wajib total Wajib limit Wajib offset Wajib Recall with scanAll
curl -s -H "X-API-Key: $CHAIN_API_KEY" "$API/memories?q=postgres&scanAll=true&limit=10" Unggah file memory atau session dan polling status task latar belakangnya.
/v1alpha2/mem9s/imports Buat import task.
Unggah file sebagai `memory` atau `session`. Handler akan mengantrikan proses async dan segera mengembalikan task id.
X-API-Key Wajib Content-Type Wajib X-Mnemo-Agent-Id file Wajib file_type Wajib agent_id session_id file.appId file.memories[].appId file.sessions[].appId id Wajib status Wajib Import file memory
curl -sX POST "$API/imports" \
-H "X-API-Key: $API_KEY" \
-F "file=@memory.json" \
-F "file_type=memory" \
-F "agent_id=openclaw-main"
# memory.json may include:
# {"appId":"docs","memories":[{"content":"Project uses PostgreSQL 15","appId":"docs"}]} Import file session
curl -sX POST "$API/imports" \
-H "X-API-Key: $API_KEY" \
-F "file=@session.json" \
-F "file_type=session" \
-F "session_id=ses-001" \
-F "agent_id=openclaw-main"
# session.json may include:
# {"appId":"docs","session_id":"ses-001","messages":[{"role":"user","content":"..."}]} /v1alpha2/mem9s/imports List import task.
Mengembalikan semua import task yang terlihat di mem9 space saat ini.
X-API-Key Wajib X-Mnemo-Agent-Id status Wajib tasks Wajib List import task
curl -s -H "X-API-Key: $API_KEY" "$API/imports" /v1alpha2/mem9s/imports/{id} Baca satu import task.
Polling satu task sampai statusnya menjadi `done` atau `failed`.
X-API-Key Wajib X-Mnemo-Agent-Id id Wajib file Wajib status Wajib total Wajib done Wajib error Ambil import task
curl -s -H "X-API-Key: $API_KEY" "$API/imports/{id}" Lihat row percakapan mentah yang disimpan saat ingest berjalan.
/v1alpha2/mem9s/session-messages List session messages berdasarkan session id.
Ulangi `session_id` di query string untuk tiap session yang ingin diambil. Gunakan `limit_per_session` untuk membatasi jumlah row per session.
X-API-Key Wajib X-Mnemo-Agent-Id session_id Wajib appId limit_per_session messages Wajib messages[].id Wajib messages[].session_id messages[].agent_id messages[].appId messages[].seq Wajib messages[].role Wajib messages[].content Wajib messages[].content_type Wajib messages[].tags Wajib messages[].state Wajib messages[].created_at Wajib messages[].updated_at Wajib limit_per_session Wajib Baca session messages
curl -s -H "X-API-Key: $API_KEY" "$API/session-messages?session_id=ses-001&session_id=ses-002&appId=docs&limit_per_session=20" Gunakan `/healthz` untuk liveness check. Rute tenant-scoped lama masih ada di `/v1alpha1/mem9s/{tenantID}/...`, tetapi client hosted sebaiknya memakai `v1alpha2` + `X-API-Key`.
/healthz Cek kesehatan service.
Berguna sebelum onboarding atau saat mendiagnosis masalah jangkauan jaringan.
status Wajib Health check
curl -s https://api.mem9.ai/healthz /versionz Check server version metadata.
Returns runtime metadata that is useful for support and deployment verification.
go_version Wajib started_at Wajib Version check
curl -s https://api.mem9.ai/versionz Next
Jika Anda sedang onboarding OpenClaw dan bukan membangun integrasi langsung, mulai dari SKILL.md publik. Gunakan API key yang sama nanti di Your Memory.
API
ใช้ mem9 API เพื่อสร้าง space เขียนหรือค้นหา memory นำเข้าไฟล์เดิม และดู session messages ที่ถูกเก็บไว้
สำหรับการใช้งานประจำวันให้ใช้ `v1alpha2` เป็นหลัก ส่วน `v1alpha1` ยังมีไว้สำหรับ provision key และเส้นทาง tenant-scoped แบบเดิม
ใช้ `https://api.mem9.ai` สำหรับ client ปกติให้ส่ง request ไปที่ `https://api.mem9.ai/v1alpha2/mem9s/...`
ส่ง mem9 API key ของคุณใน `X-API-Key` นี่คือรูปแบบ auth หลักของ `v1alpha2`
ส่ง `X-Mnemo-Agent-Id` เพิ่มเมื่อคุณต้องการให้ write หรือ import ถูกผูกกับ agent ใด agent หนึ่ง เส้นทาง tenant-scoped แบบเดิมยังอยู่ภายใต้ `v1alpha1`
ลำดับ mem9.ai ที่เล็กที่สุดคือ provision key, export เข้า shell แล้วสร้างและค้นหา memory
สร้าง key
curl -sX POST https://api.mem9.ai/v1alpha1/mem9s Export env vars
export API_KEY="your-api-key"
export API="https://api.mem9.ai/v1alpha2/mem9s" สร้าง memory
curl -sX POST "$API/memories" \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-H "X-Mnemo-Agent-Id: openclaw-main" \
-d '{"appId":"docs","content":"Project uses PostgreSQL 15","tags":["tech","database"],"metadata":{"source":"setup-note"}}' ค้นหา memory
curl -s -H "X-API-Key: $API_KEY" "$API/memories?q=postgres&appId=docs&limit=5" สร้าง key เริ่มต้นที่คุณจะใช้ซ้ำสำหรับเข้าถึง hosted mem9
/v1alpha1/mem9s สร้าง mem9 API key ใหม่
ไม่ต้องใช้ auth และไม่ต้องมี request body บริการ hosted จะตอบกลับ `201` พร้อม field `id` และ `id` นั้นคือ key ที่คุณต้องเก็บไว้ใช้ต่อ
id จำเป็น สร้าง key
curl -sX POST https://api.mem9.ai/v1alpha1/mem9s Validate whether a Space key or Space Chain key is currently usable before making runtime calls.
/v1alpha2/status Check API key status.
Send either a normal mem9 Space key or a Space Chain key in `X-API-Key`. The response is `active` or `inactive`; unknown keys return `404`.
X-API-Key จำเป็น status จำเป็น Check Space key
curl -s -H "X-API-Key: $API_KEY" https://api.mem9.ai/v1alpha2/status Check Space Chain key
curl -s -H "X-API-Key: $CHAIN_API_KEY" https://api.mem9.ai/v1alpha2/status สร้าง ค้นหา อ่าน อัปเดต และลบ memory ที่เก็บอยู่ใน mem9 space ของคุณ
/v1alpha2/mem9s/memories สร้าง memory หรือรัน message ingest
ใช้ `content` สำหรับ write โดยตรง หรือ `messages` สำหรับ ingest ห้ามส่งทั้งสองอย่างพร้อมกันใน request เดียว
X-API-Key จำเป็น Content-Type จำเป็น X-Mnemo-Agent-Id content messages appId memory_type agent_id session_id tags metadata mode sync disableSessionSave status จำเป็น สร้าง memory
curl -sX POST "$API/memories" \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-H "X-Mnemo-Agent-Id: openclaw-main" \
-d '{"appId":"docs","content":"Project uses PostgreSQL 15","tags":["tech","database"],"metadata":{"source":"setup-note"}}' Smart ingest
curl -sX POST "$API/memories" \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-H "X-Mnemo-Agent-Id: openclaw-main" \
-d '{"appId":"docs","session_id":"ses-001","mode":"smart","sync":true,"messages":[{"role":"user","content":"We use PostgreSQL 15"},{"role":"assistant","content":"Noted."}]}' /v1alpha2/mem9s/memories แสดงรายการหรือค้นหา memory
ถ้ามี `q` handler จะทำ recall search ถ้าไม่มี `q` endpoint จะทำงานคล้าย list API ที่มีตัวกรอง
X-API-Key จำเป็น X-Mnemo-Agent-Id q search_mode tags source state memory_type agent_id session_id appId limit offset sort_by sort_dir scanAll memories จำเป็น total จำเป็น limit จำเป็น offset จำเป็น ค้นหา memory
curl -s -H "X-API-Key: $API_KEY" "$API/memories?q=postgres&appId=docs&limit=5" กรองด้วย tag / source
curl -s -H "X-API-Key: $API_KEY" "$API/memories?tags=tech&source=openclaw-main&appId=null&limit=10" /v1alpha2/mem9s/memories/{id} อ่าน memory เดียวตาม id
ดึง memory object เดียวจาก mem9 API
X-API-Key จำเป็น X-Mnemo-Agent-Id id จำเป็น content จำเป็น memory_type จำเป็น appId source tags metadata agent_id session_id updated_by superseded_by state จำเป็น version จำเป็น created_at จำเป็น updated_at จำเป็น score confidence relative_age อ่าน memory
curl -s -H "X-API-Key: $API_KEY" "$API/memories/{id}" /v1alpha2/mem9s/memories/{id} อัปเดต memory เดียว
อัปเดต content, tags หรือ metadata และส่ง `If-Match` ด้วยหากต้องการตรวจ version แบบ optimistic
X-API-Key จำเป็น Content-Type จำเป็น X-Mnemo-Agent-Id If-Match content tags metadata id จำเป็น content จำเป็น memory_type จำเป็น appId source tags metadata agent_id session_id updated_by superseded_by state จำเป็น version จำเป็น created_at จำเป็น updated_at จำเป็น score confidence relative_age อัปเดต memory
curl -sX PUT "$API/memories/{id}" \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-H "If-Match: 3" \
-d '{"content":"Project uses PostgreSQL 16","tags":["tech","database"]}' /v1alpha2/mem9s/memories/{id} ลบ memory เดียว
ลบ row ที่เลือกและคืน `204 No Content` เมื่อสำเร็จ
X-API-Key จำเป็น X-Mnemo-Agent-Id ลบ memory
curl -sX DELETE -H "X-API-Key: $API_KEY" "$API/memories/{id}" /v1alpha2/mem9s/memories/batch-delete Delete multiple memories.
Deletes the provided memory ids in one request. When authenticated with a Space Chain key, the handler resolves each id to the node that owns it.
X-API-Key จำเป็น Content-Type จำเป็น X-Mnemo-Agent-Id ids จำเป็น Batch delete memories
curl -sX POST "$API/memories/batch-delete" \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-d '{"ids":["memory-id-1","memory-id-2"]}' Create and manage ordered chains of Spaces. Runtime memory endpoints accept a Space Chain key and search the chain in node order, or all nodes when `scanAll=true`.
/v1alpha2/space-chains Create a Space Chain.
Creates a Space Chain and returns its first plaintext chain key once. Store `chain_api_key` securely; later list responses only expose masked or bound key records.
Content-Type จำเป็น name จำเป็น project_id description created_by_user_id chain จำเป็น chain_api_key จำเป็น binding_id จำเป็น key_prefix จำเป็น key_preview จำเป็น Create Space Chain
curl -sX POST https://api.mem9.ai/v1alpha2/space-chains \
-H "Content-Type: application/json" \
-d '{"name":"Team Knowledge Chain","description":"Ordered recall across team spaces"}' Export Space Chain env vars
export CHAIN_API_KEY="your-chain-api-key"
export API="https://api.mem9.ai/v1alpha2/mem9s"
export CHAIN_API="https://api.mem9.ai/v1alpha2/space-chains" /v1alpha2/space-chains/by-key Read the Space Chain for a key.
Looks up the active Space Chain associated with the `X-API-Key` chain key.
X-API-Key จำเป็น id จำเป็น project_id name จำเป็น description bindings nodes created_at จำเป็น updated_at จำเป็น Get by key
curl -s -H "X-API-Key: $CHAIN_API_KEY" "$CHAIN_API/by-key" /v1alpha2/space-chains/{chain_id} Read one Space Chain.
Returns chain metadata, nodes, and bindings for a chain key authorized to manage this Space Chain.
X-API-Key จำเป็น id จำเป็น project_id name จำเป็น description bindings nodes created_at จำเป็น updated_at จำเป็น Get Space Chain
curl -s -H "X-API-Key: $CHAIN_API_KEY" "$CHAIN_API/{chain_id}" /v1alpha2/space-chains/{chain_id} Update Space Chain details.
Updates the display name and description for a Space Chain.
X-API-Key จำเป็น Content-Type จำเป็น name จำเป็น description id จำเป็น project_id name จำเป็น description bindings nodes created_at จำเป็น updated_at จำเป็น Update Space Chain
curl -sX PATCH "$CHAIN_API/{chain_id}" \
-H "Content-Type: application/json" \
-H "X-API-Key: $CHAIN_API_KEY" \
-d '{"name":"Team Knowledge Chain","description":"Updated description"}' /v1alpha2/space-chains/{chain_id} Delete a Space Chain.
Soft-deletes the Space Chain. A successful delete returns `204 No Content`.
X-API-Key จำเป็น Content-Type จำเป็น deleted_by_user_id Delete Space Chain
curl -sX DELETE "$CHAIN_API/{chain_id}" \
-H "Content-Type: application/json" \
-H "X-API-Key: $CHAIN_API_KEY" \
-d '{"deleted_by_user_id":"user-123"}' /v1alpha2/space-chains/{chain_id}/nodes List Space Chain nodes.
Returns the ordered node list. Node positions are zero-based and define sequential recall order.
X-API-Key จำเป็น nodes จำเป็น List nodes
curl -s -H "X-API-Key: $CHAIN_API_KEY" "$CHAIN_API/{chain_id}/nodes" /v1alpha2/space-chains/{chain_id}/nodes Replace Space Chain nodes.
Replaces the entire ordered node list. Each node must reference a normal Space key / tenant id, not another Space Chain key.
X-API-Key จำเป็น Content-Type จำเป็น nodes จำเป็น nodes[].tenant_id จำเป็น nodes[].external_space_id nodes[].display_name nodes จำเป็น Replace nodes
curl -sX PUT "$CHAIN_API/{chain_id}/nodes" \
-H "Content-Type: application/json" \
-H "X-API-Key: $CHAIN_API_KEY" \
-d '{"nodes":[{"tenant_id":"space_key_a","display_name":"Team"},{"tenant_id":"space_key_b","display_name":"Company"}]}' /v1alpha2/space-chains/{chain_id}/bindings List Space Chain key bindings.
Returns all key bindings visible to the management key for this Space Chain.
X-API-Key จำเป็น bindings จำเป็น List bindings
curl -s -H "X-API-Key: $CHAIN_API_KEY" "$CHAIN_API/{chain_id}/bindings" /v1alpha2/space-chains/{chain_id}/bindings Create a Space Chain key binding.
Creates another chain key. Omit `chain_api_key` to let mem9 generate a key.
X-API-Key จำเป็น Content-Type จำเป็น chain_api_key created_by_user_id id จำเป็น chain_id จำเป็น chain_api_key จำเป็น disabled จำเป็น created_at จำเป็น Create binding
curl -sX POST "$CHAIN_API/{chain_id}/bindings" \
-H "Content-Type: application/json" \
-H "X-API-Key: $CHAIN_API_KEY" \
-d '{}' /v1alpha2/space-chains/{chain_id}/bindings/{binding_id} Disable a Space Chain key binding.
Disables an active binding. The API rejects disabling the last active key for a chain.
X-API-Key จำเป็น Content-Type จำเป็น disabled จำเป็น disabled_by_user_id Disable binding
curl -sX PATCH "$CHAIN_API/{chain_id}/bindings/{binding_id}" \
-H "Content-Type: application/json" \
-H "X-API-Key: $CHAIN_API_KEY" \
-d '{"disabled":true,"disabled_by_user_id":"user-123"}' /v1alpha2/mem9s/memories Recall across a Space Chain.
Use the normal memory search endpoint with a Space Chain key. By default recall visits nodes in order and stops early on high confidence; pass `scanAll=true` to search every node and globally rerank.
X-API-Key จำเป็น q search_mode tags source state memory_type agent_id session_id appId limit offset sort_by sort_dir scanAll memories จำเป็น total จำเป็น limit จำเป็น offset จำเป็น Recall with scanAll
curl -s -H "X-API-Key: $CHAIN_API_KEY" "$API/memories?q=postgres&scanAll=true&limit=10" อัปโหลดไฟล์ memory หรือ session แล้วติดตามสถานะ task เบื้องหลัง
/v1alpha2/mem9s/imports สร้าง import task
อัปโหลดไฟล์เป็น `memory` หรือ `session` จากนั้น handler จะคิวการประมวลผลแบบ async และคืน task id ทันที
X-API-Key จำเป็น Content-Type จำเป็น X-Mnemo-Agent-Id file จำเป็น file_type จำเป็น agent_id session_id file.appId file.memories[].appId file.sessions[].appId id จำเป็น status จำเป็น นำเข้าไฟล์ memory
curl -sX POST "$API/imports" \
-H "X-API-Key: $API_KEY" \
-F "file=@memory.json" \
-F "file_type=memory" \
-F "agent_id=openclaw-main"
# memory.json may include:
# {"appId":"docs","memories":[{"content":"Project uses PostgreSQL 15","appId":"docs"}]} นำเข้าไฟล์ session
curl -sX POST "$API/imports" \
-H "X-API-Key: $API_KEY" \
-F "file=@session.json" \
-F "file_type=session" \
-F "session_id=ses-001" \
-F "agent_id=openclaw-main"
# session.json may include:
# {"appId":"docs","session_id":"ses-001","messages":[{"role":"user","content":"..."}]} /v1alpha2/mem9s/imports แสดงรายการ import task
คืน import task ทั้งหมดที่มองเห็นได้ใน mem9 space ปัจจุบัน
X-API-Key จำเป็น X-Mnemo-Agent-Id status จำเป็น tasks จำเป็น ดูรายการ import task
curl -s -H "X-API-Key: $API_KEY" "$API/imports" /v1alpha2/mem9s/imports/{id} อ่าน import task เดียว
poll task เดียวจนกว่าจะเป็น `done` หรือ `failed`
X-API-Key จำเป็น X-Mnemo-Agent-Id id จำเป็น file จำเป็น status จำเป็น total จำเป็น done จำเป็น error อ่าน import task
curl -s -H "X-API-Key: $API_KEY" "$API/imports/{id}" ดู row บทสนทนาแบบดิบที่ถูกเก็บไว้ระหว่าง ingest
/v1alpha2/mem9s/session-messages แสดง session messages ตาม session id
ส่ง `session_id` ซ้ำใน query string สำหรับแต่ละ session ที่ต้องการอ่าน และใช้ `limit_per_session` เพื่อจำกัดจำนวน row ต่อ session
X-API-Key จำเป็น X-Mnemo-Agent-Id session_id จำเป็น appId limit_per_session messages จำเป็น messages[].id จำเป็น messages[].session_id messages[].agent_id messages[].appId messages[].seq จำเป็น messages[].role จำเป็น messages[].content จำเป็น messages[].content_type จำเป็น messages[].tags จำเป็น messages[].state จำเป็น messages[].created_at จำเป็น messages[].updated_at จำเป็น limit_per_session จำเป็น อ่าน session messages
curl -s -H "X-API-Key: $API_KEY" "$API/session-messages?session_id=ses-001&session_id=ses-002&appId=docs&limit_per_session=20" ใช้ `/healthz` สำหรับ liveness check ส่วนเส้นทาง tenant-scoped แบบเดิมยังอยู่ที่ `/v1alpha1/mem9s/{tenantID}/...` แต่ client แบบ hosted ควรใช้ `v1alpha2` + `X-API-Key`
/healthz ตรวจสถานะสุขภาพของ service
เหมาะสำหรับตรวจก่อน onboarding หรือใช้ไล่ปัญหาเรื่อง network reachability
status จำเป็น Health check
curl -s https://api.mem9.ai/healthz /versionz Check server version metadata.
Returns runtime metadata that is useful for support and deployment verification.
go_version จำเป็น started_at จำเป็น Version check
curl -s https://api.mem9.ai/versionz ถัดไป
ถ้าคุณกำลัง onboarding OpenClaw มากกว่าการสร้าง integration โดยตรง ให้เริ่มจาก SKILL.md สาธารณะ แล้วใช้ API key เดียวกันต่อใน Your Memory
GET
Ready
Run a request to inspect the response.