Optimizely · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Optimizely Customers API
36 actions
36 updates
phrasing
extends
openapi/optimizely-customers-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Optimizely's API. It is a proposal applied on top of the contract, not a document Optimizely publishes.
What the actions change
x-apievangelist-phrasing
Targets 36 · first 16 shown; the file carries all of them
$.info
$.paths['/commerce/customers/{customerId}'].get
$.paths['/api/v1/admin/Customers'].get
$.paths['/api/v1/admin/Customers'].post
$.paths['/api/v1/admin/Customers({id})'].get
$.paths['/api/v1/admin/Customers({id})'].put
$.paths['/api/v1/admin/Customers({id})'].delete
$.paths['/api/v1/admin/Customers({id})'].patch
$.paths['/api/v1/admin/Customers/Default.Default()'].get
$.paths['/api/v1/admin/Customers/Default.archive'].post
$.paths['/api/v1/admin/Customers({id})/Default.userProfilesWithRolesFilter()'].get
$.paths['/api/v1/admin/customers/formessage(messageId={messageId})'].get
$.paths['/api/v1/admin/customers({key})/userProfilesWithRolesFilter'].get
$.paths['/api/v1/admin/customers/archive'].delete
$.paths['/api/v1/admin/customers/delete'].delete
$.paths['/api/v1/admin/customers({key})/budgetcalendars({budgetcalendarKey})'].get
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for Optimizely Customers API
version: 1.0.0
extends: openapi/optimizely-customers-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: 35
- target: $.paths['/commerce/customers/{customerId}'].get
update:
x-apievangelist-phrasing:
intent: Get a commerce customer account
effect: read
questions:
- How do I look up a commerce customer account by its customer ID?
- What account details come back for a single commerce customer?
instructions:
- text: Get the commerce customer account {customerId}.
slots:
customerId: path.customerId
- text: Show me the storefront account details for commerce customer {customerId}.
slots:
customerId: path.customerId
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Customers'].get
update:
x-apievangelist-phrasing:
intent: List and filter customer records
effect: read
questions:
- How can I list every customer record in the Optimizely commerce admin?
- Can I filter the admin customer list, say to only bill-to customers on credit hold?
- Is there a way to page through customers and get a total count?
instructions:
- text: List all customers in the admin console.
- text: List customers matching the filter {filter}, sorted by {orderby}.
slots:
filter: query.$filter
orderby: query.$orderby
- text: Return the first {top} customers with a total count.
slots:
top: query.$top
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Customers'].post
update:
x-apievangelist-phrasing:
intent: Create a customer record
effect: write
questions:
- How do I add a new B2B customer account through the admin API?
- What fields must I supply when creating a customer, like customer number and company name?
instructions:
- text: Create a customer {customerNumber} for company {companyName} with email {email}.
slots:
customerNumber: requestBody.customerNumber
companyName: requestBody.companyName
email: requestBody.email
- text: Add a new customer with ERP number {erpNumber} and a credit limit of {creditLimit}.
slots:
erpNumber: requestBody.erpNumber
creditLimit: requestBody.creditLimit
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Customers({id})'].get
update:
x-apievangelist-phrasing:
intent: Get an admin customer record by ID
effect: read
questions:
- Is there a call to fetch one customer record from the admin API by its ID?
- Can I expand related data when retrieving a single admin customer?
instructions:
- text: Get admin customer record {id}.
slots:
id: path.id
- text: Fetch customer {id} and expand {expand}.
slots:
id: path.id
expand: query.$expand
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Customers({id})'].put
update:
x-apievangelist-phrasing:
intent: Replace a customer record
effect: write
questions:
- What's the call to overwrite an entire customer record with a full new version?
- Which customer fields do I need to resend when replacing the whole record?
instructions:
- text: Replace customer {id} entirely, with company name {companyName} and email {email}.
slots:
id: path.id
companyName: requestBody.companyName
email: requestBody.email
- text: Overwrite the full record of customer {id} using customer number {customerNumber}.
slots:
id: path.id
customerNumber: requestBody.customerNumber
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Customers({id})'].delete
update:
x-apievangelist-phrasing:
intent: Delete one customer record
effect: destructive
questions:
- How do I permanently delete a single customer by ID?
- Can I guard a customer delete with an ETag so I don't remove a changed record?
instructions:
- text: Delete customer {id}.
slots:
id: path.id
- text: Delete customer {id} only if its ETag still matches {etag}.
slots:
id: path.id
etag: header.If-Match
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Customers({id})'].patch
update:
x-apievangelist-phrasing:
intent: Update fields on a customer
effect: write
questions:
- How do I change just a few fields on an existing customer, like the credit limit?
- Can I put a customer on credit hold without resending the whole record?
instructions:
- text: Set the credit limit of customer {id} to {creditLimit}.
slots:
id: path.id
creditLimit: requestBody.creditLimit
- text: Put customer {id} on credit hold ({creditHold}).
slots:
id: path.id
creditHold: requestBody.creditHold
- text: Update the email on customer {id} to {email}.
slots:
id: path.id
email: requestBody.email
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Customers/Default.Default()'].get
update:
x-apievangelist-phrasing:
intent: Get the default customer template
effect: read
questions:
- What does a blank default customer look like before I fill it in?
- Where do I get the default values for a new customer record?
instructions:
- text: Get the default customer record template.
- text: Show me the default field values for a new customer.
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Customers/Default.archive'].post
update:
x-apievangelist-phrasing:
intent: Archive customers by ID list
effect: write
questions:
- How do I archive several customers at once instead of deleting them?
- Can I archive customers through the archive action by passing their IDs?
instructions:
- text: Archive customers {ids} using the archive action.
slots:
ids: query.ids
- text: Run the customer archive action for IDs {ids}.
slots:
ids: query.ids
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Customers({id})/Default.userProfilesWithRolesFilter()'].get
update:
x-apievangelist-phrasing:
intent: List a customer's users filtered by role
effect: read
questions:
- Which user profiles with roles belong to a customer, via the userProfilesWithRolesFilter function?
- How do I call the role-filtered user profile function on a customer ID?
instructions:
- text: Call userProfilesWithRolesFilter for customer {id}.
slots:
id: path.id
- text: List role-filtered user profiles on customer {id} through the OData function.
slots:
id: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customers/formessage(messageId={messageId})'].get
update:
x-apievangelist-phrasing:
intent: List customers available for a message
effect: read
questions:
- Which customers can a given site message be targeted to?
- How do I see the customers available for a message ID?
instructions:
- text: List the customers available for message {messageId}.
slots:
messageId: path.messageId
- text: Show which customers message {messageId} can be assigned to.
slots:
messageId: path.messageId
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customers({key})/userProfilesWithRolesFilter'].get
update:
x-apievangelist-phrasing:
intent: Get role-filtered users via customer key route
effect: read
questions:
- Is there a plain route, not the OData function, for a customer's users with roles?
- How do I get user profiles with roles using the customer key path?
instructions:
- text: Get users with roles for customer key {key} via the userProfilesWithRolesFilter route.
slots:
key: path.key
- text: Fetch the role-filtered user list on the customers({key}) route.
slots:
key: path.key
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customers/archive'].delete
update:
x-apievangelist-phrasing:
intent: Archive customers through the archive route
effect: destructive
questions:
- Can I archive a batch of customers with a DELETE call on the archive route?
- What happens to customers sent to the customers/archive endpoint?
instructions:
- text: Archive customers {ids} via the DELETE archive route.
slots:
ids: query.ids
- text: Send customer IDs {ids} to the customers/archive endpoint.
slots:
ids: query.ids
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customers/delete'].delete
update:
x-apievangelist-phrasing:
intent: Bulk delete customers by ID
effect: destructive
questions:
- How do I delete many customers in one request?
- Can I bulk remove customer records by passing a list of IDs?
instructions:
- text: Bulk delete customers {ids}.
slots:
ids: query.ids
- text: 'Permanently remove all of these customers: {ids}.'
slots:
ids: query.ids
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customers({key})/budgetcalendars({budgetcalendarKey})'].get
update:
x-apievangelist-phrasing:
intent: Get a customer's budget calendar
effect: read
questions:
- Is there a call to read one budget calendar attached to a customer?
- Which budget periods does a customer's budget calendar define?
instructions:
- text: Get budget calendar {item} for customer {customer}.
slots:
customer: path.key
item: path.budgetcalendarKey
- text: Show the budget periods in calendar {item} on customer {customer}.
slots:
customer: path.key
item: path.budgetcalendarKey
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customers({key})/carriers({carrierKey})'].get
update:
x-apievangelist-phrasing:
intent: Get a carrier assigned to a customer
effect: read
questions:
- Can I check a specific shipping carrier linked to a customer?
- Is a given carrier allowed for this customer account?
instructions:
- text: Get carrier {item} assigned to customer {customer}.
slots:
customer: path.key
item: path.carrierKey
- text: Show shipping carrier {item} details for customer {customer}.
slots:
customer: path.key
item: path.carrierKey
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customers({key})/customercostcodes({customercostcodeKey})'].get
update:
x-apievangelist-phrasing:
intent: Get a customer's cost code
effect: read
questions:
- Where do I look up a cost code defined for a customer?
- What does a particular customer cost code describe?
instructions:
- text: Get cost code {item} for customer {customer}.
slots:
customer: path.key
item: path.customercostcodeKey
- text: Show the description of cost code {item} on customer {customer}.
slots:
customer: path.key
item: path.customercostcodeKey
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customers({key})/customerorders({customerorderKey})'].get
update:
x-apievangelist-phrasing:
intent: Get one order placed by a customer
effect: read
questions:
- Can I pull a specific order that a customer placed?
- Can I read an order through its customer's record?
instructions:
- text: Get order {item} placed by customer {customer}.
slots:
customer: path.key
item: path.customerorderKey
- text: Show order {item} from customer {customer}'s order history.
slots:
customer: path.key
item: path.customerorderKey
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customers({key})/customerproducts({customerproductKey})'].get
update:
x-apievangelist-phrasing:
intent: Get a customer-specific product entry
effect: read
questions:
- Where can I see a customer-specific product entry, like their own part number?
- Where are customer product settings stored for one account?
instructions:
- text: Get customer product entry {item} for customer {customer}.
slots:
customer: path.key
item: path.customerproductKey
- text: Show the customer-specific product setting {item} on customer {customer}.
slots:
customer: path.key
item: path.customerproductKey
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customers({key})/customerproductsets({customerproductsetKey})'].get
update:
x-apievangelist-phrasing:
intent: Get a product set assigned to a customer
effect: read
questions:
- Where do I find a product set assigned to a customer?
- Which product set is linked to this customer account?
instructions:
- text: Get product set {item} for customer {customer}.
slots:
customer: path.key
item: path.customerproductsetKey
- text: Show product set {item} assigned to customer {customer}.
slots:
customer: path.key
item: path.customerproductsetKey
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customers({key})/customproperties({custompropertyKey})'].get
update:
x-apievangelist-phrasing:
intent: Get a custom property on a customer
effect: read
questions:
- Where would I read a custom property stored on a customer?
- Can I fetch one extra attribute I added to a customer record?
instructions:
- text: Get custom property {item} on customer {customer}.
slots:
customer: path.key
item: path.custompropertyKey
- text: Show the value of custom field {item} for customer {customer}.
slots:
customer: path.key
item: path.custompropertyKey
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customers({key})/globalwishlists({wishlistKey})'].get
update:
x-apievangelist-phrasing:
intent: Get a global wish list for a customer
effect: read
questions:
- Can I open a global wish list shared with a customer?
- Which global lists are available to a customer account?
instructions:
- text: Get global wish list {item} for customer {customer}.
slots:
customer: path.key
item: path.wishlistKey
- text: Show shared global list {item} on customer {customer}.
slots:
customer: path.key
item: path.wishlistKey
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customers({key})/productvisibilityadditions({productKey})'].get
update:
x-apievangelist-phrasing:
intent: Check a product made visible to a customer
effect: read
questions:
- How do I confirm a product was explicitly added to a customer's visible catalog?
- Is a given product in the visibility additions for this customer?
instructions:
- text: Get visibility addition for product {item} on customer {customer}.
slots:
customer: path.key
item: path.productKey
- text: Check whether product {item} was added to customer {customer}'s visible products.
slots:
customer: path.key
item: path.productKey
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customers({key})/productvisibilityexceptions({productKey})'].get
update:
x-apievangelist-phrasing:
intent: Check a product hidden from a customer
effect: read
questions:
- Can I see if a product is excluded from what a customer can view?
- Is a product on a customer's visibility exception list?
instructions:
- text: Get visibility exception for product {item} on customer {customer}.
slots:
customer: path.key
item: path.productKey
- text: Check whether product {item} is hidden from customer {customer}.
slots:
customer: path.key
item: path.productKey
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customers({key})/restrictiongroupadditions({restrictiongroupKey})'].get
update:
x-apievangelist-phrasing:
intent: Get a restriction group added to a customer
effect: read
questions:
- How do I check a restriction group added to a customer?
- Which catalog restriction group additions apply to this account?
instructions:
- text: Get restriction group addition {item} for customer {customer}.
slots:
customer: path.key
item: path.restrictiongroupKey
- text: Show added restriction group {item} on customer {customer}.
slots:
customer: path.key
item: path.restrictiongroupKey
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customers({key})/restrictiongroupcustomers({restrictiongroupcustomerKey})'].get
update:
x-apievangelist-phrasing:
intent: Get a customer's restriction group membership
effect: read
questions:
- Where is the membership row linking a customer to a restriction group?
- Is this customer a member of a particular restriction group?
instructions:
- text: Get restriction group membership {item} for customer {customer}.
slots:
customer: path.key
item: path.restrictiongroupcustomerKey
- text: Show the restriction group customer link {item} on customer {customer}.
slots:
customer: path.key
item: path.restrictiongroupcustomerKey
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customers({key})/restrictiongroupexceptions({restrictiongroupKey})'].get
update:
x-apievangelist-phrasing:
intent: Get a restriction group excepted for a customer
effect: read
questions:
- Where can I see a restriction group a customer is exempted from?
- Which restriction group exceptions are set on this customer?
instructions:
- text: Get restriction group exception {item} for customer {customer}.
slots:
customer: path.key
item: path.restrictiongroupKey
- text: Show exempted restriction group {item} on customer {customer}.
slots:
customer: path.key
item: path.restrictiongroupKey
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customers({key})/ruleclauses({ruleclauseKey})'].get
update:
x-apievangelist-phrasing:
intent: Get a rule clause tied to a customer
effect: read
questions:
- Where do I read a rule clause attached to a customer?
- What conditions does a customer's rule clause contain?
instructions:
- text: Get rule clause {item} for customer {customer}.
slots:
customer: path.key
item: path.ruleclauseKey
- text: Show the conditions in rule clause {item} on customer {customer}.
slots:
customer: path.key
item: path.ruleclauseKey
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customers({key})/userprofiles({userprofileKey})'].get
update:
x-apievangelist-phrasing:
intent: Get a user profile under a customer
effect: read
questions:
- Is there a call to fetch one buyer user profile belonging to a customer?
- Can I read a specific user's profile through their customer account?
instructions:
- text: Get user profile {item} under customer {customer}.
slots:
customer: path.key
item: path.userprofileKey
- text: Show buyer user {item} on customer account {customer}.
slots:
customer: path.key
item: path.userprofileKey
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customers({key})/websites({websiteKey})'].get
update:
x-apievangelist-phrasing:
intent: Get a website assigned to a customer
effect: read
questions:
- Which website is a customer assigned to?
- Can I read a storefront website through its customer link?
instructions:
- text: Get website {item} assigned to customer {customer}.
slots:
customer: path.key
item: path.websiteKey
- text: Show storefront site {item} linked to customer {customer}.
slots:
customer: path.key
item: path.websiteKey
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customers({key})/wishlistadditions({wishlistKey})'].get
update:
x-apievangelist-phrasing:
intent: Get a wish list added to a customer
effect: read
questions:
- Can I read a wish list explicitly added to a customer?
- Which wish list additions are granted to this customer?
instructions:
- text: Get wish list addition {item} for customer {customer}.
slots:
customer: path.key
item: path.wishlistKey
- text: Show added wish list {item} granted to customer {customer}.
slots:
customer: path.key
item: path.wishlistKey
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customers({key})/wishlistexceptions({wishlistKey})'].get
update:
x-apievangelist-phrasing:
intent: Get a wish list excluded for a customer
effect: read
questions:
- Where can I see a wish list a customer is excluded from?
- Is a shared wish list on this customer's exception list?
instructions:
- text: Get wish list exception {item} for customer {customer}.
slots:
customer: path.key
item: path.wishlistKey
- text: Show excluded wish list {item} on customer {customer}.
slots:
customer: path.key
item: path.wishlistKey
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customers({key})/wishlists({wishlistKey})'].get
update:
x-apievangelist-phrasing:
intent: Get a customer's own wish list
effect: read
questions:
- Is there a call to read one of a customer's own saved wish lists?
- What products are in a particular wish list a customer owns?
instructions:
- text: Get wish list {item} owned by customer {customer}.
slots:
customer: path.key
item: path.wishlistKey
- text: Show the products saved in customer {customer}'s list {item}.
slots:
customer: path.key
item: path.wishlistKey
method: generated
generated: '2026-09-26'
- target: $.paths['/profiles'].get
update:
x-apievangelist-phrasing:
intent: Look up a customer profile's attributes
effect: read
questions:
- How do I get the attributes and identifiers stored for a customer profile?
- Which identifiers are linked to a customer, like email or customer ID?
instructions:
- text: Look up the customer profile matching {params}.
slots:
params: query.params
- text: Get attributes and identifiers for the customer identified by {params}.
slots:
params: query.params
method: generated
generated: '2026-09-26'
- target: $.paths['/profiles'].post
update:
x-apievangelist-phrasing:
intent: Create or update customer attributes
effect: write
questions:
- How do I create or update customer profiles with new attributes?
- Can I send updated identifiers for a customer in one call?
instructions:
- text: Create or update customer profiles with the attributes I provide.
- text: Upsert these customer identifiers and attributes into the profiles store.
method: generated
generated: '2026-09-26'