Optimizely · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Optimizely Users API
11 actions
11 updates
phrasing
extends
openapi/optimizely-users-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 11
$.info
$.paths['/{clientId}/users/authenticated'].get
$.paths['/{clientId}/users/rotatepassword'].post
$.paths['/userlist'].get
$.paths['/users'].get
$.paths['/users'].post
$.paths['/users/{id}'].get
$.paths['/users/{id}'].put
$.paths['/users/{id}'].delete
$.paths['/users/{id}/content'].get
$.paths['/users/{id}/content/_filter'].post
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 Optimizely Users API
version: 1.0.0
extends: openapi/optimizely-users-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: 10
- target: $.paths['/{clientId}/users/authenticated'].get
update:
x-apievangelist-phrasing:
intent: Get the currently authenticated Campaign user
effect: read
questions:
- How do I check which user my Campaign credentials are signed in as?
- What basic info can I get about the authenticated user for a client?
instructions:
- text: Show the authenticated user for client {clientId}.
slots:
clientId: path.clientId
- text: Tell me who I am logged in as on Campaign client {clientId}.
slots:
clientId: path.clientId
method: generated
generated: '2026-09-26'
- target: $.paths['/{clientId}/users/rotatepassword'].post
update:
x-apievangelist-phrasing:
intent: Rotate a Campaign user's password
effect: write
questions:
- How do I rotate the password for a Campaign API user?
- Why can't I log in right after rotating a password?
instructions:
- text: Rotate the password of user {username} on client {clientId} to {password}.
slots:
username: requestBody.username
clientId: path.clientId
password: requestBody.password
- text: Set a new password {password} for Campaign user {username} under client {clientId}.
slots:
password: requestBody.password
username: requestBody.username
clientId: path.clientId
method: generated
generated: '2026-09-26'
- target: $.paths['/userlist'].get
update:
x-apievangelist-phrasing:
intent: List users page by page
effect: read
questions:
- How can I page through the full list of users?
- Can I control the page size when listing users?
instructions:
- text: List users, {page_size} per page.
slots:
page_size: query.page_size
- text: Get the user list starting at offset {offset}.
slots:
offset: query.offset
method: generated
generated: '2026-09-26'
- target: $.paths['/users'].get
update:
x-apievangelist-phrasing:
intent: Find a user by email address
effect: read
questions:
- Is there a user registered with a particular email address?
- Can I look up a user when I only know their email?
instructions:
- text: Find the user with email {email}.
slots:
email: query.email
- text: Look up whoever is registered as {email}.
slots:
email: query.email
method: generated
generated: '2026-09-26'
- target: $.paths['/users'].post
update:
x-apievangelist-phrasing:
intent: Create a new user
effect: write
questions:
- What fields are supported when creating a user?
- Can I attach identifiers and additional info to a new user?
instructions:
- text: Create a user with email {email}.
slots:
email: requestBody.email
- text: Add a new user {email} with identifiers {identifiers}.
slots:
email: requestBody.email
identifiers: requestBody.identifiers
method: generated
generated: '2026-09-26'
- target: $.paths['/users/{id}'].get
update:
x-apievangelist-phrasing:
intent: Get a user by id
effect: read
questions:
- How do I fetch one user's profile by their id?
- What does a single user record contain?
instructions:
- text: Get user {id}.
slots:
id: path.id
- text: Show the profile for user {id}.
slots:
id: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/users/{id}'].put
update:
x-apievangelist-phrasing:
intent: Update an existing user
effect: write
questions:
- Which user fields can actually be changed after creation?
- Can I update a user's additional info?
instructions:
- text: Update user {id} additional info to {additional_info}.
slots:
id: path.id
additional_info: requestBody.additional_info
- text: Set the identifiers on user {id} to {identifiers}.
slots:
id: path.id
identifiers: requestBody.identifiers
method: generated
generated: '2026-09-26'
- target: $.paths['/users/{id}'].delete
update:
x-apievangelist-phrasing:
intent: Permanently delete a user
effect: destructive
questions:
- How do I permanently remove a user?
- Is deleting a user reversible?
instructions:
- text: Delete user {id} permanently.
slots:
id: path.id
- text: Remove user {id} from the system.
slots:
id: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/users/{id}/content'].get
update:
x-apievangelist-phrasing:
intent: Get personalised content recommendations for a user
effect: read
questions:
- What content is most relevant to a particular user?
- Can I get personalised recommendations without a generic fallback?
- Does the recommendation list include topic information?
instructions:
- text: Get personalised content for user {id}.
slots:
id: path.id
- text: Recommend {rpp} content items for user {id} with topics included.
slots:
rpp: query.rpp
id: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/users/{id}/content/_filter'].post
update:
x-apievangelist-phrasing:
intent: Search a user's content with a Lucene query
effect: read
questions:
- Can I filter a user's personalised content with a Lucene query?
- How do I search content ranked by relevance to one user?
instructions:
- text: Search content for user {id} matching {query}.
slots:
id: path.id
query: requestBody.query
- text: Find items matching Lucene query {query} ranked for user {id}.
slots:
query: requestBody.query
id: path.id
method: generated
generated: '2026-09-26'