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.
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
# 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.
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.