Replicated team API

The team API from Replicated — 11 operation(s) for team.

Operations 12

GET /app/{app_id}/images Lists all registry images for an app by ID. #
POST /app/{app_id}/images/delete Deletes registry images for an app by ID. #
GET /team Get the current team. #
PUT /team/default-app Set or clear the team's default application. #
POST /team/invite Create a pending team invite. #
DELETE /team/invite/{email} Delete a pending team invite. #
PUT /team/invite/{id} Update a pending team invite. #
GET /team/member/{id} Get a team member. #
GET /team/members List team members. #
DELETE /team/serviceaccount Remove a service account from a team. #
GET /team/serviceaccounts List service accounts for a team. #
POST /team/serviceaccounts Create a service account for a team. #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/replicated-team-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

replicated-team-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: Manage enterprise portal users, install options, branding, documentation, email templates, and access control.
  title: Vendor API V3 apps Team API
  contact:
    name: Replicated, Inc.
    url: http://www.replicated.com/
    email: info@replicated.com
  version: 3.0.0
servers:
- url: https://api.replicated.com/vendor/v3
tags:
- name: team
paths:
  /app/{app_id}/images:
    get:
      security:
      - api_key: []
      description: 'Required RBAC Policy: kots/app/[:appid]/image/list'
      tags:
      - team
      summary: Lists all registry images for an app by ID.
      operationId: listAppImages
      parameters:
      - x-go-name: AppID
        description: App identifier
        name: app_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/listImagesResponse'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
  /app/{app_id}/images/delete:
    post:
      security:
      - api_key: []
      description: 'Required RBAC Policy: kots/app/[:appid]/image/delete'
      tags:
      - team
      summary: Deletes registry images for an app by ID.
      operationId: deleteAppImages
      parameters:
      - x-go-name: AppID
        description: App identifier
        name: app_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/responseOk'
        '400':
          $ref: '#/components/responses/responseErrBadRequest'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - imageRefs
              properties:
                imageRefs:
                  description: Image references to delete
                  type: array
                  items:
                    type: string
                  x-go-name: ImageRefs
                  example:
                  - myapp/myimage:1.0.0
                  - myapp/myimage:2.0.0
        description: Image references to delete
        required: true
  /team:
    get:
      security:
      - api_key: []
      description: 'Required RBAC Policy: team/read'
      tags:
      - team
      summary: Get the current team.
      operationId: getTeam
      responses:
        '200':
          $ref: '#/components/responses/getTeamResponse'
        '400':
          $ref: '#/components/responses/responseErrBadRequest'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
  /team/default-app:
    put:
      security:
      - api_key: []
      description: 'Required RBAC Policy: team/default-app/update'
      tags:
      - team
      summary: Set or clear the team's default application.
      operationId: updateTeamDefaultApp
      responses:
        '200':
          $ref: '#/components/responses/updateDefaultAppResponse'
        '400':
          $ref: '#/components/responses/responseErrBadRequest'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
      servers:
      - url: https://api.replicated.com/vendor/v3
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                default_app_id:
                  type: string
                  x-go-name: DefaultAppID
  /team/invite:
    post:
      security:
      - api_key: []
      description: 'Creates a new pending invite for the team.


        Required RBAC Policy: team/member/create'
      tags:
      - team
      summary: Create a pending team invite.
      operationId: createInvite
      responses:
        '201':
          $ref: '#/components/responses/responseNoContent'
        '400':
          $ref: '#/components/responses/responseErrBadRequest'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                  x-go-name: Email
                permissions:
                  type: string
                  x-go-name: Permissions
                policy_id:
                  type: string
                  x-go-name: PolicyID
        description: The invite creation request body
        required: true
  /team/invite/{email}:
    delete:
      security:
      - api_key: []
      description: 'Deletes the pending invite with the given email.


        Required RBAC Policy: team/member/delete'
      tags:
      - team
      summary: Delete a pending team invite.
      operationId: deleteInvite
      parameters:
      - description: The email of the invite to delete
        name: email
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          $ref: '#/components/responses/responseNoContent'
        '400':
          $ref: '#/components/responses/responseErrBadRequest'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
  /team/invite/{id}:
    put:
      security:
      - api_key: []
      description: 'Updates the pending invite with the given ID.


        Required RBAC Policy: team/member/update'
      tags:
      - team
      summary: Update a pending team invite.
      operationId: updatePendingInvite
      parameters:
      - description: The ID of the pending invite to update
        name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          $ref: '#/components/responses/responseNoContent'
        '400':
          $ref: '#/components/responses/responseErrBadRequest'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateTeamMemberRequest'
        description: The update request body
        required: true
  /team/member/{id}:
    get:
      security:
      - api_key: []
      description: 'Retrieves the team member with the given ID.


        Required RBAC Policy: team/member/read'
      tags:
      - team
      summary: Get a team member.
      operationId: getTeamMember
      parameters:
      - description: The ID of the team member to retrieve
        name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/getTeamMemberResponse'
        '400':
          $ref: '#/components/responses/responseErrBadRequest'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
  /team/members:
    get:
      security:
      - api_key: []
      description: 'Return a list of all team members, with optional inclusion of pending invites.

        Members are sorted by email address.


        Required RBAC Policy: team/member/list'
      tags:
      - team
      summary: List team members.
      operationId: listTeamMembers
      parameters:
      - x-go-name: IncludeInvites
        description: When set to true, pending invites will be included in the results. Default is false.
        name: includeInvites
        in: query
        schema:
          type: boolean
      responses:
        '200':
          $ref: '#/components/responses/listTeamMembersResponse'
        '400':
          $ref: '#/components/responses/responseErrBadRequest'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
  /team/serviceaccount:
    delete:
      security:
      - api_key: []
      description: 'Required RBAC Policy: team/serviceaccount/delete'
      tags:
      - team
      summary: Remove a service account from a team.
      operationId: removeServiceAccount
      responses:
        '204':
          $ref: '#/components/responses/responseNoContent'
        '400':
          $ref: '#/components/responses/responseErrBadRequest'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
  /team/serviceaccounts:
    get:
      security:
      - api_key: []
      description: 'Required RBAC Policy: team/serviceaccount/list'
      tags:
      - team
      summary: List service accounts for a team.
      operationId: listServiceAccounts
      responses:
        '200':
          $ref: '#/components/responses/listServiceAccountsResponse'
        '400':
          $ref: '#/components/responses/responseErrBadRequest'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
    post:
      security:
      - api_key: []
      description: 'Required RBAC Policy: team/serviceaccount/create'
      tags:
      - team
      summary: Create a service account for a team.
      operationId: createTeamServiceAccount
      parameters:
      - x-go-name: Name
        description: Name is the name of the service account to create.
        name: name
        in: query
        required: true
        schema:
          type: string
      - x-go-name: PolicyID
        description: PolicyID is the ID of the policy to assign to the service account.
        name: policy_id
        in: query
        required: true
        schema:
          type: string
      - x-go-name: Permissions
        description: 'Permissions is whether the service account is read-only or not. Any value besides "read-only" will be treated as "read-write".

          Optional.'
        name: permissions
        in: query
        schema:
          type: string
      responses:
        '201':
          $ref: '#/components/responses/createTeamServiceAccountResponse'
        '400':
          $ref: '#/components/responses/responseErrBadRequest'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
components:
  schemas:
    Image:
      type: object
      properties:
        name:
          type: string
          x-go-name: Name
        versions:
          type: array
          items:
            type: string
          x-go-name: Versions
      x-go-package: github.com/replicatedhq/vandoor/handlers/vendor-api/replv3/images
    User:
      type: object
      title: User is an account on a team.
      properties:
        email:
          type: string
          x-go-name: Email
        first_name:
          type: string
          x-go-name: FirstName
        id:
          type: string
          x-go-name: ID
        is_replicated_system_user:
          type: boolean
          x-go-name: IsReplicatedSystemUser
        is_two_factor_enabled:
          type: boolean
          x-go-name: IsTwoFactorEnabled
        last_name:
          type: string
          x-go-name: LastName
        policy_ids:
          type: array
          items:
            type: string
          x-go-name: PolicyIDs
        team_id:
          type: string
          x-go-name: TeamID
      x-go-package: github.com/replicatedhq/vandoor/pkg/models
    VendorTeamMember:
      description: VendorTeamMember represents a team member in the vendor API
      type: object
      properties:
        createdAt:
          type: string
          format: date-time
          x-go-name: CreatedAt
        email:
          type: string
          x-go-name: Email
        firstName:
          type: string
          x-go-name: FirstName
        hasGitHubUsername:
          type: boolean
          x-go-name: HasGitHubUsername
        id:
          type: string
          x-go-name: ID
        isArchived:
          type: boolean
          x-go-name: IsArchived
        isInviteExpired:
          type: boolean
          x-go-name: IsInviteExpired
        isMFAEnabled:
          type: boolean
          x-go-name: IsMFAEnabled
        isPendingInvite:
          type: boolean
          x-go-name: IsPendingInvite
        isReadOnly:
          type: boolean
          x-go-name: IsReadOnly
        isSAML:
          type: boolean
          x-go-name: IsSAML
        lastActiveAt:
          type: string
          format: date-time
          x-go-name: LastActiveAt
        lastName:
          type: string
          x-go-name: LastName
        policyId:
          type: string
          x-go-name: PolicyID
      x-go-package: github.com/replicatedhq/vandoor/handlers/vendor-api/replv3/v1/team
    ComplexityRequirements:
      type: object
      properties:
        digit:
          type: integer
          format: int64
          x-go-name: Digit
        min:
          type: integer
          format: int64
          x-go-name: Min
        special:
          description: 'Current data is like this: {"min":12,"upperLower":6,"digit":2,"special":2}'
          type: integer
          format: int64
          x-go-name: Special
        upperLower:
          type: integer
          format: int64
          x-go-name: UpperLower
      x-go-package: github.com/replicatedhq/vandoor/pkg/models
    Team:
      type: object
      properties:
        automatic_join_enabled:
          type: boolean
          x-go-name: AutomaticJoinEnabled
        cmx_low_credits_notified_at:
          type: string
          format: date-time
          x-go-name: CMXLowCreditsNotifiedAt
        collab_repo_feature:
          type: string
          x-go-name: FeatureCollabRepo
        collab_repo_support:
          type: string
          x-go-name: SupportCollabRepo
        complexity_requirements:
          $ref: '#/components/schemas/ComplexityRequirements'
        default_app_id:
          type: string
          x-go-name: DefaultAppID
        default_policy:
          type: string
          x-go-name: DefaultPolicy
        domain_name:
          type: string
          x-go-name: DomainName
        has_contract:
          description: New fields from id service
          type: boolean
          x-go-name: TeamHasContract
        has_enforced_complexity:
          type: boolean
          x-go-name: HasEnforcedComplexity
        id:
          type: string
          x-go-name: Id
        is_google_auth_enabled:
          type: boolean
          x-go-name: IsGoogleAuthEnabled
        is_google_auth_required:
          type: boolean
          x-go-name: IsGoogleAuthRequired
        is_saml_enabled:
          type: boolean
          x-go-name: IsSAMLEnabled
        is_saml_required:
          type: boolean
          x-go-name: IsSAMLRequired
        is_two_factor_required:
          type: boolean
          x-go-name: IsTwoFactorRequired
        name:
          type: string
          x-go-name: Name
        needs_profile:
          type: boolean
          x-go-name: NeedsProfile
        saml_default_policy:
          type: string
          x-go-name: SAMLDefaultPolicy
        saml_landing:
          type: string
          x-go-name: SAMLLanding
      x-go-package: github.com/replicatedhq/vandoor/pkg/models
    ServiceAccount:
      type: object
      title: ServiceAccount represents a modified user on a team paired with an API token.
      properties:
        accountName:
          type: string
          x-go-name: AccountName
        createdAt:
          type: string
          format: date-time
          x-go-name: CreatedAt
        customerId:
          type: string
          x-go-name: CustomerID
        emailAddress:
          type: string
          x-go-name: EmailAddress
        id:
          type: string
          x-go-name: ID
        isRevoked:
          type: boolean
          x-go-name: IsRevoked
        lastUsedAt:
          type: string
          format: date-time
          x-go-name: LastUsedAt
        token:
          type: string
          x-go-name: Token
        tokenRegeneratedAt:
          type: string
          format: date-time
          x-go-name: TokenRegeneratedAt
      x-go-package: github.com/replicatedhq/vandoor/pkg/enterprise-portal/types
    UpdateTeamMemberRequest:
      type: object
      properties:
        policy_id:
          type: string
          x-go-name: PolicyID
      x-go-package: github.com/replicatedhq/vandoor/pkg/schema
  responses:
    responseNoContent:
      description: On success, no payload returned
    responseErrUnauthorized:
      description: Return if the caller is not authorized
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                x-go-name: Message
    responseErrForbidden:
      description: Returned if the caller does not have the needed permission
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: object
                properties:
                  message:
                    type: string
                    x-go-name: Message
                  messageCode:
                    type: string
                    x-go-name: MessageCode
                x-go-name: Error
    responseOk:
      description: On success
    listServiceAccountsResponse:
      description: ''
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: '#/components/schemas/ServiceAccount'
    getTeamMemberResponse:
      description: ''
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/User'
    listImagesResponse:
      description: ListImagesResponse represents a list of images.
      content:
        application/json:
          schema:
            type: object
            properties:
              images:
                type: array
                items:
                  $ref: '#/components/schemas/Image'
                x-go-name: Images
    createTeamServiceAccountResponse:
      description: CreateTeamServiceAccountResponse contains the created service account and its access token.
      content:
        application/json:
          schema:
            type: object
            properties:
              access_token:
                description: AccessToken is the access token for the created service account.
                type: string
                x-go-name: AccessToken
              service_account:
                $ref: '#/components/schemas/ServiceAccount'
    getTeamResponse:
      description: ''
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Team'
    responseErrNotFound:
      description: Returned on resource not found
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                x-go-name: Message
    updateDefaultAppResponse:
      description: ''
      content:
        application/json:
          schema:
            type: object
            properties:
              default_app_id:
                type: string
                x-go-name: DefaultAppID
              id:
                type: string
                x-go-name: ID
    responseErrBadRequest:
      description: Returned on bad input
      content:
        application/json:
          schema:
            type: object
            properties:
              error_code:
                description: Error code if available
                type: string
                x-go-name: ErrorCode
              message:
                description: Error message text if available
                type: string
                x-go-name: Message
    listTeamMembersResponse:
      description: ListTeamMembersResponse contains the JSON team members list
      content:
        application/json:
          schema:
            type: object
            properties:
              members:
                type: array
                items:
                  $ref: '#/components/schemas/VendorTeamMember'
                x-go-name: Members
  securitySchemes:
    api_key:
      type: apiKey
      name: Authorization
      in: header