# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Cloudflare User API version: 1.0.0 extends: openapi/cloudflare-user-api-openapi.yml actions: - target: $.info update: x-apievangelist-phrasing: method: generated generated: '2026-09-26' generator: build-phrasing.py label: Generated by API Evangelist operations: 46 - target: $.paths['/user'].get update: x-apievangelist-phrasing: intent: Get my user profile details effect: read questions: - What personal details does my Cloudflare user profile hold? - Can I see the name and contact details on my own user account? instructions: - text: Show my user profile details. - text: Fetch the details of the user I'm signed in as. method: generated generated: '2026-09-26' - target: $.paths['/user'].patch update: x-apievangelist-phrasing: intent: Edit my user profile effect: write questions: - How do I change the name on my user profile? - Can I update the telephone number and zipcode stored on my user account? instructions: - text: Change my profile name to {first_name} {last_name}. slots: first_name: requestBody.first_name last_name: requestBody.last_name - text: Update my profile telephone number to {telephone}. slots: telephone: requestBody.telephone - text: Set my profile country to {country} and zipcode to {zipcode}. slots: country: requestBody.country zipcode: requestBody.zipcode method: generated generated: '2026-09-26' - target: $.paths['/user/audit_logs'].get update: x-apievangelist-phrasing: intent: List audit logs for my user account effect: read questions: - Who changed settings on my account, and when? - Can I filter my user audit logs by the email of the person who made the change? - Is there a way to see audit log entries for one zone within a date range? instructions: - text: Show my user audit logs since {since}. slots: since: query.since - text: List audit log entries made by {actor_email} on zone {zone_name}. slots: actor_email: query.actor.email zone_name: query.zone.name - text: Find audit log changes that came from IP {actor_ip}. slots: actor_ip: query.actor.ip method: generated generated: '2026-09-26' - target: $.paths['/user/billing/history'].get update: x-apievangelist-phrasing: intent: View my billing history effect: read questions: - Where can I see my past charges and billing history? - Can I filter my billing history by the type of transaction? instructions: - text: Show my billing history. - text: List billing history entries of type {type}. slots: type: query.type method: generated generated: '2026-09-26' - target: $.paths['/user/billing/profile'].get update: x-apievangelist-phrasing: intent: View my billing profile effect: read questions: - What billing profile and payment details are on file for my user? - Can I check which billing address my user account uses? instructions: - text: Show my billing profile. - text: Get the billing profile attached to my user account. method: generated generated: '2026-09-26' - target: $.paths['/user/firewall/access_rules/rules'].get update: x-apievangelist-phrasing: intent: List my user-level IP Access rules effect: read questions: - Which IP addresses have I blocked or allowed across all my zones? - Can I sort my user-level IP Access rules by mode or configuration? instructions: - text: List my user-level IP Access rules. - text: Show page {page} of my IP Access rules, {per_page} per page. slots: page: query.page per_page: query.per_page method: generated generated: '2026-09-26' - target: $.paths['/user/firewall/access_rules/rules'].post update: x-apievangelist-phrasing: intent: Create an IP Access rule for all my zones effect: write questions: - How do I block an IP address across every zone I own? - Can I challenge a whole country or ASN on all my zones with one rule? instructions: - text: Create a user-level IP Access rule to {mode} the target {configuration}. slots: mode: requestBody.mode configuration: requestBody.configuration - text: Add an IP Access rule that applies {mode} to {configuration} on all my zones, with the note {notes}. slots: mode: requestBody.mode configuration: requestBody.configuration notes: requestBody.notes method: generated generated: '2026-09-26' - target: $.paths['/user/firewall/access_rules/rules/{identifier}'].delete update: x-apievangelist-phrasing: intent: Delete a user-level IP Access rule effect: destructive questions: - How do I remove an IP block that applies to all my zones? - What happens to my zones when I delete a user-level IP Access rule? instructions: - text: Delete IP Access rule {identifier} from my user account. slots: identifier: path.identifier - text: Remove the user-level IP Access rule {identifier}. slots: identifier: path.identifier method: generated generated: '2026-09-26' - target: $.paths['/user/firewall/access_rules/rules/{identifier}'].patch update: x-apievangelist-phrasing: intent: Change an IP Access rule's action or notes effect: write questions: - Can I switch an existing IP Access rule from block to challenge? - Which parts of a user-level IP Access rule can I edit after creating it? instructions: - text: Change the action of IP Access rule {identifier} to {mode}. slots: identifier: path.identifier mode: requestBody.mode - text: Update the notes on IP Access rule {identifier} to {notes}. slots: identifier: path.identifier notes: requestBody.notes method: generated generated: '2026-09-26' - target: $.paths['/user/invites'].get update: x-apievangelist-phrasing: intent: List my pending invitations effect: read questions: - Have I been invited to join any accounts? - Where can I see all the invitations sent to my user? instructions: - text: List all invitations sent to me. - text: Show my account invitations. method: generated generated: '2026-09-26' - target: $.paths['/user/invites/{invite_id}'].get update: x-apievangelist-phrasing: intent: Get details of one invitation effect: read questions: - Who sent a particular invitation and which account is it for? - Can I check the status of a single invite before I accept it? instructions: - text: Show the details of invitation {invite_id}. slots: invite_id: path.invite_id - text: Look up invite {invite_id} and tell me who it's from. slots: invite_id: path.invite_id method: generated generated: '2026-09-26' - target: $.paths['/user/invites/{invite_id}'].patch update: x-apievangelist-phrasing: intent: Accept or reject an invitation effect: write questions: - How do I accept an invitation to join someone's account? - Can I decline an invite I don't want? instructions: - text: Accept invitation {invite_id}. slots: invite_id: path.invite_id - text: Respond to invite {invite_id} with {status}. slots: invite_id: path.invite_id status: requestBody.status method: generated generated: '2026-09-26' - target: $.paths['/user/load_balancers/monitors'].get update: x-apievangelist-phrasing: intent: List my load balancer health monitors effect: read questions: - What health check monitors have I set up for my load balancers? - Which monitors exist on my user account? instructions: - text: List all my load balancer monitors. - text: Show every health monitor configured for my user. method: generated generated: '2026-09-26' - target: $.paths['/user/load_balancers/monitors'].post update: x-apievangelist-phrasing: intent: Create a load balancer health monitor effect: write questions: - How do I set up a health check that probes my origins over HTTPS? - Can a new monitor look for a specific string in the response body? - What protocols can a new health monitor use? instructions: - text: Create a {type} monitor that checks path {path} every {interval} seconds. slots: type: requestBody.type path: requestBody.path interval: requestBody.interval - text: Set up a new health monitor expecting status {expected_codes} and body text {expected_body}. slots: expected_codes: requestBody.expected_codes expected_body: requestBody.expected_body - text: Add a TCP health monitor on port {port} with a {timeout} second timeout. slots: port: requestBody.port timeout: requestBody.timeout method: generated generated: '2026-09-26' - target: $.paths['/user/load_balancers/monitors/{monitor_id}'].get update: x-apievangelist-phrasing: intent: Get one load balancer monitor effect: read questions: - What settings does a particular health monitor use? - Can I see the interval and expected codes of one monitor? instructions: - text: Show the configuration of monitor {monitor_id}. slots: monitor_id: path.monitor_id - text: Get details for health monitor {monitor_id}. slots: monitor_id: path.monitor_id method: generated generated: '2026-09-26' - target: $.paths['/user/load_balancers/monitors/{monitor_id}'].put update: x-apievangelist-phrasing: intent: Replace a monitor's configuration effect: write questions: - How do I fully replace the settings of an existing health monitor? - Can I rewrite a monitor's whole configuration in one request? instructions: - text: Replace monitor {monitor_id} with a {type} check on path {path}. slots: monitor_id: path.monitor_id type: requestBody.type path: requestBody.path - text: Overwrite the full config of monitor {monitor_id}, using method {method} and {retries} retries. slots: monitor_id: path.monitor_id method: requestBody.method retries: requestBody.retries method: generated generated: '2026-09-26' - target: $.paths['/user/load_balancers/monitors/{monitor_id}'].delete update: x-apievangelist-phrasing: intent: Delete a load balancer monitor effect: destructive questions: - How do I remove a health monitor I no longer need? - Can I delete a monitor that pools might still reference? instructions: - text: Delete monitor {monitor_id}. slots: monitor_id: path.monitor_id - text: Remove health monitor {monitor_id} from my account. slots: monitor_id: path.monitor_id method: generated generated: '2026-09-26' - target: $.paths['/user/load_balancers/monitors/{monitor_id}'].patch update: x-apievangelist-phrasing: intent: Change selected settings on a monitor effect: write questions: - Can I change just the interval of a health monitor without resending everything? - Is it possible to tweak only a monitor's timeout? instructions: - text: Patch monitor {monitor_id} to run every {interval} seconds. slots: monitor_id: path.monitor_id interval: requestBody.interval - text: Change only the description of monitor {monitor_id} to {description}. slots: monitor_id: path.monitor_id description: requestBody.description method: generated generated: '2026-09-26' - target: $.paths['/user/load_balancers/monitors/{monitor_id}/preview'].post update: x-apievangelist-phrasing: intent: Preview pools against a monitor's settings effect: read questions: - Can I test how my pools would fare with changed monitor settings before saving them? - How do I dry-run a monitor change against the pools that use it? instructions: - text: Preview the pools using monitor {monitor_id} with path {path} and expected codes {expected_codes}. slots: monitor_id: path.monitor_id path: requestBody.path expected_codes: requestBody.expected_codes - text: Start a monitor preview for {monitor_id} with a {timeout} second timeout. slots: monitor_id: path.monitor_id timeout: requestBody.timeout method: generated generated: '2026-09-26' - target: $.paths['/user/load_balancers/monitors/{monitor_id}/references'].get update: x-apievangelist-phrasing: intent: List what references a monitor effect: read questions: - Which pools are using a given health monitor? - What would be affected if I deleted this monitor? instructions: - text: List the resources that reference monitor {monitor_id}. slots: monitor_id: path.monitor_id - text: Show which pools depend on monitor {monitor_id}. slots: monitor_id: path.monitor_id method: generated generated: '2026-09-26' - target: $.paths['/user/load_balancers/pools'].get update: x-apievangelist-phrasing: intent: List my load balancer pools effect: read questions: - What origin pools have I configured? - Can I list only the pools that use a particular monitor? instructions: - text: List all my load balancer pools. - text: Show the pools that use monitor {monitor}. slots: monitor: query.monitor method: generated generated: '2026-09-26' - target: $.paths['/user/load_balancers/pools'].post update: x-apievangelist-phrasing: intent: Create a load balancer origin pool effect: write questions: - How do I group my origin servers into a new pool? - Can I require a minimum number of healthy origins when setting up a pool? instructions: - text: Create a pool named {name} with origins {origins}. slots: name: requestBody.name origins: requestBody.origins - text: Create pool {name} with origins {origins}, checked by monitor {monitor}. slots: name: requestBody.name origins: requestBody.origins monitor: requestBody.monitor - text: Set up a new pool {name} for {origins} that needs at least {minimum_origins} healthy origins. slots: name: requestBody.name origins: requestBody.origins minimum_origins: requestBody.minimum_origins method: generated generated: '2026-09-26' - target: $.paths['/user/load_balancers/pools'].patch update: x-apievangelist-phrasing: intent: Update the notification email on many pools effect: write questions: - Can I change the health notification email on all my pools at once? - Is there a bulk way to clear the notification address across every pool? instructions: - text: Set the notification email on all my pools to {notification_email}. slots: notification_email: requestBody.notification_email - text: Bulk-update every pool to send health alerts to {notification_email}. slots: notification_email: requestBody.notification_email method: generated generated: '2026-09-26' - target: $.paths['/user/load_balancers/pools/{pool_id}'].get update: x-apievangelist-phrasing: intent: Get one load balancer pool effect: read questions: - Which origins and monitor does a specific pool use? - Can I see the full configuration of one pool? instructions: - text: Show the configuration of pool {pool_id}. slots: pool_id: path.pool_id - text: Get details for load balancer pool {pool_id}. slots: pool_id: path.pool_id method: generated generated: '2026-09-26' - target: $.paths['/user/load_balancers/pools/{pool_id}'].put update: x-apievangelist-phrasing: intent: Replace a pool's configuration effect: write questions: - How do I replace the whole origin list and settings of an existing pool? - Can I rewrite a pool's full configuration in one call? instructions: - text: Replace pool {pool_id} with name {name} and origins {origins}. slots: pool_id: path.pool_id name: requestBody.name origins: requestBody.origins - text: Overwrite pool {pool_id} as {name} with origins {origins} and load shedding {load_shedding}. slots: pool_id: path.pool_id name: requestBody.name origins: requestBody.origins load_shedding: requestBody.load_shedding method: generated generated: '2026-09-26' - target: $.paths['/user/load_balancers/pools/{pool_id}'].delete update: x-apievangelist-phrasing: intent: Delete a load balancer pool effect: destructive questions: - How do I get rid of an origin pool I no longer use? - Can I delete a pool permanently? instructions: - text: Delete pool {pool_id}. slots: pool_id: path.pool_id - text: Remove load balancer pool {pool_id} from my account. slots: pool_id: path.pool_id method: generated generated: '2026-09-26' - target: $.paths['/user/load_balancers/pools/{pool_id}'].patch update: x-apievangelist-phrasing: intent: Change selected settings on one pool effect: write questions: - Can I disable a single pool without resending its origins? - Is it possible to change just the monitor attached to one pool? instructions: - text: Patch pool {pool_id} to set enabled to {enabled}. slots: pool_id: path.pool_id enabled: requestBody.enabled - text: Switch pool {pool_id} to use monitor {monitor}, leaving everything else as is. slots: pool_id: path.pool_id monitor: requestBody.monitor method: generated generated: '2026-09-26' - target: $.paths['/user/load_balancers/pools/{pool_id}/health'].get update: x-apievangelist-phrasing: intent: Check a pool's current health effect: read questions: - Is my origin pool healthy right now? - What's the latest health status of a specific pool? instructions: - text: Show the latest health status of pool {pool_id}. slots: pool_id: path.pool_id - text: Check whether pool {pool_id} is healthy. slots: pool_id: path.pool_id method: generated generated: '2026-09-26' - target: $.paths['/user/load_balancers/pools/{pool_id}/preview'].post update: x-apievangelist-phrasing: intent: Preview a pool's health with test monitor settings effect: read questions: - Can I see how one pool's origins would respond to a different health check before applying it? - How do I trial monitor settings against a single pool? instructions: - text: Preview health of pool {pool_id} using a {type} check on path {path}. slots: pool_id: path.pool_id type: requestBody.type path: requestBody.path - text: Run a health preview on pool {pool_id} with port {port}. slots: pool_id: path.pool_id port: requestBody.port method: generated generated: '2026-09-26' - target: $.paths['/user/load_balancers/pools/{pool_id}/references'].get update: x-apievangelist-phrasing: intent: List what references a pool effect: read questions: - Which load balancers route traffic to a given pool? - What depends on this pool before I remove it? instructions: - text: List the resources that reference pool {pool_id}. slots: pool_id: path.pool_id - text: Show which load balancers use pool {pool_id}. slots: pool_id: path.pool_id method: generated generated: '2026-09-26' - target: $.paths['/user/load_balancers/preview/{preview_id}'].get update: x-apievangelist-phrasing: intent: Get the result of a health preview effect: read questions: - Where do I find the outcome of a monitor or pool preview I started? - Did my previewed health check pass? instructions: - text: Get the results of preview {preview_id}. slots: preview_id: path.preview_id - text: Show whether origins passed in health preview {preview_id}. slots: preview_id: path.preview_id method: generated generated: '2026-09-26' - target: $.paths['/user/load_balancing_analytics/events'].get update: x-apievangelist-phrasing: intent: List origin health change events effect: read questions: - When did my origins go up or down recently? - Can I filter health check events to just one pool or origin? - Which origins became unhealthy within a time window? instructions: - text: List origin health changes since {since}. slots: since: query.since - text: Show health events for pool {pool_name} until {until}. slots: pool_name: query.pool_name until: query.until - text: Find health events where origin {origin_name} was unhealthy. slots: origin_name: query.origin_name method: generated generated: '2026-09-26' - target: $.paths['/user/organizations'].get update: x-apievangelist-phrasing: intent: List organizations I belong to effect: read questions: - Which organizations is my user a member of? - Can I search my organizations by name or status? instructions: - text: List the organizations I'm associated with. - text: Find my organizations named {name}. slots: name: query.name - text: Show my organizations with status {status}. slots: status: query.status method: generated generated: '2026-09-26' - target: $.paths['/user/organizations/{organization_id}'].get update: x-apievangelist-phrasing: intent: Get one organization I belong to effect: read questions: - What are the details of a specific organization I'm in? - Can I look up one organization's info by its ID? instructions: - text: Show details for organization {organization_id}. slots: organization_id: path.organization_id - text: Get organization {organization_id}. slots: organization_id: path.organization_id method: generated generated: '2026-09-26' - target: $.paths['/user/organizations/{organization_id}'].delete update: x-apievangelist-phrasing: intent: Leave an organization effect: destructive questions: - How do I remove myself from an organization? - Can I drop my association with an organization I no longer work with? instructions: - text: Leave organization {organization_id}. slots: organization_id: path.organization_id - text: Remove my membership in organization {organization_id}. slots: organization_id: path.organization_id method: generated generated: '2026-09-26' - target: $.paths['/user/subscriptions'].get update: x-apievangelist-phrasing: intent: List my subscriptions effect: read questions: - What plans and add-ons am I currently subscribed to? - When is my next subscription billing due? instructions: - text: List all my user subscriptions. - text: Show my active subscriptions and their prices. method: generated generated: '2026-09-26' - target: $.paths['/user/subscriptions/{identifier}'].put update: x-apievangelist-phrasing: intent: Change a user subscription effect: write questions: - How do I switch one of my subscriptions to a different rate plan? - Can I change how often a subscription renews? instructions: - text: Change subscription {identifier} to rate plan {rate_plan}. slots: identifier: path.identifier rate_plan: requestBody.rate_plan - text: Set subscription {identifier} to renew {frequency}. slots: identifier: path.identifier frequency: requestBody.frequency method: generated generated: '2026-09-26' - target: $.paths['/user/subscriptions/{identifier}'].delete update: x-apievangelist-phrasing: intent: Cancel a user subscription effect: destructive questions: - How do I cancel one of my subscriptions? - Can I delete a subscription I'm no longer using? instructions: - text: Delete subscription {identifier}. slots: identifier: path.identifier - text: Cancel my subscription {identifier}. slots: identifier: path.identifier method: generated generated: '2026-09-26' - target: $.paths['/user/tokens'].get update: x-apievangelist-phrasing: intent: List my API tokens effect: read questions: - Which API tokens have I created? - Can I page through my access tokens in a set order? instructions: - text: List all the API tokens I've created. - text: Show page {page} of my API tokens. slots: page: query.page method: generated generated: '2026-09-26' - target: $.paths['/user/tokens'].post update: x-apievangelist-phrasing: intent: Create an API token effect: write questions: - How do I make a scoped API token with specific permissions? - Can I create a token that expires on a set date? instructions: - text: Create an API token named {name} with policies {policies}. slots: name: requestBody.name policies: requestBody.policies - text: Create token {name} with policies {policies} that expires on {expires_on}. slots: name: requestBody.name policies: requestBody.policies expires_on: requestBody.expires_on method: generated generated: '2026-09-26' - target: $.paths['/user/tokens/{token_id}'].get update: x-apievangelist-phrasing: intent: Get one API token's details effect: read questions: - What permissions and expiry does a particular API token have? - Can I check when a specific token was issued? instructions: - text: Show details of API token {token_id}. slots: token_id: path.token_id - text: Get the policies attached to token {token_id}. slots: token_id: path.token_id method: generated generated: '2026-09-26' - target: $.paths['/user/tokens/{token_id}'].put update: x-apievangelist-phrasing: intent: Update an API token's settings effect: write questions: - How do I change the permissions on an existing API token? - Can I disable a token by changing its status? instructions: - text: Update token {token_id} with name {name}, policies {policies} and status {status}. slots: token_id: path.token_id name: requestBody.name policies: requestBody.policies status: requestBody.status - text: Set token {token_id} ({id}) named {name} to status {status} keeping policies {policies}. slots: token_id: path.token_id id: requestBody.id name: requestBody.name status: requestBody.status policies: requestBody.policies method: generated generated: '2026-09-26' - target: $.paths['/user/tokens/{token_id}'].delete update: x-apievangelist-phrasing: intent: Delete an API token effect: destructive questions: - How do I permanently destroy an API token? - Can I delete a token I think has leaked? instructions: - text: Delete API token {token_id}. slots: token_id: path.token_id - text: Destroy token {token_id} so it can't be used again. slots: token_id: path.token_id method: generated generated: '2026-09-26' - target: $.paths['/user/tokens/{token_id}/value'].put update: x-apievangelist-phrasing: intent: Roll an API token's secret effect: destructive questions: - How do I regenerate the secret value of an existing token? - Can I rotate a token's secret without changing its permissions? instructions: - text: Roll the secret for token {token_id}. slots: token_id: path.token_id - text: Rotate the value of API token {token_id}. slots: token_id: path.token_id method: generated generated: '2026-09-26' - target: $.paths['/user/tokens/permission_groups'].get update: x-apievangelist-phrasing: intent: List available token permission groups effect: read questions: - What permission groups can I assign to an API token? - Which permissions are available when building a token policy? instructions: - text: List all available permission groups. - text: Show the permission groups I can use in token policies. method: generated generated: '2026-09-26' - target: $.paths['/user/tokens/verify'].get update: x-apievangelist-phrasing: intent: Verify that my API token works effect: read questions: - Is the API token I'm calling with valid and active? - Can I quickly test whether my current token works? instructions: - text: Verify the token I'm using. - text: Check that my current API token is active. method: generated generated: '2026-09-26'