CloudBees Flag custom properties API

Create, read, update, and delete custom properties used in targeting conditions and target groups.

Business capability
Feature Flag Management BC-4210.50

Operations 8

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /v2/applications/{applicationId}/custom-properties List custom properties in an application · List custom properties #
Ask an LLM
“Which custom properties can I use in flag targeting for my application?”
“What custom properties have been defined so far?”
Tell an agent
List the custom properties in application {applicationId}.
Show all targeting properties defined for app {applicationId}.
POST /v2/applications/{applicationId}/custom-properties Create a custom property for targeting · Create a custom property #
Ask an LLM
“How do I add a new custom property to target flags on, like a user's plan?”
“Which data types can a custom property have?”
Tell an agent
Create a custom property named {name} of type {type} in app {applicationId}.
Add custom property {name} to application {applicationId} described as {description}.
GET /v2/applications/{applicationId}/custom-properties/by-name/{name} Look up a custom property by name · Get a custom property by name #
Ask an LLM
“Can I fetch a custom property if I only know its name?”
“What type is the custom property called 'country'?”
Tell an agent
Find the custom property named {name} in application {applicationId}.
Look up custom property {name} by name in app {applicationId}.
GET /v2/applications/{applicationId}/custom-properties/{id} Get a custom property by ID · Get a custom property #
Ask an LLM
“How do I retrieve a custom property when I have its ID?”
“What description and type does a given custom property ID have?”
Tell an agent
Get custom property {id} in application {applicationId}.
Show the details of custom property ID {id} for app {applicationId}.
PUT /v2/applications/{applicationId}/custom-properties/{id} Replace a custom property's settings · Update a custom property #
Ask an LLM
“How do I change the type or description of an existing custom property?”
“Are fields I leave out reset when I update a custom property?”
Tell an agent
Update custom property {id} in app {applicationId} to type {type}.
Rename existing custom property {id} in application {applicationId} to {name}.
DELETE /v2/applications/{applicationId}/custom-properties/{id} Delete a custom property · Delete a custom property #
Ask an LLM
“How do I permanently remove a custom property I no longer use?”
“Can a deleted custom property be recovered?”
Tell an agent destructive · confirm first
Delete custom property {id} from application {applicationId}.
Permanently remove custom property {id} in app {applicationId}.
GET /v2/applications/{applicationId}/custom-properties/{id}/flag-usage-per-environment See which flags use a custom property · Get flag usage per environment #
Ask an LLM
“Which feature flags reference a custom property, per environment?”
“Is a custom property still used by any flags before I delete it?”
Tell an agent
Show which flags use custom property {id} in each environment of app {applicationId}.
List per-environment flag usage of custom property {id} in application {applicationId}.
GET /v2/applications/{applicationId}/custom-properties/{id}/target-group-usage See which target groups use a custom property · Get target group usage #
Ask an LLM
“Which target groups rely on a particular custom property?”
“What target groups would be affected if I change a custom property?”
Tell an agent
List the target groups that reference custom property {id} in app {applicationId}.
Show target group usage for custom property {id} in application {applicationId}.

Documentation

Specifications

Schemas & Data

Other Resources

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/cloudbees:cloudbees-flag-custom-properties-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 Specification

cloudbees-flag-custom-properties-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: CloudBees Unify API (Current) Flag custom properties 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: Flag custom properties
  description: Create, read, update, and delete custom properties used in targeting conditions and target groups.
paths:
  /v2/applications/{applicationId}/custom-properties:
    get:
      tags:
      - Flag custom properties
      operationId: CustomPropertyApi_ListCustomProperties
      parameters:
      - name: applicationId
        in: path
        description: Unique identifier of the application whose custom properties are to be listed.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.CustomProperty.ListCustomPropertiesResponse'
        default:
          description: Default error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/google.rpc.Status'
      summary: List custom properties
      description: Returns all custom properties defined within the specified application.
    post:
      tags:
      - Flag custom properties
      operationId: CustomPropertyApi_AddCustomProperty
      parameters:
      - name: applicationId
        in: path
        description: Unique identifier of the application in which to create the custom property.
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/api.CustomProperty.CustomProperty'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.CustomProperty.AddCustomPropertyResponse'
        default:
          description: Default error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/google.rpc.Status'
      summary: Create a custom property
      description: Creates a new custom property within the specified application. Custom properties define additional attributes that can be used in feature flag targeting rules.
  /v2/applications/{applicationId}/custom-properties/by-name/{name}:
    get:
      tags:
      - Flag custom properties
      operationId: CustomPropertyApi_GetCustomPropertyByName
      parameters:
      - name: applicationId
        in: path
        description: Unique identifier of the application that owns the custom property.
        required: true
        schema:
          type: string
      - name: name
        in: path
        description: Name of the custom property to retrieve.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.CustomProperty.GetCustomPropertyResponse'
        default:
          description: Default error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/google.rpc.Status'
      summary: Get a custom property by name
      description: Returns a single custom property matching the specified name within the application. Use this endpoint when you have the property name but not its ID.
  /v2/applications/{applicationId}/custom-properties/{id}:
    get:
      tags:
      - Flag custom properties
      operationId: CustomPropertyApi_GetCustomProperty
      parameters:
      - name: applicationId
        in: path
        description: Unique identifier of the application that owns the custom property.
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: Unique identifier of the custom property to retrieve.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.CustomProperty.GetCustomPropertyResponse'
        default:
          description: Default error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/google.rpc.Status'
      summary: Get a custom property
      description: Returns a single custom property by its unique identifier within the specified application.
    put:
      tags:
      - Flag custom properties
      operationId: CustomPropertyApi_UpdateCustomProperty
      parameters:
      - name: applicationId
        in: path
        description: Unique identifier of the application that owns the custom property.
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: Unique identifier of the custom property to update.
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/api.CustomProperty.CustomProperty'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.CustomProperty.UpdateCustomPropertyResponse'
        default:
          description: Default error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/google.rpc.Status'
      summary: Update a custom property
      description: Replaces all fields of the specified custom property with the provided values. All fields in the request body are required; omitted fields are set to their default values.
    delete:
      tags:
      - Flag custom properties
      operationId: CustomPropertyApi_DeleteCustomProperty
      parameters:
      - name: applicationId
        in: path
        description: Unique identifier of the application that owns the custom property.
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: Unique identifier of the custom property to delete.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content: {}
        default:
          description: Default error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/google.rpc.Status'
      summary: Delete a custom property
      description: Permanently deletes the specified custom property. This action cannot be undone. Ensure the property is not referenced by any feature flag targeting rules before deleting.
  /v2/applications/{applicationId}/custom-properties/{id}/flag-usage-per-environment:
    get:
      tags:
      - Flag custom properties
      operationId: CustomPropertyApi_GetCustomPropertyFlagUsagePerEnvironment
      parameters:
      - name: applicationId
        in: path
        description: Unique identifier of the application that owns the custom property.
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: Unique identifier of the custom property to retrieve.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.CustomProperty.GetCustomPropertyFlagsUsagePerEnvironmentResponse'
        default:
          description: Default error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/google.rpc.Status'
      summary: Get flag usage per environment
      description: Returns a list of environments and the feature flags that reference this custom property in each environment. Use this to understand where a custom property is actively used before modifying or deleting it.
  /v2/applications/{applicationId}/custom-properties/{id}/target-group-usage:
    get:
      tags:
      - Flag custom properties
      operationId: CustomPropertyApi_GetCustomPropertyTargetGroupUsage
      parameters:
      - name: applicationId
        in: path
        description: Unique identifier of the application that owns the custom property.
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: Unique identifier of the custom property to retrieve.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.CustomProperty.GetCustomPropertyTargetGroupUsageResponse'
        default:
          description: Default error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/google.rpc.Status'
      summary: Get target group usage
      description: Returns the target groups that reference this custom property in their targeting rules. Use this to understand the impact of changes to a custom property before modifying or deleting it.
components:
  schemas:
    api.CustomProperty.ListCustomPropertiesResponse:
      type: object
      properties:
        customProperties:
          type: array
          items:
            $ref: '#/components/schemas/api.CustomProperty.CustomProperty'
          description: List of all custom properties defined within the application.
    api.CustomProperty.CustomProperty:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the custom property.
        name:
          type: string
          description: Name of the custom property as it appears in the UI and targeting rules.
        type:
          enum:
          - Boolean
          - String
          - Semver
          - Number
          - DateTime
          type: string
          description: 'Data type of the custom property. Valid values: Boolean, String, Semver, Number, DateTime.'
        description:
          type: string
          description: Human-readable description of the custom property's purpose.
        resourceId:
          type: string
          description: Identifier of the application that owns this custom property.
        cascUrl:
          type: string
          description: URL of the CasC (configuration-as-code) representation of this custom property.
    api.CustomProperty.AddCustomPropertyResponse:
      type: object
      properties:
        customProperty:
          allOf:
          - $ref: '#/components/schemas/api.CustomProperty.CustomProperty'
          description: The newly created custom property.
    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.CustomProperty.GetCustomPropertyFlagsUsagePerEnvironmentResponse:
      type: object
      properties:
        environments:
          type: array
          items:
            $ref: '#/components/schemas/api.TargetGroup.EnvironmentUsage'
          description: List of environments and the feature flags that reference this custom property in each environment.
    api.CustomProperty.GetCustomPropertyResponse:
      type: object
      properties:
        customProperty:
          allOf:
          - $ref: '#/components/schemas/api.CustomProperty.CustomProperty'
          description: The requested custom property.
    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.CustomProperty.GetCustomPropertyTargetGroupUsageResponse:
      type: object
      properties:
        targetGroupUsage:
          type: array
          items:
            $ref: '#/components/schemas/api.TargetGroup.TargetGroupUsage'
          description: List of target groups that reference this custom property in their targeting rules.
    api.TargetGroup.EnvironmentUsage:
      type: object
      properties:
        environmentId:
          type: string
          description: Unique identifier of the environment.
        flagUsage:
          type: array
          items:
            $ref: '#/components/schemas/api.TargetGroup.FlagUsageInEnvironment'
          description: Feature flags that reference the target group in this environment.
    api.TargetGroup.TargetGroupUsage:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the target group.
        name:
          type: string
          description: Display name of the target group.
        resourceId:
          type: string
          description: Unique identifier of the application that owns this target group.
    api.CustomProperty.UpdateCustomPropertyResponse:
      type: object
      properties:
        customProperty:
          allOf:
          - $ref: '#/components/schemas/api.CustomProperty.CustomProperty'
          description: The updated custom property.
    api.TargetGroup.FlagUsageInEnvironment:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the feature flag.
        name:
          type: string
          description: Display name of the feature flag.
        enabled:
          type: boolean
          description: Whether the feature flag is enabled in this environment.
        resourceId:
          type: string
          description: Unique identifier of the application that owns this feature flag.
  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)