# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Statsig Experiments API version: 1.0.0 extends: openapi/statsig-experiments-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: 66 - target: $.paths['/experiments'].get update: x-apievangelist-phrasing: intent: List experiments and their status effect: read questions: - Which experiments are running or set up in my Statsig project? - Can I see the status of every experiment we have, a page at a time? instructions: - text: List all experiments in my project with their status. - text: Show page {page} of experiments, {limit} per page. slots: page: query.page limit: query.limit method: generated generated: '2026-09-26' - target: $.paths['/experiments'].post update: x-apievangelist-phrasing: intent: Create an A/B experiment effect: write questions: - How do I set up a new A/B test with a hypothesis and groups? - Can I put a new experiment inside a layer or behind a targeting gate? - What percentage of users can I allocate when creating an experiment? instructions: - text: Create an experiment named {name} with hypothesis {hypothesis}. slots: name: requestBody.name hypothesis: requestBody.hypothesis - text: Create experiment {name} in layer {layerID} allocating {allocation} percent of users. slots: name: requestBody.name layerID: requestBody.layerID allocation: requestBody.allocation - text: Create experiment {name} limited to users passing gate {targetingGateID}. slots: name: requestBody.name targetingGateID: requestBody.targetingGateID method: generated generated: '2026-09-26' - target: $.paths['/experiments/{id}'].get update: x-apievangelist-phrasing: intent: Get an experiment's full setup effect: read questions: - What groups, parameters and hypothesis does a specific experiment have? - Can I look up how an experiment is configured in the console by its name? instructions: - text: Show the console configuration of experiment {id}. slots: id: path.id - text: Get the groups and hypothesis defined for experiment {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/experiments/{id}'].delete update: x-apievangelist-phrasing: intent: Delete an experiment effect: destructive questions: - How do I permanently remove an experiment from the project? - Is there a way to delete an old experiment we no longer need? instructions: - text: Delete experiment {id}. slots: id: path.id - text: Permanently remove experiment {id} from the project. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/experiments/{id}'].patch update: x-apievangelist-phrasing: intent: Update fields on an existing experiment effect: write questions: - Can I change the allocation of an experiment that already exists? - How do I edit the hypothesis or tags on an existing experiment? instructions: - text: Change the allocation of experiment {id} to {allocation} percent. slots: id: path.id allocation: requestBody.allocation - text: Update the hypothesis of existing experiment {id} to {hypothesis}. slots: id: path.id hypothesis: requestBody.hypothesis method: generated generated: '2026-09-26' - target: $.paths['/experiments/{id}/start'].put update: x-apievangelist-phrasing: intent: Start an experiment effect: write questions: - How do I start an experiment so users begin getting assigned to groups? - When does an experiment begin logging exposures? instructions: - text: Start experiment {id}. slots: id: path.id - text: Kick off experiment {id} and begin allocating users to its groups. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/experiments/{id}/reset'].put update: x-apievangelist-phrasing: intent: Reset an experiment and clear its data effect: destructive questions: - Can I wipe an experiment's collected data and start its assignments over? - What happens to user assignments when an experiment is reset? instructions: - text: Reset experiment {id}, clearing its collected data. slots: id: path.id - text: Clear all results and user assignments for experiment {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/get_experiment'].post update: x-apievangelist-phrasing: intent: Get a user's experiment group assignment effect: read questions: - Which experiment group is a particular user assigned to? - Does fetching a user's experiment assignment log an exposure? instructions: - text: Get the group assignment for user {user} in experiment {experimentName}. slots: user: requestBody.user experimentName: requestBody.experimentName - text: Evaluate experiment {experimentName} for user {user} and return their parameters. slots: experimentName: requestBody.experimentName user: requestBody.user method: generated generated: '2026-09-26' - target: $.paths['/console/v1/experiments'].get update: x-apievangelist-phrasing: intent: Search experiments with filters effect: read questions: - Which experiments are stale or still in setup, filtered by team or tag? - Can I find every experiment a particular creator launched within a date range? - What experiments run inside a given layer through the Console v1 API? instructions: - text: Find experiments with status {status} tagged {tags}. slots: status: query.status tags: query.tags - text: List console v1 experiments in layer {layerID} created between {createdStartDate} and {createdEndDate}. slots: layerID: query.layerID createdStartDate: query.createdStartDate createdEndDate: query.createdEndDate - text: Show experiments owned by team {teamID} with stale set to {stale}. slots: teamID: query.teamID stale: query.stale method: generated generated: '2026-10-01' - target: $.paths['/console/v1/experiments'].post update: x-apievangelist-phrasing: intent: Create an experiment with full analysis settings effect: write questions: - Can I turn on sequential testing or Bonferroni correction when I create an experiment? - Is it possible to set primary and secondary metrics and a control group for a new test in the v1 console? - What duration and target exposures can a brand-new experiment be given up front? instructions: - text: Create a console v1 experiment {name} with primary metrics {primaryMetrics} and control group {controlGroupID}. slots: name: requestBody.name primaryMetrics: requestBody.primaryMetrics controlGroupID: requestBody.controlGroupID - text: Set up new experiment {name} running {duration} days with sequential testing {sequentialTesting}. slots: name: requestBody.name duration: requestBody.duration sequentialTesting: requestBody.sequentialTesting - text: Create experiment {name} on unit type {idType} with analysis-only set to {isAnalysisOnly}. slots: name: requestBody.name idType: requestBody.idType isAnalysisOnly: requestBody.isAnalysisOnly method: generated generated: '2026-10-01' - target: $.paths['/console/v1/experiments/{id}'].get update: x-apievangelist-phrasing: intent: Fetch one experiment's selected fields effect: read questions: - Can I pull back only certain fields of an experiment, like its metrics and status? - Where do I read the full console v1 record for one experiment, analysis settings included? instructions: - text: Fetch console v1 experiment {id} returning only the fields {fields}. slots: id: path.id fields: query.fields - text: Read the full v1 experiment record for {id}, including its analysis settings. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/console/v1/experiments/{id}'].post update: x-apievangelist-phrasing: intent: Replace an experiment's entire configuration effect: write questions: - How can I overwrite every setting on an experiment in one request? - Which fields must I resend when replacing an experiment's whole definition? instructions: - text: Replace the whole configuration of experiment {id}, resending groups {groups} and allocation {allocation}. slots: id: path.id groups: requestBody.groups allocation: requestBody.allocation - text: Fully overwrite experiment {id} with hypothesis {hypothesis} and status {status}. slots: id: path.id hypothesis: requestBody.hypothesis status: requestBody.status method: generated generated: '2026-10-01' - target: $.paths['/console/v1/experiments/{id}'].delete update: x-apievangelist-phrasing: intent: Delete an experiment via the Console v1 API effect: destructive questions: - Can the console v1 endpoint erase an experiment for good? - What is the v1 call to drop an experiment from the console entirely? instructions: - text: Erase experiment {id} using the console v1 endpoint. slots: id: path.id - text: Drop v1 experiment {id} from the console for good. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/console/v1/experiments/{id}'].patch update: x-apievangelist-phrasing: intent: Change selected settings on an experiment effect: write questions: - Can I switch on turbo mode or change the confidence interval of a running experiment? - Is it possible to edit just the secondary metrics of an experiment without resending the rest? instructions: - text: Patch experiment {id} so its secondary metrics are {secondaryMetrics}. slots: id: path.id secondaryMetrics: requestBody.secondaryMetrics - text: Set the default confidence interval of experiment {id} to {defaultConfidenceInterval}. slots: id: path.id defaultConfidenceInterval: requestBody.defaultConfidenceInterval - text: Turn turbo mode {turboMode} on console v1 experiment {id}. slots: turboMode: requestBody.turboMode id: path.id method: generated generated: '2026-10-01' - target: $.paths['/console/v1/experiments/{id}/abandon'].put update: x-apievangelist-phrasing: intent: Abandon an experiment effect: destructive questions: - How do I abandon an experiment without shipping any group? - Do I have to give a reason when abandoning a test? instructions: - text: Abandon experiment {id} because {decisionReason}. slots: id: path.id decisionReason: requestBody.decisionReason - text: Give up on experiment {id} with the reason {decisionReason}. slots: id: path.id decisionReason: requestBody.decisionReason method: generated generated: '2026-10-01' - target: $.paths['/console/v1/experiments/{id}/alerts'].get update: x-apievangelist-phrasing: intent: Check an experiment's guardrail alerts effect: read questions: - Have any guardrail metrics fired alerts on my experiment? - Which guardrail alerts are currently open for a test? instructions: - text: Show the guardrail alert statuses for experiment {id}. slots: id: path.id - text: Check whether any guardrail alerts have fired on experiment {id}. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/console/v1/experiments/{id}/alerts/{metricId}/resolve'].post update: x-apievangelist-phrasing: intent: Resolve a metric rollout alert effect: write questions: - How do I mark a metric rollout alert on an experiment as resolved? - Can I record my reasoning when dismissing a guardrail alert for one metric? instructions: - text: Resolve the rollout alert for metric {metricId} on experiment {id}. slots: metricId: path.metricId id: path.id - text: Mark metric {metricId}'s alert on experiment {id} resolved, noting {reasoning}. slots: metricId: path.metricId id: path.id reasoning: requestBody.reasoning method: generated generated: '2026-10-01' - target: $.paths['/console/v1/experiments/{id}/archive'].put update: x-apievangelist-phrasing: intent: Archive an experiment effect: write questions: - How do I archive a finished experiment so it leaves the active list? - Can I note why an experiment was archived? instructions: - text: Archive experiment {id}. slots: id: path.id - text: Archive experiment {id} with the reason {archiveReason}. slots: id: path.id archiveReason: requestBody.archiveReason method: generated generated: '2026-10-01' - target: $.paths['/console/v1/experiments/{id}/code_cleanup'].post update: x-apievangelist-phrasing: intent: Start code cleanup for an experiment effect: write questions: - Can Statsig kick off cleanup of the code paths behind a concluded experiment? - How do I start removing dead experiment code once a test is done? instructions: - text: Start code cleanup for experiment {id}. slots: id: path.id - text: Begin removing the leftover code references for experiment {id}. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/console/v1/experiments/{id}/context'].get update: x-apievangelist-phrasing: intent: Get an experiment's context effect: read questions: - What background context is recorded for an experiment? - Can I fetch the context summary behind a test before reviewing results? instructions: - text: Get the context for experiment {id}. slots: id: path.id - text: Pull the background context recorded on experiment {id}. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/console/v1/experiments/{id}/cumulative_exposures'].get update: x-apievangelist-phrasing: intent: Get cumulative exposures for an experiment effect: read questions: - How many users have been exposed to my experiment so far in total? - Can I see exposure counts accumulating over the life of a test? instructions: - text: Show cumulative exposures for experiment {id}. slots: id: path.id - text: Get the running total of users exposed to experiment {id}. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/console/v1/experiments/{id}/defer_decision'].put update: x-apievangelist-phrasing: intent: Conclude an experiment and defer the decision effect: write questions: - Can I stop an experiment now but decide which group to ship later? - Is there a way to end a test without picking a winner yet? instructions: - text: Conclude experiment {id} and defer the ship decision. slots: id: path.id - text: Stop experiment {id} for the reason {stopReason} and decide on a winner later. slots: id: path.id stopReason: requestBody.stopReason method: generated generated: '2026-10-01' - target: $.paths['/console/v1/experiments/{id}/diagnostics_checks'].get update: x-apievangelist-phrasing: intent: Get an experiment's health check diagnostics effect: read questions: - Are there sample ratio mismatch or other health check failures on my experiment? - Can I see experiment diagnostics checks for just the last few days? instructions: - text: Show health check diagnostics for experiment {id} over the last {lastDays} days. slots: id: path.id lastDays: query.lastDays - text: Get {type} diagnostics checks for experiment {id} from {startDate} to {endDate}. slots: type: query.type id: path.id startDate: query.startDate endDate: query.endDate method: generated generated: '2026-10-01' - target: $.paths['/console/v1/experiments/{id}/dimensional_exposures'].get update: x-apievangelist-phrasing: intent: Break down experiment exposures by dimension effect: read questions: - Are exposures to my experiment balanced across dimensions like platform or country? - Which dimensions show severe exposure imbalances in a test? instructions: - text: Break down exposures for experiment {id} by dimension {dimension_type}. slots: id: path.id dimension_type: query.dimension_type - text: Show dimensional exposure imbalances of severity {severity} for experiment {id}. slots: severity: query.severity id: path.id method: generated generated: '2026-10-01' - target: $.paths['/console/v1/experiments/{id}/disable_groups'].post update: x-apievangelist-phrasing: intent: Disable groups in an experiment effect: write questions: - Can I switch off one variant of an experiment while the others keep running? - How do I stop sending users to a badly performing test group? instructions: - text: Disable groups {group_names} in experiment {id}. slots: group_names: requestBody.group_names id: path.id - text: Turn off the variant {group_names} on experiment {id} so no new users land in it. slots: group_names: requestBody.group_names id: path.id method: generated generated: '2026-10-01' - target: $.paths['/console/v1/experiments/{id}/eligible_reviewers'].get update: x-apievangelist-phrasing: intent: List who can review an experiment effect: read questions: - Who is allowed to approve changes to my experiment? - Which teammates are eligible reviewers for a test? instructions: - text: List the eligible reviewers for experiment {id}. slots: id: path.id - text: Show who can approve review requests on experiment {id}. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/console/v1/experiments/{id}/enable_groups'].post update: x-apievangelist-phrasing: intent: Re-enable groups in an experiment effect: write questions: - How do I turn a disabled experiment group back on? - Can a variant I switched off start receiving users again? instructions: - text: Enable groups {group_names} in experiment {id}. slots: group_names: requestBody.group_names id: path.id - text: Re-enable the previously disabled variant {group_names} on experiment {id}. slots: group_names: requestBody.group_names id: path.id method: generated generated: '2026-10-01' - target: $.paths['/console/v1/experiments/{id}/load_pulse'].post update: x-apievangelist-phrasing: intent: Trigger a Pulse results load in the warehouse effect: write questions: - How do I kick off a fresh Pulse calculation for a warehouse native experiment? - Can I reload Pulse for only certain metrics, with turbo mode? instructions: - text: Load Pulse for warehouse native experiment {id}. slots: id: path.id - text: Run a Pulse load on experiment {id} for 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}/make_decision'].put update: x-apievangelist-phrasing: intent: Finish an experiment early and ship a group effect: write questions: - How do I end an experiment early and ship the winning group? - Can I keep a holdout or remove targeting when I make the ship decision? instructions: - text: Finish experiment {id} early and ship group {groupId} because {decisionReason}. slots: id: path.id groupId: requestBody.id decisionReason: requestBody.decisionReason - text: Ship group {groupId} of experiment {id} now, removing targeting {removeTargeting}, reason {decisionReason}. slots: groupId: requestBody.id id: path.id removeTargeting: requestBody.removeTargeting decisionReason: requestBody.decisionReason method: generated generated: '2026-10-01' - target: $.paths['/console/v1/experiments/{id}/overrides'].get update: x-apievangelist-phrasing: intent: View an experiment's overrides effect: read questions: - Which users or segments are forced into a particular experiment group? - What overrides are currently set on a test? instructions: - text: Show the overrides on experiment {id}. slots: id: path.id - text: List which users and segments are forced into groups in experiment {id}. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/console/v1/experiments/{id}/overrides'].post update: x-apievangelist-phrasing: intent: Replace all overrides on an experiment effect: write questions: - How do I replace the full set of overrides on an experiment at once? - Can I reset every forced user ID assignment in a test with a new list? instructions: - text: Replace all overrides on experiment {id} with {overrides} and user ID overrides {userIDOverrides}. slots: id: path.id overrides: requestBody.overrides userIDOverrides: requestBody.userIDOverrides - text: Overwrite the complete override list of experiment {id} with gate and segment overrides {overrides} and user IDs {userIDOverrides}. slots: id: path.id userIDOverrides: requestBody.userIDOverrides overrides: requestBody.overrides method: generated generated: '2026-10-01' - target: $.paths['/console/v1/experiments/{id}/overrides'].delete update: x-apievangelist-phrasing: intent: Remove all overrides from an experiment effect: destructive questions: - How do I clear every override on an experiment at once? - Can I wipe all forced group assignments from a test? instructions: - text: Delete all overrides on experiment {id}. slots: id: path.id - text: Clear every forced group assignment from experiment {id}. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/console/v1/experiments/{id}/overrides'].patch update: x-apievangelist-phrasing: intent: Add to an experiment's overrides effect: write questions: - Can I add a few user overrides to an experiment without replacing the existing ones? - How do I merge new segment overrides into a test's current list? instructions: - text: Add user ID overrides {userIDOverrides} and conditional overrides {overrides} to experiment {id}, keeping existing ones. slots: userIDOverrides: requestBody.userIDOverrides id: path.id overrides: requestBody.overrides - text: Merge segment overrides {overrides} and user overrides {userIDOverrides} into the current list on experiment {id}. slots: overrides: requestBody.overrides id: path.id userIDOverrides: requestBody.userIDOverrides method: generated generated: '2026-10-01' - target: $.paths['/console/v1/experiments/{id}/overrides/conditional/{type}/{name}'].delete update: x-apievangelist-phrasing: intent: Remove one gate or segment override effect: destructive questions: - How do I remove a single segment override from an experiment group? - Can I drop one gate override in a specific environment and leave the rest? instructions: - text: Remove the {type} override {name} for group {groupID} on experiment {id}. slots: type: path.type name: path.name groupID: query.groupID id: path.id - text: Delete the {type} override {name} from group {groupID} of experiment {id} in {environment}. slots: type: path.type name: path.name groupID: query.groupID id: path.id environment: query.environment method: generated generated: '2026-10-01' - target: $.paths['/console/v1/experiments/{id}/overrides/userID/{userID}'].delete update: x-apievangelist-phrasing: intent: Remove one user ID override effect: destructive questions: - How do I take one user out of a forced experiment group? - Can I un-override a single user ID for only one unit type and environment? instructions: - text: Remove user {userID} from the group {groupID} override on experiment {id}. slots: userID: path.userID groupID: query.groupID id: path.id - text: Stop forcing user {userID} into group {groupID} of experiment {id} for unit type {unitType}. slots: userID: path.userID groupID: query.groupID id: path.id unitType: query.unitType method: generated generated: '2026-10-01' - target: $.paths['/console/v1/experiments/{id}/pulse_load_history'].get update: x-apievangelist-phrasing: intent: List past Pulse loads for an experiment effect: read questions: - When was Pulse last loaded for my warehouse native experiment? - Can I page through the history of Pulse loads on a test? instructions: - text: Show the Pulse load history for experiment {id}. slots: id: path.id - text: List page {page} of past Pulse loads for experiment {id}, {limit} at a time. slots: page: query.page id: path.id limit: query.limit method: generated generated: '2026-10-01' - target: $.paths['/console/v1/experiments/{id}/pulse_load_history/{dagID}'].get update: x-apievangelist-phrasing: intent: Get details of one Pulse load run effect: read questions: - Why did a particular Pulse load fail or take so long? - What steps ran in one specific warehouse Pulse load? instructions: - text: Get the details of Pulse load {dagID} for experiment {id}. slots: dagID: path.dagID id: path.id - text: Show the status and steps of load run {dagID} on experiment {id}. slots: dagID: path.dagID id: path.id 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 still running in my warehouse? - How do I cancel a stuck warehouse Pulse computation? instructions: - text: Cancel Pulse load {dagID} for experiment {id}. slots: dagID: path.dagID id: path.id - text: Abort the in-progress load run {dagID} on experiment {id}. slots: dagID: path.dagID id: path.id method: generated generated: '2026-10-01' - target: $.paths['/console/v1/experiments/{id}/pulse_metric_result'].get update: x-apievangelist-phrasing: intent: Get Pulse results for a single metric effect: read questions: - What lift does one specific metric show between test and control? - Can I see a single metric's result with CUPED applied? instructions: - text: Get the Pulse result for metric {metricID} in experiment {id}, comparing {test} to {control}. slots: metricID: query.metricID id: path.id test: query.test control: query.control - text: Show metric {metricID}'s lift for {test} vs {control} on experiment {id} at {confidence} confidence. slots: metricID: query.metricID test: query.test control: query.control id: path.id confidence: query.confidence method: generated generated: '2026-10-01' - target: $.paths['/console/v1/experiments/{id}/pulse_results'].get update: x-apievangelist-phrasing: intent: Get Pulse results across all metrics effect: read questions: - How are all the metrics trending for my test group against control? - Can I pull an experiment's full scorecard with a Bonferroni correction applied? instructions: - text: Get the full Pulse scorecard for experiment {id}, test group {test} vs control {control}. slots: id: path.id test: query.test control: query.control - text: Show all metric results for experiment {id} on {date}, {test} against {control}. slots: id: path.id date: query.date test: query.test control: query.control method: generated generated: '2026-10-01' - target: $.paths['/console/v1/experiments/{id}/reset'].put update: x-apievangelist-phrasing: intent: Reset an experiment via the Console v1 API effect: destructive questions: - Which console v1 call wipes an experiment back to a fresh state? - Can I restart an experiment's data collection from zero with the v1 endpoint? instructions: - text: Reset experiment {id} through the console v1 endpoint. slots: id: path.id - text: Wipe v1 experiment {id} back to a fresh state and restart data collection. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/console/v1/experiments/{id}/restart_as_new'].post update: x-apievangelist-phrasing: intent: Restart an experiment as a new copy effect: write questions: - Can I relaunch an experiment as a new one under a different name? - How do I rerun a test from scratch while keeping the original's results? instructions: - text: Restart experiment {id} as a new experiment named {name}. slots: id: path.id name: requestBody.name - text: Relaunch experiment {id} as a fresh copy called {name}. slots: id: path.id name: requestBody.name method: generated generated: '2026-10-01' - target: $.paths['/console/v1/experiments/{id}/reviews'].get update: x-apievangelist-phrasing: intent: List review requests on an experiment effect: read questions: - What review requests are pending or done on my experiment? - Can I page through all approval requests filed against a test? instructions: - text: List the review requests on experiment {id}. slots: id: path.id - text: Show page {page} of reviews for experiment {id}, {limit} per page. slots: page: query.page id: path.id limit: query.limit method: generated generated: '2026-10-01' - target: $.paths['/console/v1/experiments/{id}/reviews'].post update: x-apievangelist-phrasing: intent: Request a review of an experiment change effect: write questions: - How do I ask teammates to approve a change to my experiment? - Can I request a review to ship a winning group or change rollout percentage? instructions: - text: Open a {type} review on experiment {id} for reviewers {reviewer_ids}. slots: type: requestBody.type id: path.id reviewer_ids: requestBody.reviewer_ids - text: Request a {type} review on experiment {id} to ship group {winning_group_id}. slots: type: requestBody.type id: path.id winning_group_id: requestBody.winning_group_id method: generated generated: '2026-10-01' - target: $.paths['/console/v1/experiments/{id}/reviews/{reviewID}'].get update: x-apievangelist-phrasing: intent: Get one experiment review effect: read questions: - What is the status of a specific review request on my experiment? - Who has signed off on one particular experiment review? instructions: - text: Get review {reviewID} on experiment {id}. slots: reviewID: path.reviewID id: path.id - text: Check the approval status of review {reviewID} for experiment {id}. slots: reviewID: path.reviewID id: path.id method: generated generated: '2026-10-01' - target: $.paths['/console/v1/experiments/{id}/reviews/{reviewID}'].put update: x-apievangelist-phrasing: intent: Edit an experiment review request effect: write questions: - Can I add reviewers to a review request I already opened? - How do I change the description of an existing experiment review? instructions: - text: Change the reviewers on review {reviewID} of experiment {id} to {reviewer_ids}. slots: reviewID: path.reviewID id: path.id reviewer_ids: requestBody.reviewer_ids - text: Update the description of review {reviewID} on experiment {id} to {description}. slots: reviewID: path.reviewID id: path.id description: requestBody.description method: generated generated: '2026-10-01' - target: $.paths['/console/v1/experiments/{id}/reviews/{reviewID}'].delete update: x-apievangelist-phrasing: intent: Cancel an experiment review request effect: destructive questions: - How do I withdraw a review request I no longer need? - Can I cancel a pending approval on an experiment change? instructions: - text: Cancel review {reviewID} on experiment {id}. slots: reviewID: path.reviewID id: path.id - text: Withdraw pending review request {reviewID} for experiment {id}. slots: reviewID: path.reviewID id: path.id method: generated generated: '2026-10-01' - target: $.paths['/console/v1/experiments/{id}/reviews/{reviewID}/approve'].put update: x-apievangelist-phrasing: intent: Approve an experiment review effect: write questions: - How do I sign off on a teammate's experiment change request? - Can I leave a note when approving a review? instructions: - text: Approve review {reviewID} on experiment {id}. slots: reviewID: path.reviewID id: path.id - text: Sign off on review {reviewID} for experiment {id} with the note {reason}. slots: reviewID: path.reviewID id: path.id reason: requestBody.reason method: generated generated: '2026-10-01' - target: $.paths['/console/v1/experiments/{id}/reviews/{reviewID}/commit'].put update: x-apievangelist-phrasing: intent: Commit an approved experiment review effect: write questions: - Once a review is approved, how do I apply the change it proposed? - What makes an approved experiment change actually take effect? instructions: - text: Commit approved review {reviewID} on experiment {id}. slots: reviewID: path.reviewID id: path.id - text: Apply the changes from approved review {reviewID} to experiment {id}. slots: reviewID: path.reviewID id: path.id method: generated generated: '2026-10-01' - target: $.paths['/console/v1/experiments/{id}/reviews/{reviewID}/reject'].put update: x-apievangelist-phrasing: intent: Reject an experiment review effect: write questions: - How do I turn down a proposed change to an experiment? - Is a reason required when rejecting a review request? instructions: - text: Reject review {reviewID} on experiment {id} because {reason}. slots: reviewID: path.reviewID id: path.id reason: requestBody.reason - text: Decline the change in review {reviewID} for experiment {id}, explaining {reason}. slots: reviewID: path.reviewID id: path.id reason: requestBody.reason method: generated generated: '2026-10-01' - target: $.paths['/console/v1/experiments/{id}/schedule_start'].post update: x-apievangelist-phrasing: intent: Schedule an experiment to start later effect: write questions: - Can I set an experiment to go live automatically at a future time? - How do I schedule a test to launch next Monday morning? instructions: - text: Schedule experiment {id} to start at {scheduledTime}. slots: id: path.id scheduledTime: requestBody.scheduledTime - text: Set experiment {id} to launch automatically at {scheduledTime}. slots: id: path.id scheduledTime: requestBody.scheduledTime method: generated generated: '2026-10-01' - target: $.paths['/console/v1/experiments/{id}/start'].put update: x-apievangelist-phrasing: intent: Start an experiment with an analysis window effect: write questions: - Can I start an experiment now and fix the start and end of its analysis window? - Is turbo mode something I can switch on at the moment a test starts? instructions: - text: Start v1 experiment {id} analysing from {analysisStartTime} to {analysisEndTime}. slots: id: path.id analysisStartTime: requestBody.analysisStartTime analysisEndTime: requestBody.analysisEndTime - text: Launch experiment {id} now with turbo mode {turboMode}. slots: id: path.id turboMode: requestBody.turboMode method: generated generated: '2026-10-01' - target: $.paths['/console/v1/experiments/{id}/summary_charts'].get update: x-apievangelist-phrasing: intent: Get summary charts for an experiment effect: read questions: - Can I get chart data summarising how an experiment is performing? - What summary charts exist for a test group compared to control? instructions: - text: Get the summary charts for experiment {id}. slots: id: path.id - text: Fetch summary chart data for experiment {id}, group {test} against {control}. slots: id: path.id test: query.test control: query.control method: generated generated: '2026-10-01' - target: $.paths['/console/v1/experiments/{id}/unarchive'].put update: x-apievangelist-phrasing: intent: Unarchive an experiment effect: write questions: - How do I bring an archived experiment back? - Can an experiment be restored from the archive? instructions: - text: Unarchive experiment {id}. slots: id: path.id - text: Restore experiment {id} from the archive. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/console/v1/experiments/{id}/versions'].get update: x-apievangelist-phrasing: intent: List an experiment's version history effect: read questions: - Who changed my experiment's configuration and when? - Can I see previous versions of an experiment within a date range? instructions: - text: List the versions of experiment {id}. slots: id: path.id - text: Show version history for experiment {id} between {startDate} and {endDate}. slots: id: path.id startDate: query.startDate endDate: query.endDate method: generated generated: '2026-10-01' - target: $.paths['/console/v1/experiments/assignment_source/{name}'].post update: x-apievangelist-phrasing: intent: Replace a named assignment source effect: write questions: - How do I overwrite the SQL and column mapping of an existing assignment source? - Can I fully redefine an assignment source I already have by its name? instructions: - text: Replace assignment source {name} with SQL {sql}, timestamp column {timestampColumn} and experiment column {experimentIDColumn}. slots: name: path.name sql: requestBody.sql timestampColumn: requestBody.timestampColumn experimentIDColumn: requestBody.experimentIDColumn - text: Redefine existing assignment source {name} using group column {groupIDColumn} and ID mapping {idTypeMapping}. slots: name: path.name groupIDColumn: requestBody.groupIDColumn 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: - How do I remove an assignment source I no longer use? - Can I delete a warehouse assignment source by name? instructions: - text: Delete assignment source {name}. slots: name: path.name - text: Remove the warehouse 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: Update fields on an assignment source effect: write questions: - Can I change just the description or owner of an assignment source? - How do I adjust the reload hour on one assignment source? instructions: - text: Change the owner of assignment source {name} to {owner}. slots: name: path.name owner: requestBody.owner - text: Set the scheduled reload hour of assignment source {name} to {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 are set up as assignment sources for experiments? - What assignment sources does my project have? instructions: - text: List all assignment sources. - text: Show page {page} of assignment sources, {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 new warehouse query that records which group each user got? - Can I dry-run a new assignment source before saving it? instructions: - text: Create assignment source {name} from SQL {sql} with timestamp column {timestampColumn}. slots: name: requestBody.name sql: requestBody.sql timestampColumn: requestBody.timestampColumn - text: Add new assignment source {name} reading experiment IDs from {experimentIDColumn} and groups from {groupIDColumn}. slots: name: requestBody.name experimentIDColumn: requestBody.experimentIDColumn groupIDColumn: requestBody.groupIDColumn 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 feed user attributes into my experiments? - Can I page through all the entity property sources in the project? instructions: - text: List all entity property sources. - text: Show page {page} of entity property sources with {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 add a warehouse query that supplies user properties for experiment analysis? - Can a new entity property source treat its timestamp as a day? instructions: - text: Create entity property source {name} from SQL {sql} with ID mapping {idTypeMapping}. slots: name: requestBody.name sql: requestBody.sql idTypeMapping: requestBody.idTypeMapping - text: Add a new entity property source {name}, dry run {dryRun}. slots: name: requestBody.name 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 and ID mapping does a particular entity property source use? - Can I look up one entity property source by name? instructions: - text: Get entity property source {name}. slots: name: path.name - text: Show the SQL and ID mapping behind 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: Replace an entity property source effect: write questions: - How do I overwrite the query behind an existing entity property source? - Can I fully redefine a named entity property source in one call? instructions: - text: Replace entity property source {name} with SQL {sql} and ID mapping {idTypeMapping}. slots: name: path.name sql: requestBody.sql idTypeMapping: requestBody.idTypeMapping - text: Overwrite existing entity property source {name}'s whole definition using query {sql} and mapping {idTypeMapping}. slots: name: path.name sql: requestBody.sql idTypeMapping: requestBody.idTypeMapping 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: - How do I remove an entity property source from the project? - Can I delete an entity property source that is no longer needed? instructions: - text: Delete entity property source {name}. slots: name: path.name - text: Remove the entity property 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: Update fields on an entity property source effect: write questions: - Can I change just the description or tags of an entity property source? - How do I make an entity property source read-only? instructions: - text: Update the description of entity property source {name} to {description}. slots: name: path.name description: requestBody.description - text: Set entity property source {name} read-only to {isReadOnly}. slots: name: path.name isReadOnly: requestBody.isReadOnly method: generated generated: '2026-10-01'