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/cloudbees:cloudbees-teams-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: CloudBees Unify API (Current) Teams API
version: 1.0.0
description: 'API documentation for CloudBees Unify''s current, stable endpoints. This specification covers the endpoints customers rely on today while next-generation v4 equivalents are in development. These endpoints are stable and supported, but no longer receive new features.
### Unify core
#### Components
List components within an organization, and optionally filter by component type, such as applications or services with an associated repository.
#### Environments
Discover and manage environments within your organization. Use environments to maintain an up-to-date inventory for feature flag targeting, deployment scripts, and monitoring workflows.
#### Organizations
Define the structural and governance boundaries within a CloudBees Unify tenant. Organizations model business units or departments, support parent-child hierarchies, and inherit configuration—properties, integrations, and environments—from parent organizations. Every tenant has one root organization; all others exist beneath it.
#### Runs
Create, update, and retrieve CI/CD runs for a component. Attach and list test results, artifacts, security results, evidences, and deployments.
#### Teams
List teams within an organization. Teams group users to manage access and permissions across resources in CloudBees Unify.
#### Users
Invite or remove users, and define custom attributes for feature flag targeting based on application-specific criteria such as account tier, region, or subscription status.
### Feature management
#### Flags
Control runtime feature visibility and behavior to enable gradual rollouts, A/B testing, progressive delivery, and safe deployments without redeployment.
#### Flag configurations
Set flag state (enabled or disabled) and targeting rules for a specific environment to determine which users or segments receive each variation.
#### Flag custom properties
Create, read, update, and delete custom properties used in targeting conditions and target groups.
#### Target groups
Define reusable sets of targeting conditions for feature flags. Specify rules once (such as matching users by role, region, or custom property) and apply them across multiple flags. Changes to a target group propagate automatically to every flag that references it.
#### Flag lifecycle
Track how often each flag variation is served in an environment. Use impression data to monitor adoption, validate rollouts, and see which variations your application evaluates.
For new integrations, prefer the CloudBees Unify API (Beta) where available.'
servers:
- url: https://api.cloudbees.io
description: CloudBees Unify Production API
security:
- BearerAuth: []
tags:
- name: Teams
description: List teams within an organization. Teams group users to manage access and permissions across resources in CloudBees Unify.
paths:
/v1/organizations/{organizationId}/teams:
get:
tags:
- Teams
operationId: TeamsService_GetTeams
parameters:
- name: organizationId
in: path
description: Unique identifier of the organization whose teams are to be listed. Required. Refer to [the documentation](https://cloudbees.com/r/unify-manage-organizations) for how to locate your organization ID.
required: true
schema:
type: string
- name: userId
in: query
description: Filters results to teams that include the specified user as a member. Omit to return all teams in the organization.
schema:
type: string
- name: pagination.page
in: query
description: page (optional) indicates which page is being requested or returned (0 or 1) returns the 1st page of results
schema:
type: integer
format: int32
- name: pagination.pageLength
in: query
description: "page_length (optional) specifies the number of items per page being requested. If the request is asking for more than an api limit\n allows, the response will indicate the new page_length that should be used for future calls."
schema:
type: integer
format: int32
- name: pagination.sort.fieldName
in: query
description: "field_name specifies the field to use for sorting a list of results. See documentation for\n specific API endpoints to determine appropriate field names."
schema:
type: string
- name: pagination.sort.order
in: query
description: order specifies how to sort the results
schema:
enum:
- ASCENDING
- DESCENDING
type: string
- name: pagination.lastPage
in: query
description: 'RESPONSE ONLY: last_page is true {response} if there are no more results to be returned'
schema:
type: boolean
- name: include
in: query
description: Optional comma-separated list of related resources to include in each team response, for example `users` or `roles`.
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/api.auth.GetTeamsResponse'
default:
description: Default error response
content:
application/json:
schema:
$ref: '#/components/schemas/google.rpc.Status'
summary: List teams in an organization
description: Returns a list of teams within the specified organization. Use the `userId` query parameter to filter results to teams that include a specific user as a member.
components:
schemas:
api.auth.Connection:
type: object
properties:
id:
type: string
organizationId:
type: string
description: Organization the connection was created for
entityId:
type: string
description: Entity ID of the SAML IdP
signInEndpoint:
type: string
description: Sign-in endpoint for the SAML IdP
signInCertificate:
type: string
description: Sign-in certificate from the SAML IdP
connectionName:
type: string
description: Display name for the connection
isEnabled:
type: boolean
description: Whether the connection is enabled or not
autoprovision:
type: boolean
description: "Whether auto-provision is enabled or not\n (when on, users from the SAML IdP are automatically added to the organization during login)"
strict:
type: boolean
description: "Whether strict is enabled or not\n (when on, only email's with the connection's linked email-domain can be invited + forces everyone with linked email domains to use SAML login)"
wantAssertionsSigned:
type: boolean
description: "Whether this connection requires the identity provider to digitally sign SAML assertions before they are accepted.\n This is a standard and commonly supported setting in SAML identity providers. Enabled by default."
wantAssertionsEncrypted:
type: boolean
description: "Whether this connection requires the identity provider to encrypt SAML assertions before they are accepted.\n This is preferable but not supported by all major identity providers. Disable if your IdP is Microsoft Entra ID or Google Workspace."
validateSignatures:
type: boolean
description: Whether this connection validates signatures on incoming SAML responses.
source:
type: string
description: 'Adding source attrribute to differentiate whether connection is migrated from UDS or already present in CBP, Ticket : CBP-13455'
api.auth.permission.Permission:
required:
- action
- type
type: object
properties:
action:
enum:
- UNDEFINED
- CREATE
- READ
- UPDATE
- DELETE
- EXECUTE
- ACCESS
type: string
description: The action allowed
type:
enum:
- ORGANIZATION
- USER_ENTITY
- USER_INVITE
- TEAM
- MEMBERSHIP
- AUTHORIZATION
- ROLE
- ENDPOINT
- PROPERTY
- SECRET
- RESOURCE
- SERVICE
- ENVIRONMENT
- FLAG
- EXTENSION
- AUDIT
- LOG
- ACCOUNT
- SUBSCRIPTION
- ENTITLEMENT
- AUTOMATION
- RECENT_ORG_RECORD
- DEFAULT_PLAN
- VSM
- CI_INSIGHTS
- ARTIFACT
- SECURITY
- WORKFLOW_EVENT
- APPROVAL
- API_TOKEN
- SLA_CONFIGURATION
- ASSET_SERVICE_MARKETPLACE
- RESOURCE_ERROR
- TRIAGE_APPROVAL
- APPLICATION_RELEASE
- TRIAGE_FINDINGS
- VIEW_FINDINGS_BY_TRIAGE_STATUS
- REVIEW_RA_REQUEST
- REVIEW_FP_REQUEST
- EXTERNAL_WORKFLOW_EVENTS
- TARGET_GROUP
- CUSTOM_PROPERTY
- APPROVAL_REQUEST
- POLICY
- EDGE_RUNNER
- SMART_TESTS_WORKSPACE
type: string
description: The type of entity being protected
description: Permission message represents a permission that can be granted to a user on an API entity.
api.Audit:
type: object
properties:
who:
type: string
description: UUID of the user that made the change
when:
type: string
description: timestamp of the update
format: date-time
why:
type: string
description: reason for the update (optional)
description: Audit records the person that updated the data last.
api.auth.Login:
type: object
properties:
id:
type: string
description: unique id of the login
type:
enum:
- LOGIN_TYPE_UNDEFINED
- LOGIN_TYPE_PASSWORD
- LOGIN_TYPE_GOOGLE
- LOGIN_TYPE_GITHUB
- LOGIN_TYPE_SAML
- LOGIN_TYPE_LDAP
- LOGIN_TYPE_OAUTH2
type: string
description: what type is the login, see enum
email:
type: string
description: email address
password:
type: string
description: for password logins, the encrypted password
salt:
type: string
description: for password logins, the salt
isVerified:
type: boolean
description: "whether the login method has been verified, some login methods are\n automatically verified"
userId:
type: string
description: user this login belongs to
audit:
$ref: '#/components/schemas/api.Audit'
description: How a user logs in to the system
google.rpc.Status:
type: object
properties:
code:
type: integer
description: The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].
format: int32
message:
type: string
description: A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.
details:
type: array
items:
$ref: '#/components/schemas/google.protobuf.Any'
description: A list of messages that carry the error details. There is a common set of message types for APIs to use.
description: 'The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).'
api.auth.Role:
required:
- organizationId
- name
- audit
type: object
properties:
organizationId:
type: string
description: The organization the role belongs to
name:
type: string
description: Role name
permissions:
type: array
items:
$ref: '#/components/schemas/api.auth.permission.Permission'
description: Permissions assigned to the role
isDeleted:
type: boolean
description: "IsDeleted indicates if this record is no longer valid\n Anyone assigned this role will no longer have the permissions granted by this role"
audit:
allOf:
- $ref: '#/components/schemas/api.Audit'
description: Audit information for the role
description:
type: string
description: Description of the role (optional)
isEditable:
type: boolean
description: "Is the role editable. If not, the role can not be modified or deleted.\n This is useful for system roles that should not be modified Vs \"custom\" roles that can.\n Default is false."
id:
type: string
description: Unique identifier for the role
description: "Roles are a collection of permission actions.\n PermissionActions can not be granted to a user\n directly, a role must be created."
api.auth.Invite:
type: object
properties:
id:
type: string
description: unique id of the invite
email:
type: string
description: email invited to the platform
teamId:
type: string
description: team to which this email was invited
teamRole:
type: string
description: role for this email when accepted into the team
redirectUrl:
type: string
description: redirect url post invite acceptance
expirationDate:
type: string
description: expiration date for this invitation
format: date-time
isAutogenerated:
type: boolean
description: if this invite was created based on a different invite
audit:
$ref: '#/components/schemas/api.Audit'
invitedBy:
type: string
description: user ID of the user who created this invite
description: Record of the invitation for a new user for an organization
google.protobuf.Any:
type: object
properties:
'@type':
type: string
description: The type of the serialized message.
additionalProperties: true
description: Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.
api.auth.User:
type: object
properties:
id:
type: string
description: unique id of the user
givenname:
type: string
description: given name is the "first" name
familyname:
type: string
description: family is the sur or "last" name
displayname:
type: string
description: displayname is the preferred name to use in the UI
type:
enum:
- USER_TYPE_UNDEFINED
- USER_TYPE_PERSON
- USER_TYPE_MACHINE
type: string
description: indicates the type of the user, could be a human, could be a machine
status:
enum:
- USER_STATUS_UNDEFINED
- USER_STATUS_ACTIVE
- USER_STATUS_DISABLED
- USER_STATUS_DELETED
type: string
description: indicates the status of the user
loginIds:
type: array
items:
type: string
description: "logins are the specific login methods that user uses to authenticate\n with the system. See Login message."
preferences:
type: object
additionalProperties:
type: string
description: Key value pair of preferences, things like font, theme, avatar url
audit:
$ref: '#/components/schemas/api.Audit'
logins:
type: array
items:
$ref: '#/components/schemas/api.auth.Login'
associatedEmails:
type: array
items:
type: string
description: list of emails linked to this user; not used for login
email:
type: string
timezone:
type: string
mfaEnabled:
type: boolean
createdat:
type: string
format: date-time
updatedat:
type: string
format: date-time
lastlogindate:
type: string
format: date-time
description: "User will live in a separate database from the rest of the\n platform due to PII"
api.auth.Org:
type: object
properties:
id:
type: string
description: "ID here must match with the resource ID in resources table,\n since an organization is a type of resource."
displayName:
type: string
description: Organization display name - not the same as the resource name
domainName:
type: string
description: "Organization domain name - this must match with the resource name\n (since resource name could be in the URL, it must be URL-safe, that's why the domain)"
isDisabled:
type: boolean
description: if true, the organization is no longer active
childOrganizations:
type: array
items:
$ref: '#/components/schemas/api.auth.Org'
description: sub-organizations
parentId:
type: string
description: parent id if this is a sub-organization
description:
type: string
description: description field
metadata:
type: object
additionalProperties:
$ref: '#/components/schemas/google.protobuf.Any'
description: '@Deprecated - use the properties field instead'
audit:
$ref: '#/components/schemas/api.Audit'
properties:
type: object
additionalProperties:
type: string
description: key value pair of extra information to store in the organization object
teams:
type: array
items:
$ref: '#/components/schemas/api.auth.Team'
description: Teams that are part of the organization
roles:
type: array
items:
$ref: '#/components/schemas/api.auth.Role'
description: Roles
permissions:
type: array
items:
$ref: '#/components/schemas/api.auth.permission.Permission'
description: Permissions assigned to the role
emailDomains:
type: array
items:
$ref: '#/components/schemas/api.auth.EmailDomain'
description: email domains
connections:
type: array
items:
$ref: '#/components/schemas/api.auth.Connection'
description: connections
api.Sort:
type: object
properties:
fieldName:
type: string
description: "field_name specifies the field to use for sorting a list of results. See documentation for\n specific API endpoints to determine appropriate field names."
order:
enum:
- ASCENDING
- DESCENDING
type: string
description: order specifies how to sort the results
description: Sort describes which field to sort the results on and the order in which to sort them
api.Pagination:
type: object
properties:
page:
type: integer
description: page (optional) indicates which page is being requested or returned (0 or 1) returns the 1st page of results
format: int32
pageLength:
type: integer
description: "page_length (optional) specifies the number of items per page being requested. If the request is asking for more than an api limit\n allows, the response will indicate the new page_length that should be used for future calls."
format: int32
sort:
allOf:
- $ref: '#/components/schemas/api.Sort'
description: sort (optional) specifies how the results should be sorted {request} or how they are actually sorted {response}.
lastPage:
type: boolean
description: 'RESPONSE ONLY: last_page is true {response} if there are no more results to be returned'
description: Pagination is sent as part of a request to specify handling for paginated results, and returned with paginated results=
api.auth.EmailDomain:
type: object
properties:
id:
type: string
domainName:
type: string
description: 'Name of the domain (example: cloudbees.com - what comes after the @ in an email address)'
organizationId:
type: string
description: Organization this email-domain record was created for
challenge:
type: string
description: UUID used for verification of this email-domain record
isVerified:
type: boolean
description: Whether the email-domain is already verified or not
connectionId:
type: string
description: Connection id that this email-domain is linked to
api.auth.Team:
type: object
properties:
id:
type: string
description: Unique identifier of the team.
name:
type: string
description: Display name of the team.
isDefault:
type: boolean
description: Indicates whether this is the default team for the organization. Every organization has exactly one default team, which automatically includes all members and cannot be deleted.
immutable:
type: boolean
description: Indicates whether the team is managed by an SSO connection. When true, team membership and configuration cannot be modified manually.
organizationId:
type: string
description: Unique identifier of the organization this team belongs to.
userIds:
type: array
items:
type: string
description: List of unique identifiers of users who are members of this team.
supportEnabled:
type: boolean
description: Indicates whether this team is synced with Zendesk support.
metadata:
type: object
additionalProperties:
$ref: '#/components/schemas/google.protobuf.Any'
description: Key-value pairs of additional information stored on the team object.
isDeleted:
type: boolean
description: Indicates whether the team has been soft-deleted.
audit:
allOf:
- $ref: '#/components/schemas/api.Audit'
description: Audit metadata including creation and last modification timestamps.
description:
type: string
description: Optional description providing additional details about the team's purpose.
users:
type: array
items:
$ref: '#/components/schemas/api.auth.User'
description: Full user objects for each member of this team, populated when users are included in the response.
type:
enum:
- UNKNOWN
- PREDEFINED
- USERDEFINED
type: string
description: The type of team. Valid values are PREDEFINED (system-created, cannot be deleted) or USERDEFINED (user-created, can be deleted).
organization:
allOf:
- $ref: '#/components/schemas/api.auth.Org'
description: The organization this team belongs to, populated when organization details are included in the response.
invites:
type: array
items:
$ref: '#/components/schemas/api.auth.Invite'
description: Pending invitations associated with this team.
roles:
type: array
items:
$ref: '#/components/schemas/api.auth.Role'
description: Roles assigned to this team.
api.auth.GetTeamsResponse:
type: object
properties:
teams:
type: array
items:
$ref: '#/components/schemas/api.auth.Team'
description: The list of teams in the specified organization.
pagination:
allOf:
- $ref: '#/components/schemas/api.Pagination'
description: Pagination metadata for the response, including whether this is the last page of results.
securitySchemes:
BearerAuth:
type: http
scheme: bearer
description: CloudBees Unify API access token or personal access token
x-tagGroups:
- name: Unify core
tags:
- Components
- Edge runners
- Environments
- Organizations
- Runs
- Teams
- Users
- name: Feature management
tags:
- Flags
- Flag configurations
- Flag custom properties
- Target groups
- Flag lifecycle
x-provenance:
method: harvested
publisher: CloudBees
source: https://apidocs.cloudbees.io/openapi-classic.yaml
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)