Optimizely · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Admin API V1 Customer Cost Codes API
12 actions
12 updates
phrasing
extends
openapi/optimizely-customer-cost-codes-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/CustomerCostCodes'].get
$.paths['/api/v1/admin/CustomerCostCodes'].post
$.paths['/api/v1/admin/CustomerCostCodes({id})'].get
$.paths['/api/v1/admin/CustomerCostCodes({id})'].put
$.paths['/api/v1/admin/CustomerCostCodes({id})'].delete
$.paths['/api/v1/admin/CustomerCostCodes({id})'].patch
$.paths['/api/v1/admin/CustomerCostCodes/Default.Default()'].get
$.paths['/api/v1/admin/CustomerCostCodes/Default.archive'].post
$.paths['/api/v1/admin/customercostcodes/archive'].delete
$.paths['/api/v1/admin/customercostcodes/delete'].delete
$.paths['/api/v1/admin/customercostcodes({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 Customer Cost Codes API
version: 1.0.0
extends: openapi/optimizely-customer-cost-codes-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/CustomerCostCodes'].get
update:
x-apievangelist-phrasing:
intent: List customer cost codes
effect: read
questions:
- Which cost codes are set up for my B2B customers?
- Can I list only active cost codes with a filter?
instructions:
- text: List all customer cost codes.
- text: List cost codes matching {filter}.
slots:
filter: query.$filter
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/CustomerCostCodes'].post
update:
x-apievangelist-phrasing:
intent: Create a customer cost code
effect: write
questions:
- How do I add a cost code that a customer can charge orders to?
- Can a new cost code be created inactive?
instructions:
- text: Create cost code {costCode} for customer {customerId} described as {description}.
slots:
costCode: requestBody.costCode
customerId: requestBody.customerId
description: requestBody.description
- text: Add cost code {costCode} with active flag {isActive}.
slots:
costCode: requestBody.costCode
isActive: requestBody.isActive
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/CustomerCostCodes({id})'].get
update:
x-apievangelist-phrasing:
intent: Get a customer cost code
effect: read
questions:
- What customer and description belong to a given cost code record?
- Can I select only certain fields of one cost code?
instructions:
- text: Get customer cost code {id}.
slots:
id: path.id
- text: Fetch cost code {id} returning only {select}.
slots:
id: path.id
select: query.$select
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/CustomerCostCodes({id})'].put
update:
x-apievangelist-phrasing:
intent: Replace a customer cost code
effect: write
questions:
- How do I overwrite a cost code record completely?
- Can I resend every field to replace an existing customer cost code?
instructions:
- text: Replace cost code record {id} with code {costCode} and description {description}.
slots:
id: path.id
costCode: requestBody.costCode
description: requestBody.description
- text: Overwrite the full cost code entry {id} for customer {customerId}.
slots:
id: path.id
customerId: requestBody.customerId
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/CustomerCostCodes({id})'].delete
update:
x-apievangelist-phrasing:
intent: Delete one customer cost code
effect: destructive
questions:
- How do I remove a single cost code by id?
- Can a cost code delete be protected with an If-Match ETag?
instructions:
- text: Delete customer cost code {id}.
slots:
id: path.id
- text: Delete cost code {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/CustomerCostCodes({id})'].patch
update:
x-apievangelist-phrasing:
intent: Update fields on a customer cost code
effect: write
questions:
- Can I deactivate a cost code without resending the whole record?
- How do I change just the description of a cost code?
instructions:
- text: Set active flag on cost code {id} to {isActive}.
slots:
id: path.id
isActive: requestBody.isActive
- text: Change the description of cost code {id} to {description}.
slots:
id: path.id
description: requestBody.description
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/CustomerCostCodes/Default.Default()'].get
update:
x-apievangelist-phrasing:
intent: Get default values for a new cost code
effect: read
questions:
- What defaults does a new customer cost code start with?
- Is there a blank cost code template to pre-fill a form?
instructions:
- text: Get the default template for a customer cost code.
- text: Fetch an empty cost code with default values.
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/CustomerCostCodes/Default.archive'].post
update:
x-apievangelist-phrasing:
intent: Archive cost codes via the archive action
effect: write
questions:
- Can I archive a batch of cost codes instead of deleting them?
- Which POST action archives customer cost codes by id?
instructions:
- text: Archive customer cost codes {ids} with the POST archive action.
slots:
ids: query.ids
- text: Run Default.archive on cost codes {ids}.
slots:
ids: query.ids
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customercostcodes/archive'].delete
update:
x-apievangelist-phrasing:
intent: Archive cost codes via the DELETE archive route
effect: destructive
questions:
- Is there a DELETE-verb route that archives cost codes?
- How do I archive cost codes through the customercostcodes/archive endpoint?
instructions:
- text: Call the DELETE archive route for cost codes {ids}.
slots:
ids: query.ids
- text: Archive cost codes {ids} via the customercostcodes/archive route.
slots:
ids: query.ids
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customercostcodes/delete'].delete
update:
x-apievangelist-phrasing:
intent: Bulk delete customer cost codes
effect: destructive
questions:
- Can I permanently delete many cost codes at once?
- How do I bulk-remove customer cost codes by a list of ids?
instructions:
- text: Bulk delete customer cost codes {ids}.
slots:
ids: query.ids
- text: Permanently remove every cost code in {ids}.
slots:
ids: query.ids
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/admin/customercostcodes({key})/customproperties({custompropertyKey})'].get
update:
x-apievangelist-phrasing:
intent: Get a custom property on a cost code
effect: read
questions:
- What custom property values are attached to a cost code?
- Can I read one custom attribute stored on a customer cost code?
instructions:
- text: Get custom property {custompropertyKey} on cost code {key}.
slots:
key: path.key
custompropertyKey: path.custompropertyKey
- text: Read extra attribute {custompropertyKey} of customer cost code {key}.
slots:
key: path.key
custompropertyKey: path.custompropertyKey
method: generated
generated: '2026-09-26'
Work with this as data
Every overlay here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for openapi overlays
4 MCP tools reach this
find_overlaysBrowse and filter every overlay in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This overlay
curl "https://apis.io/api/v1/overlays/optimizely-customer-cost-codes-api-phrasing-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.