Optimizely · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Admin API V1 User Profiles API

34 actions 34 updates phrasing extends openapi/optimizely-user-profiles-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.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 34 · first 16 shown; the file carries all of them

$.info
$.paths['/api/v1/admin/UserProfiles'].get
$.paths['/api/v1/admin/UserProfiles'].post
$.paths['/api/v1/admin/UserProfiles({id})'].get
$.paths['/api/v1/admin/UserProfiles({id})'].put
$.paths['/api/v1/admin/UserProfiles({id})'].delete
$.paths['/api/v1/admin/UserProfiles({id})'].patch
$.paths['/api/v1/admin/UserProfiles/Default.Default()'].get
$.paths['/api/v1/admin/UserProfiles({id})/Default.Roles()'].get
$.paths['/api/v1/admin/UserProfiles/Default.Current()'].get
$.paths['/api/v1/admin/userprofiles/current'].get
$.paths['/api/v1/admin/userprofiles({key})/roles'].get
$.paths['/api/v1/admin/userprofiles({key})/roles'].put
$.paths['/api/v1/admin/userprofiles({key})/roles'].post
$.paths['/api/v1/admin/userprofiles({key})/roles'].delete
$.paths['/api/v1/admin/userprofiles({key})/allowedwebsites'].get

OpenAPI Overlay

Raw ↑
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
  title: API Evangelist conversational phrasing for Admin API V1 User Profiles API
  version: 1.0.0
extends: openapi/optimizely-user-profiles-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: 33
- target: $.paths['/api/v1/admin/UserProfiles'].get
  update:
    x-apievangelist-phrasing:
      intent: List user profiles
      effect: read
      questions:
      - How do I pull a list of every user profile in the commerce admin?
      - Can I filter user profiles by last name or activation status and page through them?
      instructions:
      - text: List all user profiles.
      - text: List user profiles matching {filter}, sorted by {orderby}, first {top} only.
        slots:
          filter: query.$filter
          orderby: query.$orderby
          top: query.$top
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/UserProfiles'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a user profile
      effect: write
      questions:
      - What fields are required to add a new user profile to the storefront admin?
      - Can I create a buyer account with a default customer and warehouse already set?
      instructions:
      - text: Create a user profile for {firstName} {lastName} with email {email} and username {userName}.
        slots:
          firstName: requestBody.firstName
          lastName: requestBody.lastName
          email: requestBody.email
          userName: requestBody.userName
      - text: Add a new user {userName} at company {company} linked to customer {defaultCustomerId}.
        slots:
          userName: requestBody.userName
          company: requestBody.company
          defaultCustomerId: requestBody.defaultCustomerId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/UserProfiles({id})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a user profile by id
      effect: read
      questions:
      - How can I look up a single user profile when I know its id?
      - Can I expand related records inline when fetching one user profile?
      instructions:
      - text: Get user profile {id}.
        slots:
          id: path.id
      - text: Fetch user profile {id} and expand {expand}.
        slots:
          id: path.id
          expand: query.$expand
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/UserProfiles({id})'].put
  update:
    x-apievangelist-phrasing:
      intent: Replace a user profile
      effect: write
      questions:
      - Is there a way to overwrite an entire user profile record in one call?
      - What happens to fields I leave out when I fully replace a user profile?
      instructions:
      - text: Replace user profile {id} entirely with a new record for {email}.
        slots:
          id: path.id
          email: requestBody.email
      - text: Overwrite the whole user profile {id}, setting position to {position}.
        slots:
          id: path.id
          position: requestBody.position
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/UserProfiles({id})'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a user profile
      effect: destructive
      questions:
      - Can I permanently remove one user profile by its id?
      - Does deleting a single user profile support an If-Match concurrency check?
      instructions:
      - text: Delete user profile {id}.
        slots:
          id: path.id
      - text: Delete user profile {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/UserProfiles({id})'].patch
  update:
    x-apievangelist-phrasing:
      intent: Update fields on a user profile
      effect: write
      questions:
      - How do I change just a user's phone number without resending the whole profile?
      - Can I deactivate a user by patching their profile?
      instructions:
      - text: Change the phone number on user profile {id} to {phone}.
        slots:
          id: path.id
          phone: requestBody.phone
      - text: 'Mark user profile {id} as deactivated: {isDeactivated}.'
        slots:
          id: path.id
          isDeactivated: requestBody.isDeactivated
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/UserProfiles/Default.Default()'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a blank user profile template
      effect: read
      questions:
      - What default values does a brand-new user profile start with?
      - Is there an empty user profile template I can fill in before creating one?
      instructions:
      - text: Get the default user profile template.
      - text: Show me the default field values for a new user profile.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/UserProfiles({id})/Default.Roles()'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a user's roles via the Roles function
      effect: read
      questions:
      - Which roles are attached to a user profile, using the Default.Roles() function?
      - Can I call the OData Roles function on a user profile id to see its permissions?
      instructions:
      - text: Call the Roles function for user profile {id}.
        slots:
          id: path.id
      - text: Run Default.Roles() on user {id} and filter to {filter}.
        slots:
          id: path.id
          filter: query.$filter
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/UserProfiles/Default.Current()'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the signed-in user via the Current function
      effect: read
      questions:
      - Which user profile am I signed in as, using the Default.Current() OData function?
      - Can the Current function tell me the calling admin's own profile?
      instructions:
      - text: Call Default.Current() to get my own user profile.
      - text: Run the Current function and select only {select}.
        slots:
          select: query.$select
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/userprofiles/current'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the signed-in user from the current route
      effect: read
      questions:
      - Is there a plain /userprofiles/current route that returns my own profile?
      - What does the lowercase current-user route return for the caller?
      instructions:
      - text: Fetch my profile from the userprofiles/current route.
      - text: Get the current user record from the current route and expand {expand}.
        slots:
          expand: query.$expand
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/userprofiles({key})/roles'].get
  update:
    x-apievangelist-phrasing:
      intent: List roles assigned to a user
      effect: read
      questions:
      - Where can I read the role list for a user from the roles sub-route?
      - Can I see which admin roles a specific user currently holds?
      instructions:
      - text: List the roles on user profile {key} from its roles route.
        slots:
          key: path.key
      - text: Show roles for user {key}, first {top}.
        slots:
          key: path.key
          top: query.$top
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/userprofiles({key})/roles'].put
  update:
    x-apievangelist-phrasing:
      intent: Replace a user's roles (PUT)
      effect: write
      questions:
      - Can I overwrite the full set of roles a user has with a PUT?
      - How are a user's roles replaced rather than appended?
      instructions:
      - text: Replace the role set on user profile {key} using PUT.
        slots:
          key: path.key
      - text: PUT a new role list onto user {key}.
        slots:
          key: path.key
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/userprofiles({key})/roles'].post
  update:
    x-apievangelist-phrasing:
      intent: Assign roles to a user (POST)
      effect: write
      questions:
      - Is there a POST route for assigning roles to a user?
      - Can I grant roles to a user profile by posting to its roles endpoint?
      instructions:
      - text: POST roles to user profile {key}.
        slots:
          key: path.key
      - text: Grant roles to user {key} through the POST roles route.
        slots:
          key: path.key
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/userprofiles({key})/roles'].delete
  update:
    x-apievangelist-phrasing:
      intent: Remove roles from a user
      effect: destructive
      questions:
      - Can I strip roles off a user profile?
      - What removes the roles a user has been granted?
      instructions:
      - text: Remove the roles from user profile {key}.
        slots:
          key: path.key
      - text: Revoke role assignments for user {key}.
        slots:
          key: path.key
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/userprofiles({key})/allowedwebsites'].get
  update:
    x-apievangelist-phrasing:
      intent: List websites a user may access
      effect: read
      questions:
      - Which storefront websites is a given user allowed to sign in to?
      - Can I check the allowed websites for a user profile?
      instructions:
      - text: List the allowed websites for user {key}.
        slots:
          key: path.key
      - text: Show which websites user {key} can access, filtered by {filter}.
        slots:
          key: path.key
          filter: query.$filter
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/userprofiles({key})/approvers'].get
  update:
    x-apievangelist-phrasing:
      intent: List a user's order approvers
      effect: read
      questions:
      - Who can approve orders for a particular user?
      - What approvers are available to a buyer's user profile?
      instructions:
      - text: List the approvers for user profile {key}.
        slots:
          key: path.key
      - text: Show possible order approvers for user {key}.
        slots:
          key: path.key
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/userprofiles({key})/availablecustomers'].get
  update:
    x-apievangelist-phrasing:
      intent: List customers a user can be assigned to
      effect: read
      questions:
      - Which customers could still be assigned to this user?
      - Can I get the available bill-to customers for a user profile?
      instructions:
      - text: List available customers for user {key}.
        slots:
          key: path.key
      - text: Show the first {top} customers user {key} could be linked to.
        slots:
          key: path.key
          top: query.$top
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/userprofiles/delete'].delete
  update:
    x-apievangelist-phrasing:
      intent: Bulk delete user profiles
      effect: destructive
      questions:
      - Can I delete several user profiles at once by passing a list of ids?
      - Is there a bulk delete route for user accounts?
      instructions:
      - text: Bulk delete user profiles {ids}.
        slots:
          ids: query.ids
      - text: 'Remove all of these users in one call: {ids}.'
        slots:
          ids: query.ids
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/userprofiles({key})/customers({customerKey})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a customer linked to a user
      effect: read
      questions:
      - Can I read one specific customer assigned to a user profile?
      - Is a given customer account attached to this user?
      instructions:
      - text: Get customer {customerKey} assigned to user {key}.
        slots:
          customerKey: path.customerKey
          key: path.key
      - text: Show the customer record {customerKey} under user profile {key}.
        slots:
          customerKey: path.customerKey
          key: path.key
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/userprofiles({key})/customproperties({custompropertyKey})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a custom property on a user
      effect: read
      questions:
      - How do I read a custom property stored on a user profile?
      - Can I fetch one extended attribute from a user record?
      instructions:
      - text: Get custom property {custompropertyKey} on user {key}.
        slots:
          custompropertyKey: path.custompropertyKey
          key: path.key
      - text: Read user {key}'s custom field {custompropertyKey}.
        slots:
          key: path.key
          custompropertyKey: path.custompropertyKey
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/userprofiles({key})/dashboardpanelpositions({dashboardpanelpositionKey})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a user's dashboard panel position
      effect: read
      questions:
      - Where is a given dashboard panel placed for a user?
      - Can I read one saved dashboard layout position for a user profile?
      instructions:
      - text: Get dashboard panel position {dashboardpanelpositionKey} for user {key}.
        slots:
          dashboardpanelpositionKey: path.dashboardpanelpositionKey
          key: path.key
      - text: Show where user {key} placed dashboard panel {dashboardpanelpositionKey}.
        slots:
          key: path.key
          dashboardpanelpositionKey: path.dashboardpanelpositionKey
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/userprofiles({key})/emaillists({emaillistKey})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get an email list a user is on
      effect: read
      questions:
      - Is a user subscribed to a particular email list?
      - Can I look up one email list membership on a user profile?
      instructions:
      - text: Get email list {emaillistKey} for user {key}.
        slots:
          emaillistKey: path.emaillistKey
          key: path.key
      - text: Check user {key}'s membership in email list {emaillistKey}.
        slots:
          key: path.key
          emaillistKey: path.emaillistKey
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/userprofiles({key})/messagestatuses({messagestatusKey})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a message status for a user
      effect: read
      questions:
      - Has a user read a particular site message?
      - What is the status of one message delivered to a user profile?
      instructions:
      - text: Get message status {messagestatusKey} for user {key}.
        slots:
          messagestatusKey: path.messagestatusKey
          key: path.key
      - text: Show whether user {key} has seen message status {messagestatusKey}.
        slots:
          key: path.key
          messagestatusKey: path.messagestatusKey
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/userprofiles({key})/odppersonas({personaKey})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a user's ODP persona
      effect: read
      questions:
      - Which Optimizely Data Platform persona is attached to a user?
      - Can I read one ODP persona record from a user profile?
      instructions:
      - text: Get ODP persona {personaKey} for user {key}.
        slots:
          personaKey: path.personaKey
          key: path.key
      - text: Show the data platform persona {personaKey} linked to user {key}.
        slots:
          personaKey: path.personaKey
          key: path.key
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/userprofiles({key})/salespersons({salespersonKey})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a salesperson tied to a user
      effect: read
      questions:
      - Who is the sales rep assigned to a user profile?
      - Can I read one salesperson record linked to a user?
      instructions:
      - text: Get salesperson {salespersonKey} for user {key}.
        slots:
          salespersonKey: path.salespersonKey
          key: path.key
      - text: Show sales rep {salespersonKey} associated with user {key}.
        slots:
          salespersonKey: path.salespersonKey
          key: path.key
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/userprofiles({key})/userpaymentprofiles({userpaymentprofileKey})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a user's saved payment profile
      effect: read
      questions:
      - Can I see a stored payment method saved on a user's profile?
      - What does one saved payment profile for a user contain?
      instructions:
      - text: Get payment profile {userpaymentprofileKey} for user {key}.
        slots:
          userpaymentprofileKey: path.userpaymentprofileKey
          key: path.key
      - text: Show user {key}'s saved card {userpaymentprofileKey}.
        slots:
          key: path.key
          userpaymentprofileKey: path.userpaymentprofileKey
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/userprofiles({key})/userprofilepasswords({userprofilepasswordKey})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a user's password history record
      effect: read
      questions:
      - Can I read a stored password history entry for a user?
      - Where is one previous-password record for a user profile kept?
      instructions:
      - text: Get password record {userprofilepasswordKey} for user {key}.
        slots:
          userprofilepasswordKey: path.userprofilepasswordKey
          key: path.key
      - text: Show password history entry {userprofilepasswordKey} of user {key}.
        slots:
          userprofilepasswordKey: path.userprofilepasswordKey
          key: path.key
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/userprofiles({key})/userprofilewishlistfavorites({userprofilewishlistfavoriteKey})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a user's favorited wish list
      effect: read
      questions:
      - Which wish lists has a user marked as favorite?
      - Can I read one wish list favorite flag for a user profile?
      instructions:
      - text: Get wish list favorite {userprofilewishlistfavoriteKey} for user {key}.
        slots:
          userprofilewishlistfavoriteKey: path.userprofilewishlistfavoriteKey
          key: path.key
      - text: Show favorited list entry {userprofilewishlistfavoriteKey} of user {key}.
        slots:
          userprofilewishlistfavoriteKey: path.userprofilewishlistfavoriteKey
          key: path.key
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/userprofiles({key})/userprofilewishlisthides({userprofilewishlisthideKey})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a wish list a user has hidden
      effect: read
      questions:
      - Has a user hidden a shared wish list from view?
      - Can I look up one hidden wish list record for a user?
      instructions:
      - text: Get hidden wish list record {userprofilewishlisthideKey} for user {key}.
        slots:
          userprofilewishlisthideKey: path.userprofilewishlisthideKey
          key: path.key
      - text: Show wish list hide entry {userprofilewishlisthideKey} of user {key}.
        slots:
          userprofilewishlisthideKey: path.userprofilewishlisthideKey
          key: path.key
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/userprofiles({key})/userprofilewishlisttags({userprofilewishlisttagKey})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a wish list tag on a user
      effect: read
      questions:
      - What tags has a user applied to their wish lists?
      - Can I fetch one wish list tag belonging to a user profile?
      instructions:
      - text: Get wish list tag {userprofilewishlisttagKey} for user {key}.
        slots:
          userprofilewishlisttagKey: path.userprofilewishlisttagKey
          key: path.key
      - text: Show list tag {userprofilewishlisttagKey} created by user {key}.
        slots:
          userprofilewishlisttagKey: path.userprofilewishlisttagKey
          key: path.key
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/userprofiles({key})/websites({websiteKey})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a website assigned to a user
      effect: read
      questions:
      - Is a specific website assigned to this user profile?
      - Can I read one website record from a user's assigned sites?
      instructions:
      - text: Get website {websiteKey} assigned to user {key}.
        slots:
          websiteKey: path.websiteKey
          key: path.key
      - text: Show assigned site {websiteKey} on user profile {key}.
        slots:
          websiteKey: path.websiteKey
          key: path.key
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/userprofiles({key})/wishlistproducts({wishlistproductKey})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a wish list product for a user
      effect: read
      questions:
      - Can I read one product a user has saved to a wish list?
      - What quantity and details does a user's wish list item have?
      instructions:
      - text: Get wish list product {wishlistproductKey} for user {key}.
        slots:
          wishlistproductKey: path.wishlistproductKey
          key: path.key
      - text: Show saved item {wishlistproductKey} on user {key}'s lists.
        slots:
          wishlistproductKey: path.wishlistproductKey
          key: path.key
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/userprofiles({key})/wishlists({wishlistKey})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a wish list owned by a user
      effect: read
      questions:
      - Can I pull up one of a user's wish lists by its id?
      - What does a single wish list belonging to a user look like?
      instructions:
      - text: Get wish list {wishlistKey} owned by user {key}.
        slots:
          wishlistKey: path.wishlistKey
          key: path.key
      - text: Open user {key}'s wish list {wishlistKey}.
        slots:
          key: path.key
          wishlistKey: path.wishlistKey
      method: generated
      generated: '2026-09-26'