# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for AhaSend API v2 Sub Accounts API version: 1.0.0 extends: openapi/ahasend-subaccounts-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: 13 - target: $.paths['/v2/accounts/{account_id}/sub-accounts'].get update: x-apievangelist-phrasing: intent: List sub accounts effect: read questions: - Which sub accounts sit under my parent account? - Are deleted sub accounts included when I list them? instructions: - text: List the sub accounts under parent account {account_id}. slots: account_id: path.account_id - text: Show the first {limit} sub accounts of {account_id}. slots: limit: query.limit account_id: path.account_id method: generated generated: '2026-10-01' - target: $.paths['/v2/accounts/{account_id}/sub-accounts'].post update: x-apievangelist-phrasing: intent: Create a sub account effect: write questions: - How do I set up a separate sub account for one of my customers? - Can I put a monthly spending cap on a new sub account? instructions: - text: Create a sub account named {name} for website {website} under account {account_id}. slots: name: requestBody.name website: requestBody.website account_id: path.account_id - text: Add sub account {name} ({website}) to {account_id} with a monthly credit cap of {monthly_credit}. slots: name: requestBody.name website: requestBody.website account_id: path.account_id monthly_credit: requestBody.monthly_credit method: generated generated: '2026-10-01' - target: $.paths['/v2/accounts/{account_id}/sub-accounts/usage'].get update: x-apievangelist-phrasing: intent: See usage and cost per sub account effect: read questions: - How much has each sub account used this billing period? - What share of this period's cost is allocated to each of my sub accounts? instructions: - text: Show current billing-period usage for parent account {account_id} and its sub accounts. slots: account_id: path.account_id - text: Break down allocated cost by sub account for {account_id}. slots: account_id: path.account_id method: generated generated: '2026-10-01' - target: $.paths['/v2/accounts/{account_id}/sub-accounts/{sub_account_id}'].get update: x-apievangelist-phrasing: intent: View one sub account effect: read questions: - What name, website and monthly cap does a particular sub account have? - Can I check whether one sub account is suspended? instructions: - text: Show sub account {sub_account_id} under {account_id}. slots: sub_account_id: path.sub_account_id account_id: path.account_id - text: Get the settings of sub account {sub_account_id} in parent account {account_id}. slots: sub_account_id: path.sub_account_id account_id: path.account_id method: generated generated: '2026-10-01' - target: $.paths['/v2/accounts/{account_id}/sub-accounts/{sub_account_id}'].put update: x-apievangelist-phrasing: intent: Change a sub account's settings effect: write questions: - How do I raise the monthly cap on an existing sub account? - Can I rename a sub account after it's created? instructions: - text: Set the monthly credit of sub account {sub_account_id} to {monthly_credit} under {account_id}. slots: sub_account_id: path.sub_account_id monthly_credit: requestBody.monthly_credit account_id: path.account_id - text: Rename existing sub account {sub_account_id} in {account_id} to {name}. slots: sub_account_id: path.sub_account_id account_id: path.account_id name: requestBody.name method: generated generated: '2026-10-01' - target: $.paths['/v2/accounts/{account_id}/sub-accounts/{sub_account_id}'].delete update: x-apievangelist-phrasing: intent: Delete a sub account effect: destructive questions: - How do I shut down a sub account for a customer who left? - Is deleting a sub account permanent, or is it a soft delete? instructions: - text: Delete sub account {sub_account_id} from parent account {account_id}. slots: sub_account_id: path.sub_account_id account_id: path.account_id - text: Remove sub account {sub_account_id} under {account_id}. slots: sub_account_id: path.sub_account_id account_id: path.account_id method: generated generated: '2026-10-01' - target: $.paths['/v2/accounts/{account_id}/sub-accounts/{sub_account_id}/suspend'].post update: x-apievangelist-phrasing: intent: Suspend a sub account effect: write questions: - How do I temporarily stop a sub account from sending? - Can I record why a sub account was suspended? instructions: - text: Suspend sub account {sub_account_id} under {account_id} because {reason}. slots: sub_account_id: path.sub_account_id account_id: path.account_id reason: requestBody.reason - text: Put sub account {sub_account_id} of {account_id} on hold with reason {reason}. slots: sub_account_id: path.sub_account_id account_id: path.account_id reason: requestBody.reason method: generated generated: '2026-10-01' - target: $.paths['/v2/accounts/{account_id}/sub-accounts/{sub_account_id}/unsuspend'].post update: x-apievangelist-phrasing: intent: Reactivate a suspended sub account effect: write questions: - How do I restore a sub account that I suspended earlier? - Can a suspended sub account be allowed to send again? instructions: - text: Unsuspend sub account {sub_account_id} under {account_id}. slots: sub_account_id: path.sub_account_id account_id: path.account_id - text: Lift the suspension on sub account {sub_account_id} in parent {account_id}. slots: sub_account_id: path.sub_account_id account_id: path.account_id method: generated generated: '2026-10-01' - target: $.paths['/v2/accounts/{account_id}/sub-accounts/{sub_account_id}/api-keys'].get update: x-apievangelist-phrasing: intent: List a sub account's API keys effect: read questions: - Which API keys belong to one of my sub accounts? - Does listing a sub account's keys show their secret values? instructions: - text: List API keys owned by sub account {sub_account_id} under {account_id}. slots: sub_account_id: path.sub_account_id account_id: path.account_id - text: Show the first {limit} keys for sub account {sub_account_id} of parent {account_id}. slots: limit: query.limit sub_account_id: path.sub_account_id account_id: path.account_id method: generated generated: '2026-10-01' - target: $.paths['/v2/accounts/{account_id}/sub-accounts/{sub_account_id}/api-keys'].post update: x-apievangelist-phrasing: intent: Create an API key for a sub account effect: write questions: - How do I issue an API key that a sub account can use on its own? - Can the parent account create keys for its sub accounts with limited scopes? instructions: - text: Create an API key labeled {label} for sub account {sub_account_id} of {account_id} with scopes {scopes}. slots: label: requestBody.label sub_account_id: path.sub_account_id account_id: path.account_id scopes: requestBody.scopes - text: Issue sub account {sub_account_id} under {account_id} a key {label} with scopes {scopes}, allowed only from {ip_allow_list}. slots: sub_account_id: path.sub_account_id account_id: path.account_id label: requestBody.label scopes: requestBody.scopes ip_allow_list: requestBody.ip_allow_list method: generated generated: '2026-10-01' - target: $.paths['/v2/accounts/{account_id}/sub-accounts/{sub_account_id}/api-keys/{key_id}'].get update: x-apievangelist-phrasing: intent: View one sub account API key effect: read questions: - What scopes does a given key owned by a sub account have? - Can I see the label on a sub account's specific API key? instructions: - text: Show key {key_id} owned by sub account {sub_account_id} under {account_id}. slots: key_id: path.key_id sub_account_id: path.sub_account_id account_id: path.account_id - text: Get the scopes of sub account {sub_account_id}'s key {key_id} in parent {account_id}. slots: sub_account_id: path.sub_account_id key_id: path.key_id account_id: path.account_id method: generated generated: '2026-10-01' - target: $.paths['/v2/accounts/{account_id}/sub-accounts/{sub_account_id}/api-keys/{key_id}'].put update: x-apievangelist-phrasing: intent: Change a sub account API key's scopes effect: write questions: - How do I change the scopes on a key that belongs to a sub account? - Can I update the IP allow list on a sub account's existing key? instructions: - text: Set the scopes of sub account {sub_account_id}'s key {key_id} to {scopes} under {account_id}. slots: sub_account_id: path.sub_account_id key_id: path.key_id scopes: requestBody.scopes account_id: path.account_id - text: Relabel key {key_id} of sub account {sub_account_id} in {account_id} as {label}. slots: key_id: path.key_id sub_account_id: path.sub_account_id account_id: path.account_id label: requestBody.label method: generated generated: '2026-10-01' - target: $.paths['/v2/accounts/{account_id}/sub-accounts/{sub_account_id}/api-keys/{key_id}'].delete update: x-apievangelist-phrasing: intent: Delete a sub account API key effect: destructive questions: - How do I revoke an API key that belongs to one of my sub accounts? - Can the parent account delete a sub account's key? instructions: - text: Delete key {key_id} owned by sub account {sub_account_id} under {account_id}. slots: key_id: path.key_id sub_account_id: path.sub_account_id account_id: path.account_id - text: Revoke sub account {sub_account_id}'s API key {key_id} in parent {account_id}. slots: sub_account_id: path.sub_account_id key_id: path.key_id account_id: path.account_id method: generated generated: '2026-10-01'