Skip to main content

Migration details

v5 renames the public isolation boundary from container tag to namespace. Existing values remain valid identifiers; no stored data rename is required.

Endpoint mapping

GET /ns is an alias for GET /namespaces. Prefer /namespaces in new integrations.

List namespaces

The list is paginated: GET /namespaces?page=1&limit=10 returns {namespaces, pagination}, newest first, with limit up to 100. Each entry now exposes id, namespace, documentCount, memoryCount, nullable description, and system.createdAt/updatedAt. Update readers that still expect containerTag, flat timestamps, or unbounded internal settings.

Read and update settings

The public GET and PATCH shapes contain only namespace, supportingContext, and lifecycle timestamps. Profile buckets have their own /profile/buckets resource and are not namespace settings. Send supportingContext: null to remove existing context. Omitting the field entirely is invalid because PATCH requires at least one supported setting.

Permanently delete a namespace

With no moveTo, deletion is synchronous and returns 200 with status: "deleted", deletedDocumentsCount, and deletedMemoriesCount. Branch on status (deleted or queued) to tell the two outcomes apart. This removes the namespace and its content.

Move then remove a namespace

moveTo is a query parameter. This returns 202 with status: "queued" and operationId. The destination must differ from the source. Do not treat acceptance as completed migration. Legacy merge can accept multiple sources; v5 moves one source per request. Run multi-source migrations sequentially and record each operation independently.

With the SDK

Replace calls to /v3/container-tags/* with supermemory.namespaces:
namespaces.list() returns { namespaces, pagination }, where each namespace is { id, namespace, documentCount, memoryCount, description, system }. A delete without moveTo returns { status: "deleted", namespace, deletedDocumentsCount, deletedMemoriesCount }; with moveTo it returns { status: "queued", operationId, namespace, moveTo }.

Verification

  • Confirm existing container-tag values resolve unchanged as namespace paths.
  • Compare namespace counts with namespace-scoped document and memory lists.
  • Verify a permanent delete returns final counts while a move returns 202.
  • Verify restricted callers cannot read or mutate namespaces outside their scope.
  • Verify only organization-authorized callers can change settings or lifecycle.