Skip to main content

API Overview

The MemoryLake API lets you feed documents and conversations into a project, automatically extract structured facts, and search across all memory sources with natural language. Use it to build AI applications with long-term memory.

Base URL

Authentication

All API requests require a Bearer token in the Authorization header. See Authentication for details.

API Sections

Core Memory Operations

The 3 essential APIs: import documents, append conversation messages, and search memories.

Library

File storage — upload and manage files before importing them into projects.

Workspaces

Create and manage workspaces — the top-level namespace for data isolation.

Actors

Manage participant identities and their associated facts.

Agents

Define AI agents with versioning and A2A protocol support.

Skills

Upload packaged capabilities, have them security-reviewed, and attach them to agents.

Boundaries

Name a memory scope — projects, a person and an agent — and reference it by one ID.

Projects

Manage projects and their documents, conversations, and facts.

Team

Read, rename, create and delete teams, and transfer ownership.

Members

The team roster, roles, virtual members and access scopes.

Invitations

Invite people by email and revoke pending invitations.

API Keys

Create, rotate and revoke API keys.

Access Control

Roles, permission rules, access groups and who can access each resource.

Usage & Audit Logs

Quota, consumption by model and member, usage records and the audit trail.

Billing

Subscription, credit balance and alerts, orders and invoices.

IM Integrations

Connect agents to Slack, Feishu, DingTalk and WeCom bots.

Common Patterns

Response Format

All responses follow this structure:
Error responses:

Your own identifiers

Every resource you create has two identifiers. id is minted here — a prefix and 32 hex characters, like actor-7b5470549febfaca2acc5a3ebcaa2138. custom_id is the one you bring: the identifier this thing already has in your system. Setting it means you do not have to store our id next to your record. Create an actor with the user id your application already uses, and from then on you can address that actor by it:
A custom_id must be unique within your tenant, per kind of resource — two actors cannot share one, though an actor and a project may. Deleting a resource frees its custom_id for reuse.

Pagination

List endpoints use continuation-token pagination: Query Parameters:
  • page_size: Number of items per page
  • continuation_token: Token from a previous response to fetch the next page
When the response has no continuation_token, there are no more pages.

Idempotent requests

Write endpoints that change your team — creating a key, rotating it, inviting someone, changing a role — accept an optional Idempotency-Key header. Send any unique string, such as a UUID. Retrying with the same value within 24 hours replays the first response, errors included, instead of making the change again, and the replayed response carries Idempotency-Replayed: true. Reusing a value with different parameters, or while the first request is still running, is refused. A secret, such as a new API key, is returned only in the first response. Endpoints that accept the header list it under Headers.

Timestamps

All timestamps use ISO 8601 format:
Fields documented as Unix seconds — on team, member, usage and billing endpoints, for example — are integers counting seconds since 1970-01-01 UTC.

Next Steps

Core Memory Operations

Start with the core APIs — see the workflow and prerequisites

Authentication

Set up your API credentials