Organizations Overview
beginnerUnderstand how organizations work in Engramma — structure, roles, shared memory spaces, and team collaboration.
What is an organization?
An organization is how teams collaborate on Engramma. It groups members, API keys, billing, and memory spaces under one account.
Organization
├── Members (Admin + Members)
├── API Keys (scoped per purpose)
├── Billing (one plan for the team)
└── Memory Spaces (shared or per-member)
When you need an organization
| Scenario | Individual account | Organization |
|---|---|---|
| Solo developer building a side project | ✓ | — |
| Team of 3+ sharing the same memory space | — | ✓ |
| Company needing centralized billing | — | ✓ |
| Multiple API keys with different scopes | — | ✓ |
| Audit trail for team actions | — | ✓ |
Creating an organization
import os
from engramma_cloud import EngrammaClient
client = EngrammaClient(api_key=os.environ["ENGRAMMA_API_KEY"])
# Create a new organization
org = client.organizations.create(
name="Acme Engineering",
slug="acme-eng"
)
print(f"Org ID: {org.id}")
print(f"Name: {org.name}")
print(f"Slug: {org.slug}")
print(f"Your role: {org.your_role}") # "admin" (creator is always admin)Organization structure
Roles
| Role | Can do | Can't do |
|---|---|---|
| Admin | Manage members, API keys, billing, settings | — |
| Member | Use API keys, store/retrieve memories, view usage | Manage billing, invite/remove members, create API keys |
The user who creates the organization is automatically the Admin. You can have multiple Admins.
API Keys
Each organization can have multiple API keys with different scopes:
| Key type | Scope | Use case |
|---|---|---|
| Production | Full read/write | Production application |
| Read-only | Retrieve only | Analytics dashboards |
| Development | Full, rate-limited | Development and testing |
Billing
Billing is at the organization level. One plan covers all members and API keys. Usage from all keys counts toward the organization's tier limits.
Viewing your organizations
# List organizations you belong to
orgs = client.organizations.list()
for org in orgs:
print(f"{org.name} ({org.slug})")
print(f" Role: {org.your_role}")
print(f" Members: {org.member_count}")
print(f" Plan: {org.plan}")Organization vs. personal account
| Feature | Personal | Organization |
|---|---|---|
| API keys | 1 | Unlimited |
| Members | 1 | Unlimited (plan-dependent) |
| Billing | Individual | Centralized |
| Memory isolation | Your data only | Shared space + metadata filtering |
| Audit log | Basic | Full team audit trail |
| Webhooks | 3 max | Unlimited |
Tip
You can use both. Keep a personal account for side projects and create an organization for team work. Your personal API key is separate from organization API keys.
Next steps
- Members & Roles — Invite team members and manage permissions
- API Keys — Create scoped keys for different environments
- Billing Management — Plans, invoices, and upgrades