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.
View Overlay File View on GitHub Overlay Specification

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

Raw ↑
# 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'