# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Statsig Metrics API version: 1.0.0 extends: openapi/statsig-metrics-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: 22 - target: $.paths['/metrics'].get update: x-apievangelist-phrasing: intent: List metric definitions effect: read questions: - Which metrics are defined in my Statsig project? - Can I page through all our metric definitions? instructions: - text: List all metrics in my project. - text: Show page {page} of metrics, {limit} per page. slots: page: query.page limit: query.limit method: generated generated: '2026-09-26' - target: $.paths['/metrics/{id}'].get update: x-apievangelist-phrasing: intent: Get a metric's definition effect: read questions: - How is a specific metric defined? - Can I look up one metric's definition by name? instructions: - text: Show the definition of metric {id}. slots: id: path.id - text: Get metric {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/console/v1/metrics'].get update: x-apievangelist-phrasing: intent: Read a metric's value for one day effect: read questions: - What was a metric's value on a specific date? - Can I pull a single day's value for one metric and type? instructions: - text: Get the value of metric {id} on {date}. slots: id: query.id date: query.date - text: Read metric {id} for {date}. slots: id: query.id date: query.date method: generated generated: '2026-10-01' - target: $.paths['/console/v1/metrics'].post update: x-apievangelist-phrasing: intent: Create a metric effect: write questions: - Can I define a new ratio or funnel metric through the API? - Can I set whether an increase or decrease is good for a new metric? - Is there a way to validate a new metric definition without saving it? instructions: - text: Create metric {name} of type {type}. slots: name: requestBody.name type: requestBody.type - text: Create a {type} metric {name} computed from events {metricEvents}. slots: type: requestBody.type name: requestBody.name metricEvents: requestBody.metricEvents - text: Validate metric {name} of type {type} without saving, dry run {dryRun}. slots: name: requestBody.name type: requestBody.type dryRun: requestBody.dryRun method: generated generated: '2026-10-01' - target: $.paths['/console/v1/metrics/{id}'].get update: x-apievangelist-phrasing: intent: Read a metric definition via Console API v1 effect: read questions: - Can the Console API v1 return a metric's full definition by its ID? - Is a given metric verified or read-only? instructions: - text: Read metric definition {id} from the v1 console. slots: id: path.id - text: Check whether metric {id} is verified, read-only or permanent. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/console/v1/metrics/{id}'].post update: x-apievangelist-phrasing: intent: Update a metric's definition effect: write questions: - Can I mark an existing metric as verified? - Can I schedule warehouse native reloads for a metric at a set hour? - Is it possible to change a metric's directionality after it was created? instructions: - text: Set the verified flag on metric {id} to {isVerified}. slots: id: path.id isVerified: requestBody.isVerified - text: Schedule reloads of metric {id} at UTC hour {scheduledReloadHour} on days {scheduledReloadDays}. slots: id: path.id scheduledReloadHour: requestBody.scheduledReloadHour scheduledReloadDays: requestBody.scheduledReloadDays - text: Update the description of metric {id} to {description}. slots: id: path.id description: requestBody.description method: generated generated: '2026-10-01' - target: $.paths['/console/v1/metrics/{id}'].delete update: x-apievangelist-phrasing: intent: Delete a metric effect: destructive questions: - Can I permanently delete a metric definition? - Is deleting a metric irreversible? instructions: - text: Delete metric {id}. slots: id: path.id - text: Permanently remove metric {id} from the project. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/console/v1/metrics/{id}/cancel_archive'].put update: x-apievangelist-phrasing: intent: Cancel a scheduled metric archive effect: write questions: - Can I stop a metric that's scheduled for archiving from being archived? - Is there a way to call off a pending metric archive? instructions: - text: Cancel the scheduled archive of metric {id}. slots: id: path.id - text: Keep metric {id} active by cancelling its pending archive. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/console/v1/metrics/{id}/experiments'].get update: x-apievangelist-phrasing: intent: List experiments that use a metric effect: read questions: - Which experiments use a particular metric? - Can I see only the experiments in a given status that track a metric? - What stale experiments still reference a metric? instructions: - text: List experiments that use metric {id}. slots: id: path.id - text: Show experiments with status {status} that track metric {id}. slots: status: query.status id: path.id - text: Show experiments on metric {id} created between {createdStartDate} and {createdEndDate}. slots: id: path.id createdStartDate: query.createdStartDate createdEndDate: query.createdEndDate method: generated generated: '2026-10-01' - target: $.paths['/console/v1/metrics/{id}/reload'].post update: x-apievangelist-phrasing: intent: Reload a metric's data effect: write questions: - Can I trigger a recomputation of a metric's data? - Is an incremental reload possible instead of a full one? instructions: - text: Reload data for metric {id}. slots: id: path.id - text: Reload metric {id} incrementally ({incremental}). slots: id: path.id incremental: query.incremental method: generated generated: '2026-10-01' - target: $.paths['/console/v1/metrics/{id}/schedule_archive'].put update: x-apievangelist-phrasing: intent: Schedule a metric for archiving effect: write questions: - Can I schedule an unused metric to be archived? - Is there a way to queue a metric for archive rather than archiving it now? instructions: - text: Schedule metric {id} for archive. slots: id: path.id - text: Queue metric {id} to be archived. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/console/v1/metrics/{id}/sql'].get update: x-apievangelist-phrasing: intent: Get the SQL behind a metric effect: read questions: - What SQL does Statsig run to compute a metric? - Can I see the generated query for a metric? instructions: - text: Show the SQL for metric {id}. slots: id: path.id - text: Get the query that computes metric {id}. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/console/v1/metrics/{id}/unarchive'].put update: x-apievangelist-phrasing: intent: Unarchive a metric effect: write questions: - Can I bring back a metric that was archived? - Is restoring an archived metric possible? instructions: - text: Unarchive metric {id}. slots: id: path.id - text: Restore archived metric {id}. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/console/v1/metrics/{name}/{type}'].get update: x-apievangelist-phrasing: intent: Look up a metric by name and type effect: read questions: - Can I find a metric's definition when I know its name and type but not its ID? - What is the definition of the metric with a given name and type? instructions: - text: Get the metric named {name} of type {type}. slots: name: path.name type: path.type - text: Look up metric definition by name {name} and type {type}. slots: name: path.name type: path.type method: generated generated: '2026-10-01' - target: $.paths['/console/v1/metrics/list'].get update: x-apievangelist-phrasing: intent: Search and filter the metric catalog effect: read questions: - Can I include hidden metrics when listing our metrics? - Which metrics match a search term like checkout? - Can I list only metrics with a certain tag? instructions: - text: List metrics matching {filters}. slots: filters: query.filters - text: List metrics tagged {tags} with hidden metrics set to {showHiddenMetrics}. slots: tags: query.tags showHiddenMetrics: query.showHiddenMetrics method: generated generated: '2026-10-01' - target: $.paths['/console/v1/metrics/metric_source'].post update: x-apievangelist-phrasing: intent: Create a metric source from SQL effect: write questions: - Can I define a metric source from a SQL query in our warehouse? - Which column mappings does a new metric source need? - Is there a way to skip SQL validation when creating a metric source? instructions: - text: Create metric source {name} from SQL {sql} with timestamp column {timestampColumn} and ID mapping {idTypeMapping}. slots: name: requestBody.name sql: requestBody.sql timestampColumn: requestBody.timestampColumn idTypeMapping: requestBody.idTypeMapping - text: 'Validate new metric source {name} without saving: SQL {sql}, dry run {dryRun}.' slots: name: requestBody.name sql: requestBody.sql dryRun: requestBody.dryRun method: generated generated: '2026-10-01' - target: $.paths['/console/v1/metrics/metric_source/{name}'].get update: x-apievangelist-phrasing: intent: Read a metric source effect: read questions: - What SQL and column mappings does a metric source use? - Can I view one metric source's configuration by name? instructions: - text: Show metric source {name}. slots: name: path.name - text: Get the SQL and ID mapping of metric source {name}. slots: name: path.name method: generated generated: '2026-10-01' - target: $.paths['/console/v1/metrics/metric_source/{name}'].post update: x-apievangelist-phrasing: intent: Update a metric source effect: write questions: - Can I change the SQL behind an existing metric source? - Can I disable CURE for every metric built on a source? - Is it possible to switch an existing metric source to a different timestamp column? instructions: - text: Update metric source {name} to use SQL {sql}, timestamp {timestampColumn}, ID mapping {idTypeMapping}. slots: name: path.name sql: requestBody.sql timestampColumn: requestBody.timestampColumn idTypeMapping: requestBody.idTypeMapping - text: Turn off CURE on metric source {name} with {disableCURE}, keeping SQL {sql}, timestamp {timestampColumn} and ID mapping {idTypeMapping}. slots: name: path.name disableCURE: requestBody.disableCURE sql: requestBody.sql timestampColumn: requestBody.timestampColumn idTypeMapping: requestBody.idTypeMapping method: generated generated: '2026-10-01' - target: $.paths['/console/v1/metrics/metric_source/{name}'].delete update: x-apievangelist-phrasing: intent: Delete a metric source effect: destructive questions: - Can I remove a metric source we no longer query? - Is deleting a metric source permanent? instructions: - text: Delete metric source {name}. slots: name: path.name - text: Permanently remove metric source {name}. slots: name: path.name method: generated generated: '2026-10-01' - target: $.paths['/console/v1/metrics/metric_source/{name}/metrics'].get update: x-apievangelist-phrasing: intent: List metrics built on a metric source effect: read questions: - Which metrics are built on top of a particular metric source? - What depends on a metric source before I change it? instructions: - text: List metrics that use metric source {name}. slots: name: path.name - text: Show page {page} of metrics built from source {name}. slots: page: query.page name: path.name method: generated generated: '2026-10-01' - target: $.paths['/console/v1/metrics/metric_source/list'].get update: x-apievangelist-phrasing: intent: List metric sources effect: read questions: - Which metric sources are set up in our project? - Can I page through every metric source? instructions: - text: List all metric sources. - text: Show page {page} of metric sources, {limit} per page. slots: page: query.page limit: query.limit method: generated generated: '2026-10-01' - target: $.paths['/console/v1/metrics/values'].get update: x-apievangelist-phrasing: intent: List all metric values for a date effect: read questions: - What values did all our metrics have on a given day? - Can I filter the daily metric values by metric name or type? instructions: - text: List all metric values for {date}. slots: date: query.date - text: Show values of metric {metricName} of type {metricType} on {date}. slots: metricName: query.metricName metricType: query.metricType date: query.date method: generated generated: '2026-10-01'