Showpad · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Showpad Users API
30 actions
30 updates
phrasing
extends
openapi/showpad-users-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Showpad's API. It is a proposal applied on top of the contract, not a document Showpad publishes.
What the actions change
x-apievangelist-phrasing
Targets 30 · first 16 shown; the file carries all of them
$.info
$.paths['/users.json'].get
$.paths['/users.json'].post
$.paths['/users/count.json'].get
$.paths['/users/description.json'].get
$.paths['/users/invite.json'].get
$.paths['/users/me.json'].get
$.paths['/users/me/recommendations.json'].get
$.paths['/users/me/tickets.json'].get
$.paths['/users/{id1}/usergroups/{id2}.json'].get
$.paths['/users/{id1}/usergroups/{id2}/link.json'].post
$.paths['/users/{id1}/usergroups/{id2}/unlink.json'].post
$.paths['/users/{id}.json'].get
$.paths['/users/{id}.json'].put
$.paths['/users/{id}.json'].post
$.paths['/users/{id}.json'].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 Showpad Users API
version: 1.0.0
extends: openapi/showpad-users-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-10-01'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 29
- target: $.paths['/users.json'].get
update:
x-apievangelist-phrasing:
intent: List users with filters (v3)
effect: read
questions:
- Which users in our Showpad instance are still only invited and haven't activated yet?
- Can I filter the older v3 user list by last name, language or user type?
- What's the way to page through every user with sorting on the v3 endpoint?
instructions:
- text: List v3 users whose email is {email}.
slots:
email: query.email
- text: Show users of type {userType} with active status {isActive}, {limit} at a time, using the v3 users list.
slots:
userType: query.userType
limit: query.limit
isActive: query.isActive
method: generated
generated: '2026-10-01'
- target: $.paths['/users.json'].post
update:
x-apievangelist-phrasing:
intent: Create a new user
effect: write
questions:
- How do I add a new salesperson as a user in Showpad?
- Which fields are mandatory when creating a user account?
- Can I send the welcome mail automatically when a new user is created?
instructions:
- text: Create a user {firstName} {lastName} with email {email}, username {userName}, language {language}, active {isActive}.
slots:
firstName: requestBody.firstName
lastName: requestBody.lastName
email: requestBody.email
userName: requestBody.userName
language: requestBody.language
isActive: requestBody.isActive
- text: Add new user {email} reporting to manager {managerId} and email them on creation via {sendMailToUser}.
slots:
email: requestBody.email
managerId: requestBody.managerId
sendMailToUser: requestBody.sendMailToUser
method: generated
generated: '2026-10-01'
- target: $.paths['/users/count.json'].get
update:
x-apievangelist-phrasing:
intent: Count users
effect: read
questions:
- How many users do we have in total?
- What is the number of active users with a content license?
instructions:
- text: Count the users where isActive is {isActive}.
slots:
isActive: query.isActive
- text: Give me a headcount of users of type {userType}.
slots:
userType: query.userType
method: generated
generated: '2026-10-01'
- target: $.paths['/users/description.json'].get
update:
x-apievangelist-phrasing:
intent: Describe the User model and its APIs
effect: read
questions:
- What fields does the User model have and which user APIs are available?
- Is there a self-describing schema for the user resource?
instructions:
- text: Show me the User model description and available user endpoints.
- text: Fetch the metadata describing the user resource.
method: generated
generated: '2026-10-01'
- target: $.paths['/users/invite.json'].get
update:
x-apievangelist-phrasing:
intent: Resend invites to all pending users
effect: write
questions:
- How can I nudge everyone who still has a pending invitation?
- Is there a bulk way to resend all outstanding user invitations?
instructions:
- text: Send invites to every user with a pending invitation.
- text: Re-invite all users who never accepted their invite.
method: generated
generated: '2026-10-01'
- target: $.paths['/users/me.json'].get
update:
x-apievangelist-phrasing:
intent: Get the current API user
effect: read
questions:
- Who am I authenticated as when calling the API?
- What account details belong to the token I'm using right now?
instructions:
- text: Show my own user profile for the current API token.
- text: Get the current user's details with only the fields {fields}.
slots:
fields: query.fields
method: generated
generated: '2026-10-01'
- target: $.paths['/users/me/recommendations.json'].get
update:
x-apievangelist-phrasing:
intent: Get recommendations for the current user
effect: read
questions:
- What content recommendations does Showpad have for me?
- Can I narrow my personal recommendations to a particular recommendation type?
instructions:
- text: Show my recommendations of type {recommendationsType}.
slots:
recommendationsType: query.recommendationsType
- text: List the recommendations made for me.
method: generated
generated: '2026-10-01'
- target: $.paths['/users/me/tickets.json'].get
update:
x-apievangelist-phrasing:
intent: Get tickets for the current user
effect: read
questions:
- Which tickets are assigned to me?
- Where can I see my own open tickets?
instructions:
- text: List my tickets.
- text: Get the tickets for the current user filtered by type {recommendationsType}.
slots:
recommendationsType: query.recommendationsType
method: generated
generated: '2026-10-01'
- target: $.paths['/users/{id1}/usergroups/{id2}.json'].get
update:
x-apievangelist-phrasing:
intent: Link or unlink a user and group via GET method
effect: write
questions:
- Is there a single GET call that can either link or unlink a user and a user group?
- Can I toggle a user's group membership by passing a method parameter?
instructions:
- text: Use method {method} to link or unlink user {id1} with user group {id2} through the combined GET call.
slots:
method: query.method
id1: path.id1
id2: path.id2
- text: Run the method-switched membership call {method} for user {id1} and group {id2}.
slots:
method: query.method
id1: path.id1
id2: path.id2
method: generated
generated: '2026-10-01'
- target: $.paths['/users/{id1}/usergroups/{id2}/link.json'].post
update:
x-apievangelist-phrasing:
intent: Add a user to a user group
effect: write
questions:
- How do I put an existing user into an existing user group?
- Can I link a user to a group by their two IDs?
instructions:
- text: Link user {id1} to user group {id2}.
slots:
id1: path.id1
id2: path.id2
- text: Make user {id1} a member of group {id2}.
slots:
id1: path.id1
id2: path.id2
method: generated
generated: '2026-10-01'
- target: $.paths['/users/{id1}/usergroups/{id2}/unlink.json'].post
update:
x-apievangelist-phrasing:
intent: Remove a user from a user group
effect: destructive
questions:
- How do I take a user out of a user group?
- Can I unlink one user from one group without deleting either?
instructions:
- text: Unlink user {id1} from user group {id2}.
slots:
id1: path.id1
id2: path.id2
- text: Drop user {id1}'s membership in group {id2}.
slots:
id1: path.id1
id2: path.id2
method: generated
generated: '2026-10-01'
- target: $.paths['/users/{id}.json'].get
update:
x-apievangelist-phrasing:
intent: Retrieve a user (v3)
effect: read
questions:
- How do I look up a single user's full record on the older v3 endpoint?
- Can I expand related data when fetching one user by ID in v3?
instructions:
- text: Get user {id} from the v3 users endpoint.
slots:
id: path.id
- text: Fetch v3 user {id} with expanded {expand}.
slots:
id: path.id
expand: query.expand
method: generated
generated: '2026-10-01'
- target: $.paths['/users/{id}.json'].put
update:
x-apievangelist-phrasing:
intent: Update a user with PUT
effect: write
questions:
- How do I change a user's email or name with a PUT request?
- Can I deactivate a user by updating isActive via PUT?
instructions:
- text: PUT an update to user {id} setting their email to {email}.
slots:
id: path.id
email: requestBody.email
- text: Using PUT, set user {id} active status to {isActive}.
slots:
id: path.id
isActive: requestBody.isActive
method: generated
generated: '2026-10-01'
- target: $.paths['/users/{id}.json'].post
update:
x-apievangelist-phrasing:
intent: Update a user with POST
effect: write
questions:
- Is there a POST alternative for updating a user's profile when PUT isn't available?
- Can I change a user's timezone or phone using a POST update?
instructions:
- text: Via the POST update call, set user {id}'s timezone to {timezone}.
slots:
id: path.id
timezone: requestBody.timezone
- text: POST a change of manager for user {id} to {managerId}.
slots:
id: path.id
managerId: requestBody.managerId
method: generated
generated: '2026-10-01'
- target: $.paths['/users/{id}.json'].delete
update:
x-apievangelist-phrasing:
intent: Delete a user
effect: destructive
questions:
- How do I permanently remove a user account?
- What happens when I delete a user by ID?
instructions:
- text: Delete user {id}.
slots:
id: path.id
- text: Remove the user account with ID {id}.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/users/{id}/channels.json'].get
update:
x-apievangelist-phrasing:
intent: List a user's channels
effect: read
questions:
- Which channels does a given user have?
- Can I see only a user's personal channels or hide template channels?
instructions:
- text: List the channels belonging to user {id}.
slots:
id: path.id
- text: Show user {id}'s channels named {name}.
slots:
id: path.id
name: query.name
method: generated
generated: '2026-10-01'
- target: $.paths['/users/{id}/divisionpermissions.json'].get
update:
x-apievangelist-phrasing:
intent: List a user's division permissions
effect: read
questions:
- What division-level rights has a particular user been granted?
- Can I check whether a user can manage assets in their divisions?
instructions:
- text: List division permissions for user {id}.
slots:
id: path.id
- text: Show user {id}'s division permissions where manageUsers is {manageUsers}.
slots:
id: path.id
manageUsers: query.manageUsers
method: generated
generated: '2026-10-01'
- target: $.paths['/users/{id}/divisionpermissions.json'].post
update:
x-apievangelist-phrasing:
intent: Grant a user a division permission
effect: write
questions:
- How do I give a user admin rights in a specific division?
- Can a division permission granted to a user expire automatically?
instructions:
- text: Give user {id} a permission in division {divisionId} for user {userId}.
slots:
id: path.id
divisionId: requestBody.divisionId
userId: requestBody.userId
- text: Grant user {userId} asset management in division {divisionId} through user {id}, expiring {expiredAt}.
slots:
userId: requestBody.userId
divisionId: requestBody.divisionId
id: path.id
expiredAt: requestBody.expiredAt
method: generated
generated: '2026-10-01'
- target: $.paths['/users/{id}/divisions.json'].get
update:
x-apievangelist-phrasing:
intent: List the divisions a user belongs to
effect: read
questions:
- Which divisions is this user a member of?
- Can I find a user's divisions that have asset sharing turned on?
instructions:
- text: List the divisions for user {id}.
slots:
id: path.id
- text: Show user {id}'s divisions named {name}.
slots:
id: path.id
name: query.name
method: generated
generated: '2026-10-01'
- target: $.paths['/users/{id}/email-preferences.json'].get
update:
x-apievangelist-phrasing:
intent: Get a user's email preferences
effect: read
questions:
- Which email notifications is a user subscribed to?
- Where do I read someone's current email subscription settings?
instructions:
- text: Show the email preferences for user {id}.
slots:
id: path.id
- text: Get user {id}'s notification email settings.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/users/{id}/email-preferences.json'].post
update:
x-apievangelist-phrasing:
intent: Change a user's email preferences
effect: write
questions:
- How do I turn off comment or mention emails for a user?
- Can I unsubscribe someone from insights digest emails?
instructions:
- text: Set comment email subscriptions for user {id} to {commentsSubscriptionEnabled}.
slots:
id: path.id
commentsSubscriptionEnabled: requestBody.commentsSubscriptionEnabled
- text: Update user {id} so mentions emails are {mentionsSubscriptionEnabled} and insights emails are {insightsSubscriptionEnabled}.
slots:
id: path.id
mentionsSubscriptionEnabled: requestBody.mentionsSubscriptionEnabled
insightsSubscriptionEnabled: requestBody.insightsSubscriptionEnabled
method: generated
generated: '2026-10-01'
- target: $.paths['/users/{id}/externalservices.json'].get
update:
x-apievangelist-phrasing:
intent: List a user's external services
effect: read
questions:
- Which external services are connected to a user's account?
- Can I filter a user's connected integrations by type?
instructions:
- text: List external services connected for user {id}.
slots:
id: path.id
- text: Show user {id}'s external services of type {type}.
slots:
id: path.id
type: query.type
method: generated
generated: '2026-10-01'
- target: $.paths['/users/{id}/invite.json'].get
update:
x-apievangelist-phrasing:
intent: Send an invitation email to one user
effect: write
questions:
- How do I resend the invitation email to just one person?
- Can I invite a single user rather than everyone pending?
instructions:
- text: Send an invitation email to user {id}.
slots:
id: path.id
- text: Re-invite only user {id}.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/users/{id}/link.json'].post
update:
x-apievangelist-phrasing:
intent: Link a user to related resources via Link body
effect: write
questions:
- How do I attach related resources to a user using a Link reference?
- Is there a generic link call for associating things with a user record?
instructions:
- text: Link user {id} to the resource referenced by {Link}.
slots:
id: path.id
Link: requestBody.Link
- text: Attach {Link} to user record {id}.
slots:
Link: requestBody.Link
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/users/{id}/unlink.json'].post
update:
x-apievangelist-phrasing:
intent: Unlink related resources from a user
effect: destructive
questions:
- How do I detach a linked resource from a user?
- Can I remove a Link association from a user without deleting the user?
instructions:
- text: Unlink {Link} from user {id}.
slots:
Link: requestBody.Link
id: path.id
- text: Detach the linked resource {Link} from user record {id}.
slots:
Link: requestBody.Link
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/users/{id}/usergroups.json'].get
update:
x-apievangelist-phrasing:
intent: List a user's user groups
effect: read
questions:
- Which user groups does a given person belong to?
- Can I see only the synced groups a user is in?
instructions:
- text: List the user groups of user {id}.
slots:
id: path.id
- text: Show groups for user {id} where isSynced is {isSynced}.
slots:
id: path.id
isSynced: query.isSynced
method: generated
generated: '2026-10-01'
- target: $.paths['/users/{id}/usergroups.json'].post
update:
x-apievangelist-phrasing:
intent: Create a user group for a user
effect: write
questions:
- How do I create a new group and add a user to it in one step?
- Can I give the new group a description and external ID when adding it to a user?
instructions:
- text: Create a user group named {name} for user {id}.
slots:
name: requestBody.name
id: path.id
- text: Add a new group {name} described as {description} to user {id}.
slots:
name: requestBody.name
description: requestBody.description
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/users'].get
update:
x-apievangelist-phrasing:
intent: List users (v4)
effect: read
questions:
- What's the newer v4 way to list users?
- Can I look up several users at once by a list of emails?
instructions:
- text: Using the v4 API, list users with emails {emails}.
slots:
emails: query.emails
- text: Get the v4 users with IDs {ids}.
slots:
ids: query.ids
method: generated
generated: '2026-10-01'
- target: $.paths['/users/{userId}'].get
update:
x-apievangelist-phrasing:
intent: Retrieve a user (v4)
effect: read
questions:
- How do I fetch one user's details with the v4 API?
- What does the v4 user object contain?
instructions:
- text: Retrieve v4 user {userId}.
slots:
userId: path.userId
- text: Get the details of user {userId} from the v4 endpoint.
slots:
userId: path.userId
method: generated
generated: '2026-10-01'