Tray.ai · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Tray Ai Workspaces API
12 actions
12 updates
phrasing
extends
openapi/tray-ai-workspaces-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Tray.ai's API. It is a proposal applied on top of the contract, not a document Tray.ai publishes.
What the actions change
x-apievangelist-phrasing
Targets 12
$.info
$.paths['/workspaces'].get
$.paths['/workspaces/{workspaceId}'].get
$.paths['/workspaces/{workspaceId}/users'].get
$.paths['/core/v1/workspaces'].get
$.paths['/core/v1/workspaces/{workspaceId}'].get
$.paths['/core/v1/workspaces/{workspaceId}/users'].get
$.paths['/core/v1/workspaces/{workspaceId}/users'].post
$.paths['/core/v1/workspaces/{workspaceId}/users/{userId}'].get
$.paths['/core/v1/workspaces/{workspaceId}/users/{userId}'].put
$.paths['/core/v1/workspaces/{workspaceId}/users/{userId}'].delete
$.paths['/core/v1/workspaces/{workspaceId}/roles'].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 Tray Ai Workspaces API
version: 1.0.0
extends: openapi/tray-ai-workspaces-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['/workspaces'].get
update:
x-apievangelist-phrasing:
intent: List workspaces (unversioned)
effect: read
questions:
- Which workspaces, like departments or dev and prod environments, does my organization have?
- Can I list workspaces on the unversioned /workspaces endpoint?
instructions:
- text: List the workspaces in my organization from the unversioned endpoint.
- text: Show my dev and prod workspaces.
method: generated
generated: '2026-09-26'
- target: $.paths['/workspaces/{workspaceId}'].get
update:
x-apievangelist-phrasing:
intent: Get a workspace by id (unversioned)
effect: read
questions:
- What details does the unversioned workspace endpoint return for one id?
- Can I look up a single workspace on /workspaces by its id?
instructions:
- text: Get workspace {workspace} from the unversioned endpoint.
slots:
workspace: path.workspaceId
- text: Show unversioned details for workspace id {workspace}.
slots:
workspace: path.workspaceId
method: generated
generated: '2026-09-26'
- target: $.paths['/workspaces/{workspaceId}/users'].get
update:
x-apievangelist-phrasing:
intent: List a workspace's users (unversioned)
effect: read
questions:
- Who belongs to a given workspace, per the unversioned endpoint?
- Can I list workspace members without paging, on the unversioned endpoint?
instructions:
- text: List users of workspace {workspace} from the unversioned endpoint.
slots:
workspace: path.workspaceId
- text: Show everyone who belongs to workspace {workspace}, unversioned.
slots:
workspace: path.workspaceId
method: generated
generated: '2026-09-26'
- target: $.paths['/core/v1/workspaces'].get
update:
x-apievangelist-phrasing:
intent: List workspaces my token can access
effect: read
questions:
- Does an org-scoped token list every workspace while a workspace token lists only one?
- Can I filter workspaces by type in core v1?
instructions:
- text: List core v1 workspaces of type {type}.
slots:
type: query.type
- text: Show every workspace this token can reach, {count} at a time.
slots:
count: query.first
method: generated
generated: '2026-09-26'
- target: $.paths['/core/v1/workspaces/{workspaceId}'].get
update:
x-apievangelist-phrasing:
intent: Get a workspace with core v1
effect: read
questions:
- What does core v1 return for a workspace id?
- How do I read a single workspace through the core v1 API?
instructions:
- text: Get core v1 workspace {workspace}.
slots:
workspace: path.workspaceId
- text: Fetch workspace {workspace} through core v1.
slots:
workspace: path.workspaceId
method: generated
generated: '2026-09-26'
- target: $.paths['/core/v1/workspaces/{workspaceId}/users'].get
update:
x-apievangelist-phrasing:
intent: List a workspace's users with core v1
effect: read
questions:
- Can I page through a workspace's members with a cursor in core v1?
- Which users have access to a workspace, according to core v1?
instructions:
- text: List core v1 users in workspace {workspace}.
slots:
workspace: path.workspaceId
- text: Show workspace {workspace} members after cursor {cursor}.
slots:
workspace: path.workspaceId
cursor: query.cursor
method: generated
generated: '2026-09-26'
- target: $.paths['/core/v1/workspaces/{workspaceId}/users'].post
update:
x-apievangelist-phrasing:
intent: Add a user to a workspace
effect: write
questions:
- How do I give an existing organization user access to a workspace?
- Which role must I choose when adding someone to a workspace?
instructions:
- text: Add user {user} to workspace {workspace} with role {role}.
slots:
user: requestBody.userId
workspace: path.workspaceId
role: requestBody.roleId
- text: Grant {user} role {role} in workspace {workspace}.
slots:
user: requestBody.userId
role: requestBody.roleId
workspace: path.workspaceId
method: generated
generated: '2026-09-26'
- target: $.paths['/core/v1/workspaces/{workspaceId}/users/{userId}'].get
update:
x-apievangelist-phrasing:
intent: Get one user's workspace membership
effect: read
questions:
- What role does a specific user have in a workspace?
- Is a given user a member of this workspace?
instructions:
- text: Get user {user} in workspace {workspace}.
slots:
user: path.userId
workspace: path.workspaceId
- text: Show {user}'s membership and role in workspace {workspace}.
slots:
user: path.userId
workspace: path.workspaceId
method: generated
generated: '2026-09-26'
- target: $.paths['/core/v1/workspaces/{workspaceId}/users/{userId}'].put
update:
x-apievangelist-phrasing:
intent: Change a user's role in a workspace
effect: write
questions:
- Can I change someone's role in one workspace only?
- How do I give an existing workspace member a different workspace role?
instructions:
- text: Change user {user}'s role in workspace {workspace} to {role}.
slots:
user: path.userId
workspace: path.workspaceId
role: requestBody.roleId
- text: Set workspace {workspace} role {role} for member {user}.
slots:
workspace: path.workspaceId
role: requestBody.roleId
user: path.userId
method: generated
generated: '2026-09-26'
- target: $.paths['/core/v1/workspaces/{workspaceId}/users/{userId}'].delete
update:
x-apievangelist-phrasing:
intent: Remove a user from a workspace
effect: destructive
questions:
- Can I take someone out of a workspace without deleting them from the organization?
- Which call revokes a user's workspace access?
instructions:
- text: Remove user {user} from workspace {workspace}.
slots:
user: path.userId
workspace: path.workspaceId
- text: Revoke {user}'s access to workspace {workspace}.
slots:
user: path.userId
workspace: path.workspaceId
method: generated
generated: '2026-09-26'
- target: $.paths['/core/v1/workspaces/{workspaceId}/roles'].get
update:
x-apievangelist-phrasing:
intent: List roles available in a workspace
effect: read
questions:
- Which roles can I assign inside a particular workspace?
- Where do I find the role id for a workspace member?
instructions:
- text: List the roles for workspace {workspace}.
slots:
workspace: path.workspaceId
- text: Show the first {count} workspace roles in {workspace}.
slots:
count: query.first
workspace: path.workspaceId
method: generated
generated: '2026-09-26'