For the complete documentation index, see llms.txt. This page is also available as Markdown.

Teams

List all teams

get

Retrieves all user-facing teams in the organization. For each team, returns: - Team details (ID, name, slug, description) - Number of visible members (hidden system users are not counted) - The requesting user's role in the team (owner, member, or null when not a member)

    This is the authoritative team listing: it includes teams that have no visible members yet,
    such as teams freshly created by the managing admin. The hidden admin team is never returned.
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Responses
200

List of teams retrieved successfully

application/json
totalnumberRequired

Total number of teams

Example: 4
get/sfp/api/teams
GET /sfp/api/teams HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "teams": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "name": "Engineering Team",
      "slug": "engineering-team",
      "description": "Team responsible for product engineering",
      "memberCount": 5,
      "userRole": "owner",
      "created_at": "2025-05-04T07:36:07Z"
    }
  ],
  "total": 4
}

Create a new team

post

Creates a new team within the organization. Teams are used to: - Group users for collaborative access to resources - Manage permissions at a team level - Organize repositories, environments, and other resources

    The team slug must be unique and URL-friendly. The creating user automatically becomes a team owner. Only users with owner role can create new teams.
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
namestringRequired

The name of the team

Example: Engineering Team
slugstringRequired

The slug for the team URL

Example: engineering-team
descriptionstringOptional

Optional description of the team

Example: Team responsible for product engineering
Responses
201

Team created successfully

application/json
successbooleanRequired

Whether the operation was successful

Example: true
errorstringOptional

Error message if operation failed

Example: Team with this slug already exists
post/sfp/api/teams
POST /sfp/api/teams HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 110

{
  "name": "Engineering Team",
  "slug": "engineering-team",
  "description": "Team responsible for product engineering"
}
{
  "success": true,
  "team": {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "name": "Engineering Team",
    "slug": "engineering-team",
    "description": "Team responsible for product engineering",
    "primary_owner_user_id": "123e4567-e89b-12d3-a456-426614174000",
    "email": "team@example.com",
    "created_at": "2025-05-04T07:36:07Z"
  },
  "error": "Team with this slug already exists"
}

List members of a team

get

Retrieves a paginated list of members belonging to a specific team. Returns detailed information about each member including: - User details (ID, email, name) - Role within the team (owner or member) - Join date and last activity

    Supports filtering by role and pagination via limit/offset. All authenticated users can view team member lists for teams they have access to. Team membership is verified based on the requesting user's permissions.
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
slugstringRequired

Team slug

Query parameters
limitnumberOptional

Maximum number of members to return

Example: 10
offsetnumberOptional

Offset for pagination

Example: 0
rolestring · enumOptional

Filter by role

Example: ownerPossible values:
Responses
200

List of team members retrieved successfully

application/json
totalnumberRequired

Total number of members

Example: 20
get/sfp/api/teams/{slug}/members
GET /sfp/api/teams/{slug}/members HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "members": [
    {
      "user_id": "123e4567-e89b-12d3-a456-426614174000",
      "account_id": "123e4567-e89b-12d3-a456-426614174000",
      "email": "user@example.com",
      "first_name": "Jane",
      "last_name": "Doe",
      "role": "member",
      "created_at": "2025-05-04T07:36:07Z"
    }
  ],
  "total": 20
}

Add a member to a team

post

Adds a new member to an existing team with the specified role. This endpoint: - Creates team membership if user exists in the system - Assigns the specified role (owner or member) - Grants access to team resources based on role - Sends notification to the new member

    The user must already have an account in the system. Use the users endpoint to create new users first. Only team owners can add new members.
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
slugstringRequired

Team slug

Body
emailstringRequired

Email of the user to add to the team

Example: user@example.com
rolestring · enumRequired

Role for the user in the team

Example: memberPossible values:
Responses
201

Member added successfully

application/json
successbooleanRequired

Whether the operation was successful

Example: true
errorstringOptional

Error message if operation failed

Example: User not found
post/sfp/api/teams/{slug}/members
POST /sfp/api/teams/{slug}/members HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 44

{
  "email": "user@example.com",
  "role": "member"
}
{
  "success": true,
  "membership": {
    "user_id": "123e4567-e89b-12d3-a456-426614174000",
    "account_id": "123e4567-e89b-12d3-a456-426614174000",
    "email": "user@example.com",
    "first_name": "Jane",
    "last_name": "Doe",
    "role": "member",
    "created_at": "2025-05-04T07:36:07Z"
  },
  "error": "User not found"
}

Delete a team

delete

Permanently deletes a team and all its associations. This action: - Removes all team memberships - Disassociates team from repositories and resources - Removes team-specific permissions and access - Cannot be undone

    All team resources must be reassigned or deleted before team deletion. Only users with owner role can delete teams. The last team in an organization cannot be deleted.
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
slugstringRequired

Team slug

Responses
200

Team deleted successfully

application/json
successbooleanRequired

Whether the operation was successful

Example: true
errorstringOptional

Error message if operation failed

Example: Team not found
delete/sfp/api/teams/{slug}
DELETE /sfp/api/teams/{slug} HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "success": true,
  "error": "Team not found"
}

Remove a member from a team

delete

Removes a member from a team, revoking their access to team resources. This action: - Removes team membership immediately - Revokes access to all team repositories and resources - Removes team-specific permissions - Does not delete the user account

    Team must maintain at least one owner. Users cannot remove themselves if they are the last owner. Only team owners can remove members.
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
slugstringRequired

Team slug

emailstringRequired

Member email

Responses
200

Member removed successfully

application/json
successbooleanRequired

Whether the operation was successful

Example: true
errorstringOptional

Error message if operation failed

Example: User not found in team
delete/sfp/api/teams/{slug}/members/{email}
DELETE /sfp/api/teams/{slug}/members/{email} HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "success": true,
  "error": "User not found in team"
}

Update a team member's role

put

Changes the role of an existing team member. Available roles: - owner: Full team management permissions, can add/remove members - member: Access to team resources but no management permissions

    Role changes take effect immediately. Teams must maintain at least one owner. Users cannot demote themselves if they are the last owner. Only team owners can change member roles.
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
slugstringRequired

Team slug

emailstringRequired

Member email

Body
rolestring · enumRequired

The new role for the team member

Possible values:
Responses
200

Member role updated successfully

application/json
successbooleanRequired

Whether the operation was successful

Example: true
errorstringOptional

Error message if operation failed

Example: User not found
put/sfp/api/teams/{slug}/members/{email}/role
PUT /sfp/api/teams/{slug}/members/{email}/role HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 16

{
  "role": "owner"
}
{
  "success": true,
  "membership": {
    "user_id": "123e4567-e89b-12d3-a456-426614174000",
    "account_id": "123e4567-e89b-12d3-a456-426614174000",
    "email": "user@example.com",
    "first_name": "Jane",
    "last_name": "Doe",
    "role": "member",
    "created_at": "2025-05-04T07:36:07Z"
  },
  "error": "User not found"
}

Last updated

Was this helpful?