Statsig · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Console Experiments (Warehouse Native) API

21 actions 21 updates phrasing extends openapi/statsig-experiments-warehouse-native-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 21 · first 16 shown; the file carries all of them

$.info
$.paths['/console/v1/experiments/{id}/load_pulse'].post
$.paths['/console/v1/experiments/{id}/pulse_load_history'].get
$.paths['/console/v1/experiments/{id}/pulse_load_history/{dagID}'].get
$.paths['/console/v1/experiments/{id}/pulse_load_history/{dagID}/cancel'].post
$.paths['/console/v1/experiments/assignment_source/{name}'].post
$.paths['/console/v1/experiments/assignment_source/{name}'].delete
$.paths['/console/v1/experiments/assignment_source/{name}'].patch
$.paths['/console/v1/experiments/assignment_sources'].get
$.paths['/console/v1/experiments/assignment_sources'].post
$.paths['/console/v1/experiments/entity_properties'].get
$.paths['/console/v1/experiments/entity_properties'].post
$.paths['/console/v1/experiments/entity_property/{name}'].get
$.paths['/console/v1/experiments/entity_property/{name}'].post
$.paths['/console/v1/experiments/entity_property/{name}'].delete
$.paths['/console/v1/experiments/entity_property/{name}'].patch

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 Console Experiments (Warehouse Native) API
  version: 1.0.0
extends: openapi/statsig-experiments-warehouse-native-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: 20
- target: $.paths['/console/v1/experiments/{id}/load_pulse'].post
  update:
    x-apievangelist-phrasing:
      intent: Load Pulse results for a warehouse experiment
      effect: write
      questions:
      - How do I trigger a fresh Pulse computation for an experiment in my warehouse?
      - Can I reload Pulse for only a few metrics?
      - Is there a faster turbo mode for loading Pulse?
      instructions:
      - text: Load Pulse for experiment {id}.
        slots:
          id: path.id
      - text: Reload Pulse for experiment {id} on metrics {metricIDs} with turbo mode {turboMode}.
        slots:
          id: path.id
          metricIDs: requestBody.metricIDs
          turboMode: requestBody.turboMode
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/experiments/{id}/pulse_load_history'].get
  update:
    x-apievangelist-phrasing:
      intent: List an experiment's Pulse load runs
      effect: read
      questions:
      - When was Pulse last computed for an experiment?
      - Can I see past Pulse load jobs for one experiment?
      instructions:
      - text: Show the Pulse load history for experiment {id}.
        slots:
          id: path.id
      - text: List page {page} of Pulse loads for experiment {id}.
        slots:
          id: path.id
          page: query.page
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/experiments/{id}/pulse_load_history/{dagID}'].get
  update:
    x-apievangelist-phrasing:
      intent: Inspect one Pulse load run
      effect: read
      questions:
      - Why did a particular Pulse load fail?
      - What steps ran in a specific Pulse load job?
      instructions:
      - text: Show details of Pulse load {dagID} for experiment {id}.
        slots:
          id: path.id
          dagID: path.dagID
      - text: Get the status of load run {dagID} on experiment {id}.
        slots:
          id: path.id
          dagID: path.dagID
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/experiments/{id}/pulse_load_history/{dagID}/cancel'].post
  update:
    x-apievangelist-phrasing:
      intent: Cancel a running Pulse load
      effect: destructive
      questions:
      - Can I stop a Pulse load that is taking too long?
      - What's the way to abort an in-progress warehouse Pulse job?
      instructions:
      - text: Cancel Pulse load {dagID} for experiment {id}.
        slots:
          id: path.id
          dagID: path.dagID
      - text: Stop the running load job {dagID} on experiment {id}.
        slots:
          id: path.id
          dagID: path.dagID
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/experiments/assignment_source/{name}'].post
  update:
    x-apievangelist-phrasing:
      intent: Fully update an assignment source
      effect: write
      questions:
      - How do I replace the SQL and column mapping of an existing assignment source?
      - Can I dry-run an assignment source update before saving it?
      instructions:
      - text: Overwrite assignment source {name} with SQL {sql}, timestamp column {timestampColumn}, experiment column {experimentIDColumn}, group column {groupIDColumn}.
        slots:
          name: path.name
          sql: requestBody.sql
          timestampColumn: requestBody.timestampColumn
          experimentIDColumn: requestBody.experimentIDColumn
          groupIDColumn: requestBody.groupIDColumn
      - text: Dry-run {dryRun} a full rewrite of assignment source {name} using unit mapping {idTypeMapping}.
        slots:
          name: path.name
          dryRun: requestBody.dryRun
          idTypeMapping: requestBody.idTypeMapping
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/experiments/assignment_source/{name}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete an assignment source
      effect: destructive
      questions:
      - Can I remove an assignment source we no longer query?
      - Is deleting an assignment source permanent?
      instructions:
      - text: Delete assignment source {name}.
        slots:
          name: path.name
      - text: Remove the experiment assignment source called {name}.
        slots:
          name: path.name
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/experiments/assignment_source/{name}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Change selected fields of an assignment source
      effect: write
      questions:
      - Can I mark an assignment source as verified without resending its SQL?
      - Is it possible to change only the scheduled reload hour on an assignment source?
      instructions:
      - text: Mark assignment source {name} as verified {isVerified}.
        slots:
          name: path.name
          isVerified: requestBody.isVerified
      - text: Set assignment source {name} to reload daily at UTC hour {scheduledReloadHour}.
        slots:
          name: path.name
          scheduledReloadHour: requestBody.scheduledReloadHour
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/experiments/assignment_sources'].get
  update:
    x-apievangelist-phrasing:
      intent: List assignment sources
      effect: read
      questions:
      - Which warehouse tables feed experiment assignments?
      - Can I page through all our assignment sources?
      instructions:
      - text: List all assignment sources.
      - text: Show assignment sources page {page}, {limit} per page.
        slots:
          page: query.page
          limit: query.limit
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/experiments/assignment_sources'].post
  update:
    x-apievangelist-phrasing:
      intent: Create an assignment source
      effect: write
      questions:
      - How do I register a warehouse query that tells Statsig which group each user was in?
      - What columns does a new assignment source need?
      instructions:
      - text: Create assignment source {name} from SQL {sql} with timestamp column {timestampColumn}, experiment column {experimentIDColumn}, group column {groupIDColumn}.
        slots:
          name: requestBody.name
          sql: requestBody.sql
          timestampColumn: requestBody.timestampColumn
          experimentIDColumn: requestBody.experimentIDColumn
          groupIDColumn: requestBody.groupIDColumn
      - text: Register new assignment source {name} mapping units as {idTypeMapping}.
        slots:
          name: requestBody.name
          idTypeMapping: requestBody.idTypeMapping
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/experiments/entity_properties'].get
  update:
    x-apievangelist-phrasing:
      intent: List entity property sources
      effect: read
      questions:
      - Which entity property sources describe our users?
      - Can I page through entity property sources?
      instructions:
      - text: List all entity property sources.
      - text: Show entity property sources page {page}, {limit} per page.
        slots:
          page: query.page
          limit: query.limit
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/experiments/entity_properties'].post
  update:
    x-apievangelist-phrasing:
      intent: Create an entity property source
      effect: write
      questions:
      - How do I bring user attributes from my warehouse in for experiment analysis?
      - Can I validate a new entity property source without saving it?
      instructions:
      - text: Create entity property source {name} from SQL {sql} with unit mapping {idTypeMapping}.
        slots:
          name: requestBody.name
          sql: requestBody.sql
          idTypeMapping: requestBody.idTypeMapping
      - text: Dry-run {dryRun} a new entity property source {name} using query {sql} and mapping {idTypeMapping}.
        slots:
          name: requestBody.name
          sql: requestBody.sql
          idTypeMapping: requestBody.idTypeMapping
          dryRun: requestBody.dryRun
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/experiments/entity_property/{name}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get an entity property source
      effect: read
      questions:
      - What SQL backs a particular entity property source?
      - Can I read one entity property source by name?
      instructions:
      - text: Show entity property source {name}.
        slots:
          name: path.name
      - text: Get the query and mapping of entity property source {name}.
        slots:
          name: path.name
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/experiments/entity_property/{name}'].post
  update:
    x-apievangelist-phrasing:
      intent: Fully update an entity property source
      effect: write
      questions:
      - How do I replace the query behind an entity property source?
      - Must I resend the unit mapping on a full entity property update?
      instructions:
      - text: Overwrite entity property source {name} with SQL {sql} and mapping {idTypeMapping}.
        slots:
          name: path.name
          sql: requestBody.sql
          idTypeMapping: requestBody.idTypeMapping
      - text: Rewrite entity property source {name} using {sql}, mapping {idTypeMapping}, timestamp column {timestampColumn}.
        slots:
          name: path.name
          sql: requestBody.sql
          idTypeMapping: requestBody.idTypeMapping
          timestampColumn: requestBody.timestampColumn
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/experiments/entity_property/{name}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete an entity property source
      effect: destructive
      questions:
      - Can I remove an entity property source we stopped using?
      - Is deleting an entity property source reversible?
      instructions:
      - text: Delete entity property source {name}.
        slots:
          name: path.name
      - text: Remove the user-attribute source called {name}.
        slots:
          name: path.name
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/experiments/entity_property/{name}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Change selected fields of an entity property source
      effect: write
      questions:
      - Can I just retag an entity property source?
      - Is it possible to treat an entity property timestamp as a day without resending the SQL?
      instructions:
      - text: Set tags {tags} on entity property source {name}.
        slots:
          name: path.name
          tags: requestBody.tags
      - text: Treat timestamps as days ({timestampAsDay}) on entity property source {name}.
        slots:
          name: path.name
          timestampAsDay: requestBody.timestampAsDay
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/experiments/qualifying_events'].get
  update:
    x-apievangelist-phrasing:
      intent: List qualifying events
      effect: read
      questions:
      - Which qualifying events decide who counts in an experiment?
      - Can I page through our qualifying events?
      instructions:
      - text: List all qualifying events.
      - text: Show qualifying events page {page}, {limit} per page.
        slots:
          page: query.page
          limit: query.limit
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/experiments/qualifying_events'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a qualifying event
      effect: write
      questions:
      - How do I define a qualifying event from a warehouse table or query?
      - Can I skip SQL validation when creating a qualifying event?
      instructions:
      - text: Create qualifying event {name} from SQL {sql} with timestamp column {timestampColumn} and mapping {idTypeMapping}.
        slots:
          name: requestBody.name
          sql: requestBody.sql
          timestampColumn: requestBody.timestampColumn
          idTypeMapping: requestBody.idTypeMapping
      - text: Add qualifying event {name} reading table {tableName} partitioned by {datePartitionColumn}, query {sql}, time {timestampColumn}, units {idTypeMapping}.
        slots:
          name: requestBody.name
          tableName: requestBody.tableName
          datePartitionColumn: requestBody.datePartitionColumn
          sql: requestBody.sql
          timestampColumn: requestBody.timestampColumn
          idTypeMapping: requestBody.idTypeMapping
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/experiments/qualifying_events/{name}'].get
  update:
    x-apievangelist-phrasing:
      intent: Read a qualifying event
      effect: read
      questions:
      - What query defines a particular qualifying event?
      - Can I look up one qualifying event by name?
      instructions:
      - text: Show qualifying event {name}.
        slots:
          name: path.name
      - text: Get the SQL and mapping for qualifying event {name}.
        slots:
          name: path.name
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/experiments/qualifying_events/{name}'].post
  update:
    x-apievangelist-phrasing:
      intent: Update a qualifying event
      effect: write
      questions:
      - How do I change the SQL behind a qualifying event?
      - Can a qualifying event be renamed during an update?
      instructions:
      - text: Update qualifying event {name} with SQL {sql}, timestamp column {timestampColumn} and mapping {idTypeMapping}.
        slots:
          name: path.name
          sql: requestBody.sql
          timestampColumn: requestBody.timestampColumn
          idTypeMapping: requestBody.idTypeMapping
      - text: Change qualifying event {name} to query {sql} at time column {timestampColumn}, units {idTypeMapping}, verified {isVerified}.
        slots:
          name: path.name
          sql: requestBody.sql
          timestampColumn: requestBody.timestampColumn
          idTypeMapping: requestBody.idTypeMapping
          isVerified: requestBody.isVerified
      method: generated
      generated: '2026-10-01'
- target: $.paths['/console/v1/experiments/qualifying_events/{name}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a qualifying event
      effect: destructive
      questions:
      - Can I remove a qualifying event we no longer use?
      - Is deleting a qualifying event permanent?
      instructions:
      - text: Delete qualifying event {name}.
        slots:
          name: path.name
      - text: Remove the qualifying event named {name}.
        slots:
          name: path.name
      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-experiments-warehouse-native-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.