> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flowengineering.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Evaluate entity stage gates for a branch merge

> Returns the per-entity stage-gate violations that would block merging this branch right now (multi-step promotions, missing reviewers, missing approvals). Empty list = stage gates satisfied.



## OpenAPI

````yaml /openapi/customer-api.json get /project/{projectId}/branch/{id}/stage-gate-status
openapi: 3.0.0
info:
  contact: {}
  description: >-
    Flow customer API reference. Start with the [quickstart](/api/quickstart)
    and [authentication guide](/api/authentication).
  title: Customer API
  version: 1.0.0
servers:
  - description: Flow API
    url: https://backend.branch.flowengineering.com
security: []
tags:
  - name: Automations
  - name: Branches
  - name: Comments
  - name: Convert
  - name: Data Model
  - name: Diagrams
  - name: Entities
  - name: Files
  - name: Import
  - name: Notifications
  - name: Projects
  - name: ReqIF
  - name: ReqIF Import
  - name: Shared Access Grants
  - name: User Groups
  - name: Users
paths:
  /project/{projectId}/branch/{id}/stage-gate-status:
    get:
      tags:
        - Branches
      summary: Evaluate entity stage gates for a branch merge
      description: >-
        Returns the per-entity stage-gate violations that would block merging
        this branch right now (multi-step promotions, missing reviewers, missing
        approvals). Empty list = stage gates satisfied.
      operationId: BranchController_stageGateStatus
      parameters:
        - in: path
          name: projectId
          required: true
          schema:
            description: >-
              Project UUID, not a slug. Resolve a slug with GET
              /project/slug/{slug} using the same workspace and credentials,
              then pass the returned id.
            type: string
        - in: path
          name: id
          required: true
          schema:
            type: string
        - description: Workspace identifier
          in: header
          name: customer
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StageGateStatusResponseDto'
          description: ''
      security:
        - api-key: []
        - bearer: []
components:
  schemas:
    StageGateStatusResponseDto:
      properties:
        evaluated_entity_count:
          type: number
        evaluation_complete:
          type: boolean
        item_reviewer_groups:
          items:
            $ref: '#/components/schemas/ItemReviewerGroupDto'
          type: array
        item_reviewers:
          items:
            $ref: '#/components/schemas/ItemReviewerDto'
          type: array
        not_ready_reason:
          enum:
            - projection_warming
          type: string
        progress_percent:
          type: number
        reviewer_groups:
          items:
            $ref: '#/components/schemas/StageReviewerGroupDto'
          type: array
        stage_reviewers:
          items:
            $ref: '#/components/schemas/StageReviewerDto'
          type: array
        total_entity_count:
          type: number
        violations:
          items:
            $ref: '#/components/schemas/StageGateViolationDto'
          type: array
        violations_truncated:
          type: boolean
      required:
        - violations
        - violations_truncated
        - item_reviewers
        - stage_reviewers
        - reviewer_groups
        - item_reviewer_groups
        - evaluation_complete
        - progress_percent
        - evaluated_entity_count
        - total_entity_count
      type: object
    ItemReviewerGroupDto:
      properties:
        available_member_ids:
          items:
            type: string
          type: array
        group_id:
          type: string
        is_optional:
          type: boolean
        member_ids:
          items:
            type: string
          type: array
        sources:
          items:
            $ref: '#/components/schemas/ItemReviewerSourceDto'
          type: array
        sources_truncated:
          type: boolean
      required:
        - group_id
        - member_ids
        - available_member_ids
      type: object
    ItemReviewerDto:
      properties:
        group_id:
          type: string
        is_available:
          type: boolean
        is_designated:
          type: boolean
        is_optional:
          type: boolean
        sources:
          items:
            $ref: '#/components/schemas/ItemReviewerSourceDto'
          type: array
        sources_truncated:
          type: boolean
        user_id:
          type: string
      required:
        - user_id
        - is_designated
      type: object
    StageReviewerGroupDto:
      properties:
        available_member_ids:
          items:
            type: string
          type: array
        gate_rigour:
          enum:
            - any
            - all
          type: string
        group_id:
          type: string
        member_ids:
          items:
            type: string
          type: array
        sources:
          items:
            $ref: '#/components/schemas/StageReviewerSourceDto'
          type: array
        sources_truncated:
          type: boolean
      required:
        - group_id
        - member_ids
        - available_member_ids
        - gate_rigour
      type: object
    StageReviewerDto:
      properties:
        is_available:
          type: boolean
        is_designated:
          type: boolean
        is_individual:
          type: boolean
        sources:
          items:
            $ref: '#/components/schemas/StageReviewerSourceDto'
          type: array
        sources_truncated:
          type: boolean
        user_id:
          type: string
      required:
        - user_id
        - is_designated
      type: object
    StageGateViolationDto:
      properties:
        approvals_needed:
          type: number
        entity_id:
          type: string
        entity_name:
          type: string
        from_stage:
          type: string
        gate_direction:
          enum:
            - in
            - out
          type: string
        gate_stage:
          type: string
        has_reviewer_groups:
          type: boolean
        kind:
          enum:
            - multi_step
            - no_reviewers
            - missing_approvals
            - forbidden_transition
            - locked
          type: string
        pending_reviewer_ids:
          items:
            type: string
          type: array
        to_stage:
          type: string
        unavailable_reviewer_ids:
          items:
            type: string
          type: array
      required:
        - entity_id
        - entity_name
        - kind
        - from_stage
        - to_stage
        - pending_reviewer_ids
        - unavailable_reviewer_ids
        - approvals_needed
      type: object
    ItemReviewerSourceDto:
      properties:
        entity_id:
          type: string
        entity_name:
          type: string
      required:
        - entity_id
        - entity_name
      type: object
    StageReviewerSourceDto:
      properties:
        entity_id:
          type: string
        entity_name:
          type: string
        from_stage:
          type: string
        to_stage:
          type: string
      required:
        - entity_id
        - entity_name
        - from_stage
        - to_stage
      type: object
  securitySchemes:
    api-key:
      in: header
      name: X-API-Key
      type: apiKey
    bearer:
      bearerFormat: JWT
      scheme: bearer
      type: http

````