Optimizely · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Storefront API V1 Quotes API
9 actions
9 updates
phrasing
extends
openapi/optimizely-quotes-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 9
$.info
$.paths['/api/v1/quotes'].get
$.paths['/api/v1/quotes'].post
$.paths['/api/v1/quotes/{quoteId}'].get
$.paths['/api/v1/quotes/{quoteId}'].delete
$.paths['/api/v1/quotes/{quoteId}'].patch
$.paths['/api/v1/quotes/{quoteId}/messages'].post
$.paths['/api/v1/quotes/{quoteId}/quotelines/{quoteLineId}'].get
$.paths['/api/v1/quotes/{quoteId}/quotelines/{quoteLineId}'].patch
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 Storefront API V1 Quotes API
version: 1.0.0
extends: openapi/optimizely-quotes-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: 8
- target: $.paths['/api/v1/quotes'].get
update:
x-apievangelist-phrasing:
intent: Search quotes by customer, status or date
effect: read
questions:
- Which quotes are still open for a particular customer?
- Can I find quotes that expire within a date range?
- How do I look up quotes handled by one sales rep?
instructions:
- text: List quotes for customer {customerId} with status {statuses}.
slots:
customerId: query.quoteParameter.customerId
statuses: query.quoteParameter.statuses
- text: Find quotes expiring between {expireFromDate} and {expireToDate}.
slots:
expireFromDate: query.quoteParameter.expireFromDate
expireToDate: query.quoteParameter.expireToDate
- text: Look up quote number {quoteNumber}.
slots:
quoteNumber: query.quoteParameter.quoteNumber
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/quotes'].post
update:
x-apievangelist-phrasing:
intent: Request a quote from the cart
effect: write
questions:
- How does a B2B buyer submit a request for quote?
- Can I create a job quote with a job name instead of a regular quote?
instructions:
- text: Submit a quote request with the note {note}.
slots:
note: requestBody.note
- text: Create a job quote named {jobName}.
slots:
jobName: requestBody.jobName
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/quotes/{quoteId}'].get
update:
x-apievangelist-phrasing:
intent: Get a quote
effect: read
questions:
- What is the current status and expiration date of a specific quote?
- Can I see the full details of one quote by its id?
instructions:
- text: Get quote {quoteId}.
slots:
quoteId: path.quoteId
- text: Show me the status and expiry of quote {quoteId}.
slots:
quoteId: path.quoteId
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/quotes/{quoteId}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a quote
effect: destructive
questions:
- Can I delete a quote the customer no longer wants?
- Is removing a quote permanent?
instructions:
- text: Delete quote {quoteId}.
slots:
quoteId: path.quoteId
- text: Remove the abandoned quote {quoteId}.
slots:
quoteId: path.quoteId
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/quotes/{quoteId}'].patch
update:
x-apievangelist-phrasing:
intent: Update, price or accept a quote
effect: write
questions:
- How does a sales rep apply a percentage discount to a quote?
- Can I change a quote's status or extend its expiration date?
instructions:
- text: Set the status of quote {quoteId} to {status}.
slots:
quoteId: path.quoteId
status: requestBody.status
- text: Apply {calculationMethod} pricing of {percent} percent to quote {quoteId}.
slots:
calculationMethod: requestBody.calculationMethod
percent: requestBody.percent
quoteId: path.quoteId
- text: Extend quote {quoteId} to expire on {expirationDate}.
slots:
quoteId: path.quoteId
expirationDate: requestBody.expirationDate
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/quotes/{quoteId}/messages'].post
update:
x-apievangelist-phrasing:
intent: Send a message on a quote
effect: write
questions:
- Can the buyer and sales rep message each other about a quote?
- How do I add a note to the conversation thread on a quote?
instructions:
- text: Post the message {message} on quote {quoteId}.
slots:
message: requestBody.message
quoteId: path.quoteId
- text: Reply to the customer on quote {quoteId} saying {message}.
slots:
quoteId: path.quoteId
message: requestBody.message
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/quotes/{quoteId}/quotelines/{quoteLineId}'].get
update:
x-apievangelist-phrasing:
intent: Get a line item on a quote
effect: read
questions:
- What quantity and pricing are on a specific line of a quote?
- Can I see the price breaks for one quoted product?
instructions:
- text: Get line {quoteLineId} of quote {quoteId}.
slots:
quoteLineId: path.quoteLineId
quoteId: path.quoteId
- text: Show the pricing on quote {quoteId} line {quoteLineId}.
slots:
quoteId: path.quoteId
quoteLineId: path.quoteLineId
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/quotes/{quoteId}/quotelines/{quoteLineId}'].patch
update:
x-apievangelist-phrasing:
intent: Update quantity or pricing on a quote line
effect: write
questions:
- Can I change the quantity of a product on a quote line?
- How do I add price breaks or notes to a single quoted line?
instructions:
- text: Set line {quoteLineId} of quote {quoteId} for product {productId} to quantity {qtyOrdered}.
slots:
quoteLineId: path.quoteLineId
quoteId: path.quoteId
productId: requestBody.productId
qtyOrdered: requestBody.qtyOrdered
- text: Add the note {notes} to quote {quoteId} line {quoteLineId} for product {productId}, quantity {qtyOrdered}.
slots:
notes: requestBody.notes
quoteId: path.quoteId
quoteLineId: path.quoteLineId
productId: requestBody.productId
qtyOrdered: requestBody.qtyOrdered
method: generated
generated: '2026-09-26'