Workspaces
On this page
URL routingCreating a workspaceSwitching workspacesWorkspace membersArchivingCloningUsage and billingPlan limitsAPI referenceWorkspaces are isolated resource boundaries within your account. Use them to separate environments (staging, production), organize by team, or manage client projects independently.
Each workspace has its own functions, secrets, bindings, hooks, schedules, and pipelines. Resources in one workspace are invisible to another.
URL routing
Functions are accessed via your workspace subdomain:
{workspace}.{your-slug}.fold.run/{function-name}For example, if your account slug is acme and you have a staging workspace:
staging.acme.fold.run/my-functionYour default workspace is accessible at the root:
acme.fold.run/my-functionCreating a workspace
From the dashboard, go to Workspaces and click New workspace. Give it a name and an optional description or environment label.
Via CLI:
fold workspace create "Staging" --description "Pre-production testing"Via API:
curl -X POST https://api.fold.run/workspaces \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "name": "Staging", "description": "Pre-production testing" }'Switching workspaces
Use the workspace switcher in the sidebar to switch your active workspace. All resource pages (functions, secrets, bindings, etc.) automatically filter to the active workspace.
Via CLI:
fold workspace switch staging
fold workspace currentWorkspace members
Workspaces support per-workspace roles. A team member can be an admin in one workspace and a viewer in another.
fold workspace members list staging
fold workspace members add staging user_abc123 --role deployer
fold workspace members remove staging user_abc123Roles follow the same hierarchy as account-level roles:
| Role | Deploy | View | Manage members | Billing |
|---|---|---|---|---|
admin |
Yes | Yes | Yes | Yes |
deployer |
Yes | Yes | No | No |
viewer |
No | Yes | No | No |
billing-admin |
No | Yes | No | Yes |
Archiving
Archive a workspace to prevent deploys while keeping it queryable for audit purposes. Archived workspaces can be unarchived at any time.
From the workspace settings page, click Archive workspace.
Cloning
Create a new workspace from an existing one. Cloning copies hooks and configuration from the source workspace, but not secrets or function code.
Via API:
curl -X POST https://api.fold.run/workspaces/{source-id}/clone \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "name": "Staging Copy" }'Usage and billing
Billing is at the account level, not per workspace. All workspaces share your plan's limits. View per-workspace usage breakdown from the Workspace Usage page.
fold workspace usagePlan limits
| Plan | Workspaces |
|---|---|
| Free | 1 (default only) |
| Pro | Up to 5 |
| Scale | Unlimited |
Upgrade from Billing to create additional workspaces.
API reference
| Method | Endpoint | Description |
|---|---|---|
GET |
/workspaces |
List all workspaces |
POST |
/workspaces |
Create workspace |
GET |
/workspaces/:id |
Get workspace details |
PUT |
/workspaces/:id |
Update workspace |
DELETE |
/workspaces/:id |
Delete workspace |
POST |
/workspaces/:id/switch |
Switch active workspace |
POST |
/workspaces/:id/archive |
Archive workspace |
POST |
/workspaces/:id/unarchive |
Unarchive workspace |
POST |
/workspaces/:id/clone |
Clone workspace |
GET |
/workspaces/:id/members |
List members |
POST |
/workspaces/:id/members |
Add member |
PUT |
/workspaces/:id/members/:userId |
Update member role |
DELETE |
/workspaces/:id/members/:userId |
Remove member |
GET |
/workspaces/usage |
Usage breakdown |
GET |
/workspaces/:id/notification-preferences |
Get notification preferences |
PUT |
/workspaces/:id/notification-preferences |
Update notification preferences |
POST |
/workspaces/:id/shared-secrets |
Share a secret to another workspace |
GET |
/workspaces/:id/shared-secrets |
List shared secrets |
DELETE |
/workspaces/:id/shared-secrets/:secretId |
Revoke shared secret |