Skip to article
Guides / Teams

Teams

Invite people to your apps with owner, admin, developer and viewer roles.

  • Plans Pro and Scale
On this page

Teams let other people work on your apps with their own sign-in. Each person gets a role, so a contractor can manage keys and emoji without managing the team, and a teammate can read usage and analytics without changing anything.

Roles

RoleCan do
OwnerEverything. The account that owns the apps and the plan.
AdminEverything except changing the plan, including team management.
DeveloperApps, keys, custom emoji and webhooks. No team management.
ViewerRead only: apps, usage and analytics.

Members work on the owner’s apps and see the owner’s plan. A membership counts only while the owner’s plan includes team members.

Invite people

The dashboard API serves teams to your signed-in session. An owner or an admin creates an invite with a role. The email address is optional.

Create an invite
POST /api/team/invites
{ "role": "developer", "email": "sam@example.com" }

→ 201 { "invite": { … }, "url": "https://…/invite/<token>" }

Send the link to the person. It is shown once, works once and expires after 7 days. They sign in and accept it:

Accept an invite
POST /api/invites/<token>/accept

→ 200 { "team": { "ownerId": "…", "ownerName": "…", "role": "developer" } }

Manage the team

RouteDoesWho
GET /api/teamMembers and open invitesAny member
PATCH /api/team/members/:idChange a role with { role }. The owner’s role cannot change.Owner, admin
DELETE /api/team/members/:idRemove a member, or leave the team yourselfOwner, admin, the member
DELETE /api/team/invites/:idWithdraw an open inviteOwner, admin

Team routes act on your own account. Add ?owner=<accountId> to act on a team you are a member of, with a high enough role.

Errors

Errors have the shape { "error": { "code", "message", "field"?, "plan"? } }.

StatusCodeWhen
402plan_requiredThe owner’s plan has no team members. plan names the cheapest plan that has them.
403forbidden_roleYour role is too low for this action
404invite_not_foundUnknown or withdrawn invite link
409invite_own_team, already_member, owner_immutableAn invite to your own team, a second membership, a change to the owner
410invite_used, invite_expiredThe invite was accepted already, or is older than 7 days

Apps and environments

Each app has an environment: dev, staging or prod. Use one app per environment, so each one has its own keys, usage and analytics. Only dev apps may have publishable keys that work from any origin.

PlanAppsTeam members
Free1—
Solo1—
Pro3Yes
ScaleUnlimitedYes

Creating an app past your plan’s limit answers 402 with plan_required.