Teams
On this page
RolesInviting membersAccepting an inviteManaging membersWorkspace rolesCustom rolesPlan limitsCollaborate with others by inviting team members to your organization. Each member gets a role that controls what they can do.
Roles
| Role | Deploy | View | Manage team | Billing |
|---|---|---|---|---|
admin |
Yes | Yes | Yes | Yes |
deployer |
Yes | Yes | No | No |
viewer |
No | Yes | No | No |
billing-admin |
No | Yes | No | Yes |
- Admin — Full access. Can invite and remove members, manage billing, and deploy functions.
- Deployer — Can deploy, rollback, and manage functions. Cannot manage team members.
- Viewer — Read-only access to functions, activations, and logs.
- Billing admin — Can view resources and manage billing. Cannot deploy or manage team.
Inviting members
Admins can invite new members from the dashboard at app.fold.run/console/teams. Click Invite member, enter their email, and choose a role.
The invitee receives an email with an accept link. Invites expire after 48 hours.
Accepting an invite
The invitee clicks the link in their email or calls the accept endpoint directly:
curl -X POST https://api.fold.run/teams/accept \
-H "Content-Type: application/json" \
-d '{
"token": "INVITE_TOKEN",
"password": "new-password"
}'If the invitee doesn't have an account, one is created automatically. If they already have an account, the password field is optional.
Managing members
View your team members, pending invites, and remove access from the dashboard at app.fold.run/console/teams. Admins can change roles and remove members directly from the team page.
Workspace roles
In addition to account-level roles, members can have per-workspace roles. A team member can be an admin in one workspace and a viewer in another. Workspace roles use the same hierarchy as account roles (admin, deployer, viewer, billing-admin) but are scoped to a single workspace.
Manage workspace members from the workspace settings page or via the CLI:
fold workspace members list staging
fold workspace members add staging user_abc123 --role deployerSee Workspaces for details on workspace member management.
Custom roles
Create custom roles with granular permissions tailored to your team's needs. Custom roles work alongside the built-in roles (admin, deployer, viewer, billing-admin).
Create a custom role
curl -X POST https://api.fold.run/roles \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "release-manager",
"permissions": ["deploy", "view_logs", "view_activations"]
}'| Field | Type | Required | Description |
|---|---|---|---|
| name | string | Yes | Role name (1-100 characters) |
| permissions | string[] | Yes | At least one permission from the list below |
Available permissions
| Permission | Description |
|---|---|
deploy |
Deploy, rollback, and delete functions |
view_logs |
View logs and log streams |
view_activations |
View activation records |
manage_secrets |
Create, update, and delete secrets |
manage_team |
Invite and remove team members |
manage_billing |
Access billing, invoices, and plan changes |
manage_hooks |
Create, update, and delete webhooks |
manage_schedules |
Create, update, and delete schedules |
manage_api_keys |
Create, rotate, and revoke API keys |
manage_domains |
Add, verify, and remove custom domains |
List custom roles
curl "https://api.fold.run/roles" \
-H "Authorization: Bearer YOUR_TOKEN"Update a custom role
curl -X PUT "https://api.fold.run/roles/role_abc123" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"permissions": ["deploy", "view_logs", "view_activations", "manage_hooks"]
}'Both name and permissions are optional on update — send only what you want to change.
Delete a custom role
curl -X DELETE "https://api.fold.run/roles/role_abc123" \
-H "Authorization: Bearer YOUR_TOKEN"Via the SDK
// List custom roles
const { roles } = await fold.listRoles();
// Create a custom role
await fold.createRole({
name: 'release-manager',
permissions: ['deploy', 'view_logs', 'view_activations'],
});
// Update a role
await fold.updateRole('role_abc123', { permissions: ['deploy', 'view_logs'] });
// Delete a role
await fold.deleteRole('role_abc123');Custom roles can be assigned to workspace members the same way as built-in roles — see Workspaces for workspace member management.
Plan limits
| Plan | Team members |
|---|---|
| Free | Up to 3 (including yourself) |
| Pro | Unlimited |
Upgrade to Pro from Billing to add more team members.