# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Statsig Keys API version: 1.0.0 extends: openapi/statsig-keys-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: 8 - target: $.paths['/keys'].get update: x-apievangelist-phrasing: intent: List the project's API keys effect: read questions: - Which server secret, client SDK and console API keys does my Statsig project have? - Can I audit all the API keys issued for our project? instructions: - text: List all API keys in my project. - text: Show every server, client and console key we have. method: generated generated: '2026-09-26' - target: $.paths['/console/v1/keys'].get update: x-apievangelist-phrasing: intent: List keys by target app or environment effect: read questions: - Which keys are scoped to a given target app? - Can I see only the keys used in production? instructions: - text: List keys for target app {primaryTargetApp}. slots: primaryTargetApp: query.primaryTargetApp - text: Show keys in environment {environment}, page {page}, {limit} per page. slots: environment: query.environment page: query.page limit: query.limit method: generated generated: '2026-10-01' - target: $.paths['/console/v1/keys'].post update: x-apievangelist-phrasing: intent: Create an API key effect: write questions: - How do I generate a new server secret or client key? - Can a new key be limited to certain environments and scopes? instructions: - text: Create a {type} key described as {description}. slots: type: requestBody.type description: requestBody.description - text: Create a {type} key {description} with scopes {scopes} for environments {environments}. slots: type: requestBody.type description: requestBody.description scopes: requestBody.scopes environments: requestBody.environments method: generated generated: '2026-10-01' - target: $.paths['/console/v1/keys/{id}'].get update: x-apievangelist-phrasing: intent: Read one API key effect: read questions: - What scopes and environments does a specific key have? - Is a particular key still active? instructions: - text: Show the details of key {id}. slots: id: path.id - text: Look up key {id} and its scopes. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/console/v1/keys/{id}'].delete update: x-apievangelist-phrasing: intent: Delete an API key effect: destructive questions: - Can I permanently delete a key that leaked? - What's the way to get rid of an unused key entirely? instructions: - text: Delete key {id}. slots: id: path.id - text: Permanently remove API key {id}. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/console/v1/keys/{id}'].patch update: x-apievangelist-phrasing: intent: Update a key's scopes or environments effect: write questions: - Can I change the scopes on an existing key? - Is it possible to move a key to another target app? instructions: - text: Change the scopes on key {id} to {scopes}. slots: id: path.id scopes: requestBody.scopes - text: Point key {id} at target app {targetAppID} and environments {environments}. slots: id: path.id targetAppID: requestBody.targetAppID environments: requestBody.environments method: generated generated: '2026-10-01' - target: $.paths['/console/v1/keys/{id}/deactivate'].patch update: x-apievangelist-phrasing: intent: Deactivate an API key effect: destructive questions: - Can I switch off a key without deleting it? - How would I stop a key from working right away? instructions: - text: Deactivate key {id}. slots: id: path.id - text: Turn off API key {id} so it can no longer be used. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/console/v1/keys/{id}/rotate'].patch update: x-apievangelist-phrasing: intent: Rotate an API key effect: destructive questions: - What's the process for rotating a key's secret value? - Can I issue a fresh secret for an existing key? instructions: - text: Rotate key {id}. slots: id: path.id - text: Generate a new secret for key {id}, replacing the current one. slots: id: path.id method: generated generated: '2026-10-01'