Skip to main content

Workspaces

Workspaces provide multi-tenant isolation within Posta. They work like GitHub Organizations — users have a personal space by default, and can optionally create workspaces to share resources with team members.

Concepts

Personal Space

Every user has a personal space where their resources (templates, SMTP servers, domains, contacts, API keys, etc.) live by default. No workspace is required — the platform works exactly as before for single users.

Workspaces

A workspace is an isolated environment where team members can collaborate. Resources created within a workspace are only visible to workspace members. Each workspace has:

  • A unique name and slug
  • An owner (the creator)
  • Members with assigned roles
  • Isolated resources (templates, SMTP servers, domains, API keys, contacts, emails, webhooks, etc.)

Roles

RoleViewCreate/EditManage MembersDelete Workspace
OwnerYesYesYesYes
AdminYesYesYesNo
EditorYesYesNoNo
ViewerYesNoNoNo

Creating a Workspace

Navigate to Workspaces in the sidebar and click Create Workspace. Provide a name and slug (URL-friendly identifier).

Switching Context

Use the workspace switcher in the sidebar to switch between your personal space and any workspace you belong to. When you switch:

  • All resource views (templates, emails, contacts, etc.) show data from the selected context
  • New resources you create are scoped to the selected context
  • Analytics and dashboard stats reflect the selected context

Inviting Members

Workspace owners and admins can invite users:

  1. Go to Workspaces > select your workspace > Manage
  2. Open the Invitations tab
  3. Click Invite and enter the user's email and role

Invited users will see pending invitations on the Workspaces page and can accept or decline directly from the dashboard.

Data Transfer

Transfer your personal resources into a workspace:

  1. Go to the workspace's Manage page
  2. Open the Data Transfer tab
  3. Select which resource types to transfer (templates, contacts, SMTP servers, etc.)
  4. Click Transfer

Transferred resources will no longer appear in your personal space — they become workspace-scoped.

API Usage

Workspace Context Header

To interact with workspace-scoped resources via the API, include the X-Workspace-ID header:

curl -X GET http://localhost:9000/api/v1/users/me/templates \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "X-Workspace-ID: 1"

If the header is omitted, the request operates in the user's personal space.

Workspace-Scoped API Keys

API keys created within a workspace context are automatically scoped to that workspace. Requests using a workspace-scoped API key will operate within the workspace without needing the X-Workspace-ID header.

Workspace Management Endpoints

MethodPathDescription
POST/api/v1/workspacesCreate workspace
GET/api/v1/workspacesList user's workspaces
GET/api/v1/workspaces/currentGet current workspace
PUT/api/v1/workspaces/currentUpdate workspace
DELETE/api/v1/workspaces/currentDelete workspace
GET/api/v1/workspaces/current/membersList members
PUT/api/v1/workspaces/current/members/{id}Update member role
DELETE/api/v1/workspaces/current/members/{id}Remove member
POST/api/v1/workspaces/current/invitationsInvite member
GET/api/v1/workspaces/current/invitationsList invitations
DELETE/api/v1/workspaces/current/invitations/{id}Cancel invitation
POST/api/v1/workspaces/current/transferTransfer personal data
GET/api/v1/invitationsList my invitations
POST/api/v1/invitations/{id}/acceptAccept invitation
POST/api/v1/invitations/{id}/declineDecline invitation

All workspace management endpoints require the X-Workspace-ID header (except create, list, and invitation actions).