Organizations & teams
Members, roles, teams, invitations and sharing keys and models.
Organizations
An organization owns the account: the plan, the credits, the Stripe customer, the API keys, the connected apps and the 3D models. Everyone you invite works from the same balance and plan, each with their own sign-in and a role.
Every account starts as a personal organization that only you are in, so nothing changes until you invite someone. To work with a team, create a new organization from the switcher at the top of the dashboard (or invite people into your personal one). A new organization starts on Free with no credits; the 100 free credits come once per person, with their personal organization. Credits, plans and limits belong to one organization and never move between them.
Roles
Roles go viewer, member, admin, owner. Nobody can give a role above their own, an organization always keeps at least one owner, and the last owner cannot leave or be demoted.
| Can | Viewer | Member | Admin | Owner |
|---|---|---|---|---|
| See keys and 3D models shared with the whole organization | ✓ | ✓ | ✓ | ✓ |
| Use the credits: images, signed URLs, 3D models, the playground | ✓ | ✓ | ✓ | |
| Create API keys and teams | ✓ | ✓ | ✓ | |
| Invite and remove members, change roles below admin, manage every team | ✓ | ✓ | ||
| Manage every API key and connected app | ✓ | ✓ | ||
| Billing: plan, payment method, credits, invoices | ✓ | ✓ | ||
| Make or remove admins and owners, transfer ownership, delete the organization | ✓ |
Invitations
Admins and owners invite people by email from the organization's settings, with a role and, optionally, teams. The link works once and expires after seven days; the person signs in, or signs up, with the invited address and joins. Pending invitations can be sent again (the old link stops working) or revoked. Removing someone ends their access at once: they no longer see the organization, its keys or its models.
Keys, connected apps and the CLI
A key acts for the organization it was created in. When you connect an app (Claude, ChatGPT) or sign in the CLI with car-image login and belong to more than one organization, the sign-in page asks which one it acts for. GET /api/v1/account (get_account over MCP, car-image whoami) says which organization a credential uses and your role in it; GET /api/v1/account/members (list_members with ?toolset=all) lists the members and teams, read only.
curl -s https://carimage.dev/api/v1/account \
-H "Authorization: Bearer $CAR_IMAGE_API_KEY" | jq '.data.organization'
# { "id": "…", "slug": "acme", "name": "Acme", "personal": false, "role": "member" }
curl -s https://carimage.dev/api/v1/account/members \
-H "Authorization: Bearer $CAR_IMAGE_API_KEY" | jq '.data.members'Audit log
Admins and owners see every membership, role, team, invitation, key, sharing and billing change in the organization's audit log, with who made it and when. It is kept for at least a year.