# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Statsig Layers API version: 1.0.0 extends: openapi/statsig-layers-api-openapi.yml actions: - target: $.info update: x-apievangelist-phrasing: method: generated generated: '2026-10-01' generator: build-phrasing.py label: Generated by API Evangelist operations: 19 - target: $.paths['/layers'].get update: x-apievangelist-phrasing: intent: List layers in the project effect: read questions: - Which layers exist in my Statsig project? - Can I page through all our experiment layers? instructions: - text: List all layers in my project. - text: Show page {page} of layers with {limit} per page. slots: page: query.page limit: query.limit method: generated generated: '2026-09-26' - target: $.paths['/layers'].post update: x-apievangelist-phrasing: intent: Create a layer for shared experiment parameters effect: write questions: - How do I create a layer so several experiments can share parameters? - Can I set default parameter values when creating a layer? instructions: - text: Create a layer named {name}. slots: name: requestBody.name - text: Create layer {name} with default parameters {parameters}. slots: name: requestBody.name parameters: requestBody.parameters method: generated generated: '2026-09-26' - target: $.paths['/layers/{id}'].get update: x-apievangelist-phrasing: intent: Get a layer's configuration effect: read questions: - What parameters and experiments are defined on a specific layer? - Can I look up a layer's console configuration by name? instructions: - text: Show the configuration of layer {id}. slots: id: path.id - text: Get the parameters defined on layer {id} in the console. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/layers/{id}'].delete update: x-apievangelist-phrasing: intent: Delete a layer effect: destructive questions: - How do I permanently remove a layer we no longer use? - Is deleting a layer irreversible? instructions: - text: Delete layer {id}. slots: id: path.id - text: Permanently remove layer {id} from the project. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/layers/{id}/experiments'].get update: x-apievangelist-phrasing: intent: List the experiments in a layer effect: read questions: - Which experiments are running inside a particular layer? - What experiments share a given layer's parameters? instructions: - text: List the experiments in layer {id}. slots: id: path.id - text: Show which experiments belong to layer {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/get_layer'].post update: x-apievangelist-phrasing: intent: Get a user's parameter values from a layer effect: read questions: - What layer parameter values does a specific user receive? - When is an exposure logged for layer parameters? instructions: - text: Get layer {layerName} parameter values for user {user}. slots: layerName: requestBody.layerName user: requestBody.user - text: Evaluate layer {layerName} for user {user}. slots: layerName: requestBody.layerName user: requestBody.user method: generated generated: '2026-09-26' - target: $.paths['/console/v1/layers'].get update: x-apievangelist-phrasing: intent: List layers via the Console API v1 effect: read questions: - Can the Console API v1 list all layers in the project? - Which layers come back on each page of the v1 console listing? instructions: - text: List layers from the v1 console. - text: Fetch layers page {page} from Console API v1 at {limit} per page. slots: page: query.page limit: query.limit method: generated generated: '2026-10-01' - target: $.paths['/console/v1/layers'].post update: x-apievangelist-phrasing: intent: Create a layer with an ID type effect: write questions: - Which ID type must I choose when creating a layer? - Can I attach target apps to a layer when I create it? - How is a new layer's name turned into its ID? instructions: - text: Create layer {name} using ID type {idType}. slots: name: requestBody.name idType: requestBody.idType - text: Create layer {name} on {idType} for target apps {targetApps}, owned by team {team}. slots: name: requestBody.name idType: requestBody.idType targetApps: requestBody.targetApps team: requestBody.team method: generated generated: '2026-10-01' - target: $.paths['/console/v1/layers/{id}'].get update: x-apievangelist-phrasing: intent: Get one layer via the Console API v1 effect: read questions: - Can the Console API v1 return a single layer's details? - Which target apps and ID type does a given layer use? instructions: - text: Fetch layer {id} from the v1 console. slots: id: path.id - text: Look up the ID type and target apps of layer {id}. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/console/v1/layers/{id}'].post update: x-apievangelist-phrasing: intent: Replace a layer's description and parameters effect: write questions: - Can I overwrite all of a layer's parameters in one update? - Is a description required when fully updating a layer? instructions: - text: Replace layer {id} parameters with {parameters} and description {description}. slots: id: path.id parameters: requestBody.parameters description: requestBody.description - text: 'Fully update layer {id}: description {description}, parameters {parameters}, target apps {targetApps}.' slots: id: path.id description: requestBody.description parameters: requestBody.parameters targetApps: requestBody.targetApps method: generated generated: '2026-10-01' - target: $.paths['/console/v1/layers/{id}'].delete update: x-apievangelist-phrasing: intent: Delete a layer via the Console API v1 effect: destructive questions: - Can I delete a layer through the Console API v1? - Which v1 console call removes a layer completely? instructions: - text: Delete layer {id} with the v1 console endpoint. slots: id: path.id - text: Remove layer {id} for good via Console API v1. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/console/v1/layers/{id}'].patch update: x-apievangelist-phrasing: intent: Partially update a layer effect: write questions: - Can I change only a layer's target apps without resending its parameters? - Is it possible to edit just a layer's description? instructions: - text: Set the target apps of layer {id} to {targetApps}. slots: id: path.id targetApps: requestBody.targetApps - text: Change only the description of layer {id} to {description}. slots: id: path.id description: requestBody.description - text: Patch the parameters of layer {id} to {parameters}. slots: id: path.id parameters: requestBody.parameters method: generated generated: '2026-10-01' - target: $.paths['/console/v1/layers/{id}/experiments'].get update: x-apievangelist-phrasing: intent: Trace experiment lineage for a layer effect: read questions: - Can the v1 console lineage view show which experiments are tied to a layer? - Can I page through a layer's experiment lineage? instructions: - text: Show the v1 lineage of experiments for layer {id}. slots: id: path.id - text: List page {page} of experiment lineage for layer {id}, {limit} per page. slots: page: query.page id: path.id limit: query.limit method: generated generated: '2026-10-01' - target: $.paths['/console/v1/layers/{id}/overrides'].get update: x-apievangelist-phrasing: intent: Get a layer's overrides effect: read questions: - Which users or segments are overridden in a layer? - What conditional and ID overrides are set on a layer? instructions: - text: Show the overrides on layer {id}. slots: id: path.id - text: List the ID and conditional overrides for layer {id}. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/console/v1/layers/{id}/overrides'].post update: x-apievangelist-phrasing: intent: Replace a layer's overrides effect: write questions: - Can I replace every override on a layer in one call? - Can I set both ID overrides and conditional overrides on a layer together? instructions: - text: Replace the overrides on layer {id} with ID overrides {idOverrides} and conditional overrides {conditionalOverrides}. slots: id: path.id idOverrides: requestBody.idOverrides conditionalOverrides: requestBody.conditionalOverrides - text: Set layer {id} overrides to {idOverrides} by ID and {conditionalOverrides} by condition. slots: id: path.id idOverrides: requestBody.idOverrides conditionalOverrides: requestBody.conditionalOverrides method: generated generated: '2026-10-01' - target: $.paths['/console/v1/layers/{id}/overrides'].delete update: x-apievangelist-phrasing: intent: Delete all overrides on a layer effect: destructive questions: - Can I clear every override on a layer at once? - Is clearing all of a layer's overrides permanent? instructions: - text: Delete all overrides on layer {id}. slots: id: path.id - text: Clear every override from layer {id}. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/console/v1/layers/{id}/overrides'].patch update: x-apievangelist-phrasing: intent: Add overrides to a layer effect: write questions: - Can I add new overrides to a layer without removing the existing ones? - Can I add a user ID override to a layer alongside its current overrides? instructions: - text: Add ID overrides {idOverrides} and conditional overrides {conditionalOverrides} to layer {id}. slots: idOverrides: requestBody.idOverrides conditionalOverrides: requestBody.conditionalOverrides id: path.id - text: Append override {idOverrides} to layer {id}, keeping existing ones. slots: idOverrides: requestBody.idOverrides id: path.id method: generated generated: '2026-10-01' - target: $.paths['/console/v1/layers/{id}/overrides/conditional/{type}/{name}'].delete update: x-apievangelist-phrasing: intent: Remove one gate or segment override from a layer effect: destructive questions: - Can I remove a single gate or segment override from a layer without touching the others? - What happens if the layer override I delete doesn't exist? instructions: - text: Remove the {type} override for {name} on layer {id} in experiment {experimentName}, group {groupName}. slots: type: path.type name: path.name id: path.id experimentName: query.experimentName groupName: query.groupName - text: Delete the {type} override {name} from layer {id} for group {groupName} of experiment {experimentName} in {environment}. slots: type: path.type name: path.name id: path.id groupName: query.groupName experimentName: query.experimentName environment: query.environment method: generated generated: '2026-10-01' - target: $.paths['/console/v1/layers/{id}/overrides/userID/{userID}'].delete update: x-apievangelist-phrasing: intent: Remove one user ID override from a layer effect: destructive questions: - Can I take one user out of a layer's user ID override? - Does removing a user ID override from a layer affect other override buckets? instructions: - text: Remove user {userID} from the override on layer {id} for experiment {experimentName}, group {groupName}. slots: userID: path.userID id: path.id experimentName: query.experimentName groupName: query.groupName - text: Delete the user ID override for {userID} in layer {id}, experiment {experimentName}, group {groupName}, environment {environment}. slots: userID: path.userID id: path.id experimentName: query.experimentName groupName: query.groupName environment: query.environment method: generated generated: '2026-10-01'