Gainsight · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Gainsight Accounts API
12 actions
12 updates
phrasing
extends
openapi/gainsight-accounts-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Gainsight's API. It is a proposal applied on top of the contract, not a document Gainsight publishes.
What the actions change
x-apievangelist-phrasing
Targets 12
$.info
$.paths['/accounts'].get
$.paths['/accounts'].post
$.paths['/accounts/{accountId}'].get
$.paths['/accounts/{accountId}'].delete
$.paths['/accounts/{accountId}'].patch
$.paths['/v1/accounts'].get
$.paths['/v1/accounts'].post
$.paths['/v1/accounts/update'].put
$.paths['/v1/accounts/{accountId}'].get
$.paths['/v1/accounts/{accountId}'].put
$.paths['/v1/accounts/{accountId}'].delete
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 Gainsight Accounts API
version: 1.0.0
extends: openapi/gainsight-accounts-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['/accounts'].get
update:
x-apievangelist-phrasing:
intent: List product accounts
effect: read
questions:
- How can I page through every account tracked in Gainsight PX?
- Can I sort the account list by when each account was last seen?
instructions:
- text: List product accounts sorted by {sort}.
slots:
sort: query.sort
- text: Show the next page of PX accounts using scroll ID {scrollId}.
slots:
scrollId: query.scrollId
method: generated
generated: '2026-09-26'
- target: $.paths['/accounts'].post
update:
x-apievangelist-phrasing:
intent: Create or update a product account
effect: write
questions:
- How do I add a customer account to Gainsight PX, or overwrite it if it already exists?
- Can one call both create a new PX account and upsert an existing one?
instructions:
- text: Upsert PX account {id} with the name {name}.
slots:
id: requestBody.id
name: requestBody.name
- text: Create or update account {id} called {name} on the {plan} plan.
slots:
id: requestBody.id
name: requestBody.name
plan: requestBody.plan
method: generated
generated: '2026-09-26'
- target: $.paths['/accounts/{accountId}'].get
update:
x-apievangelist-phrasing:
intent: Get a product account
effect: read
questions:
- What does Gainsight PX currently store for a single account?
- Where can I look up one PX account's plan and custom attributes?
instructions:
- text: Fetch PX account {accountId}.
slots:
accountId: path.accountId
- text: Show me the details stored for account {accountId}.
slots:
accountId: path.accountId
method: generated
generated: '2026-09-26'
- target: $.paths['/accounts/{accountId}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a product account
effect: destructive
questions:
- Can I remove an account from Gainsight PX entirely?
- Is there a way to delete a PX account by its ID?
instructions:
- text: Delete PX account {accountId}.
slots:
accountId: path.accountId
- text: Remove account {accountId} from Gainsight PX.
slots:
accountId: path.accountId
method: generated
generated: '2026-09-26'
- target: $.paths['/accounts/{accountId}'].patch
update:
x-apievangelist-phrasing:
intent: Partially update a product account
effect: write
questions:
- Can I change just an account's plan without resending all its attributes?
- How would I patch a single field on an existing PX account?
instructions:
- text: Patch account {accountId} so its plan is {plan}.
slots:
accountId: path.accountId
plan: requestBody.plan
- text: Change the Salesforce ID on account {accountId} to {sfdcId}.
slots:
accountId: path.accountId
sfdcId: requestBody.sfdcId
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/accounts'].get
update:
x-apievangelist-phrasing:
intent: Filter accounts with the v1 API
effect: read
questions:
- Which accounts match a filter such as industry equals software in the v1 accounts API?
- Does the v1 account listing support semicolon-separated filter expressions?
instructions:
- text: Get v1 accounts matching the filter {filter}.
slots:
filter: query.filter
- text: Pull {pageSize} accounts per page from the v1 endpoint.
slots:
pageSize: query.pageSize
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/accounts'].post
update:
x-apievangelist-phrasing:
intent: Create an account with product tag keys
effect: write
questions:
- What do I need to create a v1 account, and why does it ask for a property key?
- Can I set health score, renewal date and industry when creating a v1 account?
instructions:
- text: Create v1 account {id} named {name} under product key {propertyKeys}.
slots:
id: requestBody.id
name: requestBody.name
propertyKeys: requestBody.propertyKeys
- text: Add account {id} called {name} for tag {propertyKeys} with renewal date {renewalDate}.
slots:
id: requestBody.id
name: requestBody.name
propertyKeys: requestBody.propertyKeys
renewalDate: requestBody.renewalDate
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/accounts/update'].put
update:
x-apievangelist-phrasing:
intent: Update an account whose ID has special characters
effect: write
questions:
- My account ID contains slashes, so how can I update it without putting it in the URL?
- Is there an update route that takes the account ID in the body instead of the path?
instructions:
- text: Update account {id} (ID passed in the body) with name {name} and product key {propertyKeys}.
slots:
id: requestBody.id
name: requestBody.name
propertyKeys: requestBody.propertyKeys
- text: Set the health score of body-identified account {id} to {healthScore}, keeping name {name} and key {propertyKeys}.
slots:
id: requestBody.id
name: requestBody.name
propertyKeys: requestBody.propertyKeys
healthScore: requestBody.healthScore
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/accounts/{accountId}'].get
update:
x-apievangelist-phrasing:
intent: Get an account with the v1 API
effect: read
questions:
- Can I fetch one account's full v1 record, including NPS and CSM?
- What fields come back when I retrieve a single account from the v1 endpoint?
instructions:
- text: Retrieve v1 account {accountId}.
slots:
accountId: path.accountId
- text: Look up the v1 record for account {accountId}, including its health score.
slots:
accountId: path.accountId
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/accounts/{accountId}'].put
update:
x-apievangelist-phrasing:
intent: Replace an account's data by ID in the path
effect: write
questions:
- How do I overwrite a v1 account's record when I have a clean account ID for the URL?
- Can I update the number of employees on an account through the v1 API?
instructions:
- text: Replace v1 account {accountId} with name {name}, ID {id} and product key {propertyKeys}.
slots:
accountId: path.accountId
id: requestBody.id
name: requestBody.name
propertyKeys: requestBody.propertyKeys
- text: 'Update v1 account {accountId}: set employees to {numberOfEmployees}, id {id}, name {name}, key {propertyKeys}.'
slots:
accountId: path.accountId
numberOfEmployees: requestBody.numberOfEmployees
id: requestBody.id
name: requestBody.name
propertyKeys: requestBody.propertyKeys
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/accounts/{accountId}'].delete
update:
x-apievangelist-phrasing:
intent: Delete an account and all its users
effect: destructive
questions:
- Does deleting a v1 account also delete the users attached to it?
- How can I wipe an account along with every user under it?
instructions:
- text: Delete v1 account {accountId} and cascade to its users.
slots:
accountId: path.accountId
- text: Permanently remove account {accountId} and all associated users.
slots:
accountId: path.accountId
method: generated
generated: '2026-09-26'