Unleash Playground API

Evaluate an Unleash context against your feature flags.

Operations 3

POST /api/admin/playground/change-request/{id} Evaluate an Unleash Context Against a Change Request Preview. #
POST /api/admin/playground Evaluate an Unleash Context Against a Set of Environments and Projects. #
POST /api/admin/playground/advanced Batch Evaluate an Unleash Context Against a Set of Environments and Projects. #

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/unleash-playground-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

unleash-playground-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Unleash Admin Addons Playground API
  version: 7.4.1
  description: Create, update, and delete [Unleash addons](https://docs.getunleash.io/addons).
servers:
- url: https://app.unleash-instance.example.com
  description: Your Unleash instance (replace with your actual URL)
security:
- apiKey: []
- bearerToken: []
tags:
- name: Playground
  description: Evaluate an Unleash context against your feature flags.
paths:
  /api/admin/playground/change-request/{id}:
    post:
      operationId: getChangeRequestPlayground
      tags:
      - Playground
      responses:
        '200':
          description: advancedPlaygroundResponseSchema
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/advancedPlaygroundResponseSchema'
        '400':
          description: The request data does not match what we expect.
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    example: 9c40958a-daac-400e-98fb-3bb438567008
                    description: The ID of the error instance
                  name:
                    type: string
                    example: ValidationError
                    description: The name of the error kind
                  message:
                    type: string
                    example: The request payload you provided doesn't conform to the schema. The .parameters property should be object. You sent [].
                    description: A description of what went wrong.
        '401':
          description: Authorization information is missing or invalid. Provide a valid API token as the `authorization` header, e.g. `authorization:*.*.my-admin-token`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    example: 9c40958a-daac-400e-98fb-3bb438567008
                    description: The ID of the error instance
                  name:
                    type: string
                    example: AuthenticationRequired
                    description: The name of the error kind
                  message:
                    type: string
                    example: You must log in to use Unleash. Your request had no authorization header, so we could not authorize you. Try logging in at /auth/simple/login.
                    description: A description of what went wrong.
        '404':
          description: The requested resource was not found.
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    example: 9c40958a-daac-400e-98fb-3bb438567008
                    description: The ID of the error instance
                  name:
                    type: string
                    example: NotFoundError
                    description: The name of the error kind
                  message:
                    type: string
                    example: Could not find the addon with ID "12345".
                    description: A description of what went wrong.
      requestBody:
        description: changeRequestPlaygroundRequestSchema
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/changeRequestPlaygroundRequestSchema'
      description: '**Enterprise feature**


        Use the provided `context` to evaluate toggles on this Unleash instance with a change request applied in preview mode. You can use comma-separated values to provide multiple values to each context field. Returns a combinatorial list of all toggles that match the parameters and what they evaluate to.'
      summary: Evaluate an Unleash Context Against a Change Request Preview.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
  /api/admin/playground:
    post:
      operationId: getPlayground
      tags:
      - Playground
      responses:
        '200':
          description: playgroundResponseSchema
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/playgroundResponseSchema'
        '400':
          description: The request data does not match what we expect.
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    example: 9c40958a-daac-400e-98fb-3bb438567008
                    description: The ID of the error instance
                  name:
                    type: string
                    example: ValidationError
                    description: The name of the error kind
                  message:
                    type: string
                    example: The request payload you provided doesn't conform to the schema. The .parameters property should be object. You sent [].
                    description: A description of what went wrong.
        '401':
          description: Authorization information is missing or invalid. Provide a valid API token as the `authorization` header, e.g. `authorization:*.*.my-admin-token`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    example: 9c40958a-daac-400e-98fb-3bb438567008
                    description: The ID of the error instance
                  name:
                    type: string
                    example: AuthenticationRequired
                    description: The name of the error kind
                  message:
                    type: string
                    example: You must log in to use Unleash. Your request had no authorization header, so we could not authorize you. Try logging in at /auth/simple/login.
                    description: A description of what went wrong.
      requestBody:
        description: playgroundRequestSchema
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/playgroundRequestSchema'
      description: Deprecated. Will be removed in the next Unleash major update. Use the provided `context`, `environment`, and `projects` to evaluate toggles on this Unleash instance. Returns a list of all toggles that match the parameters and what they evaluate to. The response also contains the input parameters that were provided.
      summary: Evaluate an Unleash Context Against a Set of Environments and Projects.
  /api/admin/playground/advanced:
    post:
      operationId: getAdvancedPlayground
      tags:
      - Playground
      responses:
        '200':
          description: advancedPlaygroundResponseSchema
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/advancedPlaygroundResponseSchema'
        '400':
          description: The request data does not match what we expect.
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    example: 9c40958a-daac-400e-98fb-3bb438567008
                    description: The ID of the error instance
                  name:
                    type: string
                    example: ValidationError
                    description: The name of the error kind
                  message:
                    type: string
                    example: The request payload you provided doesn't conform to the schema. The .parameters property should be object. You sent [].
                    description: A description of what went wrong.
        '401':
          description: Authorization information is missing or invalid. Provide a valid API token as the `authorization` header, e.g. `authorization:*.*.my-admin-token`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    example: 9c40958a-daac-400e-98fb-3bb438567008
                    description: The ID of the error instance
                  name:
                    type: string
                    example: AuthenticationRequired
                    description: The name of the error kind
                  message:
                    type: string
                    example: You must log in to use Unleash. Your request had no authorization header, so we could not authorize you. Try logging in at /auth/simple/login.
                    description: A description of what went wrong.
      requestBody:
        description: advancedPlaygroundRequestSchema
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/advancedPlaygroundRequestSchema'
      description: Use the provided `context`, `environments`, and `projects` to evaluate toggles on this Unleash instance. You can use comma-separated values to provide multiple values to each context field. Returns a combinatorial list of all toggles that match the parameters and what they evaluate to. The response also contains the input parameters that were provided.
      summary: Batch Evaluate an Unleash Context Against a Set of Environments and Projects.
components:
  schemas:
    sdkContextSchema:
      description: The Unleash context as modeled in client SDKs
      type: object
      required:
      - appName
      additionalProperties: true
      properties:
        appName:
          type: string
          minLength: 1
          example: My cool application.
          description: The name of the application.
        currentTime:
          type: string
          format: date-time
          example: '2022-07-05T12:56:41+02:00'
          description: A DateTime (or similar) data class instance or a string in an RFC3339-compatible format. Defaults to the current time if not set by the user.
        environment:
          type: string
          deprecated: true
          description: The environment the app is running in.
        properties:
          type: object
          additionalProperties:
            type: string
          description: Additional Unleash context properties
          example:
            customContextField: this is one!
            otherCustomField: '3'
        remoteAddress:
          type: string
          example: 192.168.1.1
          description: The app's IP address
        sessionId:
          type: string
          example: b65e7b23-fec0-4814-a129-0e9861ef18fc
          description: An identifier for the current session
        userId:
          type: string
          example: username@provider.com
          description: An identifier for the current user
    playgroundFeatureSchema:
      description: A simplified feature flag model intended for the Unleash playground.
      type: object
      additionalProperties: false
      required:
      - name
      - projectId
      - isEnabled
      - isEnabledInCurrentEnvironment
      - variant
      - variants
      - strategies
      properties:
        name:
          type: string
          example: my-feature
          description: The feature's name.
        projectId:
          type: string
          example: my-project
          description: The ID of the project that contains this feature.
        strategies:
          type: object
          additionalProperties: false
          required:
          - result
          - data
          description: The feature's applicable strategies and cumulative results of the strategies
          properties:
            result:
              description: "The cumulative results of all the feature's strategies. Can be `true`,\n                                  `false`, or `unknown`.\n                                  This property will only be `unknown`\n                                  if one or more of the strategies can't be fully evaluated and the rest of the strategies\n                                  all resolve to `false`."
              anyOf:
              - type: boolean
              - type: string
                enum:
                - unknown
            data:
              description: The strategies that apply to this feature.
              type: array
              items:
                $ref: '#/components/schemas/playgroundStrategySchema'
        hasUnsatisfiedDependency:
          type: boolean
          description: Whether the feature has a parent dependency that is not satisfied
        isEnabledInCurrentEnvironment:
          type: boolean
          description: Whether the feature is active and would be evaluated in the provided environment in a normal SDK context.
        isEnabled:
          description: "Whether this feature is enabled or not in the current environment.\n                          If a feature can't be fully evaluated (that is, `strategies.result` is `unknown`),\n                          this will be `false` to align with how client SDKs treat unresolved feature states."
          type: boolean
          example: true
        variant:
          description: "The feature variant you receive based on the provided context or the _disabled\n                          variant_. If a feature is disabled or doesn't have any\n                          variants, you would get the _disabled variant_.\n                          Otherwise, you'll get one of thefeature's defined variants."
          type:
          - object
          - 'null'
          additionalProperties: false
          required:
          - name
          - enabled
          properties:
            name:
              type: string
              description: The variant's name. If there is no variant or if the flag is disabled, this will be `disabled`
              example: red-variant
            enabled:
              type: boolean
              description: Whether the variant is enabled or not. If the feature is disabled or if it doesn't have variants, this property will be `false`
            payload:
              type: object
              additionalProperties: false
              required:
              - type
              - value
              description: An optional payload attached to the variant.
              properties:
                type:
                  description: The format of the payload.
                  type: string
                value:
                  type: string
                  description: The payload value stringified.
                  example: '{"property": "value"}'
            feature_enabled:
              type: boolean
              description: Use `featureEnabled` instead.
              example: true
            featureEnabled:
              deprecated: true
              type: boolean
              description: Whether the feature is enabled or not.
              example: true
          example:
            name: green
            enabled: true
        variants:
          type: array
          description: The feature variants.
          items:
            $ref: '#/components/schemas/variantSchema'
    playgroundStrategySchema:
      type: object
      description: An evaluated feature flag strategy as used by the Playground
      additionalProperties: false
      required:
      - id
      - name
      - result
      - segments
      - constraints
      - parameters
      - disabled
      - links
      properties:
        name:
          description: The strategy's name.
          type: string
        title:
          type: string
          example: Beta rollout
          description: Description of the feature's purpose.
        id:
          description: The strategy's id.
          type: string
          example: 3AECCF7E-FF82-4174-8287-8EBE06079A50
        result:
          description: The strategy's evaluation result. If the strategy is a custom strategy that Unleash can't evaluate, `evaluationStatus` will be `unknown`. Otherwise, it will be `true` or `false`
          anyOf:
          - type: object
            additionalProperties: false
            required:
            - evaluationStatus
            - enabled
            properties:
              evaluationStatus:
                type: string
                description: Signals that this strategy could not be evaluated. This is most likely because you're using a custom strategy that Unleash doesn't know about. The `unevaluated` result is also returned if the strategy is disabled.
                enum:
                - incomplete
                - unevaluated
              enabled:
                description: Whether this strategy resolves to `false` or if it might resolve to `true`. Because Unleash can't evaluate the strategy, it can't say for certain whether it will be `true`, but if you have failing constraints or segments, it _can_ determine that your strategy would be `false`.
                anyOf:
                - type: boolean
                  enum:
                  - false
                - type: string
                  enum:
                  - unknown
          - type: object
            additionalProperties: false
            required:
            - evaluationStatus
            - enabled
            properties:
              evaluationStatus:
                description: Signals that this strategy was evaluated successfully.
                type: string
                enum:
                - complete
              enabled:
                type: boolean
                description: Whether this strategy evaluates to true or not.
              variant:
                description: "The feature variant you receive based on the provided context or the _disabled\n                          variant_. If a feature is disabled or doesn't have any\n                          variants, you would get the _disabled variant_.\n                          Otherwise, you'll get one of the feature's defined variants."
                type:
                - object
                - 'null'
                additionalProperties: false
                required:
                - name
                - enabled
                properties:
                  name:
                    type: string
                    description: The variant's name. If there is no variant or if the toggle is disabled, this will be `disabled`
                    example: red-variant
                  enabled:
                    type: boolean
                    description: Whether the variant is enabled or not. If the feature is disabled or if it doesn't have variants, this property will be `false`
                  payload:
                    type: object
                    additionalProperties: false
                    required:
                    - type
                    - value
                    description: An optional payload attached to the variant.
                    properties:
                      type:
                        description: The format of the payload.
                        type: string
                        enum:
                        - json
                        - csv
                        - string
                        - number
                      value:
                        type: string
                        description: The payload value stringified.
                        example: '{"property": "value"}'
                example:
                  name: green
                  enabled: true
              variants:
                type: array
                description: The feature variants.
                items:
                  $ref: '#/components/schemas/variantSchema'
        disabled:
          type:
          - boolean
          - 'null'
          description: The strategy's status. Disabled strategies are not evaluated
          example: false
        segments:
          type: array
          description: The strategy's segments and their evaluation results.
          items:
            $ref: '#/components/schemas/playgroundSegmentSchema'
        constraints:
          type: array
          description: The strategy's constraints and their evaluation results.
          items:
            $ref: '#/components/schemas/playgroundConstraintSchema'
        parameters:
          description: The strategy's constraints and their evaluation results.
          example:
            myParam1: param value
          $ref: '#/components/schemas/parametersSchema'
        links:
          description: A set of links to actions you can perform on this strategy
          type: object
          required:
          - edit
          properties:
            edit:
              type: string
              example: /projects/some-project/features/some-feature/strategies/edit?environmentId=some-env&strategyId= 3AECCF7E-FF82-4174-8287-8EBE06079A50
    playgroundConstraintSchema:
      additionalProperties: false
      type: object
      required:
      - contextName
      - operator
      - result
      description: A strategy constraint. For more information, refer to [the strategy constraint reference documentation](https://docs.getunleash.io/concepts/activation-strategies#constraints)
      properties:
        contextName:
          description: The name of the context field that this constraint should apply to.
          example: appName
          type: string
        operator:
          description: The operator to use when evaluating this constraint. For more information about the various operators, refer to [the strategy constraint operator documentation](https://docs.getunleash.io/concepts/activation-strategies#constraint-operators).
          type: string
          enum:
          - NOT_IN
          - IN
          - STR_ENDS_WITH
          - STR_STARTS_WITH
          - STR_CONTAINS
          - NUM_EQ
          - NUM_GT
          - NUM_GTE
          - NUM_LT
          - NUM_LTE
          - DATE_AFTER
          - DATE_BEFORE
          - SEMVER_EQ
          - SEMVER_GT
          - SEMVER_LT
          example: IN
        caseInsensitive:
          description: Whether the operator should be case sensitive or not. Defaults to `false` (being case sensitive).
          type: boolean
          default: false
        inverted:
          description: Whether the result should be negated or not. If `true`, will turn a `true` result into a `false` result and vice versa.
          type: boolean
          default: false
        values:
          type: array
          description: The context values that should be used for constraint evaluation. Use this property instead of `value` for properties that accept multiple values.
          items:
            type: string
          example:
          - my-app
          - my-other-app
        value:
          description: The context value that should be used for constraint evaluation. Use this property instead of `values` for properties that only accept single values.
          type: string
          example: my-app
        result:
          description: Whether this was evaluated as true or false.
          type: boolean
    playgroundRequestSchema:
      description: Data for the playground API to evaluate feature flags
      type: object
      required:
      - environment
      - context
      properties:
        environment:
          type: string
          example: development
          description: The environment to evaluate feature flags in.
        projects:
          description: A list of projects to check for feature flags in.
          oneOf:
          - type: array
            items:
              type: string
            example:
            - my-project
            description: A list of projects to check for feature flags in.
          - type: string
            enum:
            - '*'
            description: Check feature flags in all projects.
        context:
          $ref: '#/components/schemas/sdkContextSchema'
    variantSchema:
      type: object
      additionalProperties: false
      description: A variant allows for further separation of users into segments. See [our excellent documentation](https://docs.getunleash.io/concepts/feature-flag-variants#what-are-variants) for a more detailed description
      required:
      - name
      - weight
      properties:
        name:
          type: string
          description: The variants name. Is unique for this feature flag
          example: blue_group
        weight:
          type: number
          description: The weight is the likelihood of any one user getting this variant. It is a number between 0 and 1000. See the section on [variant weights](https://docs.getunleash.io/concepts/feature-flag-variants#variant-weight) for more information
          minimum: 0
          maximum: 1000
        weightType:
          description: Set to fix if this variant must have exactly the weight allocated to it. If the type is variable, the weight will adjust so that the total weight of all variants adds up to 1000
          type: string
          example: variable
          enum:
          - variable
          - fix
        stickiness:
          type: string
          description: '[Stickiness](https://docs.getunleash.io/concepts/feature-flag-variants#variant-stickiness) is how Unleash guarantees that the same user gets the same variant every time'
          example: custom.context.field
        payload:
          type: object
          required:
          - type
          - value
          description: Extra data configured for this variant
          additionalProperties: false
          properties:
            type:
              description: The type of the value. Commonly used types are string, number, json and csv.
              type: string
              enum:
              - json
              - csv
              - string
              - number
            value:
              description: The actual value of payload
              type: string
          example:
            type: json
            value: '{"color": "red"}'
        overrides:
          description: Overrides assigning specific variants to specific users. The weighting system automatically assigns users to specific groups for you, but any overrides in this list will take precedence.
          type: array
          items:
            $ref: '#/components/schemas/overrideSchema'
    advancedPlaygroundResponseSchema:
      description: The state of all features given the provided input.
      type: object
      additionalProperties: false
      required:
      - features
      - input
      properties:
        input:
          description: The given input used to evaluate the features.
          $ref: '#/components/schemas/advancedPlaygroundRequestSchema'
        features:
          type: array
          description: The list of features that have been evaluated.
          items:
            $ref: '#/components/schemas/advancedPlaygroundFeatureSchema'
        warnings:
          type: object
          description: Warnings that occurred during evaluation.
          properties:
            invalidContextProperties:
              type: array
              description: A list of top-level context properties that were provided as input that are not valid due to being the wrong type.
              items:
                type: string
    playgroundResponseSchema:
      description: The state of all features given the provided input.
      type: object
      additionalProperties: false
      required:
      - features
      - input
      properties:
        input:
          description: The given input used to evaluate the features.
          $ref: '#/components/schemas/playgroundRequestSchema'
        features:
          type: array
          description: The list of features that have been evaluated.
          items:
            $ref: '#/components/schemas/playgroundFeatureSchema'
    overrideSchema:
      type: object
      additionalProperties: false
      required:
      - contextName
      - values
      description: An override for deciding which variant should be assigned to a user based on the context name
      properties:
        contextName:
          description: The name of the context field used to determine overrides
          type: string
          example: userId
        values:
          description: Which values that should be overriden
          type: array
          items:
            type: string
          example:
          - red
          - blue
    advancedPlaygroundRequestSchema:
      description: Data for the playground API to evaluate toggles in advanced mode with environment and context multi selection
      type: object
      required:
      - environments
      - context
      properties:
        environments:
          type: array
          items:
            type: string
            minLength: 1
            pattern: ^[a-zA-Z0-9~_.-]+$
          minItems: 1
          example:
          - development
          - production
          description: The environments to evaluate toggles in.
        projects:
          description: A list of projects to check for toggles in.
          oneOf:
          - type: array
            items:
              type: string
            example:
            - my-project
            description: A list of projects to check for toggles in.
          - type: string
            enum:
            - '*'
            description: Check toggles in all projects.
        context:
          $ref: '#/components/schemas/sdkContextSchema'
    sdkFlatContextSchema:
      description: The Unleash context with flattened properties
      type: object
      required:
      - appName
      additionalProperties: true
      properties:
        appName:
          type: string
          minLength: 1
          example: My cool application.
          description: The name of the application.
        currentTime:
          type: string
          format: date-time
          example: '2022-07-05T12:56:41+02:00'
          description: A DateTime (or similar) data class instance or a string in an RFC3339-compatible format. Defaults to the current time if not set by the user.
        environment:
          type: string
          deprecated: true
          description: The environment the app is running in.
        remoteAddress:
          type: string
          example: 192.168.1.1
          description: The app's IP address
        sessionId:
          type: string
          example: b65e7b23-fec0-4814-a129-0e9861ef18fc
          description: An identifier for the current session
        userId:
          type: string
          example: username@provider.com
          description: An identifier for the current user
    changeRequestPlaygroundRequestSchema:
      description: Data for the playground API to evaluate flags with change request applied in preview mode
      type: object
      required:
      - context
      properties:
        context:
          $ref: '#/components/schemas/sdkContextSchema'
    advancedPlaygroundFeatureSchema:
      description: A simplified feature flag model intended for the Unleash playground.
      type: object
      additionalProperties: false
      required:
      - name
      - projectId
      - environments
      properties:
        name:
          type: string
          example: my-feature
          description: The feature's name.
        projectId:
          type: string
          example: my-project
          description: The ID of the project that contains this feature.
        environments:
          type: object
          description: The lists of features that have been evaluated grouped by environment.
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/advancedPlaygroundEnvironmentFeatureSchema'
    playgroundSegmentSchema:
      type: object
      additionalProperties: false
      description: The evaluated result of a segment as used by the Playground.
      required:
      - name
      - id
      - constraints
      - result
      properties:
        id:
          description: The segment's id.
          type: integer
        name:
          description: The name of the segment.
          example: segment A
          type: string
        result:
          de

# --- truncated at 32 KB (36 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/unleash/refs/heads/main/openapi/unleash-playground-api-openapi.yml