Showpad · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Showpad Channels API
30 actions
30 updates
phrasing
extends
openapi/showpad-channels-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['/channels.json'].get
$.paths['/channels.json'].post
$.paths['/channels/count.json'].get
$.paths['/channels/description.json'].get
$.paths['/channels/experience-types.json'].get
$.paths['/channels/experience-types/{experienceTypeId}/modules/{moduleName}'].get
$.paths['/channels/overview.json'].get
$.paths['/channels/{id1}/usergroups/{id2}.json'].get
$.paths['/channels/{id1}/usergroups/{id2}/link.json'].post
$.paths['/channels/{id1}/usergroups/{id2}/unlink.json'].post
$.paths['/channels/{id1}/users/{id2}.json'].get
$.paths['/channels/{id1}/users/{id2}/link.json'].post
$.paths['/channels/{id1}/users/{id2}/unlink.json'].post
$.paths['/channels/{id}.json'].get
$.paths['/channels/{id}.json'].put
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 Channels API
version: 1.0.0
extends: openapi/showpad-channels-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-10-02'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 29
- target: $.paths['/channels.json'].get
update:
x-apievangelist-phrasing:
intent: List channels (experiences)
effect: read
questions:
- Which channels exist in our Showpad content library?
- Can I list only hidden channels, or include template channels in the results?
- What filters are available when browsing all channels, like personal or by type?
instructions:
- text: List all channels.
- text: List channels named {name}.
slots:
name: query.name
- text: Show channels of type {type}, including template channels.
slots:
type: query.type
method: generated
generated: '2026-10-01'
- target: $.paths['/channels.json'].post
update:
x-apievangelist-phrasing:
intent: Create a channel
effect: write
questions:
- How do I create a new channel for my sales team's content?
- Can a newly created channel start out hidden from users?
instructions:
- text: Create a channel called {name}.
slots:
name: requestBody.name
- text: Create a channel named {name} with hidden set to {isHidden} and description {description}.
slots:
name: requestBody.name
isHidden: requestBody.isHidden
description: requestBody.description
method: generated
generated: '2026-10-01'
- target: $.paths['/channels/count.json'].get
update:
x-apievangelist-phrasing:
intent: Count channels
effect: read
questions:
- How many channels do we have in total?
- What's the number of personal channels versus shared ones?
instructions:
- text: Count all channels.
- text: Count the channels with personal set to {isPersonal}.
slots:
isPersonal: query.isPersonal
method: generated
generated: '2026-10-01'
- target: $.paths['/channels/description.json'].get
update:
x-apievangelist-phrasing:
intent: Describe the channel data model
effect: read
questions:
- What fields does a channel object have and which calls apply to it?
- Where can I see the schema and available API calls for channels?
instructions:
- text: Describe the channel model and its available API calls.
- text: Show me the property definitions for the channel resource.
method: generated
generated: '2026-10-01'
- target: $.paths['/channels/experience-types.json'].get
update:
x-apievangelist-phrasing:
intent: List installed experience types
effect: read
questions:
- Which experience types are installed in our Showpad instance?
- What kinds of experiences can I build channels from?
instructions:
- text: List the installed experience types.
- text: Show every experience type available for channels.
method: generated
generated: '2026-10-01'
- target: $.paths['/channels/experience-types/{experienceTypeId}/modules/{moduleName}'].get
update:
x-apievangelist-phrasing:
intent: Get an experience type module's info
effect: read
questions:
- How do I look up the details of a specific module inside an experience type?
- What information is exposed about an experience type's module?
instructions:
- text: Get the info for module {moduleName} of experience type {experienceTypeId}.
slots:
moduleName: path.moduleName
experienceTypeId: path.experienceTypeId
- text: Show how the {moduleName} module is configured in experience type {experienceTypeId}.
slots:
moduleName: path.moduleName
experienceTypeId: path.experienceTypeId
method: generated
generated: '2026-10-02'
- target: $.paths['/channels/overview.json'].get
update:
x-apievangelist-phrasing:
intent: Get a channel overview for a division
effect: read
questions:
- Can I get a summary of all experiences in one division?
- What does the channel overview show for a given division?
instructions:
- text: Get the channel overview for division {divisionId}.
slots:
divisionId: query.divisionId
- text: Show me an overview of the experiences in division {divisionId}.
slots:
divisionId: query.divisionId
method: generated
generated: '2026-10-01'
- target: $.paths['/channels/{id1}/usergroups/{id2}.json'].get
update:
x-apievangelist-phrasing:
intent: Link or unlink a channel and group via GET
effect: write
questions:
- Is there a GET-based way to link or unlink a channel and a user group for clients that can't send POST?
- Can I toggle a channel's user group assignment using the method override parameter?
instructions:
- text: Use method {method} to change the link between channel {id1} and user group {id2}.
slots:
method: query.method
id1: path.id1
id2: path.id2
- text: Via the GET override, apply {method} to channel {id1} and group {id2}.
slots:
method: query.method
id1: path.id1
id2: path.id2
method: generated
generated: '2026-10-01'
- target: $.paths['/channels/{id1}/usergroups/{id2}/link.json'].post
update:
x-apievangelist-phrasing:
intent: Grant a user group access to a channel
effect: write
questions:
- How do I give a user group access to a specific channel?
- Can I assign an existing group to a channel by their IDs?
instructions:
- text: Link channel {id1} to user group {id2}.
slots:
id1: path.id1
id2: path.id2
- text: Give user group {id2} access to channel {id1}.
slots:
id1: path.id1
id2: path.id2
method: generated
generated: '2026-10-01'
- target: $.paths['/channels/{id1}/usergroups/{id2}/unlink.json'].post
update:
x-apievangelist-phrasing:
intent: Remove a user group from a channel
effect: write
questions:
- How do I take a user group's access away from a channel?
- Can I detach a group from a channel without deleting the group?
instructions:
- text: Unlink user group {id2} from channel {id1}.
slots:
id1: path.id1
id2: path.id2
- text: Remove group {id2}'s access to channel {id1}.
slots:
id1: path.id1
id2: path.id2
method: generated
generated: '2026-10-01'
- target: $.paths['/channels/{id1}/users/{id2}.json'].get
update:
x-apievangelist-phrasing:
intent: Link or unlink a channel and user via GET
effect: write
questions:
- Is there a GET-based override for linking or unlinking a single user and a channel?
- Can I change one user's channel assignment with the method query parameter?
instructions:
- text: For individual user {id2}, send method {method} on the channel {id1} membership endpoint.
slots:
method: query.method
id1: path.id1
id2: path.id2
- text: Through GET with method {method}, add or remove person {id2} on channel {id1}.
slots:
method: query.method
id1: path.id1
id2: path.id2
method: generated
generated: '2026-10-01'
- target: $.paths['/channels/{id1}/users/{id2}/link.json'].post
update:
x-apievangelist-phrasing:
intent: Grant a user access to a channel
effect: write
questions:
- How do I add an existing user directly to a channel?
- Can I assign one person to a channel without putting them in a group?
instructions:
- text: Link channel {id1} to user {id2}.
slots:
id1: path.id1
id2: path.id2
- text: Give user {id2} direct access to channel {id1}.
slots:
id1: path.id1
id2: path.id2
method: generated
generated: '2026-10-01'
- target: $.paths['/channels/{id1}/users/{id2}/unlink.json'].post
update:
x-apievangelist-phrasing:
intent: Remove a user from a channel
effect: write
questions:
- How do I remove a single user's direct access to a channel?
- Can I unassign someone from a channel while keeping their account?
instructions:
- text: Unlink user {id2} from channel {id1}.
slots:
id1: path.id1
id2: path.id2
- text: Take user {id2} off channel {id1}.
slots:
id1: path.id1
id2: path.id2
method: generated
generated: '2026-10-01'
- target: $.paths['/channels/{id}.json'].get
update:
x-apievangelist-phrasing:
intent: Get a channel
effect: read
questions:
- How do I fetch the details of one channel by its ID?
- What settings does a single channel have, like its view mode or hidden flag?
instructions:
- text: Get channel {id}.
slots:
id: path.id
- text: Show me the details of channel {id}.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/channels/{id}.json'].put
update:
x-apievangelist-phrasing:
intent: Update a channel (PUT)
effect: write
questions:
- How do I rename a channel or change its description with a PUT request?
- Can I update a channel's cover focal point with PUT?
instructions:
- text: PUT an update renaming channel {id} to {name}.
slots:
id: path.id
name: requestBody.name
- text: Using PUT, set the default view mode of channel {id} to {defaultViewMode}.
slots:
id: path.id
defaultViewMode: requestBody.defaultViewMode
method: generated
generated: '2026-10-01'
- target: $.paths['/channels/{id}.json'].post
update:
x-apievangelist-phrasing:
intent: Update a channel (POST)
effect: write
questions:
- Can I update a channel with POST instead of PUT?
- Is there a POST variant for hiding a channel or editing its details?
instructions:
- text: Via POST, set hidden to {isHidden} on channel {id}.
slots:
id: path.id
isHidden: requestBody.isHidden
- text: Using the POST update, change channel {id}'s description to {description}.
slots:
id: path.id
description: requestBody.description
method: generated
generated: '2026-10-01'
- target: $.paths['/channels/{id}.json'].delete
update:
x-apievangelist-phrasing:
intent: Delete a channel
effect: destructive
questions:
- How do I permanently delete a channel?
- What happens when I remove a channel I no longer need?
instructions:
- text: Delete channel {id}.
slots:
id: path.id
- text: Remove channel {id} from Showpad.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/channels/{id}/assets.json'].get
update:
x-apievangelist-phrasing:
intent: List assets in a channel
effect: read
questions:
- Which assets are published in a particular channel?
- Can I see only the downloadable files inside one channel?
instructions:
- text: List the assets in channel {id}.
slots:
id: path.id
- text: Show the {filetype} files in channel {id}.
slots:
id: path.id
filetype: query.filetype
method: generated
generated: '2026-10-01'
- target: $.paths['/channels/{id}/channelnodes.json'].get
update:
x-apievangelist-phrasing:
intent: List a channel's nodes
effect: read
questions:
- How do I see the structure of sections and pages inside a channel?
- Can I get the child nodes under a specific parent node in a channel?
instructions:
- text: List the channel nodes of channel {id}.
slots:
id: path.id
- text: Show the nodes under parent node {parentNodeId} in channel {id}.
slots:
id: path.id
parentNodeId: query.parentNodeId
- text: Find nodes in channel {id} matching {query}.
slots:
id: path.id
query: query.query
method: generated
generated: '2026-10-01'
- target: $.paths['/channels/{id}/duplicate.json'].post
update:
x-apievangelist-phrasing:
intent: Duplicate a channel
effect: write
questions:
- How do I copy an existing channel to reuse its setup?
- Can I add myself to the duplicated channel automatically?
instructions:
- text: Duplicate channel {id} into {targetResource}.
slots:
id: path.id
targetResource: requestBody.targetResource
- text: Copy channel {id} to {targetResource} and add me with {addCurrentUser}.
slots:
id: path.id
targetResource: requestBody.targetResource
addCurrentUser: requestBody.addCurrentUser
method: generated
generated: '2026-10-01'
- target: $.paths['/channels/{id}/link.json'].post
update:
x-apievangelist-phrasing:
intent: Link related resources to a channel
effect: write
questions:
- How do I attach related resources to a channel using a Link list?
- Can I connect several resources to one channel in a single call?
instructions:
- text: Link the resources {Link} to channel {id}.
slots:
id: path.id
Link: requestBody.Link
- text: Attach {Link} to channel {id} as related resources.
slots:
id: path.id
Link: requestBody.Link
method: generated
generated: '2026-10-01'
- target: $.paths['/channels/{id}/tag-categories.json'].get
update:
x-apievangelist-phrasing:
intent: Get an experience's tag categories
effect: read
questions:
- Which tag categories are assigned to a given experience?
- How do I check the tag category setup of a channel?
instructions:
- text: Get the tag categories for experience {id}.
slots:
id: path.id
- text: Show which tag categories channel {id} uses.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/channels/{id}/tag-categories.json'].post
update:
x-apievangelist-phrasing:
intent: Set an experience's tag categories
effect: write
questions:
- How do I change which tag categories an experience uses?
- Can I replace the tag categories on a channel in one request?
instructions:
- text: Set the tag categories of experience {id} to {tagCategoryIds}.
slots:
id: path.id
tagCategoryIds: requestBody.tagCategoryIds
- text: Update channel {id} to use tag categories {tagCategoryIds}.
slots:
id: path.id
tagCategoryIds: requestBody.tagCategoryIds
method: generated
generated: '2026-10-01'
- target: $.paths['/channels/{id}/tags.json'].get
update:
x-apievangelist-phrasing:
intent: List a channel's tags
effect: read
questions:
- Which tags are attached to a specific channel?
- What tags does this channel carry?
instructions:
- text: Get the tags for channel {id}.
slots:
id: path.id
- text: List every tag on channel {id}.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/channels/{id}/unlink.json'].post
update:
x-apievangelist-phrasing:
intent: Unlink related resources from a channel
effect: write
questions:
- How do I detach several related resources from a channel at once?
- Can I remove resource links from a channel using a Link list?
instructions:
- text: Unlink the resources {Link} from channel {id}.
slots:
id: path.id
Link: requestBody.Link
- text: Detach {Link} from channel {id}.
slots:
id: path.id
Link: requestBody.Link
method: generated
generated: '2026-10-01'
- target: $.paths['/channels/{id}/usergroups.json'].get
update:
x-apievangelist-phrasing:
intent: List user groups with access to a channel
effect: read
questions:
- Which user groups can see a particular channel?
- Can I check if a synced group is assigned to a channel?
instructions:
- text: List the user groups on channel {id}.
slots:
id: path.id
- text: Find the group named {name} among channel {id}'s user groups.
slots:
id: path.id
name: query.name
method: generated
generated: '2026-10-01'
- target: $.paths['/channels/{id}/usergroups.json'].post
update:
x-apievangelist-phrasing:
intent: Create a user group inside a channel
effect: write
questions:
- How do I create a new group and add it to a channel in one step?
- Can I give the new channel group a description and external ID?
instructions:
- text: Create a group called {name} on channel {id}.
slots:
id: path.id
name: requestBody.name
- text: Add a new group {name} with external ID {externalId} to channel {id}.
slots:
id: path.id
name: requestBody.name
externalId: requestBody.externalId
method: generated
generated: '2026-10-01'
- target: $.paths['/channels/{id}/users.json'].get
update:
x-apievangelist-phrasing:
intent: List users with access to a channel
effect: read
questions:
- Who has access to a specific channel?
- Can I list only the active users of one channel or find someone by email?
instructions:
- text: List the users of channel {id}.
slots:
id: path.id
- text: Check whether {email} is a user on channel {id}.
slots:
id: path.id
email: query.email
method: generated
generated: '2026-10-01'
- target: $.paths['/channels/{id}/users.json'].post
update:
x-apievangelist-phrasing:
intent: Create a user inside a channel
effect: write
questions:
- How do I create a new user and add them to a channel at the same time?
- What details are required to add a new person to a channel?
instructions:
- text: Create user {userName} ({firstName} {lastName}, {email}) in channel {id} with language {language} and active {isActive}.
slots:
id: path.id
userName: requestBody.userName
firstName: requestBody.firstName
lastName: requestBody.lastName
email: requestBody.email
language: requestBody.language
isActive: requestBody.isActive
- text: Add a new user with email {email} to channel {id}.
slots:
id: path.id
email: requestBody.email
method: generated
generated: '2026-10-01'