# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Canvas LMS REST Developer Keys API version: 1.0.0 extends: openapi/canvas-developer-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: 5 - target: $.paths['/v1/accounts/{account_id}/developer_keys'].get update: x-apievangelist-phrasing: intent: List an account's developer keys effect: read questions: - What Canvas API developer keys exist in my account? - Can I include keys inherited from the parent site admin account? instructions: - text: List the developer keys in account {account_id}. slots: account_id: path.account_id - text: 'Show inherited developer keys for account {account_id}: {inherited}.' slots: account_id: path.account_id inherited: query.inherited method: generated generated: '2026-10-01' - target: $.paths['/v1/accounts/{account_id}/developer_keys'].post update: x-apievangelist-phrasing: intent: Create a developer key effect: write questions: - How do I create a new API developer key for an integration? - Can a new developer key be limited to specific scopes and redirect URIs? instructions: - text: Create a developer key named {name} in account {account_id}. slots: name: requestBody.developer_key[name] account_id: path.account_id - text: Add an API key in account {account_id} with redirect URI {redirect_uri} and scopes {scopes}. slots: account_id: path.account_id redirect_uri: requestBody.developer_key[redirect_uri] scopes: requestBody.developer_key[scopes] method: generated generated: '2026-10-01' - target: $.paths['/v1/developer_keys/{id}'].put update: x-apievangelist-phrasing: intent: Update a developer key effect: write questions: - Can I change the redirect URIs or contact email on an existing developer key? - Is updating an LTI 1.3 key done through this endpoint? instructions: - text: Rename developer key {id} to {name}. slots: id: path.id name: requestBody.developer_key[name] - text: Update the redirect URIs on developer key {id} to {redirect_uris}. slots: id: path.id redirect_uris: requestBody.developer_key[redirect_uris] method: generated generated: '2026-10-01' - target: $.paths['/v1/developer_keys/{id}'].delete update: x-apievangelist-phrasing: intent: Delete a developer key effect: destructive questions: - Can I permanently remove an API developer key we no longer use? - Does deleting a key here also remove LTI 1.3 registrations? instructions: - text: Delete developer key {id}. slots: id: path.id - text: Remove the unused API key {id}. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/v1/developer_keys/{id}/regenerate_secret'].post update: x-apievangelist-phrasing: intent: Rotate a developer key's secret effect: destructive questions: - Can I rotate the client secret on a developer key if it leaked? - What happens to apps using the old secret after it's regenerated? instructions: - text: Regenerate the secret for developer key {id}. slots: id: path.id - text: Rotate the api_key on key {id} and invalidate the old one. slots: id: path.id method: generated generated: '2026-10-01'