Amplitude · Schema

Flag

Flag schema from Amplitude Experiment Management API

A/B TestingAnalyticsExperimentationFeature FlagsProduct AnalyticsUser Behavior

Properties

Name Type Description
id string The unique identifier for the flag.
projectId string The project ID the flag belongs to.
key string The unique key used to reference the flag in code.
name string The display name of the flag.
description string A description of the flag's purpose.
enabled boolean Whether the flag is enabled.
evaluationMode string The evaluation mode, either local or remote.
bucketingKey string The property used for bucketing users into variants.
bucketingSalt string The salt used for hashing during bucketing.
variants array Array of variant configurations.
deployments array Array of deployment IDs the flag is deployed to.
segments array Array of targeting segment configurations.
state string The current state of the flag.
View JSON Schema on GitHub

JSON Schema

experiment-management-api-flag-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/amplitude/refs/heads/main/json-schema/experiment-management-api-flag-schema.json",
  "title": "Flag",
  "description": "Flag schema from Amplitude Experiment Management API",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The unique identifier for the flag."
    },
    "projectId": {
      "type": "string",
      "description": "The project ID the flag belongs to."
    },
    "key": {
      "type": "string",
      "description": "The unique key used to reference the flag in code."
    },
    "name": {
      "type": "string",
      "description": "The display name of the flag."
    },
    "description": {
      "type": "string",
      "description": "A description of the flag's purpose."
    },
    "enabled": {
      "type": "boolean",
      "description": "Whether the flag is enabled."
    },
    "evaluationMode": {
      "type": "string",
      "description": "The evaluation mode, either local or remote.",
      "enum": [
        "local",
        "remote"
      ]
    },
    "bucketingKey": {
      "type": "string",
      "description": "The property used for bucketing users into variants."
    },
    "bucketingSalt": {
      "type": "string",
      "description": "The salt used for hashing during bucketing."
    },
    "variants": {
      "type": "array",
      "description": "Array of variant configurations.",
      "items": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "description": "The unique key for the variant."
          },
          "name": {
            "type": "string",
            "description": "The display name of the variant."
          },
          "payload": {
            "description": "An optional JSON payload associated with the variant."
          },
          "description": {
            "type": "string",
            "description": "A description of what this variant does."
          },
          "rolloutWeight": {
            "type": "integer",
            "description": "The rollout weight as a percentage (0-100) controlling traffic allocation to this variant.",
            "minimum": 0,
            "maximum": 100
          }
        }
      }
    },
    "deployments": {
      "type": "array",
      "description": "Array of deployment IDs the flag is deployed to.",
      "items": {
        "type": "string"
      }
    },
    "segments": {
      "type": "array",
      "description": "Array of targeting segment configurations.",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The display name of the segment."
          },
          "conditions": {
            "type": "array",
            "description": "Array of targeting conditions that define this segment.",
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "description": "The condition type."
                },
                "prop": {
                  "type": "string",
                  "description": "The property to evaluate."
                },
                "op": {
                  "type": "string",
                  "description": "The comparison operator."
                },
                "values": {
                  "type": "array",
                  "description": "The values to compare against.",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "variant": {
            "type": "string",
            "description": "The variant key to assign when this segment matches."
          },
          "percentage": {
            "type": "integer",
            "description": "The percentage of matching users to include (0-100).",
            "minimum": 0,
            "maximum": 100
          }
        }
      }
    },
    "state": {
      "type": "string",
      "description": "The current state of the flag.",
      "enum": [
        "draft",
        "active",
        "archived"
      ]
    }
  }
}

Work with this as data

Every JSON Schema 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 schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • 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 JSON Schema
curl "https://apis.io/api/v1/json-schemas/experiment-management-api-flag"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.