Optimizely · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Admin API V1 Countries API
12 actions
12 updates
phrasing
extends
openapi/optimizely-countries-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 12
$.info
$.paths['/api/v1/admin/Countries'].get
$.paths['/api/v1/admin/Countries'].post
$.paths['/api/v1/admin/Countries({id})'].get
$.paths['/api/v1/admin/Countries({id})'].put
$.paths['/api/v1/admin/Countries({id})'].delete
$.paths['/api/v1/admin/Countries({id})'].patch
$.paths['/api/v1/admin/Countries/Default.Default()'].get
$.paths['/api/v1/admin/countries/delete'].delete
$.paths['/api/v1/admin/countries({key})/customproperties({custompropertyKey})'].get
$.paths['/api/v1/admin/countries({key})/states({stateKey})'].get
$.paths['/api/v1/admin/countries({key})/websites({websiteKey})'].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 Countries API
version: 1.0.0
extends: openapi/optimizely-countries-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: 11
- target: $.paths['/api/v1/admin/Countries'].get
update:
x-apievangelist-phrasing:
intent: List the countries configured in the store
effect: read
questions:
- Which countries are set up in our Optimizely Commerce admin?
- Can I filter the country list to only the active ones and sort it by name?
- Is there a way to get a count of configured countries along with the results?
instructions:
- text: List all configured countries.
- text: List countries matching the filter {filter}, ordered by {orderby}.
slots:
filter: query.$filter
orderby: query.$orderby
- text: Show the first {top} countries with their states expanded as {expand}.
slots:
top: query.$top
expand: query.$expand
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Countries'].post
update:
x-apievangelist-phrasing:
intent: Add a new country
effect: write
questions:
- What ISO codes and unit settings are required to add a country?
- Can I block anonymous traffic from a country when I add it?
instructions:
- text: Add the country {name} with abbreviation {abbreviation}, ISO codes {isoCode2} and {isoCode3}, ISO number {isoNumber}, using {distanceUnitOfMeasure}.
slots:
name: requestBody.name
abbreviation: requestBody.abbreviation
isoCode2: requestBody.isoCode2
isoCode3: requestBody.isoCode3
isoNumber: requestBody.isoNumber
distanceUnitOfMeasure: requestBody.distanceUnitOfMeasure
- text: Create country {name} ({isoCode2}/{isoCode3}, number {isoNumber}, abbreviation {abbreviation}, distance unit {distanceUnitOfMeasure}) as inactive.
slots:
name: requestBody.name
isoCode2: requestBody.isoCode2
isoCode3: requestBody.isoCode3
isoNumber: requestBody.isoNumber
abbreviation: requestBody.abbreviation
distanceUnitOfMeasure: requestBody.distanceUnitOfMeasure
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Countries({id})'].get
update:
x-apievangelist-phrasing:
intent: Get a country by id
effect: read
questions:
- How do I look up one country's ISO codes and VAT default by its id?
- Can I select only certain fields when fetching a single country?
instructions:
- text: Get country {id}.
slots:
id: path.id
- text: Show only the fields {select} for country {id}.
slots:
select: query.$select
id: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Countries({id})'].put
update:
x-apievangelist-phrasing:
intent: Replace a country record
effect: write
questions:
- Can I overwrite a country's whole record, including its ISO codes, in one call?
- Does a full replace of a country reset fields I leave out?
instructions:
- text: Replace country {id} with name {name}, abbreviation {abbreviation}, codes {isoCode2}/{isoCode3}, number {isoNumber}, unit {distanceUnitOfMeasure}.
slots:
id: path.id
name: requestBody.name
abbreviation: requestBody.abbreviation
isoCode2: requestBody.isoCode2
isoCode3: requestBody.isoCode3
isoNumber: requestBody.isoNumber
distanceUnitOfMeasure: requestBody.distanceUnitOfMeasure
- text: Overwrite the full record of country {id} with a new definition.
slots:
id: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Countries({id})'].delete
update:
x-apievangelist-phrasing:
intent: Delete a country
effect: destructive
questions:
- Can I remove a single country from the store configuration?
- Does deleting a country support an If-Match concurrency check?
instructions:
- text: Delete country {id}.
slots:
id: path.id
- text: Delete country {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/Countries({id})'].patch
update:
x-apievangelist-phrasing:
intent: Update fields on a country
effect: write
questions:
- How do I deactivate a country without resending all its details?
- Can I change a country's default VAT code with a partial update?
instructions:
- text: Set isActive to {isActive} on country {id}.
slots:
isActive: requestBody.isActive
id: path.id
- text: Patch country {id} so its default VAT code is {defaultVatCodeId}.
slots:
id: path.id
defaultVatCodeId: requestBody.defaultVatCodeId
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/Countries/Default.Default()'].get
update:
x-apievangelist-phrasing:
intent: Call the countries Default function
effect: read
questions:
- What does the Default function on the Countries set return?
- Is there an endpoint that gives me the default country entry?
instructions:
- text: Call the Default function on countries.
- text: Fetch the default country result.
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/countries/delete'].delete
update:
x-apievangelist-phrasing:
intent: Bulk delete countries by id
effect: destructive
questions:
- Can I delete several countries in one request by passing a list of ids?
- Is there a bulk removal route for countries?
instructions:
- text: Delete the countries with ids {ids}.
slots:
ids: query.ids
- text: Bulk remove countries {ids} in one call.
slots:
ids: query.ids
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/countries({key})/customproperties({custompropertyKey})'].get
update:
x-apievangelist-phrasing:
intent: Get a custom property of a country
effect: read
questions:
- Where do I read a custom property value stored on a country?
- Can I fetch one named custom property for a given country?
instructions:
- text: Get custom property {custompropertyKey} of country {key}.
slots:
custompropertyKey: path.custompropertyKey
key: path.key
- text: Show the value of custom property {custompropertyKey} on country {key}.
slots:
custompropertyKey: path.custompropertyKey
key: path.key
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/countries({key})/states({stateKey})'].get
update:
x-apievangelist-phrasing:
intent: Get a state within a country
effect: read
questions:
- How do I look up a specific state or province that belongs to a country?
- Can I fetch one state record through its parent country?
instructions:
- text: Get state {stateKey} of country {key}.
slots:
stateKey: path.stateKey
key: path.key
- text: Show the province {stateKey} under country {key}.
slots:
stateKey: path.stateKey
key: path.key
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/countries({key})/websites({websiteKey})'].get
update:
x-apievangelist-phrasing:
intent: Get a website linked to a country
effect: read
questions:
- Which storefront websites is a country assigned to?
- Can I check whether a particular website is linked to a country?
instructions:
- text: Get website {websiteKey} linked to country {key}.
slots:
websiteKey: path.websiteKey
key: path.key
- text: Check the website {websiteKey} assignment for country {key}.
slots:
websiteKey: path.websiteKey
key: path.key
method: generated
generated: '2026-09-26'