Optimizely · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Admin API V1 Promotion Results API
17 actions
17 updates
phrasing
extends
openapi/optimizely-promotion-results-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 17 · first 16 shown; the file carries all of them
$.info
$.paths['/api/v1/admin/PromotionResults'].get
$.paths['/api/v1/admin/PromotionResults'].post
$.paths['/api/v1/admin/PromotionResults({id})'].get
$.paths['/api/v1/admin/PromotionResults({id})'].put
$.paths['/api/v1/admin/PromotionResults({id})'].delete
$.paths['/api/v1/admin/PromotionResults({id})'].patch
$.paths['/api/v1/admin/PromotionResults/Default.Default()'].get
$.paths['/api/v1/admin/PromotionResults({id})/Default.import'].post
$.paths['/api/v1/admin/PromotionResults/Default.createtemporary'].post
$.paths['/api/v1/admin/PromotionResults/Default.copyfromtemporary'].post
$.paths['/api/v1/admin/promotionresults/createtemporary'].post
$.paths['/api/v1/admin/promotionresults/copyfromtemporary'].post
$.paths['/api/v1/admin/promotionresults({key})/import'].post
$.paths['/api/v1/admin/promotionresults/delete'].delete
$.paths['/api/v1/admin/promotionresults({key})/customproperties({custompropertyKey})'].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 Admin API V1 Promotion Results API
version: 1.0.0
extends: openapi/optimizely-promotion-results-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: 16
- target: $.paths['/api/v1/admin/PromotionResults'].get
update:
x-apievangelist-phrasing:
intent: List promotion results
effect: read
questions:
- What discounts and rewards are configured across promotions?
- Can I filter promotion results by result type?
instructions:
- text: List all promotion results.
- text: Show promotion results matching {filter}.
slots:
filter: query.$filter
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/PromotionResults'].post
update:
x-apievangelist-phrasing:
intent: Create a promotion result
effect: write
questions:
- How do I add a percentage discount reward to a promotion?
- Can a promotion result give free shipping via a specific ship via?
instructions:
- text: Create a {promotionResultType} result for promotion {promotionId}.
slots:
promotionResultType: requestBody.promotionResultType
promotionId: requestBody.promotionId
- text: Add a {promotionResultType} result worth {amount} to promotion {promotionId}.
slots:
promotionResultType: requestBody.promotionResultType
amount: requestBody.amount
promotionId: requestBody.promotionId
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/PromotionResults({id})'].get
update:
x-apievangelist-phrasing:
intent: Get a promotion result
effect: read
questions:
- What reward does a particular promotion result grant?
- Can I look up one promotion result by its ID?
instructions:
- text: Get promotion result {id}.
slots:
id: path.id
- text: Show the amount and type of promotion result {id}.
slots:
id: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/PromotionResults({id})'].put
update:
x-apievangelist-phrasing:
intent: Replace a promotion result entirely
effect: write
questions:
- How do I overwrite every field of a promotion result?
- Can I fully replace a promotion result record?
instructions:
- text: Replace promotion result {id} with type {promotionResultType}.
slots:
id: path.id
promotionResultType: requestBody.promotionResultType
- text: Overwrite all fields of promotion result {id}, setting amount {amount} and type {promotionResultType}.
slots:
id: path.id
amount: requestBody.amount
promotionResultType: requestBody.promotionResultType
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/PromotionResults({id})'].delete
update:
x-apievangelist-phrasing:
intent: Delete a promotion result
effect: destructive
questions:
- How do I remove a single reward from a promotion?
- Is a promotion result deletion guarded by an If-Match check?
instructions:
- text: Delete promotion result {id}.
slots:
id: path.id
- text: Remove promotion result {id} if its ETag is {ifMatch}.
slots:
id: path.id
ifMatch: header.If-Match
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/PromotionResults({id})'].patch
update:
x-apievangelist-phrasing:
intent: Update some fields of a promotion result
effect: write
questions:
- How do I change just the discount amount on a promotion result?
- Can I toggle whether a promotion result is visible?
instructions:
- text: Change the amount on promotion result {id} to {amount}, keeping type {promotionResultType}.
slots:
id: path.id
amount: requestBody.amount
promotionResultType: requestBody.promotionResultType
- text: Set visible to {visible} on promotion result {id} of type {promotionResultType}.
slots:
id: path.id
visible: requestBody.visible
promotionResultType: requestBody.promotionResultType
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/PromotionResults/Default.Default()'].get
update:
x-apievangelist-phrasing:
intent: Get default values for a new promotion result
effect: read
questions:
- What defaults does a new promotion result start with?
- Is there a blank promotion result template?
instructions:
- text: Get the default field values for a new promotion result.
- text: Show a blank promotion result record.
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/PromotionResults({id})/Default.import'].post
update:
x-apievangelist-phrasing:
intent: Import products into a promotion result
effect: write
questions:
- How do I import a product list into a promotion result using the OData import action?
- Can I bulk load qualifying products onto a promotion result?
instructions:
- text: Run the import action for promotion result {id}.
slots:
id: path.id
- text: Import products into promotion result {id} via the Default.import action.
slots:
id: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/PromotionResults/Default.createtemporary'].post
update:
x-apievangelist-phrasing:
intent: Create a temporary copy of a promotion result
effect: write
questions:
- How do I make a temporary working copy of an existing promotion result?
- Can I stage edits to a promotion result in a temporary record first?
instructions:
- text: Create a temporary copy of promotion result {existingPromotionResultId}.
slots:
existingPromotionResultId: requestBody.existingPromotionResultId
- text: Start a temporary draft from promotion result {existingPromotionResultId}.
slots:
existingPromotionResultId: requestBody.existingPromotionResultId
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/PromotionResults/Default.copyfromtemporary'].post
update:
x-apievangelist-phrasing:
intent: Copy a temporary promotion result onto the real one
effect: write
questions:
- How do I apply staged temporary changes back to the original promotion result?
- Can I copy a temporary promotion result over its target?
instructions:
- text: Copy temporary promotion result {tempPromotionResultId} onto {targetPromotionResultId}.
slots:
tempPromotionResultId: requestBody.tempPromotionResultId
targetPromotionResultId: requestBody.targetPromotionResultId
- text: Save temp result {tempPromotionResultId} back to promotion result {targetPromotionResultId}.
slots:
tempPromotionResultId: requestBody.tempPromotionResultId
targetPromotionResultId: requestBody.targetPromotionResultId
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/promotionresults/createtemporary'].post
update:
x-apievangelist-phrasing:
intent: Create a temporary promotion result (route)
effect: write
questions:
- Is there a plain route version of createtemporary for promotion results?
- Can I call createtemporary on promotion results without the OData action path?
instructions:
- text: Call the promotionresults/createtemporary route.
- text: Create a temporary promotion result using the non-OData route.
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/promotionresults/copyfromtemporary'].post
update:
x-apievangelist-phrasing:
intent: Copy from temporary promotion result (route)
effect: write
questions:
- Is there a plain route version of copyfromtemporary for promotion results?
- Can I run copyfromtemporary without the OData Default action?
instructions:
- text: Call the promotionresults/copyfromtemporary route.
- text: Copy from the temporary promotion result using the non-OData route.
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/promotionresults({key})/import'].post
update:
x-apievangelist-phrasing:
intent: Import products into a promotion result (route)
effect: write
questions:
- Is there a plain route for importing products into a promotion result by key?
- Can I trigger the product import on a promotion result without the OData action?
instructions:
- text: Import products into promotion result {key} using the import route.
slots:
key: path.key
- text: Call the promotionresults import route for {key}.
slots:
key: path.key
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/promotionresults/delete'].delete
update:
x-apievangelist-phrasing:
intent: Delete several promotion results
effect: destructive
questions:
- How do I bulk delete a list of promotion results?
- Can I remove multiple promotion results in one request?
instructions:
- text: Bulk delete promotion results {ids}.
slots:
ids: query.ids
- text: Permanently delete every promotion result in {ids}.
slots:
ids: query.ids
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/promotionresults({key})/customproperties({custompropertyKey})'].get
update:
x-apievangelist-phrasing:
intent: Get a custom property on a promotion result
effect: read
questions:
- How do I read a custom property on a promotion result?
- Can I fetch one custom field value from a promotion result?
instructions:
- text: Get custom property {custompropertyKey} of promotion result {key}.
slots:
key: path.key
custompropertyKey: path.custompropertyKey
- text: Show the {custompropertyKey} custom property on promotion result {key}.
slots:
key: path.key
custompropertyKey: path.custompropertyKey
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/promotionresults({key})/products({productKey})'].get
update:
x-apievangelist-phrasing:
intent: Get a product attached to a promotion result
effect: read
questions:
- Which product details are linked to a promotion result?
- Can I check whether a specific product belongs to a promotion result?
instructions:
- text: Get product {productKey} on promotion result {key}.
slots:
key: path.key
productKey: path.productKey
- text: Show linked product {productKey} for promotion result {key}.
slots:
key: path.key
productKey: path.productKey
method: generated
generated: '2026-09-26'