Skip to main content
A tenant user — a child project in the product vocabulary — is one of your end-users. Every primitive — cards, inboxes, vault, connections, verification, formation — is scoped to a tenant user, so each of your customers gets their own isolated set of Naive resources. Tenant users are not auth subjects: they never sign in, and you manage them entirely through the API/SDK/CLI. On signup you automatically get a default tenant user, so solo usage needs no users.create() — every top-level call (naive.cards, naive.vault, …) acts on it. Multi-tenant builders create one tenant user per end-user and scope calls with naive.forUser(id). Every tenant user lives in a project. Name none and you get the organization’s default project, which is where all of the calls on this page land — naive.forUser(id) is naive.forProject("default").forChild(id). To work in another project, use naive.forProject(p).childProjects, --project <p> in the CLI, or /v1/projects/:project_id/users/... in REST.

CLI First

Tools

Creating a User

Each user is governed by an Account Kit. Omit account_kit_id to use your workspace’s Default kit.
Response:

Parameters

The default tenant user is created on signup and can’t be deleted. Reference it as the sentinel default (e.g. /v1/users/default/vault) or via its id.

Listing & Fetching

Updating & Deleting

Error Handling

Typical Workflow