# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Twilio SendGrid API Keys API version: 1.0.0 extends: openapi/sendgrid-api-keys-api-openapi.yml actions: - target: $.info update: x-apievangelist-phrasing: method: generated generated: '2026-09-24' generator: build-phrasing.py label: Generated by API Evangelist operations: 6 - target: $.paths['/v3/api_keys'].get update: x-apievangelist-phrasing: intent: List all API keys effect: read questions: - Which API keys exist on my account? - Can I see the names and IDs of my keys, even if not the secrets? instructions: - text: List all my API keys. - text: Show up to {limit} API keys. slots: limit: query.limit method: generated generated: '2026-09-24' - target: $.paths['/v3/api_keys'].post update: x-apievangelist-phrasing: intent: Create an API key effect: write questions: - Can I create a key that only has permission to send mail? - Why do I need to make my very first API key in the web app? instructions: - text: Create an API key named {name}. slots: name: requestBody.name - text: Create API key {name} with scopes {scopes}. slots: name: requestBody.name scopes: requestBody.scopes method: generated generated: '2026-09-24' - target: $.paths['/v3/api_keys/{api_key_id}'].get update: x-apievangelist-phrasing: intent: Get an API key's name and scopes effect: read questions: - What permissions does a particular API key have? - Can I look up an API key's scopes by its ID? instructions: - text: Show API key {api_key_id}. slots: api_key_id: path.api_key_id - text: Get the scopes of key {api_key_id}. slots: api_key_id: path.api_key_id method: generated generated: '2026-09-24' - target: $.paths['/v3/api_keys/{api_key_id}'].put update: x-apievangelist-phrasing: intent: Replace an API key's name and scopes effect: write questions: - Can I change the permissions on an existing API key? - Do I have to resend the name when updating an API key's scopes? instructions: - text: Set API key {api_key_id} to name {name} with scopes {scopes}. slots: api_key_id: path.api_key_id name: requestBody.name scopes: requestBody.scopes - text: Change the scopes of key {api_key_id} to {scopes}, keeping name {name}. slots: api_key_id: path.api_key_id scopes: requestBody.scopes name: requestBody.name method: generated generated: '2026-09-24' - target: $.paths['/v3/api_keys/{api_key_id}'].delete update: x-apievangelist-phrasing: intent: Revoke an API key effect: destructive questions: - Can I revoke an API key that may have leaked? - How quickly does a revoked key stop working? instructions: - text: Revoke API key {api_key_id}. slots: api_key_id: path.api_key_id - text: Delete key {api_key_id} so it can no longer authenticate. slots: api_key_id: path.api_key_id method: generated generated: '2026-09-24' - target: $.paths['/v3/api_keys/{api_key_id}'].patch update: x-apievangelist-phrasing: intent: Rename an API key effect: write questions: - Can I just rename an API key without changing its permissions? - Is it possible to give a key a clearer label? instructions: - text: Rename API key {api_key_id} to {name}. slots: api_key_id: path.api_key_id name: requestBody.name - text: Relabel key {api_key_id} as {name} only. slots: api_key_id: path.api_key_id name: requestBody.name method: generated generated: '2026-09-24'