Showpad · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Showpad Assets API
27 actions
27 updates
phrasing
extends
openapi/showpad-assets-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 27 · first 16 shown; the file carries all of them
$.info
$.paths['/assets.json'].get
$.paths['/assets.json'].post
$.paths['/assets/count.json'].get
$.paths['/assets/description.json'].get
$.paths['/assets/{id1}/tags/{id2}.json'].get
$.paths['/assets/{id1}/tags/{id2}/link.json'].post
$.paths['/assets/{id1}/tags/{id2}/unlink.json'].post
$.paths['/assets/{id}.json'].get
$.paths['/assets/{id}.json'].put
$.paths['/assets/{id}.json'].post
$.paths['/assets/{id}.json'].delete
$.paths['/assets/{id}/comments.json'].get
$.paths['/assets/{id}/comments.json'].post
$.paths['/assets/{id}/link.json'].post
$.paths['/assets/{id}/tags.json'].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 Showpad Assets API
version: 1.0.0
extends: openapi/showpad-assets-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: 26
- target: $.paths['/assets.json'].get
update:
x-apievangelist-phrasing:
intent: List assets (legacy endpoint)
effect: read
questions:
- Can I still list assets with the older .json assets endpoint?
- How do I filter the legacy asset list to only shareable or sensitive files?
instructions:
- text: Using the legacy assets.json endpoint, list assets of file type {filetype}.
slots:
filetype: query.filetype
- text: With the older list endpoint, find assets whose original file name is {originalName}.
slots:
originalName: query.originalName
method: generated
generated: '2026-10-01'
- target: $.paths['/assets.json'].post
update:
x-apievangelist-phrasing:
intent: Upload an asset (legacy endpoint)
effect: write
questions:
- Is the old .json create-asset endpoint still usable for uploading a file?
- Can I set an expiry date when creating an asset the legacy way?
instructions:
- text: Using the legacy create endpoint, upload {file} as an asset named {name}.
slots:
file: requestBody.file
name: requestBody.name
- text: Via assets.json, create asset {name} that expires at {expiresAt}.
slots:
name: requestBody.name
expiresAt: requestBody.expiresAt
method: generated
generated: '2026-10-01'
- target: $.paths['/assets/count.json'].get
update:
x-apievangelist-phrasing:
intent: Count assets
effect: read
questions:
- How many assets are in our library?
- What's the count of downloadable assets right now?
instructions:
- text: Count all assets.
- text: Count the assets with file type {filetype}.
slots:
filetype: query.filetype
method: generated
generated: '2026-10-01'
- target: $.paths['/assets/description.json'].get
update:
x-apievangelist-phrasing:
intent: Describe the asset data model
effect: read
questions:
- What properties does the asset model have in the legacy API?
- Where can I see which asset calls and parameters are allowed?
instructions:
- text: Describe the asset model and its available API calls.
- text: Show me the field definitions for the asset resource.
method: generated
generated: '2026-10-01'
- target: $.paths['/assets/{id1}/tags/{id2}.json'].get
update:
x-apievangelist-phrasing:
intent: Link or unlink an asset and tag via GET
effect: write
questions:
- Is there a GET-based override to tag or untag an asset for clients that can't send POST?
- Can I change an asset's tag assignment from the asset side with the method parameter?
instructions:
- text: From asset {id1}, use method {method} to change its link to tag {id2}.
slots:
method: query.method
id1: path.id1
id2: path.id2
- text: Through GET on the asset path, apply {method} to asset {id1} and tag {id2}.
slots:
method: query.method
id1: path.id1
id2: path.id2
method: generated
generated: '2026-10-01'
- target: $.paths['/assets/{id1}/tags/{id2}/link.json'].post
update:
x-apievangelist-phrasing:
intent: Tag an asset (from the asset side)
effect: write
questions:
- How do I attach an existing tag to an asset using the asset's tag link endpoint?
- Can I tag one asset by giving the asset ID first and then the tag ID?
instructions:
- text: On asset {id1}, link tag {id2}.
slots:
id1: path.id1
id2: path.id2
- text: Apply existing tag {id2} to asset {id1} via the asset tag link.
slots:
id1: path.id1
id2: path.id2
method: generated
generated: '2026-10-01'
- target: $.paths['/assets/{id1}/tags/{id2}/unlink.json'].post
update:
x-apievangelist-phrasing:
intent: Untag an asset (from the asset side)
effect: write
questions:
- How do I remove a tag from an asset through the asset's unlink endpoint?
- Can I untag an asset without deleting the tag itself?
instructions:
- text: On asset {id1}, unlink tag {id2}.
slots:
id1: path.id1
id2: path.id2
- text: Strip tag {id2} off asset {id1} via the asset tag unlink.
slots:
id1: path.id1
id2: path.id2
method: generated
generated: '2026-10-01'
- target: $.paths['/assets/{id}.json'].get
update:
x-apievangelist-phrasing:
intent: Get an asset (legacy endpoint)
effect: read
questions:
- Can I fetch one asset through the older .json endpoint?
- What does the legacy single-asset response include?
instructions:
- text: Using the legacy endpoint, get asset {id}.
slots:
id: path.id
- text: Fetch asset {id} from assets/{id}.json.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/assets/{id}.json'].put
update:
x-apievangelist-phrasing:
intent: Update an asset (legacy PUT)
effect: write
questions:
- How do I edit an asset's details with a PUT on the legacy endpoint?
- Can I make an asset non-downloadable with a legacy PUT update?
instructions:
- text: PUT a legacy update renaming asset {id} to {name}.
slots:
id: path.id
name: requestBody.name
- text: With legacy PUT, set downloadable to {isDownloadable} on asset {id}.
slots:
id: path.id
isDownloadable: requestBody.isDownloadable
method: generated
generated: '2026-10-01'
- target: $.paths['/assets/{id}.json'].post
update:
x-apievangelist-phrasing:
intent: Update an asset (legacy POST .json)
effect: write
questions:
- Is there a POST variant on the legacy .json path for editing an asset?
- Can I mark an asset sensitive through the old POST update endpoint?
instructions:
- text: Via legacy POST to assets/{id}.json, set sensitive to {isSensitive}.
slots:
id: path.id
isSensitive: requestBody.isSensitive
- text: Using the old POST .json update, change asset {id}'s description to {description}.
slots:
id: path.id
description: requestBody.description
method: generated
generated: '2026-10-01'
- target: $.paths['/assets/{id}.json'].delete
update:
x-apievangelist-phrasing:
intent: Delete an asset (legacy endpoint)
effect: destructive
questions:
- Can I still delete an asset using the legacy .json endpoint?
- What's the older way to remove an asset by its ID?
instructions:
- text: Using the legacy endpoint, delete asset {id}.
slots:
id: path.id
- text: Remove asset {id} via assets/{id}.json.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/assets/{id}/comments.json'].get
update:
x-apievangelist-phrasing:
intent: List comments on an asset
effect: read
questions:
- What comments have people left on a particular asset?
- Can I see only the comments on an asset created after a certain date?
instructions:
- text: List the comments on asset {id}.
slots:
id: path.id
- text: Show comments on asset {id} created since {createdSince}.
slots:
id: path.id
createdSince: query.createdSince
method: generated
generated: '2026-10-01'
- target: $.paths['/assets/{id}/comments.json'].post
update:
x-apievangelist-phrasing:
intent: Comment on an asset
effect: write
questions:
- How do I add a comment to a specific asset?
- Can an unregistered visitor's comment be recorded against an asset?
instructions:
- text: Comment {message} on asset {id}.
slots:
id: path.id
message: requestBody.message
- text: Post the comment {message} on asset {id} for unregistered user {unregisteredUserFirstName}.
slots:
id: path.id
message: requestBody.message
unregisteredUserFirstName: requestBody.unregisteredUserFirstName
method: generated
generated: '2026-10-01'
- target: $.paths['/assets/{id}/link.json'].post
update:
x-apievangelist-phrasing:
intent: Link related resources to an asset
effect: write
questions:
- How do I attach several related resources to one asset with a Link list?
- Can I connect an asset to other resources in bulk?
instructions:
- text: Link the resources {Link} to asset {id}.
slots:
id: path.id
Link: requestBody.Link
- text: Attach {Link} to asset {id} as related resources.
slots:
id: path.id
Link: requestBody.Link
method: generated
generated: '2026-10-01'
- target: $.paths['/assets/{id}/tags.json'].get
update:
x-apievangelist-phrasing:
intent: List an asset's tags
effect: read
questions:
- Which tags are on a given asset?
- Can I check whether an asset carries a tag with a specific name?
instructions:
- text: List the tags on asset {id}.
slots:
id: path.id
- text: Check if asset {id} has a tag named {name}.
slots:
id: path.id
name: query.name
method: generated
generated: '2026-10-01'
- target: $.paths['/assets/{id}/tags.json'].post
update:
x-apievangelist-phrasing:
intent: Create a new tag on an asset
effect: write
questions:
- How do I create a brand-new tag and apply it to an asset in one call?
- Can I set the division of a tag I'm creating on an asset?
instructions:
- text: Create tag {name} and add it to asset {id}.
slots:
id: path.id
name: requestBody.name
- text: Add a new tag {name} in division {divisionId} to asset {id}.
slots:
id: path.id
name: requestBody.name
divisionId: requestBody.divisionId
method: generated
generated: '2026-10-01'
- target: $.paths['/assets/{id}/unlink.json'].post
update:
x-apievangelist-phrasing:
intent: Unlink related resources from an asset
effect: write
questions:
- How do I detach a list of related resources from an asset?
- Can I remove several resource links from one asset at once?
instructions:
- text: Unlink the resources {Link} from asset {id}.
slots:
id: path.id
Link: requestBody.Link
- text: Detach {Link} from asset {id}.
slots:
id: path.id
Link: requestBody.Link
method: generated
generated: '2026-10-01'
- target: $.paths['/assets'].get
update:
x-apievangelist-phrasing:
intent: List assets
effect: read
questions:
- How do I list the assets in our Showpad library filtered by tag or division?
- Can I look up assets by their external IDs or slugs?
- Which assets carry a given set of tags?
instructions:
- text: List assets in divisions {divisionIds}.
slots:
divisionIds: query.divisionIds
- text: List assets tagged {tagIds}.
slots:
tagIds: query.tagIds
- text: Find assets with external IDs {externalIds}.
slots:
externalIds: query.externalIds
method: generated
generated: '2026-10-01'
- target: $.paths['/assets'].post
update:
x-apievangelist-phrasing:
intent: Create an asset record
effect: write
questions:
- How do I create a new asset record in a division?
- Can I set languages, countries and authors when creating an asset?
instructions:
- text: Create an asset named {name} in division {division}.
slots:
name: requestBody.name
division: requestBody.division
- text: Create asset {name} in division {division} with tags {tags}.
slots:
name: requestBody.name
division: requestBody.division
tags: requestBody.tags
method: generated
generated: '2026-10-01'
- target: $.paths['/assets/query'].post
update:
x-apievangelist-phrasing:
intent: Search assets with ShowQL
effect: read
questions:
- Can I filter assets with complex conditions on metadata, languages and countries?
- How do I page through a large ShowQL result set with a cursor?
instructions:
- text: Query assets with the ShowQL expression {query}.
slots:
query: requestBody.query
- text: Get the next page of ShowQL results for {query} using cursor {cursor}.
slots:
query: requestBody.query
cursor: requestBody.cursor
method: generated
generated: '2026-10-01'
- target: $.paths['/assets/{assetId}'].get
update:
x-apievangelist-phrasing:
intent: Get an asset
effect: read
questions:
- How do I retrieve one asset's metadata by its ID?
- What details come back for a single asset?
instructions:
- text: Get asset {assetId}.
slots:
assetId: path.assetId
- text: Show the metadata of asset {assetId}.
slots:
assetId: path.assetId
method: generated
generated: '2026-10-01'
- target: $.paths['/assets/{assetId}'].post
update:
x-apievangelist-phrasing:
intent: Update an asset
effect: write
questions:
- How do I archive an asset or change its permissions?
- Can I update an asset's languages and localization?
instructions:
- text: Archive asset {assetId} by setting archived to {isArchived}.
slots:
assetId: path.assetId
isArchived: requestBody.isArchived
- text: Set the tags of asset {assetId} to {tags}.
slots:
assetId: path.assetId
tags: requestBody.tags
method: generated
generated: '2026-10-01'
- target: $.paths['/assets/{assetId}'].delete
update:
x-apievangelist-phrasing:
intent: Permanently delete an asset
effect: destructive
questions:
- How do I permanently delete an asset from our library?
- Can a deleted asset be recovered afterwards?
instructions:
- text: Permanently delete asset {assetId}.
slots:
assetId: path.assetId
- text: Remove asset {assetId} from the Showpad library for good.
slots:
assetId: path.assetId
method: generated
generated: '2026-10-01'
- target: $.paths['/assets/{assetId}/files'].get
update:
x-apievangelist-phrasing:
intent: List an asset's file versions
effect: read
questions:
- Which file versions are attached to an asset?
- Can I see the original and processed files for one asset?
instructions:
- text: List the files of asset {assetId}.
slots:
assetId: path.assetId
- text: Show all file versions belonging to asset {assetId}.
slots:
assetId: path.assetId
method: generated
generated: '2026-10-01'
- target: $.paths['/assets/{assetId}/files'].post
update:
x-apievangelist-phrasing:
intent: Attach a new file to an asset
effect: write
questions:
- How do I upload a new file version to an existing asset?
- Can I send an MD5 checksum when adding a file to an asset?
instructions:
- text: Attach a new file to asset {assetId}.
slots:
assetId: path.assetId
- text: Add file {name} with checksum {contentMD5} to asset {assetId}.
slots:
assetId: path.assetId
name: requestBody.name
contentMD5: requestBody.contentMD5
method: generated
generated: '2026-10-01'
- target: $.paths['/assets/{assetId}/files/{fileId}'].get
update:
x-apievangelist-phrasing:
intent: Get an asset file's metadata
effect: read
questions:
- How do I see the metadata of one specific file on an asset?
- Does fetching a single asset file return the binary content?
instructions:
- text: Get file {fileId} of asset {assetId}.
slots:
assetId: path.assetId
fileId: path.fileId
- text: Show metadata for file {fileId} on asset {assetId}.
slots:
assetId: path.assetId
fileId: path.fileId
method: generated
generated: '2026-10-01'