Split Change Requests API

Manage change requests for controlled approval workflows when modifying feature flag definitions.

OpenAPI Specification

split-change-requests-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Split Admin Change Requests API
  description: The Split Admin API is a REST API that enables programmatic management of workspaces (projects), environments, traffic types, attributes, users, groups, API keys, and change requests within the Split platform (now Harness Feature Management and Experimentation). The API uses resource-oriented URLs, returns JSON responses, and requires Admin API keys for authentication. All endpoints are prefixed with /internal/api/v2 on the api.split.io host.
  version: '2.0'
  contact:
    name: Split Support
    url: https://help.split.io
  termsOfService: https://www.split.io/terms-of-service/
servers:
- url: https://api.split.io/internal/api/v2
  description: Production Server
security:
- bearerAuth: []
tags:
- name: Change Requests
  description: Manage change requests for controlled approval workflows when modifying feature flag definitions.
paths:
  /changeRequests:
    get:
      operationId: listChangeRequests
      summary: List change requests
      description: Retrieves all change requests, which represent pending modifications to feature flag definitions that require approval before being applied.
      tags:
      - Change Requests
      parameters:
      - $ref: '#/components/parameters/limitParam'
      - $ref: '#/components/parameters/offsetParam'
      - name: status
        in: query
        description: Filter by change request status
        schema:
          type: string
          enum:
          - OPEN
          - APPROVED
          - DECLINED
          - APPLIED
          - CANCELLED
      responses:
        '200':
          description: Successful response containing list of change requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChangeRequestList'
        '401':
          description: Unauthorized - invalid or missing API key
  /changeRequests/{changeRequestId}/approve:
    put:
      operationId: approveChangeRequest
      summary: Approve change request
      description: Approves a pending change request, allowing the proposed feature flag definition changes to be applied.
      tags:
      - Change Requests
      parameters:
      - name: changeRequestId
        in: path
        required: true
        description: The unique identifier of the change request
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                comment:
                  type: string
                  description: Optional approval comment
      responses:
        '200':
          description: Change request approved successfully
        '401':
          description: Unauthorized - invalid or missing API key
        '404':
          description: Change request not found
components:
  schemas:
    User:
      type: object
      description: A user within the Split account
      properties:
        id:
          type: string
          description: Unique identifier for the user
        email:
          type: string
          format: email
          description: Email address of the user
        name:
          type: string
          description: Full name of the user
        status:
          type: string
          description: Current status of the user
          enum:
          - ACTIVE
          - DEACTIVATED
          - PENDING
        type:
          type: string
          description: User type or role
        groups:
          type: array
          description: Groups the user belongs to
          items:
            $ref: '#/components/schemas/GroupRef'
    ChangeRequestList:
      type: object
      description: Paginated list of change requests
      properties:
        objects:
          type: array
          items:
            $ref: '#/components/schemas/ChangeRequest'
        offset:
          type: integer
          description: Current offset in the result set
        limit:
          type: integer
          description: Maximum number of results returned
        totalCount:
          type: integer
          description: Total number of change requests available
    ChangeRequest:
      type: object
      description: A change request representing a pending modification to a feature flag definition that requires approval.
      properties:
        id:
          type: string
          description: Unique identifier for the change request
        status:
          type: string
          description: Current status of the change request
          enum:
          - OPEN
          - APPROVED
          - DECLINED
          - APPLIED
          - CANCELLED
        title:
          type: string
          description: Title of the change request
        comment:
          type: string
          description: Comment describing the proposed change
        split:
          type: string
          description: Name of the feature flag being modified
        environment:
          type: string
          description: Environment in which the change is proposed
        operationType:
          type: string
          description: Type of operation being requested
        createdAt:
          type: integer
          format: int64
          description: Timestamp of when the change request was created
        approvers:
          type: array
          description: Users who can approve the change request
          items:
            $ref: '#/components/schemas/User'
    GroupRef:
      type: object
      description: A reference to a group
      properties:
        id:
          type: string
          description: Unique identifier of the referenced group
        type:
          type: string
          description: Type of the group reference
  parameters:
    limitParam:
      name: limit
      in: query
      description: Maximum number of results to return per page
      schema:
        type: integer
        minimum: 1
        maximum: 200
        default: 20
    offsetParam:
      name: offset
      in: query
      description: Number of results to skip for pagination
      schema:
        type: integer
        minimum: 0
        default: 0
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Admin API key passed as a Bearer token in the Authorization header.
externalDocs:
  description: Split Admin API Documentation
  url: https://docs.split.io/reference/introduction