Statsig · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Statsig Layers API

20 actions 20 updates phrasing extends openapi/statsig-layers-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Statsig's API. It is a proposal applied on top of the contract, not a document Statsig publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 20 · first 16 shown; the file carries all of them

$.info
$.paths['/layers'].get
$.paths['/layers'].post
$.paths['/layers/{id}'].get
$.paths['/layers/{id}'].delete
$.paths['/layers/{id}/experiments'].get
$.paths['/get_layer'].post
$.paths['/console/v1/layers'].get
$.paths['/console/v1/layers'].post
$.paths['/console/v1/layers/{id}'].get
$.paths['/console/v1/layers/{id}'].post
$.paths['/console/v1/layers/{id}'].delete
$.paths['/console/v1/layers/{id}'].patch
$.paths['/console/v1/layers/{id}/experiments'].get
$.paths['/console/v1/layers/{id}/overrides'].get
$.paths['/console/v1/layers/{id}/overrides'].post

OpenAPI Overlay

Raw ↑
# 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'

Work with this as data

Every overlay 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 openapi overlays

4 MCP tools reach this
  • find_overlaysBrowse and filter every overlay 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 overlay
curl "https://apis.io/api/v1/overlays/statsig-layers-api-phrasing-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?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.