API referencePlatform API
GUIDE & REFERENCE

Organizations and the active Mind

Select the organization and instance that dashboard requests operate on.

The active organization sets the account context. The active service chooses the dedicated Mind used for memory and engine requests. Set both before starting an operation that depends on them.

1. Load accessible organizations

GET /api/organizations returns organizations, activeOrganizationId, and tenants. The server combines the validated session with the saved active-tenant cookie and the organizations accessible to that user.

const response = await fetch('/api/organizations', { cache: 'no-store' });
if (!response.ok) throw new Error(`HTTP ${response.status}`);
const context = await response.json();

2. Select an organization

Send an ID from that accessible list to POST /api/organizations/active:

{ "organizationId": "<accessible-organization-id>" }

The server reloads available organizations before setting its active-tenant cookie. An inaccessible ID returns ORG_NOT_AVAILABLE with 404. Success returns {success:true, organizationId}. Selection affects later dashboard requests; it does not move an existing Mind between organizations.

3. Select a Mind

Use GET /api/instance-context/services to load available services. Set the chosen ID with POST /api/instance-context/active:

{ "serviceId": "<service-id>" }

The active-service route stores akasha.activeService; GET reads it back as serviceId or null. The Akasha proxy independently resolves that choice against services belonging to the active organization before it forwards an instance request. The cookie alone does not authorize access.

GET /api/chat/context returns the operator context used by Helm. Reload it after an organization or Mind change so the conversation acts in the intended context.

Create an organization

POST /api/organizations accepts:

{ "name": "Research team", "slug": "research-team" }

Names must be 2–80 characters. Slugs are normalized to lowercase, must be 2–64 characters, and use letters, numbers, and internal hyphens. The first and last characters must be alphanumeric. Success is 201 and returns organization and activeOrganizationId; it also sets the active-tenant cookie.

Handle missing context

ResultNext step
401 UNAUTHENTICATEDComplete sign-in
409 NO_ORGANIZATIONCreate or select an accessible organization
409 NO_AKASHA_SERVICEProvision or select a Mind for the active organization
An optional dashboard panel returns an empty resultCheck proxy fallback behavior before interpreting it as a real empty database

Source: the dashboard organizations, instance-context, chat/context, and akasha/proxy route modules. Exact payloads and response branches are in the endpoint catalog.

On this page