Teams and team wallets

Attribute Enterprise usage to a staff-loaded team wallet.

Enterprise is a plan on a Coda user. Teams are the grouping axis inside that account. There is no Coda project entity.

Each team has its own staff-loaded wallet (team_credits). Runs billed to a team draw from that wallet and are reported with billed_team_id. Creating teams is Enterprise-only.

Open Settings → Teams from the user menu, or go to /chat?settings=teams. The Overview tab shows member count, remaining team credits, and wallet spend.

Settings → Teams overview for Conductor Quantum: 4 members, 5,000 team credits remaining, and a daily spend chart
Overview: members, team credits remaining, and 30-day wallet spend

Wallet selection

Wallet selection depends on the token and the request:

Tokenteam_id on the requestWallet billed
Personal API tokenomittedPersonal wallet
Personal API tokenset to a team the account belongs toThat team’s wallet only
Team service-account keyomitted or matchingThe key’s team wallet
Team service-account keya different team400

A short team wallet returns 402 even when the personal wallet is funded. The request never falls back to the personal wallet. Load each team wallet (by Conductor staff) before billing runs to it.

from conductorquantum import ConductorQuantum
client = ConductorQuantum(token="<your-api-key>")
for event in client.coda.agents.run(
messages=[{"role": "user", "content": "Explain a Bell state in one sentence."}],
team_id="<team-id>",
):
print(event)

POST /qpus accepts the same optional team_id field.

Members

Owners invite members by email. The roster shows role and charged credits for the selected window.

Settings → Teams members tab showing Sofia Reyes as owner with Priya Nair, Marcus Webb, and Elena Voss
Members: roster, roles, and charged credits

The same roster is available from the API. These endpoints use the same bearer token (mcp:read or agents:run) and are not available on /mcp.

EndpointPurpose
GET /teamsTeams the token account belongs to
GET /teams/{team_id}Team metadata and member roster
GET /teams/{team_id}/membersMember user_id, email, and role

A team service-account token returns only its own team.

teams = client.coda.teams.list()
detail = client.coda.teams.get("<team-id>")
members = client.coda.teams.members.list("<team-id>")

GET /teams/{team_id} returns each member’s user_id, email, role, and joined_at. Owners and team service-account tokens also receive that member’s requested/charged credits and tokens for the query window (since / until). Non-owner members see the roster without other people’s spend.

Usage

The Usage tab lists attributed queries for the team wallet. Export CSV from the same view.

Settings → Teams usage tab with per-run attributed queries and CSV export
Usage: attributed queries with CSV export

Attributed usage is also available at GET /usage/teams/{team_id}. Charge fields and the pull API are on Usage and credits. Organisation-level remaining credits and the credit ledger stay under Settings → Billing.

Keys

Enterprise owners mint personal tokens and team service-account keys here. Secrets are shown once.

Settings → Teams keys tab for minting a team service-account key and enabling a usage callback URL
Keys: team service-account keys and usage callback

API keys cannot be created through the Coda API.

The same tab configures a signed usage webhook. See Usage callbacks.

See the Coda API Reference for full schemas.