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.
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for Optimizely Extensions API
version: 1.0.0
extends: openapi/optimizely-extensions-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: 5
- target: $.paths['/extensions'].get
update:
x-apievangelist-phrasing:
intent: List a project's extensions
effect: read
questions:
- Which reusable extensions exist in my Web Experimentation project?
- Can I page through a project's extension templates?
instructions:
- text: List extensions in project {project_id}.
slots:
project_id: query.project_id
- text: Show page {page} of extensions for project {project_id}.
slots:
project_id: query.project_id
page: query.page
method: generated
generated: '2026-09-26'
- target: $.paths['/extensions'].post
update:
x-apievangelist-phrasing:
intent: Create an extension template
effect: write
questions:
- How do I create a reusable extension for experiment changes?
- What does a new extension need, like implementation and edit URL?
instructions:
- text: Create extension {name} in project {project_id} with edit URL {edit_url} and implementation {implementation}.
slots:
name: requestBody.name
project_id: requestBody.project_id
edit_url: requestBody.edit_url
implementation: requestBody.implementation
- text: Add a new extension {name} to project {project_id}, editing at {edit_url}, code {implementation}.
slots:
name: requestBody.name
project_id: requestBody.project_id
edit_url: requestBody.edit_url
implementation: requestBody.implementation
method: generated
generated: '2026-09-26'
- target: $.paths['/extensions/{extension_id}'].get
update:
x-apievangelist-phrasing:
intent: Get an extension
effect: read
questions:
- What code and fields does a specific extension define?
- How many experiments use a particular extension?
instructions:
- text: Get extension {extension_id}.
slots:
extension_id: path.extension_id
- text: Show the implementation of extension {extension_id}.
slots:
extension_id: path.extension_id
method: generated
generated: '2026-09-26'
- target: $.paths['/extensions/{extension_id}'].delete
update:
x-apievangelist-phrasing:
intent: Archive an extension
effect: destructive
questions:
- How do I archive an extension I no longer use?
- Does deleting an extension actually archive it?
instructions:
- text: Archive extension {extension_id}.
slots:
extension_id: path.extension_id
- text: Retire extension {extension_id} by archiving it.
slots:
extension_id: path.extension_id
method: generated
generated: '2026-09-26'
- target: $.paths['/extensions/{extension_id}'].patch
update:
x-apievangelist-phrasing:
intent: Update an extension
effect: write
questions:
- How do I change the code of an existing extension?
- Can I disable an extension without archiving it?
instructions:
- text: Update the implementation of extension {extension_id} to {implementation}.
slots:
extension_id: path.extension_id
implementation: requestBody.implementation
- text: Set enabled to {enabled} on extension {extension_id}.
slots:
extension_id: path.extension_id
enabled: requestBody.enabled
method: generated
generated: '2026-09-26'
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.