Skip to main content

Tenant Management

The Co-mind.ai platform supports multi-tenant isolation. Each tenant has its own users, API keys, usage quotas, and sub-organizations.
All tenant management endpoints require JWT authentication with Admin or System Admin role.

Tenants

Tenant CRUD

EndpointMethodAuthPurpose
/v1/admin/tenantsGETAdminList all tenants
/v1/admin/tenantsPOSTSysAdminCreate a new tenant
/v1/admin/tenants/{id}GETAdminGet tenant details
/v1/admin/tenants/{id}PATCHAdminUpdate tenant settings
/v1/admin/tenants/{id}DELETESysAdminDelete tenant
/v1/admin/tenants/{id}/usageGETAdminGet tenant usage statistics

Create a Tenant

curl -X POST https://your-instance/v1/admin/tenants \
  -H "Authorization: Bearer $JWT" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Acme Corporation",
    "plan": "enterprise"
  }'

Get Tenant Usage

curl https://your-instance/v1/admin/tenants/TENANT_ID/usage \
  -H "Authorization: Bearer $JWT"

User Management

EndpointMethodPurpose
/v1/admin/tenants/{id}/usersGETList tenant users
/v1/admin/tenants/{id}/usersPOSTAdd user to tenant
/v1/admin/tenants/{id}/users/{userId}PATCHUpdate user role
/v1/admin/tenants/{id}/users/{userId}DELETERemove user from tenant
/v1/admin/users/createPOSTCreate user with credentials

Add User to Tenant

curl -X POST https://your-instance/v1/admin/tenants/TENANT_ID/users \
  -H "Authorization: Bearer $JWT" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "user@example.com",
    "role": "member"
  }'

Update User Role

curl -X PATCH https://your-instance/v1/admin/tenants/TENANT_ID/users/USER_ID \
  -H "Authorization: Bearer $JWT" \
  -H "Content-Type: application/json" \
  -d '{"role": "admin"}'

Create User with Credentials

curl -X POST https://your-instance/v1/admin/users/create \
  -H "Authorization: Bearer $JWT" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "newuser@example.com",
    "password": "secure_password",
    "name": "New User",
    "role": "member"
  }'

Tenant API Keys

Manage provider-level API keys for a tenant (e.g., OpenAI, Anthropic keys that the platform uses to call external providers).
EndpointMethodPurpose
/v1/admin/tenants/{id}/api-keysGETList provider API keys
/v1/admin/tenants/{id}/api-keysPOSTCreate provider API key
/v1/admin/tenants/{id}/api-keys/{keyId}DELETEDelete provider API key

Create Provider API Key

curl -X POST https://your-instance/v1/admin/tenants/TENANT_ID/api-keys \
  -H "Authorization: Bearer $JWT" \
  -H "Content-Type: application/json" \
  -d '{
    "provider": "openai",
    "key": "sk-..."
  }'

Sub-Organizations

Sub-organizations provide an additional layer of isolation within a tenant — useful for departments, teams, or business units.
EndpointMethodPurpose
/v1/admin/tenants/{tenantId}/sub-orgsGETList sub-organizations
/v1/admin/tenants/{tenantId}/sub-orgsPOSTCreate sub-organization
/v1/admin/tenants/{tenantId}/sub-orgs/{subOrgId}GETGet sub-org details
/v1/admin/tenants/{tenantId}/sub-orgs/{subOrgId}PATCHUpdate sub-org
/v1/admin/tenants/{tenantId}/sub-orgs/{subOrgId}DELETEDelete sub-org

Create Sub-Organization

curl -X POST https://your-instance/v1/admin/tenants/TENANT_ID/sub-orgs \
  -H "Authorization: Bearer $JWT" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Engineering",
    "description": "Engineering department"
  }'