An organization is your company or team. It owns the members, the API keys, the storage where every dataset lands, and the projects that group the work. Everything an organization holds is isolated from every other one. An organization is identified by res.organization.…. Its settings are an admin’s business; reading them is open to its members.

Storage

Every dataset, mediaset, query and agent of the organization lives on its storage: an S3-compatible bucket, or an SMB share. The storage block says which; without one, the organization uses the platform’s default object store.
PATCH /organizations/{id} merges each block field by field, so a PATCH naming the bucket keeps the credentials. The storage account should be able to read and write under path only: a Python build receives these credentials to write its output, so the account’s reach is the build’s reach. A tabular dataset is an Apache Iceberg table. On S3 the organization gets Iceberg with no setting. On SMB it opts in with an iceberg block ({"type": "iceberg"} is enough); without it, datasets are file datasets.

Git

A git block gives the organization a git credential of its own, used for every repository on that host that carries no token of its own:

Members

A member holds a role on the organization, VIEWER, EDITOR or ADMIN, which reaches every project and resource below unless a narrower role is set there. See Roles, scopes and API keys. Managing members takes the members:manage scope: an admin’s.

API keys

An API key is created in a project and acts as its creator there, optionally narrowed to a list of scopes. The plain key is shown once, at creation; afterwards only a hint of it is kept.
GET /apikeys, GET /apikeys/{id} and DELETE /apikeys/{id} manage them; GET /organizations/{id}/api-keys lists an organization’s. A key carries its api_key_hint, its scopes and its last_used_at. Managing keys takes apikeys:manage.

Plan and usage

An organization is on a plan, read on the organization as plan and set by Gwenlake, never by a request. A plan bounds what the organization may hold and spend: A request refused by the plan alone answers 402. The inference budget is counted every few minutes from what the organization’s calls cost; past it, model calls answer 402 insufficient_quota until the month ends or an overage is agreed. GET /organizations/{id}/llm-usage shows the month’s spend against the budget. GET /users/me/plans tells a client the plan of every organization the caller works in, with the editor seats in use.
These endpoints are served by the platform and used by the Atlas interface; they are being opened on the public gateway progressively, and the Python library does not wrap them yet. The API reference lists what the gateway exposes today.