Statsig · Schema

Statsig Experiment

An A/B test experiment configuration with defined groups, parameter values, allocation percentages, and analysis settings. Experiments enable controlled testing of product changes by splitting users into groups and measuring metric impacts.

Properties

Name Type Description
id string The unique identifier of the experiment.
name string The name of the experiment, used as the key for SDK evaluation.
description string A human-readable description of the experiment and what it tests.
hypothesis string The hypothesis being tested, describing the expected outcome of the experiment.
status string The current lifecycle status of the experiment.
groups array The experiment groups defining parameter values for each user segment.
allocation number The percentage of eligible users allocated to the experiment.
layerID string The layer this experiment belongs to, enabling parameter sharing and mutual exclusivity with other experiments.
targetingGateID string The feature gate used to filter which users are eligible for the experiment.
defaultValues object The default parameter values returned when a user is not allocated to the experiment.
primaryMetrics array The primary metrics used to evaluate the experiment hypothesis.
secondaryMetrics array Secondary metrics monitored during the experiment for guardrail and exploratory analysis.
tags array Tags for organizing and categorizing the experiment.
targetApps array Target applications this experiment is scoped to.
startedTime integer Timestamp in milliseconds since epoch when the experiment was started.
createdTime integer Timestamp in milliseconds since epoch when the experiment was created.
lastModifiedTime integer Timestamp in milliseconds since epoch when the experiment was last modified.
View JSON Schema on GitHub

JSON Schema

statsig-experiment-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://schemas.statsig.com/schemas/statsig/experiment.json",
  "title": "Statsig Experiment",
  "description": "An A/B test experiment configuration with defined groups, parameter values, allocation percentages, and analysis settings. Experiments enable controlled testing of product changes by splitting users into groups and measuring metric impacts.",
  "type": "object",
  "required": ["name"],
  "properties": {
    "id": {
      "type": "string",
      "description": "The unique identifier of the experiment."
    },
    "name": {
      "type": "string",
      "description": "The name of the experiment, used as the key for SDK evaluation.",
      "minLength": 1,
      "maxLength": 256
    },
    "description": {
      "type": "string",
      "description": "A human-readable description of the experiment and what it tests.",
      "maxLength": 4096
    },
    "hypothesis": {
      "type": "string",
      "description": "The hypothesis being tested, describing the expected outcome of the experiment.",
      "maxLength": 4096
    },
    "status": {
      "type": "string",
      "description": "The current lifecycle status of the experiment.",
      "enum": ["setup", "active", "decision_made", "abandoned"]
    },
    "groups": {
      "type": "array",
      "description": "The experiment groups defining parameter values for each user segment.",
      "items": {
        "$ref": "#/$defs/ExperimentGroup"
      },
      "minItems": 2
    },
    "allocation": {
      "type": "number",
      "description": "The percentage of eligible users allocated to the experiment.",
      "minimum": 0,
      "maximum": 100,
      "default": 100
    },
    "layerID": {
      "type": "string",
      "description": "The layer this experiment belongs to, enabling parameter sharing and mutual exclusivity with other experiments."
    },
    "targetingGateID": {
      "type": "string",
      "description": "The feature gate used to filter which users are eligible for the experiment."
    },
    "defaultValues": {
      "type": "object",
      "description": "The default parameter values returned when a user is not allocated to the experiment.",
      "additionalProperties": true
    },
    "primaryMetrics": {
      "type": "array",
      "description": "The primary metrics used to evaluate the experiment hypothesis.",
      "items": {
        "$ref": "#/$defs/MetricReference"
      }
    },
    "secondaryMetrics": {
      "type": "array",
      "description": "Secondary metrics monitored during the experiment for guardrail and exploratory analysis.",
      "items": {
        "$ref": "#/$defs/MetricReference"
      }
    },
    "tags": {
      "type": "array",
      "description": "Tags for organizing and categorizing the experiment.",
      "items": {
        "type": "string"
      }
    },
    "targetApps": {
      "type": "array",
      "description": "Target applications this experiment is scoped to.",
      "items": {
        "type": "string"
      }
    },
    "startedTime": {
      "type": "integer",
      "description": "Timestamp in milliseconds since epoch when the experiment was started."
    },
    "createdTime": {
      "type": "integer",
      "description": "Timestamp in milliseconds since epoch when the experiment was created."
    },
    "lastModifiedTime": {
      "type": "integer",
      "description": "Timestamp in milliseconds since epoch when the experiment was last modified."
    }
  },
  "$defs": {
    "ExperimentGroup": {
      "type": "object",
      "description": "An experiment group that defines parameter values for a segment of allocated users.",
      "required": ["name", "size"],
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the group (e.g., control, test, variant_a).",
          "minLength": 1
        },
        "size": {
          "type": "number",
          "description": "The percentage of allocated users assigned to this group. All group sizes must sum to 100.",
          "minimum": 0,
          "maximum": 100
        },
        "parameterValues": {
          "type": "object",
          "description": "The parameter key-value pairs for users in this group.",
          "additionalProperties": true
        }
      }
    },
    "MetricReference": {
      "type": "object",
      "description": "A reference to a metric definition used in experiment analysis.",
      "required": ["name"],
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the metric."
        },
        "type": {
          "type": "string",
          "description": "The metric type (e.g., event_count, ratio, funnel, mean)."
        },
        "direction": {
          "type": "string",
          "description": "The expected direction of change for this metric.",
          "enum": ["increase", "decrease"]
        }
      }
    }
  }
}

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/statsig-experiment"
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 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.