Optimizely · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Storefront API V1 Accounts API

13 actions 13 updates phrasing extends openapi/optimizely-accounts-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 13

$.info
$.paths['/api/v1/accounts/{accountId}/shiptos'].patch
$.paths['/api/v1/accounts'].get
$.paths['/api/v1/accounts'].post
$.paths['/api/v1/accounts/{accountId}'].get
$.paths['/api/v1/accounts/{accountId}'].patch
$.paths['/api/v1/accounts/vmi/import'].post
$.paths['/api/v1/accounts/vmi/{vmiUserId}'].patch
$.paths['/api/v1/accounts/current/paymentprofiles'].get
$.paths['/api/v1/accounts/current/paymentprofiles'].post
$.paths['/api/v1/accounts/current/paymentprofiles/{AccountPaymentProfileId}'].get
$.paths['/api/v1/accounts/current/paymentprofiles/{AccountPaymentProfileId}'].delete
$.paths['/api/v1/accounts/current/paymentprofiles/{AccountPaymentProfileId}'].patch

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 Storefront API V1 Accounts API
  version: 1.0.0
extends: openapi/optimizely-accounts-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: 12
- target: $.paths['/api/v1/accounts/{accountId}/shiptos'].patch
  update:
    x-apievangelist-phrasing:
      intent: Update an account's ship-to assignments
      effect: write
      questions:
      - How do I change which ship-to addresses a user account can order to?
      - Can I update the cost codes attached to an account's ship-tos?
      instructions:
      - text: Update ship-to assignments for account {accountId} to {userShipToCollection}.
        slots:
          accountId: path.accountId
          userShipToCollection: requestBody.userShipToCollection
      - text: Set cost codes {costCodeCollection} on account {accountId}'s ship-tos.
        slots:
          accountId: path.accountId
          costCodeCollection: requestBody.costCodeCollection
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/accounts'].get
  update:
    x-apievangelist-phrasing:
      intent: List user accounts
      effect: read
      questions:
      - How do I search the user accounts in my Optimizely B2B storefront by name?
      - Can I list accounts that have a certain role while excluding others?
      - What paging options exist when listing accounts?
      instructions:
      - text: Search accounts for {searchText}.
        slots:
          searchText: query.parameter.searchText
      - text: List accounts with roles {roles}, excluding roles {excludeRoles}.
        slots:
          roles: query.parameter.roles
          excludeRoles: query.parameter.excludeRoles
      - text: Show page {page} of accounts, {pageSize} per page.
        slots:
          page: query.parameter.page
          pageSize: query.parameter.pageSize
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/accounts'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a user account
      effect: write
      questions:
      - How do I register a new user account with an email and password?
      - Can I create a guest account for checkout?
      instructions:
      - text: Create an account for {email} with username {userName} and password {password}.
        slots:
          email: requestBody.email
          userName: requestBody.userName
          password: requestBody.password
      - text: Create a guest account with isGuest {isGuest}.
        slots:
          isGuest: requestBody.isGuest
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/accounts/{accountId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a user account
      effect: read
      questions:
      - What role and default ship-to does a specific user account have?
      - Can I fetch a single account by its id?
      instructions:
      - text: Get account {accountId}.
        slots:
          accountId: path.accountId
      - text: Show the role and approval rights of account {accountId}.
        slots:
          accountId: path.accountId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/accounts/{accountId}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Update a user account
      effect: write
      questions:
      - How do I change a user's role or name on their account?
      - Can I give an existing account permission to approve orders?
      instructions:
      - text: Change account {accountId}'s role to {role}.
        slots:
          accountId: path.accountId
          role: requestBody.role
      - text: Set canApproveOrders to {canApproveOrders} on account {accountId}.
        slots:
          accountId: path.accountId
          canApproveOrders: requestBody.canApproveOrders
      - text: Update account {accountId} name to {firstName} {lastName}.
        slots:
          accountId: path.accountId
          firstName: requestBody.firstName
          lastName: requestBody.lastName
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/accounts/vmi/import'].post
  update:
    x-apievangelist-phrasing:
      intent: Import VMI users
      effect: write
      questions:
      - How do I bulk import vendor managed inventory users?
      - Can I load a list of VMI users in one request?
      instructions:
      - text: Import VMI users {vmiUsers}.
        slots:
          vmiUsers: requestBody.vmiUsers
      - text: Bulk-load the vendor managed inventory user list {vmiUsers}.
        slots:
          vmiUsers: requestBody.vmiUsers
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/accounts/vmi/{vmiUserId}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Update a VMI user's role and locations
      effect: write
      questions:
      - How do I change which VMI locations a vendor managed inventory user can access?
      - Can I strip VMI permissions from a user?
      instructions:
      - text: Give VMI user {vmiUserId} access to locations {vmiLocationIds}.
        slots:
          vmiUserId: path.vmiUserId
          vmiLocationIds: requestBody.vmiLocationIds
      - text: Set VMI user {vmiUserId}'s VMI role to {role}.
        slots:
          vmiUserId: path.vmiUserId
          role: requestBody.role
      - text: Remove VMI permissions from VMI user {vmiUserId} with removeVmiPermissions {removeVmiPermissions}.
        slots:
          vmiUserId: path.vmiUserId
          removeVmiPermissions: requestBody.removeVmiPermissions
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/accounts/current/paymentprofiles'].get
  update:
    x-apievangelist-phrasing:
      intent: List my saved payment profiles
      effect: read
      questions:
      - Which saved cards are on the current user's account?
      - Can I page through my stored payment profiles?
      instructions:
      - text: List the saved payment profiles for my account.
      - text: Search my saved payment profiles for {query}.
        slots:
          query: query.parameter.query
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/accounts/current/paymentprofiles'].post
  update:
    x-apievangelist-phrasing:
      intent: Save a new payment card to my account
      effect: write
      questions:
      - How do I store a new credit card on the current user's account?
      - Can I mark a newly saved card as my default payment method?
      instructions:
      - text: Save card {cardIdentifier} for {cardHolderName} expiring {expirationDate} to my account.
        slots:
          cardIdentifier: requestBody.cardIdentifier
          cardHolderName: requestBody.cardHolderName
          expirationDate: requestBody.expirationDate
      - text: Add a {cardType} payment profile described as {description} and set isDefault {isDefault}.
        slots:
          cardType: requestBody.cardType
          description: requestBody.description
          isDefault: requestBody.isDefault
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/accounts/current/paymentprofiles/{AccountPaymentProfileId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one saved payment profile
      effect: read
      questions:
      - What are the masked card number and expiry of one of my saved cards?
      - Can I fetch a single saved payment profile by id?
      instructions:
      - text: Get payment profile {AccountPaymentProfileId}.
        slots:
          AccountPaymentProfileId: path.AccountPaymentProfileId
      - text: Show the masked card number on saved payment profile {AccountPaymentProfileId}.
        slots:
          AccountPaymentProfileId: path.AccountPaymentProfileId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/accounts/current/paymentprofiles/{AccountPaymentProfileId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Remove a saved payment card
      effect: destructive
      questions:
      - How do I delete a stored card from my account?
      - Can I remove an expired payment profile?
      instructions:
      - text: Delete payment profile {AccountPaymentProfileId}.
        slots:
          AccountPaymentProfileId: path.AccountPaymentProfileId
      - text: Remove saved card {AccountPaymentProfileId} from my account.
        slots:
          AccountPaymentProfileId: path.AccountPaymentProfileId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/accounts/current/paymentprofiles/{AccountPaymentProfileId}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Update a saved payment profile
      effect: write
      questions:
      - How do I update the billing address on a saved card?
      - Can I change the expiration date of a stored payment profile?
      instructions:
      - text: Update payment profile {AccountPaymentProfileId} expiration to {expirationDate}.
        slots:
          AccountPaymentProfileId: path.AccountPaymentProfileId
          expirationDate: requestBody.expirationDate
      - text: Change the billing address on payment profile {AccountPaymentProfileId} to {address1}, {city} {postalCode}.
        slots:
          AccountPaymentProfileId: path.AccountPaymentProfileId
          address1: requestBody.address1
          city: requestBody.city
          postalCode: requestBody.postalCode
      - text: Make payment profile {AccountPaymentProfileId} my default card.
        slots:
          AccountPaymentProfileId: path.AccountPaymentProfileId
      method: generated
      generated: '2026-09-26'