Split Evaluation API

Endpoints for evaluating feature flags and retrieving treatment values for given keys and feature flag names.

OpenAPI Specification

split-evaluation-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Split Admin Evaluation 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: Evaluation
  description: Endpoints for evaluating feature flags and retrieving treatment values for given keys and feature flag names.
paths:
  /client/get-treatment:
    get:
      operationId: getTreatment
      summary: Get treatment for a feature flag
      description: Evaluates a single feature flag for the given key and returns the treatment value. Optionally includes dynamic configuration associated with the treatment. This is the primary endpoint for feature flag evaluation.
      tags:
      - Evaluation
      parameters:
      - name: key
        in: query
        required: true
        description: The customer key to evaluate the feature flag against
        schema:
          type: string
      - name: split-name
        in: query
        required: true
        description: The name of the feature flag to evaluate
        schema:
          type: string
      - name: bucketing-key
        in: query
        description: Optional bucketing key used for consistent percentage-based treatment assignments
        schema:
          type: string
      - name: attributes
        in: query
        description: JSON string of attributes used in targeting rule evaluation
        schema:
          type: string
      - name: impressions-disabled
        in: query
        description: When set to true, disables impression logging for this evaluation
        schema:
          type: boolean
      responses:
        '200':
          description: Successful evaluation response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TreatmentResult'
        '400':
          description: Missing or invalid parameters
        '500':
          description: Internal server error during evaluation
    post:
      operationId: getTreatmentWithAttributes
      summary: Get treatment with attributes
      description: Evaluates a single feature flag for the given key with attributes passed in the request body. This is preferred over the GET method when attributes contain complex or large data structures.
      tags:
      - Evaluation
      parameters:
      - name: key
        in: query
        required: true
        description: The customer key to evaluate the feature flag against
        schema:
          type: string
      - name: split-name
        in: query
        required: true
        description: The name of the feature flag to evaluate
        schema:
          type: string
      - name: bucketing-key
        in: query
        description: Optional bucketing key for consistent assignments
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EvaluationAttributes'
      responses:
        '200':
          description: Successful evaluation response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TreatmentResult'
        '400':
          description: Missing or invalid parameters
        '500':
          description: Internal server error during evaluation
  /client/get-treatments:
    get:
      operationId: getTreatments
      summary: Get treatments for multiple feature flags
      description: Evaluates multiple feature flags for the given key in a single request and returns the treatment values for each. More efficient than making individual get-treatment calls.
      tags:
      - Evaluation
      parameters:
      - name: key
        in: query
        required: true
        description: The customer key to evaluate feature flags against
        schema:
          type: string
      - name: split-names
        in: query
        required: true
        description: Comma-separated list of feature flag names to evaluate
        schema:
          type: string
      - name: bucketing-key
        in: query
        description: Optional bucketing key for consistent assignments
        schema:
          type: string
      - name: attributes
        in: query
        description: JSON string of attributes for targeting rule evaluation
        schema:
          type: string
      - name: impressions-disabled
        in: query
        description: When set to true, disables impression logging for these evaluations
        schema:
          type: boolean
      responses:
        '200':
          description: Successful evaluation response with multiple treatments
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TreatmentsResult'
        '400':
          description: Missing or invalid parameters
        '500':
          description: Internal server error during evaluation
    post:
      operationId: getTreatmentsWithAttributes
      summary: Get treatments with attributes
      description: Evaluates multiple feature flags for the given key with attributes passed in the request body.
      tags:
      - Evaluation
      parameters:
      - name: key
        in: query
        required: true
        description: The customer key to evaluate feature flags against
        schema:
          type: string
      - name: split-names
        in: query
        required: true
        description: Comma-separated list of feature flag names to evaluate
        schema:
          type: string
      - name: bucketing-key
        in: query
        description: Optional bucketing key for consistent assignments
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EvaluationAttributes'
      responses:
        '200':
          description: Successful evaluation response with multiple treatments
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TreatmentsResult'
        '400':
          description: Missing or invalid parameters
        '500':
          description: Internal server error during evaluation
  /client/get-all-treatments:
    get:
      operationId: getAllTreatments
      summary: Get all treatments for a key
      description: Evaluates all available feature flags for the given keys and traffic types and returns the treatment values. Useful for retrieving a complete set of flag evaluations for a user session.
      tags:
      - Evaluation
      parameters:
      - name: keys
        in: query
        required: true
        description: JSON string containing an array of key objects with matchingKey and trafficType properties, and optionally a bucketingKey
        schema:
          type: string
      - name: attributes
        in: query
        description: JSON string of attributes for targeting rule evaluation
        schema:
          type: string
      - name: impressions-disabled
        in: query
        description: When set to true, disables impression logging for these evaluations
        schema:
          type: boolean
      responses:
        '200':
          description: Successful response with treatments for all feature flags
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AllTreatmentsResult'
        '400':
          description: Missing or invalid parameters
        '500':
          description: Internal server error during evaluation
    post:
      operationId: getAllTreatmentsWithAttributes
      summary: Get all treatments with attributes
      description: Evaluates all available feature flags for the given keys with attributes passed in the request body.
      tags:
      - Evaluation
      parameters:
      - name: keys
        in: query
        required: true
        description: JSON string containing an array of key objects
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EvaluationAttributes'
      responses:
        '200':
          description: Successful response with treatments for all feature flags
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AllTreatmentsResult'
        '400':
          description: Missing or invalid parameters
        '500':
          description: Internal server error during evaluation
components:
  schemas:
    TreatmentsResult:
      type: object
      description: The result of evaluating multiple feature flags for a given key. Keys are feature flag names and values are treatment results.
      additionalProperties:
        $ref: '#/components/schemas/TreatmentResult'
    TreatmentResult:
      type: object
      description: The result of evaluating a single feature flag for a given key.
      properties:
        splitName:
          type: string
          description: Name of the evaluated feature flag
        treatment:
          type: string
          description: The treatment value returned by the evaluation (e.g., on, off)
        config:
          type: string
          nullable: true
          description: JSON string of dynamic configuration associated with the treatment, or null if no configuration is defined
    EvaluationAttributes:
      type: object
      description: Attributes passed in the request body for use in targeting rule evaluation. Attributes can be strings, numbers, booleans, or sets.
      properties:
        attributes:
          type: object
          description: Key-value pairs of attribute names and their values
          additionalProperties: true
        impressionsDisabled:
          type: boolean
          description: When set to true, disables impression logging for the evaluation
    AllTreatmentsResult:
      type: object
      description: The result of evaluating all feature flags for the given keys. Keyed by feature flag name with treatment result values.
      additionalProperties:
        $ref: '#/components/schemas/TreatmentResult'
  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