Harness Feature Flags API

APIs to create and manage Feature Flags

Operations 8

GET /cf/admin/features Returns all Feature Flags for the project #
POST /cf/admin/features Creates a Feature Flag #
DELETE /cf/admin/features/{identifier} Delete a Feature Flag #
GET /cf/admin/features/{identifier} Returns a Feature Flag #
PATCH /cf/admin/features/{identifier} Updates a Feature Flag #
PUT /cf/admin/features/{identifier} Updates a Feature Flag #
GET /cf/admin/features/{identifier}/dependants Return a list of dependant flags #
POST /cf/admin/features/{identifier}/restore Restore a Feature Flag #

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/harness-feature-flags-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 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

harness-feature-flags-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Harness Feature Flags API
  version: '1.0'
  description: The Harness Software Delivery Platform uses OpenAPI Specification v3.0.
  contact:
    name: API Support
    email: contact@harness.io
    url: https://harness.io/
  x-logo:
    url: https://mma.prnewswire.com/media/779232/Harnes_logo_horizontal.jpg?p=facebook
    altText: Harness
  termsOfService: https://harness.io/terms-of-use/
servers:
- url: https://app.harness.io
  description: Harness host URL
- url: https://{vanity}
  description: Vanity URL
  variables:
    vanity:
      default: app.harness.io
security:
- x-api-key: []
tags:
- description: APIs to create and manage Feature Flags
  name: Feature Flags
paths:
  /cf/admin/features:
    get:
      description: Returns all the Feature Flag details for the given project
      operationId: GetAllFeatures
      parameters:
      - $ref: '#/components/parameters/accountQueryParam'
      - $ref: '#/components/parameters/orgQueryParam'
      - $ref: '#/components/parameters/projectQueryParam'
      - $ref: '#/components/parameters/environmentOptionalQueryParam'
      - $ref: '#/components/parameters/pageNumber'
      - $ref: '#/components/parameters/pageSize'
      - $ref: '#/components/parameters/sortOrder'
      - $ref: '#/components/parameters/sortByField'
      - $ref: '#/components/parameters/nameQueryParam'
      - $ref: '#/components/parameters/identifierQueryParam'
      - $ref: '#/components/parameters/archivedQueryParam'
      - $ref: '#/components/parameters/kindQueryParam'
      - $ref: '#/components/parameters/targetOptionalParam'
      - $ref: '#/components/parameters/targetFilterOptionalParam'
      - $ref: '#/components/parameters/featuresOptionalParam'
      - $ref: '#/components/parameters/excludedFeaturesOptionalParam'
      - $ref: '#/components/parameters/flagStatus'
      - $ref: '#/components/parameters/flagLifetime'
      - $ref: '#/components/parameters/flagEnabled'
      - $ref: '#/components/parameters/flagCounts'
      - $ref: '#/components/parameters/flagSummary'
      - $ref: '#/components/parameters/flagTags'
      responses:
        '200':
          $ref: '#/components/responses/FeaturesResponse'
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Returns all Feature Flags for the project
      tags:
      - Feature Flags
    post:
      description: Creates a Feature Flag in the Project
      operationId: CreateFeatureFlag
      parameters:
      - $ref: '#/components/parameters/accountQueryParam'
      - $ref: '#/components/parameters/orgQueryParam'
      requestBody:
        $ref: '#/components/requestBodies/FeatureFlagRequest'
      responses:
        '201':
          $ref: '#/components/responses/FeatureEditResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/Unauthorized'
        '409':
          $ref: '#/components/responses/Conflict'
        '424':
          $ref: '#/components/responses/GitSyncError'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Creates a Feature Flag
      tags:
      - Feature Flags
  /cf/admin/features/{identifier}:
    delete:
      description: Delete Feature Flag for the given identifier and account ID
      operationId: DeleteFeatureFlag
      parameters:
      - $ref: '#/components/parameters/identifier'
      - $ref: '#/components/parameters/accountQueryParam'
      - $ref: '#/components/parameters/orgQueryParam'
      - $ref: '#/components/parameters/projectQueryParam'
      - $ref: '#/components/parameters/commitMsgQueryParam'
      - $ref: '#/components/parameters/forceDeleteQueryParam'
      responses:
        '204':
          description: No content
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '424':
          $ref: '#/components/responses/GitSyncError'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Delete a Feature Flag
      tags:
      - Feature Flags
    get:
      description: Returns details such as Variation name, identifier etc for the given Feature Flag
      operationId: GetFeatureFlag
      parameters:
      - $ref: '#/components/parameters/identifier'
      - $ref: '#/components/parameters/accountQueryParam'
      - $ref: '#/components/parameters/orgQueryParam'
      - $ref: '#/components/parameters/projectQueryParam'
      - $ref: '#/components/parameters/environmentOptionalQueryParam'
      - $ref: '#/components/parameters/archivedQueryParam'
      responses:
        '200':
          $ref: '#/components/responses/FeatureResponse'
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Returns a Feature Flag
      tags:
      - Feature Flags
    patch:
      description: 'This operation is used to modify a Feature Flag. The request body can include one or more instructions that can modify

        flag attributes such as the state (off|on), the variations that are returned and serving rules.

        For example if you want to turn a flag off you can use this opeartion and send the setFeatureFlagState


        {

        "kind": "setFeatureFlagState",

        "parameters": {

        "state": "off"

        }

        }'
      operationId: PatchFeature
      parameters:
      - $ref: '#/components/parameters/identifier'
      - $ref: '#/components/parameters/accountQueryParam'
      - $ref: '#/components/parameters/orgQueryParam'
      - $ref: '#/components/parameters/projectQueryParam'
      - $ref: '#/components/parameters/environmentOptionalQueryParam'
      requestBody:
        $ref: '#/components/requestBodies/FeaturePatchRequest'
      responses:
        '200':
          $ref: '#/components/responses/FeatureEditResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '424':
          $ref: '#/components/responses/GitSyncError'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Updates a Feature Flag
      tags:
      - Feature Flags
    put:
      description: Updates a Feature Flag in the Project
      operationId: PutFeatureFlag
      parameters:
      - $ref: '#/components/parameters/identifier'
      - $ref: '#/components/parameters/accountQueryParam'
      - $ref: '#/components/parameters/orgQueryParam'
      - $ref: '#/components/parameters/projectQueryParam'
      requestBody:
        $ref: '#/components/requestBodies/FeatureFlagPutRequest'
      responses:
        '200':
          $ref: '#/components/responses/FeatureEditResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '424':
          $ref: '#/components/responses/GitSyncError'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Updates a Feature Flag
      tags:
      - Feature Flags
  /cf/admin/features/{identifier}/dependants:
    get:
      description: Given identifier return list all the flags which depend on it.
      operationId: GetDependentFeatures
      parameters:
      - $ref: '#/components/parameters/identifier'
      - $ref: '#/components/parameters/accountQueryParam'
      - $ref: '#/components/parameters/orgQueryParam'
      - $ref: '#/components/parameters/projectQueryParam'
      - $ref: '#/components/parameters/environmentOptionalQueryParam'
      - $ref: '#/components/parameters/pageNumber'
      - $ref: '#/components/parameters/pageSize'
      - $ref: '#/components/parameters/sortOrder'
      - $ref: '#/components/parameters/sortByField'
      - $ref: '#/components/parameters/nameQueryParam'
      - $ref: '#/components/parameters/archivedQueryParam'
      - $ref: '#/components/parameters/kindQueryParam'
      - $ref: '#/components/parameters/targetOptionalParam'
      - $ref: '#/components/parameters/targetFilterOptionalParam'
      - $ref: '#/components/parameters/metricsOptionalParam'
      - $ref: '#/components/parameters/featuresOptionalParam'
      - $ref: '#/components/parameters/excludedFeaturesOptionalParam'
      - $ref: '#/components/parameters/flagStatus'
      - $ref: '#/components/parameters/flagLifetime'
      - $ref: '#/components/parameters/flagEnabled'
      - $ref: '#/components/parameters/flagCounts'
      - $ref: '#/components/parameters/flagSummary'
      - $ref: '#/components/parameters/flagTags'
      responses:
        '200':
          $ref: '#/components/responses/FeaturesResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Return a list of dependant flags
      tags:
      - Feature Flags
  /cf/admin/features/{identifier}/restore:
    post:
      description: Restore Feature Flag for the given identifier and account ID
      operationId: RestoreFeatureFlag
      parameters:
      - $ref: '#/components/parameters/identifier'
      - $ref: '#/components/parameters/accountQueryParam'
      - $ref: '#/components/parameters/orgQueryParam'
      - $ref: '#/components/parameters/projectQueryParam'
      - $ref: '#/components/parameters/commitMsgQueryParam'
      responses:
        '204':
          description: No content
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '424':
          $ref: '#/components/responses/GitSyncError'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Restore a Feature Flag
      tags:
      - Feature Flags
components:
  parameters:
    metricsOptionalParam:
      description: Parameter to indicate if metrics data is requested in response
      in: query
      name: metrics
      schema:
        type: boolean
    flagLifetime:
      description: Filter for flags based on their lifetime (permanent/temporary)
      in: query
      name: lifetime
      schema:
        type: string
    targetFilterOptionalParam:
      allowEmptyValue: true
      description: Identifier of the target to filter on
      in: query
      name: targetIdentifierFilter
      schema:
        type: string
    accountQueryParam:
      description: Account Identifier
      examples:
        default:
          value: default
      in: query
      name: accountIdentifier
      required: true
      schema:
        type: string
    flagTags:
      description: Filter for flags based on their tag values supplied as comma separated list
      in: query
      name: tags
      schema:
        type: string
    pageSize:
      description: PageSize
      in: query
      name: pageSize
      schema:
        type: integer
    flagCounts:
      description: Returns counts for the different types of flags e.g num active, potentially-stale, recently-accessed etc
      in: query
      name: flagCounts
      schema:
        type: boolean
    sortByField:
      description: SortByField
      in: query
      name: sortByField
      schema:
        enum:
        - name
        - identifier
        - archived
        - kind
        - modifiedAt
        type: string
    kindQueryParam:
      description: Kind of the feature flag
      in: query
      name: kind
      schema:
        enum:
        - json
        - string
        - int
        - boolean
        type: string
    identifierQueryParam:
      description: Identifier of the field
      in: query
      name: identifier
      schema:
        type: string
    sortOrder:
      description: SortOrder
      in: query
      name: sortOrder
      schema:
        enum:
        - ASCENDING
        - DESCENDING
        type: string
    forceDeleteQueryParam:
      description: Permanently deletes the the feature flag
      in: query
      name: forceDelete
      schema:
        type: boolean
    commitMsgQueryParam:
      allowEmptyValue: true
      description: Git commit message
      in: query
      name: commitMsg
      schema:
        type: string
    orgQueryParam:
      description: Organization Identifier
      examples:
        default:
          value: default_org
      in: query
      name: orgIdentifier
      required: true
      schema:
        type: string
    archivedQueryParam:
      description: Status of the feature flag
      in: query
      name: archived
      schema:
        type: boolean
    featuresOptionalParam:
      description: Comma separated identifiers for multiple Features
      in: query
      name: featureIdentifiers
      schema:
        type: string
    flagSummary:
      description: Returns summary info on flags if set to true
      in: query
      name: summary
      schema:
        type: boolean
    nameQueryParam:
      allowEmptyValue: true
      description: Name of the field
      in: query
      name: name
      schema:
        type: string
    targetOptionalParam:
      allowEmptyValue: true
      description: Identifier of a target
      in: query
      name: targetIdentifier
      schema:
        type: string
    excludedFeaturesOptionalParam:
      allowEmptyValue: true
      description: Comma separated identifiers to exclude from the response
      in: query
      name: excludedFeatures
      schema:
        type: string
    projectQueryParam:
      description: The Project identifier
      in: query
      name: projectIdentifier
      required: true
      schema:
        type: string
    pageNumber:
      description: PageNumber
      in: query
      name: pageNumber
      schema:
        type: integer
    identifier:
      description: Unique identifier for the object in the API.
      in: path
      name: identifier
      required: true
      schema:
        type: string
    flagEnabled:
      description: Filter for flags based on if they are enabled or disabled
      in: query
      name: enabled
      schema:
        type: boolean
    environmentOptionalQueryParam:
      allowEmptyValue: true
      description: Environment
      in: query
      name: environmentIdentifier
      schema:
        type: string
    flagStatus:
      description: Filter for flags based on their status (active,never-requested,recently-accessed,potentially-stale)
      in: query
      name: status
      schema:
        type: string
  schemas:
    FeatureCounts:
      properties:
        totalActive:
          description: The total number of flags with a active status in a project/environment
          example: 5
          type: integer
        totalAnomaly:
          description: The total number of flags with an unacknowledged anomaly status in the project/environment
          example: 4
          type: integer
        totalArchived:
          description: The total number of archived flags in the project/environment
          example: 10
          type: integer
        totalEnabled:
          description: The total number of flags that are turned on in a project/environment
          example: 2
          type: integer
        totalFeatures:
          description: The total number of flags in the project/environment
          example: 10
          type: integer
        totalPermanent:
          description: The total number of permanent flags in a project/environment
          example: 7
          type: integer
        totalPotentiallyStale:
          description: The total number of flags with a potentially-stale status in a project/environment
          example: 3
          type: integer
        totalRecentlyAccessed:
          description: The total number of flags with a recently-accessed status in a project/environment
          example: 2
          type: integer
      type: object
    Serve:
      description: Describe the distribution rule and the variation that should be served to the target
      properties:
        distribution:
          $ref: '#/components/schemas/Distribution'
        variation:
          type: string
      type: object
    Features:
      allOf:
      - $ref: '#/components/schemas/Pagination'
      - properties:
          featureCounts:
            $ref: '#/components/schemas/FeatureCounts'
          features:
            items:
              $ref: '#/components/schemas/Feature'
            type: array
      description: A list of Feature Flags
      type: object
    GitSyncPatchOperation:
      properties:
        comment:
          description: A comment explaining the reason for this patch operation
          example: This is a comment string
          type: string
        executionTime:
          description: Time of execution in unix epoch milliseconds when the scheduled changes will be applied
          type: integer
        gitDetails:
          $ref: '#/components/schemas/CfGitDetails'
        instructions:
          $ref: '#/components/schemas/PatchInstruction'
      required:
      - instructions
      type: object
    FeaturePipeline:
      description: A pipeline configured to update a feature
      properties:
        createdAt:
          description: creation date in milliseconds
          type: integer
        description:
          description: The description of the pipeline
          type: string
        identifier:
          description: The identifier of the pipeline
          type: string
        lastUpdatedAt:
          description: last updated date in milliseconds
          type: integer
        name:
          description: The name of the pipeline
          type: string
      required:
      - identifier
      - name
      type: object
    Results:
      description: This result object shows details of how many times a variation has been evaluated
      properties:
        count:
          description: The number of times this variation has been returned in a evaluation
          type: integer
        variationIdentifier:
          description: The unique variation identifier
          example: defaultOnVariation
          type: string
        variationName:
          description: The user friendly variation name
          example: Default On Variation
          type: string
      required:
      - variationIdentifier
      - variationName
      - count
      type: object
    CfService:
      description: A Harness service linked to a flag
      properties:
        identifier:
          description: The identifier of the service
          type: string
        name:
          description: The name of the service
          type: string
      required:
      - name
      - identifier
      type: object
    FeatureState:
      description: The state of a flag either off or on
      enum:
      - 'on'
      - 'off'
      type: string
    VariationMap:
      description: A mapping of variations to targets and target groups (segments).  The targets listed here should receive this variation.
      properties:
        targetSegments:
          description: A list of target groups (segments)
          items:
            type: string
          type: array
        targets:
          description: A list of target mappings
          items:
            $ref: '#/components/schemas/TargetMap'
          type: array
        variation:
          description: The variation identifier
          example: off-variation
          type: string
      required:
      - variation
      type: object
    PatchInstruction:
      description: A list of Patch Instructions
      items:
        properties:
          kind:
            description: The name of the modification you would like to perform on a resource.
            example: enableFeatureFlag
            type: string
          parameters:
            example:
              ruleId: TestRule
              variationID: TestVariation
            type: object
        required:
        - kind
        - parameters
      type: array
    Pagination:
      properties:
        itemCount:
          description: The total number of items
          example: 1
          type: integer
        pageCount:
          description: The total number of pages
          example: 100
          type: integer
        pageIndex:
          description: The current page
          example: 0
          type: integer
        pageSize:
          description: The number of items per page
          example: 1
          type: integer
        version:
          description: The version of this object.  The version will be incremented each time the object is modified
          example: 5
          type: integer
      required:
      - pageCount
      - itemCount
      - pageSize
      - pageIndex
      type: object
    JiraIssue:
      description: A Jira Issue
      properties:
        issueKey:
          description: The Jira Issue key
          example: FFM-7777
          type: string
        issueURL:
          description: The jira issue URL
          example: https://harness-dev1.atlassian.net
          type: string
      required:
      - issueKey
      - issueURL
      type: object
    TargetRulesUpdate:
      description: An object used to specify updates for flag activation updates
      properties:
        targets:
          description: The target rules that should be set for this variation
          example:
          - target1
          - target2
          items:
            type: string
          type: array
        variation:
          description: The name of the variation these rules apply to
          example: true
          type: string
      required:
      - variation
      type: object
    Distribution:
      description: Describes a distribution rule
      properties:
        bucketBy:
          description: The attribute to use when distributing targets across buckets
          type: string
        variations:
          description: A list of variations and the weight that should be given to each
          items:
            $ref: '#/components/schemas/WeightedVariation'
          type: array
      required:
      - bucketBy
      - variations
      type: object
    WeightedVariation:
      description: A variation and the weighting it should receive as part of a percentage rollout
      properties:
        variation:
          description: The variation identifier
          example: off-variation
          type: string
        weight:
          description: The weight to be given to the variation in percent
          example: 50
          type: integer
      required:
      - variation
      - weight
      type: object
    Feature:
      description: A Feature Flag response
      properties:
        archived:
          description: Indicates if the flag has been archived and is no longer used
          example: false
          type: boolean
        createdAt:
          description: The date the flag was created in milliseconds
          format: int64
          type: integer
        defaultOffVariation:
          description: The default value returned when a flag is off
          example: true
          type: string
        defaultOnVariation:
          description: The default value returned when a flag is on
          example: true
          type: string
        description:
          description: A description for this flag
          example: A flag to control a new feature in production
          type: string
        envProperties:
          description: The Feature Flag rules for a given environment
          properties:
            ccm:
              $ref: '#/components/schemas/CCM'
            defaultServe:
              $ref: '#/components/schemas/Serve'
            environment:
              description: The environment identifier
              type: string
            jiraEnabled:
              description: Indicates whether jira functionality is enabled for the given account, project, org, and environment
              type: boolean
            jiraIssues:
              description: An array of Jira Issues linked to this Feature. Returns empty if none exist
              items:
                $ref: '#/components/schemas/JiraIssue'
              type: array
            modifiedAt:
              description: The last time the flag was modified in this environment
              format: int64
              type: integer
            offVariation:
              description: The variation to serve for this flag in this environment when the flag is off
              type: string
            pipelineConfigured:
              type: boolean
            pipelineDetails:
              $ref: '#/components/schemas/FeaturePipeline'
            pipelineErrorReason:
              type: string
            pipelineErrorState:
              type: boolean
            rules:
              description: A list of rules to use when evaluating this flag in this environment
              items:
                $ref: '#/components/schemas/ServingRule'
              type: array
            state:
              $ref: '#/components/schemas/FeatureState'
            variationMap:
              description: A list of the variations that will be served to specific targets or target groups in an environment.
              items:
                $ref: '#/components/schemas/VariationMap'
              type: array
            version:
              description: The version of the flag.  This is incremented each time it is changed
              format: int64
              type: integer
          required:
          - state
          - defaultServe
          - environment
          - offVariation
          - pipelineConfigured
          type: object
        evaluation:
          description: The value that the flag will return for the current user
          example: true
          type: string
        evaluationIdentifier:
          description: The identifier for the returned evaluation
          example: on-variation
          type: string
        identifier:
          description: The Feature Flag identifier
          example: bool-flag
          type: string
        kind:
          description: The type of Feature flag
          enum:
          - boolean
          - int
          - string
          - json
          example: boolean
          type: string
        modifiedAt:
          description: The date the flag was last modified in milliseconds
          format: int64
          type: integer
        name:
          description: The name of the Feature Flag
          example: My Boolean Flag
          type: string
        owner:
          description: The user who created the flag
          example: johndoe
          items:
            type: string
          type: array
        permanent:
          description: Indicates if this is a permanent flag, or one that should expire
          example: true
          type: boolean
        prerequisites:
          items:
            $ref: '#/components/schemas/Prerequisite'
          type: array
        project:
          description: The project this Feature belongs to
          example: test-project
          type: string
        results:
          description: The results shows which variations have been evaluated, and how many times each of these have been evaluated.
          items:
            $ref: '#/components/schemas/Results'
          type: array
        services:
          description: A list of services linked to this Feature Flag
          items:
            $ref: '#/components/schemas/CfService'
          type: array
        stale:
          description: Whether the flag is stale or not
          example: false
          type: boolean
        staleReason:
          description: The reason that the flag was marked as stale
          example: matched-criteria
          type: string
        tags:
          description: A list of tags for this Feature Flag
          items:
            $ref: '#/components/schemas/Tag'
          type: array
        variations:
          description: The variations that can be returned for this flag
          items:
            $ref: '#/components/schemas/Variation'
          minItems: 2
          type: array
      required:
      - project
      - identifier
      - createdAt
      - kind
      - name
      - variations
      - defaultOnVariation
      - defaultOffVariation
      type: object
    ActivationUpdate:
      description: An object used to specify updates for flag activation updates
      properties:
        defaultOffVariation:
          description: The default variation to serve when the flag is disabled in this environment
          example: red
          type: string
        defaultOnVariation:
          description: The default variation to serve when the flag is enabled in this environment
          example: blue
          type: string
        identifier:
          description: The name of the environment
          example: env1
          type: string
        rules:
          items:
            $ref: '#/components/schemas/TargetRulesUpdate'
          type: array
        state:
          description: The state of the flag in this environment i.e. "on" or "off"
          example: 'on'
          type: string
      required:
      - identifier
      type: object
    CfError:
      properties:
        code:
          description: The http error code
          example: 404
          type: string
        details:
          description: Additional details about the error
          type: object
        message:
          description: The reason the request failed
          example: Error retrieving projects, organization 'default_org' does not exist
          type: string
      required:
      - code
      - message
      type: object
    Tag:
      description: A Tag object used to tag feature flags - consists of name and identifier
      properties:
        identifier:
          description: The identifier of the tag
          example: feature-flag-tag-1
          type: string
        name:
          description: The name of the tag
          example: feature-flag-tag-1
          type: string
      required:
      - name
      - identifier
      type: object
    ServingRule:
      description: The rule used to determine what variation to serve to a target
      properties:
        clauses:
          description: A list of clauses to use in the rule
          items:
            $ref: '#/components/schemas/Clause'
          type: array
        priority:
          description: The rules priority relative to other rules.  The rules are evaluated in order with 1 being the highest
          example: 1
          type: integer
        ruleId:
          description: The unique identifier for this rule
          type: string
        serve:
          $ref: '#/components/schemas/Serve'
      required:
      - priority
      - clauses
      - serve
      type: object
    FeatureResponseMetadata:
      properties:
        details:
          description: Additional metadata about the request
          properties:
            governanceMetadata:
              description: Summary of governance checks including any warnings
              type: object
            pipelineMetadata:
              description: Info about the pipeline whether a pipeline was triggered
              properties:
                pipelineExecutionId:
                  description: The ID of the pipeline execution
                  type: string
             

# --- truncated at 32 KB (53 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/harness/refs/heads/main/openapi/harness-feature-flags-api-openapi.yml