Teams

Share a workspace with your colleagues and control who can send, manage, and configure it.

What a Team Is

A team is a workspace. It owns everything you create inside SMTPfast:

  • Sending domains
  • API keys
  • Contacts and segments
  • Suppressions
  • Signup forms
  • Broadcasts and the emails they send
  • Delivery logs

A user can belong to several teams at once. The team switcher at the top of the sidebar picks which one you are working in, and the dashboard shows only that team's resources.

Roles

Every member of a team has one role. The role decides what they can do:

RoleWhat they can do
OwnerFull control. Manage members and every resource, change other members' roles, handle billing, and delete the team.
AdminManage members and resources: invite and remove teammates, and work with domains, API keys, contacts, forms, and broadcasts. Cannot manage billing or delete the team.
MemberUse the team's resources to send and view. Cannot manage members, billing, or team settings.

Inviting Members

Owners and Admins invite teammates from Settings, under the Team tab. Enter the person's email address and pick a role of Admin or Member. Ownership is not invited directly: you grant it by promoting an existing member.

The invitee gets a link and accepts it while signed in. They must use the address the invite was sent to, so a forwarded link cannot pull the wrong account into the team. If they do not have an account yet, they can register with the invited address and then accept.

  • Invites expire 7 days after they are sent.
  • Pending invites can be revoked at any time from the Team tab.
  • Re-inviting the same address refreshes the role and sends a fresh link.

Switching Teams

The switcher sits at the top of the dashboard sidebar. Choosing a team re-scopes the whole dashboard: domains, keys, contacts, logs, and reports all reflect the team you selected. Existing single-team accounts do not need to touch it.

The same menu has a Create team option. Creating a team is a paid feature, and each plan includes a set number of teams. Free accounts keep their one personal team, and paid plans raise the limit.

Managing the Team with the API

Everything on the Members page is also an API, so you can add people from your own onboarding or offboarding scripts. The rules are the same as in the dashboard: owners and admins invite, remove and change roles, an admin cannot change an owner, and a team always keeps one owner. A key acts with its creator's role, so a key made by a member cannot invite anyone.

Listing needs team:read. Changes need team:manage. Neither is in the default set, so name them when you create the key. AI agents connected with OAuth can list members but can never hold team:manage.

GET/v1/team/members

Everyone on the team, oldest first. Any member can list.

Response

json
{
  "object": "list",
  "has_more": false,
  "data": [
    {
      "object": "team_member",
      "id": "mem_8f2c",
      "user_id": "usr_41ab",
      "email": "[email protected]",
      "name": "Ana",
      "role": "owner",
      "can_manage_billing": true,
      "created_at": "2026-09-01T10:00:00.000Z"
    }
  ]
}
PATCH/v1/team/members/{id}

Change a member's role, their billing access, or both. Only an owner can change billing access. The member gets an email when their role changes.

Parameters

ParameterTypeRequiredDescription
rolestringNoowner, admin or member
can_manage_billingbooleanNoLet a non-owner manage billing. Owner only.
DELETE/v1/team/members/{id}

Remove someone from the team. Their API keys for this team are revoked at the same time. Team resources stay. You cannot remove yourself this way.

GET/v1/team/invites

Invitations that are not accepted and not expired. Owners and admins only.

POST/v1/team/invites

Email an invitation link, valid for 7 days. The person signs in with the invited address to accept. Inviting the same address again sends a fresh link.

Needs a paid plan and a free seat. Limited to 20 invitations an hour per inviter and 3 an hour per address.

Parameters

ParameterTypeRequiredDescription
emailstringYesThe address to invite
rolestringNoadmin or member. Defaults to member.

Request Body

json
{
  "email": "[email protected]",
  "role": "member"
}

Response

json
{
  "object": "team_invite",
  "id": "inv_2d9e",
  "email": "[email protected]",
  "role": "member",
  "expires_at": "2026-10-10T09:00:00.000Z"
}
GET/v1/team/invites/{id}

One pending invitation, in the same shape as the list. 404 once it is accepted, expired or revoked. Owners and admins only.

DELETE/v1/team/invites/{id}

Revoke a pending invitation. The link stops working at once.

Billing and Isolation

Teams and collaboration are part of the paid plans. Each team is isolated: its API keys only work against its own resources, and sending, domains, and quotas are scoped to that team. Nothing is shared across other teams you belong to.