Workspaces
A workspace is the top-level tenant for events, leads, forms, and team members.
Create workspace
POST /api/v1/workspaces/setup/company/
Authorization: Bearer <access_token>
Content-Type: application/json
Request body
{
"name": "Acme Events",
"slug": "acme-events",
"industry": "software",
"company_size": "51-200"
}
Response (201 Created)
{
"id": "aa0e8400-e29b-41d4-a716-446655440005",
"name": "Acme Events",
"slug": "acme-events",
"currency": "USD",
"created_at": "2026-06-20T08:00:00Z"
}
Workspace-scoped routes
Most APIs use:
/api/v1/{workspace_id}/…
Members
GET /api/v1/workspaces/{workspace_id}/members/
PATCH /api/v1/workspaces/{workspace_id}/members/{membership_id}/
DELETE /api/v1/workspaces/{workspace_id}/members/{membership_id}/
Invitations (global)
POST /api/v1/workspaces/members/invite/
GET /api/v1/workspaces/members/invitations/
DELETE /api/v1/workspaces/members/invitations/{invitation_id}/
POST /api/v1/workspaces/members/invitations/{invitation_id}/resend/
Settings
GET /api/v1/workspaces/{workspace_id}/settings/
PATCH /api/v1/workspaces/{workspace_id}/settings/
PATCH settings — request body
{
"name": "Acme Events (updated)",
"timezone": "America/New_York",
"currency": "USD"
}
UI preferences
GET /api/v1/workspaces/{workspace_id}/me/ui-preferences/
PATCH /api/v1/workspaces/{workspace_id}/me/ui-preferences/
Public hosts (custom domains)
GET /api/v1/workspaces/{workspace_id}/public-hosts/
POST /api/v1/workspaces/{workspace_id}/public-hosts/
PATCH /api/v1/workspaces/{workspace_id}/public-hosts/{host_id}/
DELETE /api/v1/workspaces/{workspace_id}/public-hosts/{host_id}/
POST /api/v1/workspaces/{workspace_id}/public-hosts/{host_id}/verify/
POST /api/v1/workspaces/{workspace_id}/public-hosts/{host_id}/regenerate-token/
ICP config
GET /api/v1/workspaces/{workspace_id}/icp-config/
PUT /api/v1/workspaces/{workspace_id}/icp-config/
PATCH /api/v1/workspaces/{workspace_id}/icp-config/
Currencies
GET /api/v1/workspaces/{workspace_id}/currencies/
POST /api/v1/workspaces/{workspace_id}/currencies/
PATCH /api/v1/workspaces/{workspace_id}/currencies/{currency_id}/
DELETE /api/v1/workspaces/{workspace_id}/currencies/{currency_id}/
POST /api/v1/workspaces/{workspace_id}/currencies/{currency_id}/set-base/
Access requests
GET /api/v1/workspaces/{workspace_id}/access-requests/
GET /api/v1/workspaces/{workspace_id}/access-requests/count/
POST /api/v1/workspaces/{workspace_id}/access-requests/{request_id}/approve/
POST /api/v1/workspaces/{workspace_id}/access-requests/{request_id}/decline/
Ownership & deletion
POST /api/v1/workspaces/{workspace_id}/transfer-ownership/
GET /api/v1/workspaces/{workspace_id}/delete/eligibility/
POST /api/v1/workspaces/{workspace_id}/delete/confirm/
Permissions
Role-based access is enforced per workspace. See MODULE_PERMISSIONS.md in the repo for the full permission matrix.
Business cards (user module)
Workspace-scoped business card APIs live under the users app:
GET /api/v1/users/workspaces/{workspace_id}/business-cards/{card_id}/
PATCH /api/v1/users/workspaces/{workspace_id}/business-cards/{card_id}/
DELETE /api/v1/users/workspaces/{workspace_id}/business-cards/{card_id}/
POST /api/v1/users/workspaces/{workspace_id}/business-cards/presigned-url/
GET /api/v1/users/workspaces/{workspace_id}/business-card-templates/
See Public API — Business cards for public card endpoints.